Benutzer-Werkzeuge

Webseiten-Werkzeuge


se:parallelrechner

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
se:parallelrechner [2009-01-18 18:40]
stefan
se:parallelrechner [2014-04-05 11:42] (aktuell)
Zeile 42: Zeile 42:
     * Beispiel: verteilter gemeinsamer Speicher, Speicherzugriff außerhalb des eigenen Moduls erfolgt über VN     * Beispiel: verteilter gemeinsamer Speicher, Speicherzugriff außerhalb des eigenen Moduls erfolgt über VN
   * Klassifikation nach Flynn   * Klassifikation nach Flynn
-    * SISD: ein Befehlsstrom,​ ein Datenstrom (normaler PC) +    * SISD: ein Befehlsstrom,​ ein Datenstrom (normaler PC), ein Befehl verarbeitet einen Datensatz (herkömmliche Rechnerarchitektur eines seriellen Rechners)  
-    * SIMD: ein Befehlsstrom,​ mehrere Datenströme (Cray, Vektorrechner) +    * SIMD: ein Befehlsstrom,​ mehrere Datenströme (Cray, Vektorrechner), ein Befehl verarbeitet mehrere Datensätze,​ z.B. n Prozessoren führen zu einem Zeitpunkt den gleichen Befehl aber mit unterschiedlichen Daten aus  
-    * MISD: mehrere Befehlsströme,​ ein Datenstrom (praktisch keine) +    * MISD: mehrere Befehlsströme,​ ein Datenstrom (praktisch keine), mehrere Befehle verarbeiten den gleichen Datensatz (diese Rechnerarchitektur ist nie realisiert worden)  
-    * MIMD: mehrere Befehlsströme,​ mehrere Datenströme+    * MIMD: mehrere Befehlsströme,​ mehrere Datenströme ​(Merhprozessorsysteme und verteilte Systeme), unterschiedliche Befehle verarbeiten unterschiedliche Datensätze (dies ist das Konzept fast aller modernen Parallelrechner) ​
   * SPMD und MPMD   * SPMD und MPMD
     * MPMD: Multiple Program, multiple Data (jeder Prozessor führt sein eigenes Programm aus, Master verteilt Arbeit an Worker)     * MPMD: Multiple Program, multiple Data (jeder Prozessor führt sein eigenes Programm aus, Master verteilt Arbeit an Worker)
     * SPMD: Single Program, multiple Data (ein einziges Programm enthält Abschnitte für Master und Worker)     * SPMD: Single Program, multiple Data (ein einziges Programm enthält Abschnitte für Master und Worker)
 +    * Vor-/​Nachteile
 +      * SPMD: größere Portabilität,​ einfacher zu verwalten, viele MPMD-Programme können als SPMD-Programme formuliert werden.
 +      * MPMD: größere Flexibilität,​ schwieriger zu verwalten     ​
   * Zugriffsweise auf den Speicher   * Zugriffsweise auf den Speicher
     * Uniform Memory Access: gleichförmiger Speicherzugriff (Tanzsaal-Architektur)     * Uniform Memory Access: gleichförmiger Speicherzugriff (Tanzsaal-Architektur)
Zeile 54: Zeile 57:
     * Cache-Only Memory Access: nur Cache-Zugriffe     * Cache-Only Memory Access: nur Cache-Zugriffe
     * No Remote Memory Access: nur lokale Speicherzugriffe (Grid, NOW)  ​   ​     * No Remote Memory Access: nur lokale Speicherzugriffe (Grid, NOW)  ​   ​
 +  * Parallelisierungsstrategien
 +    *  Gebietszerlegung (engl. domain decomposition)
 +    * Funktionale Aufteilung (engl. functional decomposition)
 +    * Verteilung von Einzelaufträgen (engl. task farming)
  
 ===== Statische Verbindungsnetze ===== ===== Statische Verbindungsnetze =====
