Auf die installation von mpi.h für C in Ubuntu
Beginnen möchte ich mit MPI/C und ich möchte zu kompilieren/ausführen die standard-Programm, mpi_hello.
Mir ist es gelungen, über mpicc, aber ich erhalte eine Fehlermeldung, wenn ich die Datei kompilieren.
Hier ist das Programm:
#include <mpi.h>
#include <stdio.h>
int main (int argc, char* argv[])
{
int mynode, totalnodes;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &totalnodes);
MPI_Comm_rank(MPI_COMM_WORLD, &mynode);
printf( "\nHello world from process %d of %d\n", mynode, totalnodes );
if(totalnodes==1) printf("You have just one processor!\n");
MPI_Finalize();
return 0;
}
Habe ich die folgenden:
turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ mpicc mpi_hello.c
turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ cc -O3 mpi_hello.c
mpi_hello.c:6:17: fatal error: mpi.h: No such file or directory
#include <mpi.h>
^
compilation terminated.
Ich würde Ihre Hilfe schätzen. Danke!!!
ein
InformationsquelleAutor Math Student | 2014-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen:
?
Edit: Oh wow, ich bin völlig falsch verstanden dein post. Sie erfolgreich kompiliert es durch die Blicke von ihm mit
mpicc hello_world.c
Nun sollten Sie in der Lage sein, auszuführen.mit
wo 2 = Anzahl der Prozessoren.
Mit Ihrem code und eine frische Installation:
Ah. Ich nehme an, dass speziell für meine Uni-cluster. Sie installiert auf ubuntu installieren per: sudo apt-get install libcr-dev mpich2 mpich2-doc ?
ja. Das ist der Befehl, den ich verwendet. Ich bekam den fatal error!! 🙁
Bitte siehe update.
Danke wbt11a für deine Antwort. Ja! Es funktioniert gut. Allerdings, Modul-add gcc mpich2 wird immer ignoriert. Ich bekomme die Meldung: Modul: Befehl nicht gefunden. Außerdem, haben wir nicht die Datei kompilieren. Tatsächlich, ich habe ein eher kompliziertes Programm und ich habe, um es zu kompilieren. Durch die cc-O3 gibt einen fatalen Fehler: mpi.h nicht wie eine Datei von Verzeichnis! Wie seltsam!!
InformationsquelleAutor wbt11a
Müssen Sie sicherstellen, dass Ihre include-Pfad aktualisiert wird, damit der compiler finden kann, mpi.h wenn es nicht installiert in einem standard-Speicherort.
Das lokale Verzeichnis wird nicht notwendigerweise enthalten in den include-Suchpfad. Versuchen #include "mpi.h", wenn die header-Datei in Ihrem lokalen Verzeichnis und überprüfen Sie, ob dass das problem behebt.
Danke für deine Antwort, aber ich funktioniert nicht so gut mit#include "mpi.h". Es gelang mir, zu verwenden, mpicc, aber nicht cc -O3. Hast du irgendeinen anderen Vorschlag bitte!? :/
Spielen Sie mit der include-Pfad auf der compiler-Kommandozeile.
Danke Timo und wbt11a für Ihre Hilfe!! 😀
InformationsquelleAutor Timo Geusch
Bei der Verwendung von MPI sind Sie noch erlaubt die Verwendung von cc -O3 Namen.c kompilieren Sie Ihr Programm. Der korrekte Befehl für die Kompilierung ist: mpicc -O3 Namen.c. Der Befehl mpicc Namen.c hat hier nichts zu tun.
Hier ist was Sie bekommen für nur ein proc:
Können Sie auch für mehr als einen Prozessor (z.B. 2) mpirun -np 2 ./ein.aus, wie oben erwähnt. Ich hoffe das konnte ein bisschen helfen!
mpicc -show
InformationsquelleAutor Math Student