Как заставить OpenMPI использовать GCC вместо ICC? Нужна ли перекомпиляция OpenMPI?
У меня есть 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 ответа
Попробуйте установить для переменной среды CC значение gcc.
csh: setenv CC gcc
bash: export CC=gcc