Zeile 120: Zeile 127:
   * Kosten: n * T<​sub>​par</​sub> ​   ​   * Kosten: n * T<​sub>​par</​sub> ​   ​
   * Gesetz von Amdahl: S(n) = (s + p) / (s + p/n)   * Gesetz von Amdahl: S(n) = (s + p) / (s + p/n)
 +    * geht von einem konstanten seriellen Anteil im Programm aus -> Grenze für Speedup, nicht-skalierbare Anwendungen
 +    * Die Verbesserung der Leistung des Gesamtsystems durch Verbesserung einer Komponente ist limitiert durch den Umfang der Verwendung der Komponente.
   * Gesetz von Gustavson-Barsis:​ S<​sub>​s</​sub>​(n) = n + (1 - n) s      * Gesetz von Gustavson-Barsis:​ S<​sub>​s</​sub>​(n) = n + (1 - n) s   
 +    * geht von einer konstanten Laufzeit des seriellen Anteils im Programm aus -> skalierbare Anwendungen,​ können bei wachsendem Problem mit mehr Prozessoren ausgestattet werden
 +    * Verbesserung der Genauigkeit/​Problemgröße eines parallelen Verfahrens durch Steigerung der Prozessorzahl bei gleich bleibender Ausführungszeit
 +
 +===== Nachrichtenaustausch =====
 +  * Nachrichten werden zwischen den Prozessen verschickt, indem der Absender diese in einen Umschlag mit Empfänger und Sender verpackt und ggfs. mit einem Tag versieht
 +  * Prozesserzeugung
 +    * statisch: alle Prozesse werden vor der Ausführung spezifiziert
 +    * dynamisch: neue Prozesse können während der Ausführung anderer Prozesse erzeugt werden (z.B. Master-Worker-Struktur)
 +  * ein Prozess versendet eine Nachricht, indem er
 +    * den/die Empfänger nennt
 +    * den Wert (Adresse und Datentyp) bereitstellt
 +    * optional die Nachricht mit einem Tag versieht
 +  * ein Prozess empfängt eine Nachricht, indem er
 +    * den Absender nennt (exakt oder beliebiger Absender)
 +    * den Typ der Daten und die Zieladresse nennt
 +    * optional einen Tag angibt (z.B. "​dringend"​)
 +  * synchroner/​blockierender Nachrichtenaustausch
 +    * erst Send oder erst Receive möglich
 +    * Prozesse warten, bis die Nachricht übertragen wurde (und blockieren solange)
 +  * asynchroner/​nicht blockierender Nachrichtenaustausch  ​
 +    * Empfänger kann ein IRecv absetzen und später mit Wait schauen, ob die Nachricht angekommen ist
  
 ===== Online-Kurs ===== ===== Online-Kurs =====
Zeile 496: Zeile 526:
       * Prozesse, die nicht in der Gruppe sind, erhalten ''​MPI_COMM_NULL''​ als Rückgabewert       * Prozesse, die nicht in der Gruppe sind, erhalten ''​MPI_COMM_NULL''​ als Rückgabewert
     * ''​MPI_Comm_free(MPI_Comm *comm)''​ zerstört einen Kommunikator     * ''​MPI_Comm_free(MPI_Comm *comm)''​ zerstört einen Kommunikator
 +
 +===== Links =====
 +  * [[http://​www.rz.uni-karlsruhe.de/​rz/​hw/​sp/​online-kurs/​PARALLELRECHNER/​parallelr.html|Parallelrechner und Parallelisierungskonzepte (Universität Karlsruhe)]]
 +  * [[http://​pvs.uni-muenster.de/​pvs/​lehre/​SS06/​ps/​folien/​1-06Print.pdf|Parallele Systeme (Universität Münster)]]
 +  * [[http://​www.mathematik.uni-marburg.de/​~loogen/​Lehre/​ws08/​ParProg/​Folien/​ParProg0.ppt|Parallele Programmierung (Uni Marburg)]]
  
 ===== ToDo ===== ===== ToDo =====
   * <​del>​Online-Learning anschauen</​del>​   * <​del>​Online-Learning anschauen</​del>​
   * externe Quellen suchen   * externe Quellen suchen
-    * Gesetze Amdahl etc.+    * <del>Gesetze Amdahl etc.</​del>​
     * MPI-Standard     * MPI-Standard
   * Architekturen verstehen (Shared Memory etc.)  ​   * Architekturen verstehen (Shared Memory etc.)  ​
-  * Metriken verstehen, Metriken (Formeln) für neue Topologie entwickeln +  * <del>Metriken verstehen, Metriken (Formeln) für neue Topologie entwickeln</​del>​ 
-  * Leistungsbewertung (Gesetze Amdahl etc.) +  * <del>Leistungsbewertung (Gesetze Amdahl etc.)</​del> ​
   * <​del>​OpenMP eher allgemein (Kombination mit MPI)</​del>​   * <​del>​OpenMP eher allgemein (Kombination mit MPI)</​del>​
     * <​del>​OpenMP-Webcast</​del>​     * <​del>​OpenMP-Webcast</​del>​
-  * Bibliotheken für Parallelrechner nur oberflächlich ​     ​+  * <del>Bibliotheken für Parallelrechner nur oberflächlich</​del> ​     
   * Lehrbrief korrigieren (falsche Parameter bei MPI-Funktionen)   * Lehrbrief korrigieren (falsche Parameter bei MPI-Funktionen)
   * <​del>​Metriken für Baum erstellen</​del>​   * <​del>​Metriken für Baum erstellen</​del>​
se/parallelrechner.1232300415.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)