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
'Makefile' hat' CC = mpicc' und 'CFLAGS + = -DMPI'. Ansonsten bekomme ich kein 'mpi'-Interface. Ist es richtig? – Andrei
@Andrei: Das sind keine Umgebungsvariablen.Sie wollen diese ebenso wie die Umgebungsvariablen, die ich oben vorgeschlagen habe. –
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