如何强制OpenMPI使用GCC而不是ICC?是否需要重新编译OpenMPI?

And*_*rei 7 c gcc compilation icc openmpi

我有一个用于并行计算的C代码gcc,我想在一个集群上编译它,它显然使用了iccvia mpicc.纠正代码是icc友好的似乎太时间要求,所以我想知道我是否可以要求OpenMPI使用gcc.我没有该群集的管理员权限,我实际上更愿意不弄乱原始配置.

如果无法设置例如Makefile,那么我希望可以OpenMPI在我的主目录中编译,但我需要一些指导,然后必须做什么.你可以帮帮我吗?


UPDATE1

Makefile包含

CC = mpicc
CFLAGS += -DMPI
Run Code Online (Sandbox Code Playgroud)

这里有一些OpenMPI文件

$ which mpicc
/usr/bin/mpicc

lrwxr-xr-x  /usr/bin/mpicc -> opal_wrapper
-rwxr-xr-x  /usr/bin/opal_wrapper
Run Code Online (Sandbox Code Playgroud)

如果我能为您提供更多信息,请告诉我.


UPDATE2

Jeff帮助下,我能够找到OpenMPI设置mpicc

$ 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=
Run Code Online (Sandbox Code Playgroud)

但是,我没有权限编辑此文件,OPMI_CC = gcc也没有更改编译器.


UPDATE3

环境变量CC = gcc没有帮助

$ export CC=gcc
$ echo $CC
gcc
$ make clean $$ make
...icc:...errors
Run Code Online (Sandbox Code Playgroud)

UPDATE4

......但export OMPI_CC=gcc最终有所帮助(感谢sharth).我有一天应该记住这些是不同的事情......

尽管创建了二进制文件,但我得到了以下的再见信息

/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
Run Code Online (Sandbox Code Playgroud)