next up previous
Nächste Seite: 1.3.3 Blockierende Kommunikation Aufwärts: 1.3 Die Praktikumsaufgaben Vorherige Seite: 1.3.1 Vorbereitungen

1.3.2 Das erste parallele Programm

\fbox {{\large E1}}
Kompiliere das Programm in Example/src/firstc ( Example/src/firstf ) für archi = LINUX (bzw. entsprechende Plattform) via make .
Starte das Programm!

Die nachfolgenden MPI-Funktionen erfordern einen communicator als Parameter. Dieser Kommunikator beschreibt die Menge ( group) von Prozessen, welche an der entsprechenden MPI-Funktion teilnehmen. Der Standardfall, daß alle Prozesse teilnehmen, wird durch den Kommunikator MPI_COMM_WORLD beschrieben. Dies ist eine der vordefinierten Konstanten in MPI. Im Praktikum beschränken wir uns auf diesen einfachen Fall. Hierzu müssen wir eine Variable eines speziellen MPI-Types

MPI_Comm icomm= MPI_COMM_WORLD;
(in FORTRAN: INTEGER) anlegen, welche als Parameter benutzt wird!
\fbox {{\large E2}}
Schreibe Dein erstes paralleles Programm unter Nutzung der Rufe

MPI_Init und MPI_Finalize,

kompiliere es und starte 4 Prozesse (evtl. ohne Option -lamd)
mpirun -c 4 -lamd first.LINUX
\fbox {{\large E3}}
Benutze die Funktionen

MPI_Comm_rank und MPI_Comm_size,

um die Anzahl der laufenden Prozesse und die eigene Nummer in der Topologie (rank) zu bestimmen. Nur der Masterprozeß (0) soll die Anzahl der laufenden Prozesse ausgeben.
\fbox {{\large E4}}
Nutze die in greetings.c ( greetings.f) gegebene Funktion

Greetings(myid,numprocs,icomm)

Schaue die dortigen Rufzeilen von

MPI_Send und MPI_Recv !
genau an!


next up previous
Nächste Seite: 1.3.3 Blockierende Kommunikation Aufwärts: 1.3 Die Praktikumsaufgaben Vorherige Seite: 1.3.1 Vorbereitungen
Gundolf Haase
1999-10-04