Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Punkt-zu-Punkt-Kommunikation Oswald Haan

Ähnliche Präsentationen


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

1 GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Punkt-zu-Punkt-Kommunikation Oswald Haan ohaan@gwdg.de

2 Aufgabe 1: Parallelrechner-Programmierung mit MPI207. – 08. 10. 2014 (Alle Dateien im Verzeichnis Uebungen_f/MPI-p2p bzw. Uebungen_py/MPI-p2p ) Nachrichten verschicken: p2p_vector.f p2p_vector.f p2p_vector.py p2p_vector.py Untersuche die Fälle n_recv nsend Mit MPI_STATUS Eigenschaften der empfangenen Nachricht abfragen: p2p_status.f p2p_status.py p2p_status.fp2p_status.py Mit MPI_PROBE nrecv anpassen: p2p_probe.f p2p_probe.py p2p_probe.fp2p_probe.py

3 Aufgabe 2: Deadlock Parallelrechner-Programmierung mit MPI307. – 08. 10. 2014 Deadlock: Ringtausch langer Nachrichten: p2p_deadlock.f p2p_deadlock.py p2p_deadlock.f p2p_deadlock.py 0 3 2 1

4 Aufgabe 2: Deadlock vermeiden Parallelrechner-Programmierung mit MPI407. – 08. 10. 2014 Korrekter Ringtausch ohne Deadlock: Mit veränderter Reihenfolge von Senden und Empfangen Mit gepuffertem Senden: real*8 temp(nmaxlocl) integer bsize bsize = 8*nmaxlocl ! Buffer Size in Byte call MPI_BUFFER_ATTACH(temp,bsize,ierror)... call MPI_BSEND( sendvec, nl,...... call MPI_BUFFER_DETACH(temp,bsize,ierror)

5 Aufgabe 2: Bsend mit mpi4py Parallelrechner-Programmierung mit MPI507. – 08. 10. 2014 Mit gepuffertem Senden: buf = numpy.empty(nlmax,dtype = numpy.float64) MPI.Attach_buffer(buf)... Comm.Bsend( sendvec, dest=ipto)... MPI.Detach_buffer()

6 Aufgabe 2: Deadlock vermeiden Parallelrechner-Programmierung mit MPI607. – 08. 10. 2014 Korrekter Ringtausch ohne Deadlock: mit MPI_SENDRECV Syntax: MPI_SENDRECV( sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype,source, recvtag, comm, status )

7 Punkt-zu-Punkt-Nachrichtenaustausch mit pp_mpi.f pp_mpi.f Kompilieren mit makefile Lokale Kommunikationsleistung mpirun –n 4./pp_mpi.exe < pp.input Prozessoren auf verschiedenen Knoten bsub –n 4 –q kurs-mpi -R "span[ptile=1]" –a intelmpi mpirun.lsf./pp_mpi.exe < pp.input Aufgabe 3: Kommunikationsleistung Parallelrechner-Programmierung mit MPI707. – 08. 10. 2014

8 Punkt-zu-Punkt-Nachrichtenaustausch mit pp_mpi.py pp_mpi.py Lokale Kommunikationsleistung mpirun –n 4 python./pp_mpi.py Prozessoren auf verschiedenen Knoten bsub –n 4 –q kurs-mpi -R "span[ptile=1]" –a openmpi mpirun.lsf python./pp_mpi.py Aufgabe 3: Kommunikationsleistung mit python Parallelrechner-Programmierung mit MPI807. – 08. 10. 2014


Herunterladen ppt "GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Punkt-zu-Punkt-Kommunikation Oswald Haan"

Ähnliche Präsentationen


Google-Anzeigen