在Intel Xeon Phi上出现无法执行二进制文件的错误

3
我有一份C代码,在我的本地机器上编译和运行正常。但是当我尝试使用icc和-mmic标志进行编译,并在Intel Xeon Phi上测试时,我会收到以下消息:
/cm/local/apps/sge/current/spool/node079/job_scripts/5438755: line 14: ./sequential.mic: cannot execute binary file 我在一个使用SGE作业提交系统的集群中运行所有测试。
我的Makefile包含以下行:
sequential: Makefile
icc -mmic -o sequential.mic sequential.c
qsub sequential.job

提交作业的作业文件为:

#!/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位LSB可执行文件,版本1(SYSV),动态链接(使用共享库),适用于GNU / Linux 2.4.0,未剥夺

欢迎提出任何建议。

1个回答

1
作为代码需要在Intel Xeon Phi上本地运行,因此二进制文件在执行前也需要加载到机器上。
因此,最简单的方法是使用以下命令加载二进制文件并执行。 /usr/bin/micnativeloadex ./sequential.mic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接