のために書かれた並列計算用のCコードがありgcc
、それをクラスター上でコンパイルしたいと思います。これは明らかにicc
viaを使用し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
最終的には役立ちます(sharthのおかげで)。いつの日か、これらは別のものであることを覚えておく必要があります...
バイナリが作成されたにもかかわらず、次のバイバイメッセージが表示されました
/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail