bulk synchronous parallel computing
DESCRIPTION
Bulk Synchronous Parallel Computing. Seminar Parallele Programmierung Michael Poldner. Motivation. Sequentielle Rechner Grundlage: von Neumann-Modell Vorteil : Entkopplung von Hard- und Softwareentwicklung Parallele Rechner - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/1.jpg)
Bulk Synchronous Parallel Computing
Seminar Parallele Programmierung
Michael Poldner
![Page 2: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/2.jpg)
2
Motivation
Sequentielle Rechner• Grundlage: von Neumann-Modell• Vorteil: Entkopplung von Hard- und SoftwareentwicklungParallele Rechner• bis Ende 80er Jahre hardwareorientiert
Problem: viele Architekturen; Software speziell für diese entwickelt, kaum übertragbar, schnell veraltet und teuer
• Ende 80er Jahre softwareorientierte Ansätze• Ende 80er/Anfang 90er Jahre modellorientiert
Ziel: Skalierbarkeit, Portabilität, Vorhersagbarkeit
![Page 3: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/3.jpg)
3
Gliederung
1. Berechnungsmodelle
2. PRAM-Modell
3. BSP-Modell
4. Fazit
![Page 4: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/4.jpg)
4
1. Berechnungsmodelle
• dienen zur Analyse von Algorithmen
• Bewertung unabhängig von Programmiersprache undbestimmten Rechner anhand eines Bewertungskriteriums
• Basis: einheitliches Rechnermodell- abstrahiert von konkreten Rechnerdetails- Angabe von wichtigen Merkmalen einer Klasse von Rechnern an, welche signifikanten Einfluss auf die Laufzeit von Algorithmen haben: z.B. Basisoperationen, Zeitpunkt der damit zusammen- hängenden Aktionen, Datenzugriff, Datenspeicherung
![Page 5: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/5.jpg)
5
Random Access Machine
• Berechnungsmodell für sequentielle Rechner
• Im wesentlichen Random Access Memory von unbeschränkter Kapazität
• Speicherzelle speichert Wort beliebiger Größe
• Schreib-/Lesezugriffe in konstanter Zeit
• Recheneinheit führt arithmetische Operationen(+, -, *, /) in konstanter Zeit und unabhängig von Operandengröße aus
![Page 6: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/6.jpg)
6
2. Parallel Random Access Machine
• Zur Analyse von parallelen Algorithmen
• Rechnermodell:- unbeschränkte Anzahl von Prozessoren- synchrone Ausführung des gleichen Programms- Prozessoren haben eigenen lokalen Speicher- Synchronisation über gemeinsamen globalen Speicher unbeschränkter Größe- lokaler/globaler Speicherzugriff in konstanter Zeit
![Page 7: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/7.jpg)
7
Abbildung PRAM
Pi: Prozessoren Li: lokale Speicher
Gemeinsamer Speicher
P1 P2 Pn
L2L1 Ln
...
![Page 8: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/8.jpg)
8
Speicherzugriffskonflikte
• Problem: mehrere Prozessoren greifen auf gleiche Speicherzelle zu!
• Unterscheidung von PRAM-Varianten nach Art der Konfliktbehandlung:
- Exclusive Read/Exclusive Write- PRAM- Concurrent Read/Exclusive Write- PRAM- Exclusive Read/Concurrent Write- PRAM- Concurrent Read/Concurrent Write- PRAM
• CR/EW-PRAM kommt Realität am nächsten
![Page 9: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/9.jpg)
9
Speicherzugriffskonflikte
• Problem: gleichzeitige Schreibzugriffe (CW)
• unterschiedliche Varianten denkbar:
- Common-CW: simultanes Schreiben erlaubt, wenn alle Prozessoren gleichen Wert schreiben- Arbitrary-CW: Schreiben darf zufällig ausgewählter Prozessor- Priority-CW: Prozessor mit höchster (niedrigster) Priorität darf schreiben
![Page 10: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/10.jpg)
10
Bewertung von Algorithmen
• Kosten werden mit der Anzahl der benötigten PRAM-Schritte angegeben
• Jeder PRAM-Schritt besteht aus drei Teilschritten:- Lesen von Daten aus dem globalen Speicher- Ausführung einer einfachen binären Operation- Zurückschreiben eines Wertes in globalen Speicher
• Nach jedem Schritt: Synchronisation der Prozessoren (verursacht keine Kosten)
![Page 11: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/11.jpg)
11
PRAM-Algorithmen
• Bestehen aus zwei Phasen: 1. Phase: Aktivieren der benötigten Prozessoren spawn (P1, P2, ... , Pn)
2. Phase: Ausführen der parallelen Berechnungen for all (Pi1, Pi2, ... , Piq){ // parallele Berechnungen }
• Identifikation der Prozessoren durch Nummer bzw. Index, der lokal zur Verfügung steht
![Page 12: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/12.jpg)
12
Beispiel: Summenberechnung• Aufgabe: Addition aller Werte in einem Array
• Ansatz: baumartige Verknüpfung
3 5 1 4
8 5
13
![Page 13: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/13.jpg)
13
Ansatz ermöglicht Berechnung in (log n) Zeit!
global int A[n];global int j;
spawn (P0, P1, … , Pn/2-1);
for all (Pi where 0 i n/2-1 ) { for (j = 0; j < log n; j++) { if (i % 2j == 0 && 2i + 2j < n) { A[2i] = A[2i] + A[2i + 2j] } }}
![Page 14: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/14.jpg)
14
Realisierbarkeit des PRAM-Modells
• beliebig viele simultane Zugriffe in konstanter Zeit durch aktuelle Speicherelemente nicht unterstützt
Problem: vorgestelltes Modell nicht realisierbar!
• Lösung: globalen Speicher in mehrere Speichermodule aufteilen und über Verbindungsnetzwerk mit Prozessoren verbinden
![Page 15: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/15.jpg)
15
Abb.: PRAM mit Verbindungsnetzwerk
Verbindungsnetzwerk
P1 P2 Pn
L2L1 Ln
...
S2S1 Sn...
Pi: Prozessoren Li: lokale Speicher Si: globale Speichermodule
![Page 16: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/16.jpg)
16
Diskussion des PRAM-Modells
• Unrealistische Modellannahmen• Zeitliche Verzögerungen bei Zugriff auf entfernte
Speichermodule• Zugriff auf lokalen Speicher schneller als auf
globalen Speicher• Kollisionen bei Speicherzugriff unberücksichtigt• Speicherhierarchien unberücksichtigt• Lokalität von Algorithmen unberücksichtigt• Betrachtung der Synchronisation und deren
Kommunikationskosten unberücksichtigt
![Page 17: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/17.jpg)
17
Fazit
• Stark vereinfachende Annahmen
• Maschinenparameter eines realen PRAM-Rechners unberücksichtigt
Pro- einfaches Programmiermodell - einfache Laufzeitanalysen möglich
Contra- für realistische Abschätzung der Laufzeit von Algorithmen ungeeignet
![Page 18: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/18.jpg)
18
3. Bulk Synchronous Parallel Modell
• Abstrakter Rechner mit verteiltem Speicher
• Jeder Prozessor verfügt über lokalen Speicher
• Prozessoren über Verbindungsnetzwerk untereinander verbunden
• Kommunikation im Punkt-zu-Punkt-Transfer
• Mechanismus zur Barrieresynchronisation
![Page 19: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/19.jpg)
19
Abb.: BSP-Computer
Verbindungsnetzwerk
P1 P2 Pn
L2L1 Ln
...
Pi: Prozessoren Li: lokale Speicher
![Page 20: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/20.jpg)
20
BSP-Parameter
• Spezifikation der Performance eines BSP-Rechners
• p: Anzahl der (virtuellen) Prozessoren
• s: Prozessorgeschwindigkeit (#Berechnungsschritte pro Sekunde)
• l: Synchronisationslatenz (die Anzahl der Schritte, die eine Barrieresynchronisation benötigt)
• g: (Die Summe der lokalen Operationen, welche durch alle Prozessoren in einer Sekunde ausgeführt werden) / (Die Summe der Wörter, welche in einer Sekunde über das Netzwerk verschickt werden)
![Page 21: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/21.jpg)
21
Parameter l
• beeinflusst von:- Netzwerklatenz- Durchmesser des Verbindungsnetzwerks
Untergrenze durch Hardware festgelegt
• Zeitspanne zwischen zwei Synchronisationsoperationen kann dynamisch zur Laufzeit variieren
BSP-Parameter
![Page 22: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/22.jpg)
22
BSP-Parameter
Parameter g
• Bezieht sich auf die Häufigkeit mit welcher nicht lokale Speicherzugriffe realisiert werden können
• Stellt Bandbreite des Netzwerks dar, die angibt, wie viele Operationen in der Zeit ausgeführt werden können, die das Verschicken eines Worts benötigt
• Abhängig von:- Bisektionsbandbreite des Netzwerks- Kommunikationsprotokoll- Kommunikationsbibliothek
![Page 23: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/23.jpg)
23
Superschritte
• Berechnung erfolgt in Folge von Superschritten
• Ein Superschritt besteht aus drei Phasen:
- Berechnungsphase- Kommunikationsphase- Synchronisationsphase
![Page 24: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/24.jpg)
24
Abb.: Superschritt
Barrieresynchronisation
Berechnungsphase
Kommunikationsphase
SynchronisationsphaseZeit
P1 P2 P3 Pn-1 Pn
(virtuelle) Prozessoren
![Page 25: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/25.jpg)
25
Berechnungsphase
• Ausführung von Operationen nur in dieser Phase erlaubt
• Operationen arbeiten auf lokal gehaltene Daten, welche zu Beginn des Superschritts verfügbar waren
• Mehrere Berechnungsschritte durchführbar
• Kommunikation in dieser Phase nicht erlaubt
• Dauer L der Berechnungsphase: Ausführungszeit des Prozessors mit längster lokaler Berechnung
![Page 26: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/26.jpg)
26
Kommunikationsphase
• Nicht lokale Schreib-/Leseanfragen über Senden/Empfangen von Nachrichten realisiert
• Kommunikation durch h-Relation beschreibbar (Prozessor darf max. h Nachrichten senden und max. h Nachrichten empfangen)
• Annahme: Nachricht besteht aus m Wörtern Kosten der Kommunikation: m * g * h Schritte
• Zwei Kommunikationsmodi:Direct Remote Memory Access (DRMA)Bulk Synchronous Message Passing (BSMP)
![Page 27: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/27.jpg)
27
Direct Remote Memory Access
• Idee: Stelle lokale Variable/Datenstruktur für globalen Zugriff zur Verfügung
• Dazu: Registrierungsmechanismus
• Setzen und Aufheben der globalen Verfügbarkeit über die Operationenbsp_push_reg, bsp_pop_reg
• Zugriff auf registrierte Datenstrukturen und Variablen über bsp_get, bsp_put
• Effekt erst im nächsten Superschritt wirksam!
![Page 28: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/28.jpg)
28
Bulk Synchronous Message Passing
• Idee: Schicke Nachrichten an Warteschlange eines Prozessors
• Schreiben über bsp_send, Auslesen über bsp_move
• Weitere Operationen zur Ermittlung der Anzahl und Größe der Pakete in der Warteschlange
• Gewährleistung: Nachrichten erreichen ihr Ziel vor Beginn des nächsten Superschritts
• Effekt erst im nächsten Superschritt wirksam!
![Page 29: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/29.jpg)
29
DRMA vs. BSMP
• DRMA wird benutzt, wenn jedem Prozess die Existenz der nicht lokalen Speicherbereiche bekannt ist.
• BSMP eignet sich für Probleme, bei denen nur der Nachrichtenempfänger Kenntnis über genauen Speicherort ankommender Daten hat.
![Page 30: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/30.jpg)
30
Synchronisationsphase
• Prozess beendet Kommunikationsphase durch bsp_sync• Prozess wartet, bis alle Nachrichten ihr Ziel erreicht haben
• Danach: alle Prozessoren starten gemeinsam nächsten Superschritt
Barrieresynchronisation
• Parameter l gibt Dauer der Synchronisation an
![Page 31: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/31.jpg)
31
Bewerten von Algorithmen
• Annahme: Zugriff auf nicht lokale Speicher einheitlich effizient
• Kosten eines Superschritts:
TSuperschritt = L + m * g * h + l
• Kosten eines BSP-Algorithmus:Summe der Ausführungszeiten seiner benötigten Superschritte
![Page 32: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/32.jpg)
32
BSPlib-Programmierung
• BSPlib ist weit verbreitete BSP-Bibliothek für C, C++, Fortranweitere: PUB, JBSP, ...
• 20 Basisoperationen
• Stellt Infrastruktur zur Verteilung der Daten und zur Kommunikation bereit
• Programmierung ist plattformunabhängig
• Adoptiert das Single Program Multiple Data (SPMD)-Programmiermodell
![Page 33: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/33.jpg)
33
SPMD-Programme
Aufgabe:
Abbilden eines Problems, welches eine Datenstruktur der Größe n manipuliert, auf p Instanzen eines Programms, so dass jedes Programm n/p große Blöcke der ursprünglichen Datenstruktur bearbeitet.
![Page 34: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/34.jpg)
34
Starten und Beenden vonSPMD-Code
• Starten und Beenden von Prozessen über:
void bsp_begin(int maxprocs); void bsp_end(void);
• Nur ein bsp_begin / bsp_end-Paar pro Programm• Der durch diese Operationen eingeschlossene Code wird
auf mehreren Prozessoren ausgeführt• Alternativen:
- reine SPMD-Weise- Simulation dynamischer Prozesse
![Page 35: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/35.jpg)
35
Starten und Beenden vonSPMD-Code
• Reine SPMD-Berechnung: bsp_begin und bsp_end sind erste und letzte Anweisung im Programm
void main(void) {
bsp_begin(bsp_nprocs());
printf(„Hello BSP Worldwide from %d of %d\n“,bsp_pid(), bsp_nprocs());
bsp_end();
}
![Page 36: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/36.jpg)
36
Simulation dynamischer Prozesse
• Prozesse dynamisch zur Laufzeit erzeugen
• Problem: nicht alle parallelen Maschinen unterstützen dynamische Prozesserzeugung
• Simulation über bsp_init-Operation
• Idee: SPMD-Teil des Programms in Methode kapseln
![Page 37: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/37.jpg)
37
int nprocs; // globale Variable
void spmd_part(void) {
bsp_begin(nprocs);
printf(„Hello BSP Worldwide from %d of %d\n“,
bsp_pid(), nprocs);
bsp_end();
}
void main(int argc, char *argv[]) {
bsp_init(spmd_part, argc, argv);
nprocs = readInteger();
spmd_part();
}
![Page 38: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/38.jpg)
38
Stoppen der Programmausführung
• Anhalten aller Prozesse über
void bsp_abort(char *format...);
• Format entspricht dem des printf-Befehls
• Ausgabe einer Fehlermeldung möglich
• Effekt dieser Operation tritt sofort ein:Keine Barrieresynchronisation notwendig
![Page 39: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/39.jpg)
39
Lokale Abfragefunktionen
• Abfragefunktionen erfordern keine Kommunikation zwischen den Prozessen
• Liefern Informationen über:- Anzahl beteiligter paralleler Prozesse,- ProzessID eines Prozesses- vergangene Zeit in Sekunden seit bsp_begin
• Abfragefunktionen in BSPlib:
int bsp_nprocs(void); int bsp_pid(void); double bsp_time(void);
![Page 40: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/40.jpg)
40
Bsp.: DRMA-Kommunikation
• Syntax der benötigten Operationen:
void bsp_push_reg(const void *ident, int size);
void bsp_pop_reg(const void *ident);
void bsp_put(int pid, const void *src, void *dst, int offset, int nbytes);
![Page 41: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/41.jpg)
41
int reverse(int x) { // registriere x für DRMA-Zugriff bsp_push_reg(&x, sizeof(int)); bsp_sync();
// transferiere x bsp_put(bsp_nprocs()-bsp_pid()-1, &x,
&x, 0, sizeof(int)); bsp_sync();
// hebe DRMA-Registrierung aufbsp_pop_reg(&x);return x;
}
DRMA-Kommunikation
![Page 42: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/42.jpg)
42
Diskussion des BSP-Modells
Kritikpunkt Oft großer Overhead durch Versenden kleiner Nachrichten
- Zusammenstellen von Nachrichten- Header (vgl. TCP/IP-Protokollstack)
Lösung: BSP*-Modell
• im BSP*-Modell: zusätzlicher Parameter B
• B gibt minimale Nachrichtengröße an, mit welcher Kommunikation effizient abläuft
![Page 43: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/43.jpg)
43
Kritikpunkte - kein paralleles Ausführen von verschiedenen Algorithmen- Lokalität im Modell unberücksichtigt
Lösung: D-BSP-Modell
• Erlaubt Partitionierung des BSP-Computers in autonome Teilcomputer
Problematisch: Laufzeit von BSP-Algorithmen abhängig von BSP-Parametern und Hardware
Algorithmus sorgfältig auswählen
![Page 44: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/44.jpg)
44
Vorteile
• BSP-Bibliotheken bieten:- Plattformunabhängigkeit- hohe Portabilität und Skalierbarkeit
• Im Vergleich zur PRAM:- wenig Kommunikation- seltene Synchronisation
• Keine Deadlocks möglich, da Berechnung und Kommunikation entkoppelt
![Page 45: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/45.jpg)
45
BSP in der Praxis
• Auswertung von reinfunktionalen SprachenReinfunktionale Sprachen sind nebeneffektfrei haben keine Zustandsvariablen
parallele Auswertung von Teilausdrücken möglich
z.B. BSMLlib: BSP-Bibliothek zur Auswertung von CAML-Programmen (u.a. von Frédéric Loulergue)
• Wissenschaftliche Berechnungenz.B. in der Luft- und Raumfahrt: Simulation von Luftströmen
![Page 46: Bulk Synchronous Parallel Computing](https://reader035.vdocuments.mx/reader035/viewer/2022070405/56814019550346895dab66df/html5/thumbnails/46.jpg)
46
4. Fazit
• PRAM-Modell:- einfaches Programmiermodell- Schwächen bei Laufzeitanalyse von parallelen Algorithmen- Performanceeinbußen durch hohen Kommunikations- und Synchronisationsbedarf
• BSP-Modell:- einfaches Programmiermodell- geringer Kommunikations- und Synchronisationsbedarf- hohe Skalierbarkeit, Portabilität und Vorhersagbarkeit