Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Kollektive Operationen Oswald Haan

Ähnliche Präsentationen


Präsentation zum Thema: "GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Kollektive Operationen Oswald Haan"—  Präsentation transkript:

1 GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Kollektive Operationen Oswald Haan ohaan@gwdg.de

2 (Alle Dateien im Verzeichnis Uebungen_f/MPI-coll ) Uebungen_py/MPI-coll ) Wie hängt die Dauer der Synchronisation von der Zahl der zu synchronisierenden Prozesse ab? (mit synch.f, synch.py ) synch.fsynch.py Programmieren Sie eine Barriere mit Punkt-zu-Punkt-Kom- munikation und bestimmen Sie deren Dauer: ( synch_s.f, synch_s.py) : synch_s.fsynch_s.py p0 P1 p2 Aufgabe 1: Synchronisation Parallelrechner-Programmierung mit MPI207. – 08. 10. 2014

3 Aufgabe 2: Daten einsammeln Parallelrechner-Programmierung mit MPI307. – 08. 10. 2014 Zusammenführen eines verteilten Vektors zu einem Gesamtvektor mit gather_vec.f, gather_vec.py, gather_obj.py gather_vec.fgather_vec.pygather_obj.py MPI_GATHER( sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm) comm.Gather(sendbuf,recvbuf,root= 1) recvbuf = comm.gather(sendbuf,root= 1) Task 0 Task 1 (root) Task 2 sendbuf recvbufbuf sendbuf recvbufbuf

4 Untersuchen Sie das Programm errexit.f, errexit.py errexit.ferrexit.py Ersetzen Sie die Abfolge MPI_REDUCE + MPI_BCAST durch MPI_ALLREDUCE Syntax: MPI_ALLREDUCE( sendbuf, recvbuf, count, datatype, op, comm) recvbuf= comm.reduce(sendobj = sendbuf, recvobj=None, op=op) Aufgabe 3: Reduktion: MPI_MIN Parallelrechner-Programmierung mit MPI407. – 08. 10. 2014 A0 op A0 op A0 A1 op A1 op A1 Task 0 Task 1 Task 2 sendbuf recvbufbuf A0 A1 A0 op A0 op A0 A1 op A1 op A1

5 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 Aufgabe 3: Reduktion: MPI_MIN Parallelrechner-Programmierung mit MPI507. – 08. 10. 2014

6 Erstellen Sie ein Programm zur Summierung der ganzen Zahlen von 1 bis N. Verwenden Sie dabei MPI_REDUCE mit der Operation MPI_SUM intsum.f, intsum.py intsum.fintsum.py Aufgabe4: Reduktion: MPI_SUM Parallelrechner-Programmierung mit MPI607. – 08. 10. 2014


Herunterladen ppt "GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Kollektive Operationen Oswald Haan"

Ähnliche Präsentationen


Google-Anzeigen