60 likes | 199 Views
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Kollektive Operationen. Oswald Haan ohaan@gwdg.de. Aufgabe 1 : Synchronisation. (Alle Dateien im Verzeichnis Uebungen_f /MPI- coll )
E N D
GWDG – KursParallelrechner-Programmierung mit MPI MPI-PraxisKollektive Operationen Oswald Haan ohaan@gwdg.de
Aufgabe 1:Synchronisation (Alle Dateien im Verzeichnis Uebungen_f/MPI-coll) Wie hängt die Dauer der Synchronisation von der Zahl der zu synchronisierenden Prozesse ab? (mit synch.f) Programmieren Sie eine Barriere mit Punkt-zu-Punkt-Kom-munikation und bestimmen Sie deren Dauer: (synch_s.f): p0 P1 p2 Parallelrechner-Programmierung mit MPI
Aufgabe 2:Daten einsammeln Zusammenführen eines verteilten Vektors zu einem Gesamtvektor mit gather_vec.f MPI_GATHER( sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm) recvbufbuf sendbuf recvbufbuf sendbuf Task 0 Task 1 (root) Task 2 Parallelrechner-Programmierung mit MPI
Aufgabe 3:Reduktion: MPI_MIN • Untersuchen Sie das Programm errexit.f. • Ersetzen Sie die Abfolge MPI_REDUCE + MPI_BCAST durchMPI_ALLREDUCE Syntax: MPI_ALLREDUCE( sendbuf, recvbuf, count, datatype, op, comm) recvbufbuf sendbuf A0opA0opA0 A1 opA1opA1 A0 A1 Task 0 A0opA0opA0 A1 opA1opA1 Task 1 A0 A1 Task 2 A0opA0opA0 A1 opA1opA1 A0 A1 Parallelrechner-Programmierung mit MPI
Aufgabe 3:Reduktion: MPI_MIN • Erstellen Sie ein Programm zur Bestimmung des globalen Minimums eines verteilten Vektors ganzer Zahlen mit Angabe eines Prozesses, auf dem das Minimum angenommen wird • Hinweis: Suche das Minimum des Hilfsvektors hv(i) = intv(i)*np + myid Parallelrechner-Programmierung mit MPI
Aufgabe4: Reduktion: MPI_SUM • Erstellen Sie ein Programm zur Summierung der ganzen Zahlen von 1 bis NMAX. Verwenden Sie dabei MPI_REDUCE mit der Operation MPI_SUM • intsum.f Parallelrechner-Programmierung mit MPI