gcc
용으로 작성된 병렬 컴퓨팅 용 C 코드가 있으며 클러스터에 컴파일하려고합니다. icc
을 통해 을 사용하고있는 것 같습니다. icc
- 친숙한 코드를 수정하는 것 역시 시간이 많이 소요되는 것 같습니다. 따라서 OpenMPI
에 gcc
을 대신 사용하도록 요청할 수 있는지 궁금합니다. 해당 클러스터에 대한 관리자 권한이 없기 때문에 실제로 원래 구성을 엉망으로 만드는 것을 선호합니다.OpenMPI가 ICC 대신 GCC를 사용하도록 강제하는 방법은 무엇입니까? OpenMPI를 다시 컴파일해야합니까?
예를 들어. Makefile
, 그렇다면 희망에 따라 OpenMPI
을 내 홈 디렉토리에 컴파일 할 수 있지만 그 후에 수행해야 할 작업에 대한 지침이 필요합니다. 당신이 나를 도울 수?
갱신 1
Makefile
는
CC = mpicc
CFLAGS += -DMPI
그리고 여기가
$ which mpicc
/usr/bin/mpicc
lrwxr-xr-x /usr/bin/mpicc -> opal_wrapper
-rwxr-xr-x /usr/bin/opal_wrapper
내가 당신에게 더 많은 정보를 제공 할 수있는 경우 나, 알게 일부 OpenMPI 실행 파일입니다 포함되어 있습니다.
는 help of Jeff와 UPDATE2는
,이 파일을 편집 그러나, 나는 권한이없는 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=
에 대한 OpenMPI
설정을 찾을 수 있었고, 'OPMI_CC = gcc
아무튼 t 변경 컴파일러.
갱신 3은
환경 변수 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
'Makefile'은'CC = mpicc'과'CFLAGS + = -DMPI'를 가지고 있습니다. 그렇지 않으면'mpi' 인터페이스를 얻지 못합니다. 맞습니까? – Andrei
@Andrei : 환경 변수가 아닙니다.위에서 제안한 환경 변수를 설정하는 것뿐만 아니라 그것들도 필요합니다. –
오케이, 제 실수를 봅니다. 나는 당신이 제안한대로 방금 노력했으며, 여전히'icc'입니다. Jeff가 제안한 페이지를 살펴볼 수 있습니까? 나는 그것이 말하는대로합니까? – Andrei