3.5 PRAMs: Varianten und Simulationen
PRAM-Modelle
- EREW PRAM (Exclusive Read Exclusive Write). Dies ist das restriktivste Modell von allen. In keinem Schritt dürfen zwei Prozessoren auf die gleiche Zelle zugreifen, weder lesend noch schreibend.
- CREW PRAM (Concurrent Read Exclusive Write). Das ist das übliche Modell,
das wir bisher verwendet haben. Es ist erlaubt, dass mehrere Prozessoren gleichzeitig die
gleiche
Speicherzelle lesen. Wenn allerdings ein Prozessor in eine Zelle schreiben will, so
darf in diesem Schritt kein anderer Prozessor auf diese Zelle zugreifen.
Vorsicht. Der Algorithmus muss garantieren, dass es nie zu unerlaubten Konflikten kommt. Falls also z.B. manchmal zwei Prozessoren auf die gleiche Zelle schreiben wollen, dann gilt dieser Algorithmus als inkorrekt für eine CREW PRAM. Selbst wenn das Ergebnis nicht vom Ausgang dieser konfligierenden Schreibsituation abhängt.
Übungsaufgabe 3.5.1 Zeigen Sie, wie EREW PRAMs und CREW PRAMs mit Schaltkreisen zusammenhängen.
- Zeigen Sie, dass ein Schaltkreis (mit beliebig Gates wie Max oder Minmax oder
Summe, nicht nur Booleschen) mit
Gates simuliert werden kann durch eine CREW PRAM mit Prozessoren. Gehen Sie dabei aus, dass man für ein Gate sehr leicht berechnen kann, woher die Input-Kabel kommen. - Welche Bedingung sollte ein Schaltkreis erfüllen, so dass Sie ihn ohne Probleme durch eine EREW PRAM simulieren können?
Übungsaufgabe 3.5.2 Überlegen Sie sich, wie man eine CREW PRAM auf einer EREW PRAM simuliert. Gehen Sie wie folgt vor:
-
Betrachten Sie das Szenario, dass alle
Prozessoren in diesem Schritt die gleiche Speicherzelle lesen wollen. Zeigen Sie, wie Sie dies mit EREW-Schritten ohne Lesekonflikte simulieren können. -
Betrachten Sie nun den allgemeinen Fall. Es gibt
Speicherzellen, und jeder Prozessor will eine davon lesen. Wie lösen Sie die Lesekonflikte auf? Seien Sie verschwenderisch mit Speicherplatz und gönnen sich für Ihren EREW-Algorithmus Speicherplatz!
- Zeigen Sie, dass ein Schaltkreis (mit beliebig Gates wie Max oder Minmax oder
Summe, nicht nur Booleschen) mit
- CRCW PRAM (Concurrent Read Concurrent Write). Dies ist das
stärkste Modell. Wir erlauben, dass mehrere Prozessoren gleichzeitig lesend sowie
schreibend auf eine Zelle zugreifen. In diesem Falle
müssen wir spezifizieren, was in so einem Falle geschieht, wie also der
Konflikt gelöst wird. Dies führt zu einer Vielzahl möglicher Untermodelle:
- Common. Gleichzeitige Schreiboperationen auf der gleichen Zelle sind nur erlaubt, wenn alle Prozessoren den gleichen Wert schreiben wollen. Der Algorithmus muss dies garantieren, ansonsten gilt er als inkorrekt.
- Arbitrary. Wenn mehrere Prozessoren in eine Zelle schreiben wollen, dann wird der "Sieger" beliebig bestimmt. Um als korrekt zu gelten, muss der Algorithmus für jede beliebige (auch gegnerische) Siegerbestimmungsstrategie erfolgreich sein.
- Priority. Wenn mehrere Prozessoren in eine Zelle schreiben wollen, dann gewinnt der Prozessor mit dem größten Index.
- Robust. No assumption is being made. Arbitrary value? No change? Special symbol? Some completely different garbage symbol? Algorithm must work for all possibilities.
- Tolerant. If more than one processor attempts to write, nothing is written. Gil and Matias do not mention whether the processors "see" that their attempt has been unsuccessful.
- Collision. If more than one processor attempts to write, a special collision symbol # is written.
- Collision+. Like Collision, but if all attempts are unanimous (same value), then that same value is being written into the cell.
Übungsaufgabe 3.5.3 Überlegen Sie sich, wie man eine Priority CRCW PRAM (also das bisher stärkste Modell) auf einer EREW PRAM simuliert. Nehmen Sie sich
Platz und gehen dabei vor wie in Übungsaufgabe 3.5.2.Übungsaufgabe 3.5.4 Simulieren Sie eine Priority CRCW PRAM mit
Prozessoren und Speicher auf einer CREW PRAM mit Prozessoren und Speicherplatz, so dass jeder Schritt der Priority CRCW PRAM mit EREW-Schritten simuliert wird!Tip: Verwenden Sie Coles Mergesort-Algorithmus!
Übungsaufgabe 3.5.5 Gehen Sie nochmal Valiants
-Algorithmus für Max durch (Kapitel 3.3). Zeigen Sie, wie man ihn auf einer Common CRCW PRAM in Zeit implementieren kann.Dies sind die drei geläufigsten CRCW-PRAM-Modelle. Wir werden gleich weitere, "esoterischere" Modelle kennenlernen.
Maximum und Minimum in auf einer Arbitrary CRCW PRAM
Valiants Algorithmus aus Kapitel 3.3
braucht
Übungsaufgabe 3.5.6
Gegeben
Tip. Gegeben
Übungsaufgabe 3.5.7
Gehen Sie nochmal über Valiants Algorithmus aus Kapitel 3.3
und überlegen Sie sich, auf welchen PRAM-Varianten man den Algorithmus tatsächlich
in
Im folgenden betrachten wir das Modell Collision. Sie können sich auch Arbitrary vorstellen, aber Collision ist etwas schwächer.
Theoren 3.5.1
(Gil und Matias). Gegeben
Falscher Beweis.
Wir wählen zufällig
Übungsaufgabe 3.5.8 Entdecken Sie den Fehler im vorherigen "Beweis".
Problem
FindMax 3.5.2
(Bottom of page 140 of Gil and Matias). Given a set
Problem
MultipleFindMax 3.5.3
Solve
Gil and Matias do not require the
If no processor has color