Cannot execute binary error on an Intel Xeon Phi
我有一个可以在我的机器上本地编译和运行的 C 代码。
但是,当我尝试使用 icc 和 -mmic 标志进行编译并在 Intel Xeon Phi 上对其进行测试时,我收到以下消息:
/cm/local/apps/sge/current/spool/node079/job_scripts/5438755:第14行:./sequential.mic:无法执行二进制文件
我在使用 SGE 作业提交系统的集群中运行所有测试。
我的 makefile 包含以下几行:
1 2 3 | sequential: Makefile icc -mmic -o sequential.mic sequential.c qsub sequential.job |
提交作业的作业文件为:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/sh #$ -S /bin/sh #$ -l h_rt=00:10:00 #$ -j y #$ -l fat,accel=XeoPhi #$ -cwd . /etc/bashrc module load intel/compiler/64/13.3/2013.3.163 ./sequential.mic |
注意事项:
-
如果我用 gcc 编译它并将其提交到常规节点(XEON 5620)
一切都按预期工作。 - 此外,我尝试使用 file 命令检查 mic 可执行文件,输出为:sequential.mic: ELF 64-bit LSB executable, version 1 (SYSV), dynamiclinked (uses shared libs), for GNU/Linux 2.4.0 , 未剥离
欢迎提出任何建议。
由于代码需要在英特尔至强融核上本地运行,因此二进制文件也不需要在执行前加载到机器上。
因此,最简单的方法是使用以下命令加载二进制文件然后执行。
/usr/bin/micnativeloadex ./sequential.mic