Parallele externer Gedächtnis

In Informatik, a PEM -Modell (Parallele External Memory) ist ein Cache-Awesare, Externer Speicher abstrakte Maschine.[1] Es ist die parallelmorbende Analogie zum Einzelprozessor Externer Speicher (EM) Modell. In ähnlicher Weise ist es die von Cache-bewusstes Analogie zur Cache Parallele Zufallszugriffsmaschine (KINDERWAGEN). Das PEM -Modell besteht aus einer Reihe von Prozessoren, zusammen mit ihren jeweiligen privaten Caches und einem gemeinsamen Hauptgedächtnis.
Modell
Definition
Das PEM -Modell[1] ist eine Kombination aus dem EM -Modell und dem PRAM -Modell. Das PEM -Modell ist ein Berechnungsmodell, das besteht Prozessoren und zweistufig Speicherhierarchie. Diese Gedächtnishierarchie besteht aus einer großen Externer Speicher (Hauptspeicher) der Größe und klein interne Erinnerungen (Caches). Die Prozessoren teilen den Hauptspeicher. Jeder Cache ist exklusiv für einen einzelnen Prozessor. Ein Prozessor kann nicht auf den Cache eines anderen zugreifen. Die Caches haben eine Größe was in Größenblöcken verteilt ist . Die Prozessoren können nur Vorgänge für Daten ausführen, die sich in ihrem Cache befinden. Die Daten können zwischen dem Hauptspeicher und dem Cache in Größe der Größe übertragen werden .
E/A -Komplexität
Das Komplexitätsmaß des PEM -Modells ist die E/A -Komplexität,[1] Dies bestimmt die Anzahl der parallelen Blöcke zwischen dem Hauptspeicher und dem Cache. Während eines parallelen Blocks kann jeder Prozessor einen Block übertragen. Also wenn Prozessoren laden parallelly einen Datenblock der Größe Bilden Sie das Hauptgedächtnis in ihre Caches, es wird als E/A -Komplexität von betrachtet nicht . Ein Programm im PEM -Modell sollte die Datenübertragung zwischen Hauptspeicher und Caches minimieren und so viel wie möglich mit den Daten in den Caches arbeiten.
Konflikte lesen/schreiben
Im PEM -Modell gibt es keine Direkter Kommunikationsnetzwerk zwischen den P -Prozessoren. Die Prozessoren müssen indirekt über das Hauptgedächtnis kommunizieren. Wenn mehrere Prozessoren versuchen, denselben Block im Hauptspeicher gleichzeitig auf Konflikte zuzugreifen/zu schreiben[1] geschehen. Wie im Pram -Modell werden drei verschiedene Variationen dieses Problems berücksichtigt:
- Concurrent Read Concurrent Write (CRCW): Der gleiche Block im Hauptspeicher kann von mehreren Prozessoren gleichzeitig gelesen und geschrieben werden.
- Gleichzeitige Read Exclusive Write (Crew): Der gleiche Block im Hauptspeicher kann von mehreren Prozessoren gleichzeitig gelesen werden. Nur ein Prozessor kann jeweils in einen Block schreiben.
- Exklusive Read Exclusive Write (EREW): Der gleiche Block im Hauptspeicher kann nicht von mehreren Prozessoren gleichzeitig gelesen oder verfasst werden. Nur ein Prozessor kann gleichzeitig auf einen Block zugreifen.
Die folgenden zwei Algorithmen[1] Lösen Sie die Crew und das Problem, wenn Prozessoren schreiben gleichzeitig in denselben Block. Ein erster Ansatz ist die Serialisierung der Schreibvorgänge. Nur ein Prozessor nach dem anderen schreibt in den Block. Dies führt zu insgesamt von insgesamt Parallelblocktransfers. Ein zweiter Ansatz braucht Parallelblocktransfers und ein zusätzlicher Block für jeden Prozessor. Die Hauptidee besteht darin, die Schreibvorgänge in a zu planen binäre Baummode und allmählich die Daten in einen einzelnen Block kombinieren. In der ersten Runde Prozessoren kombinieren ihre Blöcke in Blöcke. Dann Prozessoren kombinieren die Blöcke in . Dieses Verfahren wird fortgesetzt, bis alle Daten in einem Block kombiniert werden.
Vergleich mit anderen Modellen
Modell | Multi-Core | Cache-Awesare |
---|---|---|
Zufallszugriffsmaschine (RAM) | Nein | Nein |
Parallele Zufallszugriffsmaschine (KINDERWAGEN) | Ja | Nein |
Externer Speicher (EM) | Nein | Ja |
Parallele externer Gedächtnis (PEM) | Ja | Ja |
Beispiele
Multiway -Partitionierung
Lassen Seien Sie ein Vektor von D-1-Pivots, die in zunehmender Reihenfolge sortiert sind. Lassen ein ungeordneter Satz von N -Elementen sein. Eine D-Way-Partition[1] von Ist ein Satz , wo und zum . wird der I-Th-Eimer genannt. Die Anzahl der Elemente in ist größer als und kleiner als . Im folgenden Algorithmus[1] Die Eingabe wird in n/p-Größe zusammenhängende Segmente unterteilt im Hauptgedächtnis. Der Prozessor, den ich in erster Linie im Segment arbeitet . Der Multiway -Partitionierungsalgorithmus (PEM_DIST_SORT
[1]) verwendet ein PEM Präfix -Summe Algorithmus[1] Berechnung des Präfixsumme mit dem optimalen E/O -Komplexität. Dieser Algorithmus simuliert einen optimalen Pram -Präfix -Summenalgorithmus.
// Parallelly eine D-Way-Partition in den Datensegmenten berechnen für jeden Prozessor i parallel tun Lesen Sie den Vektor von Pivots in den Cache. Trennwand in D -Eimer und Vektor lassen Seien Sie die Anzahl der Elemente in jedem Eimer.Ende für Führen Sie die PEM -Präfix -Summe auf dem Satz der Vektoren aus gleichzeitig. // Verwenden Sie den Präfix -Summenvektor, um die endgültige Partition zu berechnenfür jeden Prozessor i parallel tun Schreiben Sie Elemente in Speicherorte angemessen durch und .Ende für Verwenden der Präfix -Summen in gespeicherten in Der letzte Prozessor P berechnet den Vektor von Eimergrößen und gibt es zurück.
Wenn der Vektor von Pivots M und der Eingangssatz A befinden sich in zusammenhängendes Speicher, dann kann das D-Way-Partitionierungsproblem im PEM-Modell mit gelöst werden E/O -Komplexität. Der Inhalt der endgültigen Eimer muss sich in einem zusammenhängenden Speicher befinden.
Auswahl
Das Auswahlproblem geht es darum, den k-ten kleinsten Element in einer ungeordneten Liste zu finden von Größe . Der folgende Code[1] benutzt von Pramsort
Das ist ein praktischer optimaler Sortieralgorithmus, der hereinläuft , und AUSWÄHLEN
, was ein Cache-optimaler Einzelprozessor-Auswahlalgorithmus ist.
wenn dann Rückkehr Ende wenn // Median von jedem finde für jeden Prozessor parallel tun Ende für // Mediane sortieren // Partition um Median der Mediane aufteilt wenn dann Rückkehr anders Rückkehr Ende wenn
Unter der Annahme, dass der Eingang in zusammenhängendes Speicher gespeichert ist, wird PEMSELECT
hat eine E/A -Komplexität von:
Verteilungsart
Verteilungsart Partitionen eine Eingabeliste von Größe hinein Disjunkte Eimer ähnlicher Größe. Jeder Eimer wird dann rekursiv sortiert und die Ergebnisse werden zu einer voll sortierten Liste kombiniert.
Wenn Die Aufgabe wird an einen Cache-optimalen Einzelprozessor-Sortieralgorithmus delegiert.
Ansonsten der folgende Algorithmus[1] wird genutzt:
// Probe Elemente von zum jeder Prozessor parallel tun wenn dann Belastung in -Greize Seiten und sortieren Sie Seiten einzeln anders Laden und sortieren als einzelne Seite Ende wenn Wählen Sie jeden aus Das Element von jeder sortierten Speicherseite in zusammenhängenden Vektor von ProbenEnde für parallel tun Vektoren kombinieren in einen einzigen zusammenhängenden Vektor Machen Kopien von : Ende tun // Finden Pivots zum zu parallel tun Ende für Packen Sie die Drehpunkte in zusammenhängender Array ein // Partition Umdrehungen in Eimer // rekursive Eimer sortierenzum zu parallel tun rekursiv anrufen auf Eimer von Größe Verwendung Prozessoren, die für Elemente im Eimer verantwortlich sind Ende für
Die I/O -Komplexität von Pemdistsort
ist:
wo
Wenn die Anzahl der Prozessoren ausgewählt wird und Die I/O -Komplexität lautet dann:
Andere PEM -Algorithmen
PEM -Algorithmus | E/A -Komplexität | Einschränkungen |
---|---|---|
Zusammenführen, sortieren[1] | ||
Listenranking[2] | ||
Euler Tour[2] | ||
Ausdrucksbaum Auswertung[2] | ||
Finden a Mst[2] |
Wo ist die Zeit, die es braucht, um zu sortieren Artikel mit Prozessoren im PEM -Modell.
Siehe auch
- Parallele Zufallszugriffsmaschine (KINDERWAGEN)
- Zufallszugriffsmaschine (RAM)
- Externer Speicher (EM)
Verweise
- ^ a b c d e f g h i j k l Arge, Lars; Goodrich, Michael T.; Nelson, Michael; Sitchinava, Nodari (2008). "Grundlegende parallele Algorithmen für private Cache-Chip-Multiprozessoren". Verfahren des zwanzigsten jährlichen Symposiums zur Parallelität in Algorithmen und Architekturen - SPAA '08. New York, New York, USA: ACM Press: 197. doi:10.1145/1378533.1378573. ISBN 9781595939739.
- ^ a b c d Arge, Lars; Goodrich, Michael T.; Sitchinava, Nodari (2010). "Parallele externe Speichergraphenalgorithmen". 2010 IEEE Internationales Symposium für parallele und verteilte Verarbeitung (IPDPS). IEEE: 1–11. doi:10.1109/ipdps.2010.5470440. ISBN 9781424464425.