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

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 (make synch), synch.py ) synch.fsynch.py Programmieren Sie eine Barriere mit Punkt-zu-Punkt-Kom- munikation und bestimmen Sie deren Dauer: ( synch_s.f (make synch, synch_s.py) : synch_s.fsynch_s.py p0 P1 p2 Aufgabe 1: Synchronisation Parallelrechner-Programmierung mit MPI –

3 Aufgabe 2: Daten einsammeln Parallelrechner-Programmierung mit MPI – Zusammenführen eines verteilten Vektors zu einem Gesamtvektor mit gather_vec.f (make gather) gather_vec.f gather_vec.pygather_vec.py, gather_obj.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 MPI – 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 MPI –

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 Syntax von MPI_REDUCE call MPI_REDUCE(suml,sum,1,MPI_INTEGER, MPI_SUM, : 0,MPI_COMM_WORLD, ierr ) sum = comm.reduce(suml,op=MPI.SUM,root=0) Aufgabe4: Reduktion: MPI_SUM Parallelrechner-Programmierung mit MPI –


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

Ähnliche Präsentationen


Google-Anzeigen