2010-07-28 20 views
6

J'ai un C-code pour l'informatique parallèle écrit pour gcc, et je veux le compiler sur un cluster, qui utilise apparemment icc via mpicc. Corriger le code icc -friendly semble être trop exigeant, donc je me demande si je peux demander OpenMPI à utiliser gcc à la place. Je n'ai pas les droits d'administrateur sur ce cluster, et je préférerais ne pas gâcher la configuration d'origine.Comment forcer OpenMPI à utiliser GCC au lieu de ICC? La recompilation d'OpenMPI est-elle nécessaire?

S'il n'est pas possible de définir, par ex. Makefile, alors je pourrais compiler OpenMPI dans mon répertoire personnel, mais j'ai besoin de conseils sur ce qui doit être fait après cela. Pourriez-vous m'aider?


Update1

Le Makefile contient

CC = mpicc 
CFLAGS += -DMPI 

Et voici quelques fichiers OpenMPI

$ which mpicc 
/usr/bin/mpicc 

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

Faites-moi savoir si je peux vous fournir plus d'informations.


MAJ2

Avec le help of Jeff, j'ai pu trouver OpenMPI paramètres pour 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= 

Cependant, je n'ai pas le droit de modifier ce fichier, et OPMI_CC = gcc n » t change le compilateur.


Update3

variable d'environnement CC = gcc ne permet pas

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

Update4

... mais export OMPI_CC=gcc ne fin allier aide (thanks to sharth). Je me souviens que une jours ce sont des choses différentes ...

Malgré que le binaire a été créé, je reçu le message suivant bye-bye

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

Répondre

2

Définissez la variable d'environnement CC à gcc.

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

'Makefile' a' CC = mpicc' et 'CFLAGS + = -DMPI'. Sinon, je n'ai pas l'interface 'mpi'. Est-ce correct? – Andrei

+1

@Andrei: Ce ne sont pas des variables environnementales.Vous voulez ceux-ci ainsi que la définition des variables environnementales que j'ai suggéré ci-dessus. –

+0

OK, je vois mon erreur. Je viens d'essayer comme vous le suggérez, et c'est toujours "icc". Peut-être pouvez-vous jeter un oeil à la page proposée par Jeff? Est-ce que je fais comme il est dit? – Andrei