2010-07-28 12 views
6

Ich habe einen C-Code für die parallele Berechnung geschrieben für gcc, und ich möchte es auf einem Cluster kompilieren, der icc über mpicc offenbar verwendet. Das Korrigieren des Codes zu icc -friendly scheint zu zeitaufwendig zu sein, also frage ich mich, ob ich OpenMPI stattdessen gcc verwenden kann. Ich habe keine Administratorrechte für diesen Cluster, und ich würde eigentlich lieber die ursprüngliche Konfiguration nicht durcheinander bringen.Wie erzwinge OpenMPI GCC anstelle von ICC zu verwenden? Ist das erneute Kompilieren von OpenMPI notwendig?

Wenn es nicht möglich ist, z.B. Makefile, dann könnte ich hoffentlich kompilieren OpenMPI in meinem Home-Verzeichnis, aber ich brauche etwas Anleitung, was danach getan werden muss. Kannst du mir helfen?


UPDATE1

Die Makefile enthält

CC = mpicc 
CFLAGS += -DMPI 

Und hier sind einige OpenMPI Dateien

$ which mpicc 
/usr/bin/mpicc 

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

Lassen Sie mich wissen, wenn ich Ihnen weitere Informationen zur Verfügung stellen kann.


UPDATE2

Mit den help of Jeff, war ich in der Lage OpenMPI Einstellungen für 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= 

jedoch zu finden, ich habe keine Rechte hat, diese Datei zu bearbeiten, und OPMI_CC = gcc doesn‘ t Ändern Sie den Compiler.


UPDATE3

Umgebungsvariable CC = gcc hilft nicht

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

Update4

... aber export OMPI_CC=gcc tut fin Verbünde Hilfe (thanks to sharth). Ich sollte 1 Tag daran erinnern, dass es sich um verschiedene Dinge sind ...

Trotz, dass die binäre erstellt wurde, bekam ich folgende bye-bye Nachricht

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

Antwort

2

Versuchen Sie, die Umgebungsvariable CC auf gcc setzen.

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

'Makefile' hat' CC = mpicc' und 'CFLAGS + = -DMPI'. Ansonsten bekomme ich kein 'mpi'-Interface. Ist es richtig? – Andrei

+1

@Andrei: Das sind keine Umgebungsvariablen.Sie wollen diese ebenso wie die Umgebungsvariablen, die ich oben vorgeschlagen habe. –

+0

OK, ich sehe meinen Fehler. Ich habe gerade versucht, wie Sie vorschlagen, und es ist immer noch "ICC". Vielleicht können Sie sich die von Jeff vorgeschlagene Seite ansehen? Tu ich wie es heißt? – Andrei

Verwandte Themen