【发布时间】:2011-03-22 03:41:55
【问题描述】:
我有一个为gcc 编写的用于并行计算的 C 代码,我想在一个集群上编译它,它显然通过mpicc 使用icc。将代码更正为icc-friendly 似乎太费时间了,所以我想知道是否可以要求OpenMPI 改用gcc。我没有该集群的管理员权限,实际上我更希望不要弄乱原始配置。
如果无法设置,例如Makefile,那么我希望可以在我的主目录中编译OpenMPI,但我需要一些指导,说明之后必须做什么。你能帮帮我吗?
更新1
Makefile 包含
CC = mpicc
CFLAGS += -DMPI
这里有一些 OpenMPI 文件
$ which mpicc
/usr/bin/mpicc
lrwxr-xr-x /usr/bin/mpicc -> opal_wrapper
-rwxr-xr-x /usr/bin/opal_wrapper
如果我可以为您提供更多信息,请告诉我。
更新2
使用help of Jeff,我能够找到mpicc 的OpenMPI 设置
$ more /usr/local/share/openmpi/mpicc-wrapper-data.txt
project=Open MPI
project_short=OMPI
version=1.1.4
language=C
compiler_env=CC
compiler_flags_env=CFLAGS
compiler=icc
extra_includes= openmpi
preprocessor_flags=
compiler_flags=-pthread
linker_flags=
libs=-lmpi -lorte -lopal -ldl -Wl,--export-dynamic -lnsl -lutil -ldl
required_file=
但是,我无权编辑此文件,OPMI_CC = gcc 不会更改编译器。
UPDATE3
环境变量CC = gcc 没有帮助
$ export CC=gcc
$ echo $CC
gcc
$ make clean $$ make
...icc:...errors
UPDATE4
...但是export OMPI_CC=gcc 终于有帮助了(thanks to sharth)。我总有一天会记住这些是不同的东西......
尽管创建了二进制文件,但我收到了以下再见消息
/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
【问题讨论】:
标签: c gcc compilation icc openmpi