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

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

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

/cm/local/apps/sge/current/spool/node079/job_scripts/5438755:第 14 行:./sequential.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) 一切都按预期进行。
  • 此外,我尝试使用文件命令检查 mic 可执行文件,输出为:sequential.mic:ELF 64 位 LSB 可执行文件,版本 1 (SYSV),动态链接(使用共享库),用于GNU/Linux 2.4.0,未剥离

我们非常欢迎任何建议。

最佳答案

由于代码需要在英特尔至强融核上本地运行,因此也不需要在执行前将二进制文件加载到机器上。

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

/usr/bin/micnativeloadex ./sequential.mic

关于c++ - 无法在 Intel Xeon Phi 上执行二进制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477539/

相关文章:

c++ - 用什么替代 Windows 端口上的 glob_t 和 glob()?

c - 我不知道用什么来代替 β 和 α 才能打印所有不同于 0 且唯一的 3 位数字

linux - 生产中使用的是单cloudera单用户模式吗?

java - Infinispan 警告 : org. jgroups.conf.XmlConfigurator:配置文件中缺少版本

configuration - Infinispan 5.3.0 - 更改集群配置

c++ - C 函数重载

c++ - SLURM C++ 发现可用内核多于分配的内核

c - 严格的 C Win GUI 编程

c++ - 指向动态分配类的空指针

"private"函数的 C 单元测试模拟