2010-07-28 11 views
6

Tengo un código C para cómputo paralelo escrito para gcc, y quiero compilarlo en un clúster, que aparentemente usa icc a través de mpicc. Corregir el código para que sea icc -friendly parece exigir demasiado tiempo, por lo que me pregunto si puedo pedir OpenMPI para usar gcc en su lugar. No tengo los derechos de administrador en ese clúster, y preferiría no ensuciar la configuración original.Cómo forzar a OpenMPI a usar GCC en lugar de ICC? ¿Es necesario recompilar OpenMPI?

Si no es posible configurar, p. Makefile, entonces podría compilar OpenMPI en mi directorio de inicio, pero necesito alguna orientación sobre lo que debe hacerse después de eso. ¿Usted me podría ayudar?


Update1

El Makefile contiene

CC = mpicc 
CFLAGS += -DMPI 

Y aquí están algunos archivos openmpi

$ which mpicc 
/usr/bin/mpicc 

lrwxr-xr-x /usr/bin/mpicc -> opal_wrapper 
-rwxr-xr-x /usr/bin/opal_wrapper 

que me haga saber, si puedo proporcionar más información.


Update2

Con la help of Jeff, yo era capaz de encontrar OpenMPI ajustes para 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= 

Sin embargo, no tengo los derechos para editar este archivo, y OPMI_CC = gcc doesn' t cambiar el compilador.


Update3

variable ambiental CC = gcc no ayuda

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

Update4

... pero export OMPI_CC=gcc hace aleta ally help (thanks to sharth). Debería Recuerdo un día que son cosas diferentes ...

A pesar de que el binario fue creado, que tiene el siguiente mensaje de adiós

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

Respuesta

2

intente configurar la variable ambiental a CC gcc.

csh: setenv CC gcc 
bash: export CC=gcc 
+0

'Makefile' tiene' CC = mpicc' y 'CFLAGS + = -DMPI'. De lo contrario, no obtengo la interfaz 'mpi'. ¿Es correcto? – Andrei

+1

@Andrei: Esas no son variables ambientales.Usted los quiere, además de establecer las variables ambientales que sugerí arriba. –

+0

Bien, veo mi error. Acabo de intentar como sugieres, y sigue siendo 'icc'. ¿Puede ser que pueda echarle un vistazo a la página sugerida por Jeff? ¿Hago lo que dice? – Andrei

Cuestiones relacionadas