Programmierung paralleler Algorithmen mit MPI

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Message Passing Interface (MPI)
Fast Fourier Transformation
Matrixmultiplikation
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
PC-Cluster.
Berechnung und Vereinfachung von Termen
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
Tiny TP Tiny TP gehört zwar zu den optionalen Komponenten wird aber dringend empfohlen. Tiny TP erfüllt folgende Aufgaben: 1.Zerlegung von großen Nachrichten.
Dynamische Programmierung (2) Matrixkettenprodukt
Bestimmung des Next-Arrays im KMP-Algorithmus
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Seminar parallele Programmierung SS 2003
OpenMP Präsentation im Rahmen des Seminars
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung Funktionen und Parameter
Algorithmen und Komplexität
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Situationen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Verteilte Algorithmen
Minimum Spanning Tree: MST
Rekursion Richard Göbel.
Kakuro Regeln und Strategien
Duo- und Quad Prozessor-Architektur
Effiziente Algorithmen
Informationen zur hessischen Kommunalwahl 2011
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Datenreihen erzeugen –
DAS HERON-VERFAHREN Heron erkannte, dass man die Quadratwurzel einer Zahl bestimmen kann, indem man verschiedene Mittelwerte berechnet. Solche Nährerungsverfahren.
Travelling Salesman Problem (TSP)
Situation Endlich haben Sie es geschafft auf alle Daten zuzugreifen und können in Ruhe weiterarbeiten und die Kundenanrufe betreuen. Plötzlich schaltet.
Stadtratswahl am 7. Juni 2009 Wie werden Stimmen zu Sitzen? Hinweise zum Berechnungsverfahren.
Disziplin 3: Cycle. Man geht aus von zwei 3er-Stapeln und einem 6er-Stapel
Parallelisierung für Multiprozessor-Maschinen
Das Traveling Salesman Problem (TSP)
Anschlussmöglichkeiten beim Samsung S3
Berechenbarkeit Klaus Becker Berechenbarkeit.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
4-Seiten einer Nachricht Friedemann Schulz von Thun
Dr.-Ing. R. Marklein - GET I - WS 06/07 - V Grundlagen der Elektrotechnik I (GET I) Vorlesung am Fr. 08:30-10:00 Uhr; R (Hörsaal)
Max Haustein, Karsten Otto
Visualisierung verteilter Systeme
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
Vorstellen und Herleiten der Horner Schemas
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Der Winkel zwischen Vektoren
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Schüleraustausch – „Zu Gast in Berlin“ begleitendes Material zum DaF-Unterricht Pingpong 2, L4 – Projektarbeit
 Präsentation transkript:

Programmierung paralleler Algorithmen mit MPI Eine Einführung in das Betriebssystempraktikum Parallelverarbeitung

Parallelverarbeitung Die Grundidee der Parallelverarbeitung ist es, ein gegebenes Problem, bzw. einen gegebenen Algorithmus so auf mehrere Rechner, bzw. Prozessoren zu verteilen, dass die Laufzeit des Algorithmus entsprechend der Prozessorenanzahl sinkt.

Parallele Algorithmen Aber wie ??? Parallele Algorithmen Die Frage ist nun jedoch, wie man einen solchen Algorithmus (um-) programmieren kann, dass er von mehreren Prozessoren gleich- zeitig abgearbeitet werden kann. Dazu müssen unabhängige Teilaufgaben des Algorithmus auf die Prozessoren verteilt werden.

Nachrichtenaustausch Jeder Prozessor löst also eine Teil des gesamten Problems. Früher oder später müssen sich die Prozessoren dann die Lösungen ihrer Teilaufgaben austauschen, damit aus den Teillösungen die Gesamtlösung entstehen kann. Allgemein nennt man dies einen „Nachrichtenaustausch“.

Beispiel: Addition von Zahlen + + + + Proc0 Proc1 Proc2 Proc3 Beispiel: es sollen 20 Zahlen (grün) aufsummiert werden. Diese Arbeit soll von vier Prozessoren parallel durchgeführt werden. Jeder Prozessor addiert dazu zunächst seine fünf Zahlen.

Beispiel: Addition von Zahlen + + + + + + + Dann werden die Teilsummen baumartig an die Nachbarprozes-soren weitergeleitet und wieder addiert, bis schließlich das Ender-gebnis vorliegt.

Beispiel: Addition von Zahlen 19 4 + + + + +1 +1 + + +1 + Man erkennt, dass so die Laufzeit von 19 benötigten Additionen im seriellen Fall auf die Zeit von 4+3=7 Additionen im parallelen Fall reduziert werden konnte. Hinzugekommen ist jedoch die zusätzliche Zeit für den Nachrichten-austausch!

Message Passing Interface Aber wie ??? Nachrichtenaustausch Wie programmiert man nun jedoch diesen Nachrichtenaustausch? Im Bereich der Parallelverarbeitung hat sich dazu in den letzten Jahren ein dominierender Standard herausgebildet: Das Message-Passing-Interface, kurz: MPI

Message Passing Interface Proc0 Proc1 Berechnung Berechnung MPI_Recv() MPI_Send() MPI_Send() MPI_Recv() Die Programmierung erfolgt dabei durch den Aufruf expliziter Sende- und Empfangsfunktionen (z.B. MPI_Send und MPI_Recv). Hier oben ist z.B. das Muster einer sog. Ping-Pong-Kommunikation zwischen zwei MPI-Prozessen einmal dargestellt.

Message Passing Interface MPI_Get_rank(&my_rank, …); … if(my_rank==0) { /* ich bin Proc0: */ MPI_Send(&SendePuffer,…,1,…); /* <- sende an Proc1 */ MPI_Recv(&EmpfangPuffer,…,1,…); /* <- empfange von 1 */ } else { /* ich bin Proc1: */ MPI_Recv(&EmpfangPuffer,…,0,…); /* <- empfange von 0 */ MPI_Send(&SendePuffer,…,0,…); /* <- sende an Proc0 */ } Dies ist der entsprechende C-Code zu einer solchen PingPong- Kommunikation mit MPI. Wie man erkennt, besitzt jeder Prozessor in der MPI-Umgebung eine eigene ID (den sog. rank), mit Hilfe derer er identifiziert und adressiert werden kann.

Das physikalische Medium CPU 0 CPU 1 Host 0 TCP SHARED MEMORY Host 1 Der MPI-Standard macht keinerlei Aussage über das physikalische Medium, über welches die Nachrichten übertragen werden. So sind z.B. parallele MPI-Programme sowohl auf gekoppelten Rechnern (sog. Cluster), als auch auf speziellen Multiprozessor- Machinen (z.B. SMP-Server) lauffähig.

Das physikalische Medium CPU 0 CPU 1 Host 0 TCP SHARED MEMORY Host 1 In dem einen Fall funktioniert dabei der Nachrichtenaustausch über das koppelnde Netzwerk (z.B. TCP über Ethernet). In dem anderen Fall gelangen die Nachrichten dann z.B. über den gemeinsamen Hauptspeicher (shared memory) von einem Prozessor zum anderen.

Betriebssystempraktikum TCP SCI SHMEM Im Betriebssystempraktikum „Parallelverarbeitung“ kommt neben TCP (auf einem unserer Intel-Cluster) und Shared-Memory (auf einer Sun-Enterprise mit vier Prozessoren) auch eine weitere Variante zum Einsatz: das Scalable Coherent Interface, kurz: SCI, welches den Aufbau sog. speichergekoppelter Cluster ermöglicht.