1 / 6

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

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 ) Uebungen_py /MPI- coll )

amena-beach
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GWDG – KursParallelrechner-Programmierung mit MPI MPI-PraxisKollektive Operationen Oswald Haan ohaan@gwdg.de

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

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

  4. Aufgabe 3:Reduktion: MPI_MIN • Untersuchen Sie das Programm errexit.f, errexit.py • Ersetzen Sie die Abfolge MPI_REDUCE + MPI_BCAST durchMPI_ALLREDUCE Syntax: MPI_ALLREDUCE( sendbuf, recvbuf, count, datatype, op, comm) recvbuf= comm.reduce(sendobj= sendbuf, recvobj=None, op=op) 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

  5. 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

  6. Aufgabe4: Reduktion: MPI_SUM • 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 Parallelrechner-Programmierung mit MPI

More Related