无法在Intel Xeon Phi上执行二进制错误

时间:2016-02-18 09:30:45

标签: c++ c cluster-computing icc xeon-phi

我有一个C代码,可以在我的机器上本地编译和运行。 但是,当我尝试使用icc和-mmic标志进行编译并在Intel Xeon Phi上进行测试时,我收到以下消息:

/ cm / local / apps / sge / current / spool / node079 / job_scripts / 5438755:第14行:./ sequence.mic:无法执行二进制文件 < / p>

我在使用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 个答案:

答案 0 :(得分:0)

由于代码需要在Intel Xeon Phi上本机运行,因此二进制文件也需要在执行之前加载到机器上。

因此,最简单的方法是使用以下命令加载二进制文件然后执行。

/ usr / bin / micnativeloadex ./sequential.mic