Как заставить OpenMPI использовать GCC вместо ICC?Нужна ли перекомпиляция OpenMPI? - PullRequest
7 голосов
/ 28 июля 2010

У меня есть C-код для параллельных вычислений, написанный для gcc, и я хочу скомпилировать его в кластере, который, очевидно, использует icc через mpicc. Исправление кода для удобства icc кажется слишком трудоемким, поэтому мне интересно, могу ли я попросить OpenMPI использовать вместо него gcc. У меня нет прав администратора в этом кластере, и я бы предпочел не портить исходную конфигурацию.

Если невозможно установить, например, в. Makefile, тогда, я надеюсь, я смогу скомпилировать OpenMPI в своем домашнем каталоге, но мне нужно некоторое руководство в том, что должно быть сделано после этого. Не могли бы вы помочь мне?


Update1

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

Дайте мне знать, если я смогу предоставить вам больше информации.


UPDATE2

С помощью с помощью Джеффа я смог найти 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=

Однако у меня нет прав на редактирование этого файла, и OPMI_CC = gcc не меняет компилятор.


Update3

Переменная среды CC = gcc не помогает

$ export CC=gcc
$ echo $CC
gcc
$ make clean $$ make
...icc:...errors

UPDATE4

... но export OMPI_CC=gcc наконец-то помогает ( благодаря Шарту ). Я должен однажды вспомнить, что это разные вещи ...

Несмотря на то, что бинарный файл был создан, я получил следующее прощальное сообщение

/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail

Ответы [ 2 ]

4 голосов
/ 28 июля 2010
2 голосов
/ 28 июля 2010

Попробуйте установить для переменной среды CC значение gcc.

csh:  setenv CC gcc
bash: export CC=gcc
...