06.06.2014 Aufrufe

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.2.3. Parallel-Pointer Maschinen<br />

In [GK96] haben die Autoren, aufbauend auf Knuths Linking Automat, die Parallel-<br />

Pointer-Maschine (PPM) <strong>de</strong>finiert, um darauf einen Sortieralgorithmus zu mo<strong>de</strong>llieren.<br />

Das Mo<strong>de</strong>ll besitzt mehrere synchronisierte Prozessoren, welche auf einen gemeinsamen<br />

Speicher zugreifen. Der Speicher kann entwe<strong>de</strong>r nach <strong>de</strong>m EREW, <strong>de</strong>m CREW o<strong>de</strong>r <strong>de</strong>m<br />

CRCW Pinzip betrieben wer<strong>de</strong>n. Er ist als gerichteter Graph repräsentiert und erlaubt<br />

nur die Zugriffe, welche durch die Pointer-Maschinen <strong>de</strong>finiert sind.<br />

Innerhalb <strong>de</strong>s Graphen beinhaltet je<strong>de</strong>r Knoten eine konstante Anzahl an Wertefel<strong>de</strong>rn<br />

und eine konstante Anzahl an Pointern zu an<strong>de</strong>ren Knoten.<br />

Prozessoren haben eine konstante Anzahl an Registern, in <strong>de</strong>nen Pointer stehen, welche<br />

einen Zugriff auf <strong>de</strong>n Speicher ermöglichen. Der gesamte Datenaustausch <strong>de</strong>r Prozessoren<br />

geschieht über <strong>de</strong>n gemeinsamen Speicher, es existiert keine an<strong>de</strong>re Kommunikationsmöglichkeit.<br />

Die Prozessoren können <strong>de</strong>n Speicher aktiv modifizieren, in<strong>de</strong>m sie bei<br />

Bedarf in einem Schritt neue Speicherzellen erstellen.<br />

Da die gesamte Ein- und Ausgabe <strong>de</strong>r PPM aus Pointern besteht, ist es wichtig festzulegen,<br />

welche Operationen erlaubt sind und welche nicht. Erlaubte Pointer Operationen<br />

sind:<br />

• Kopieren eines Pointers in ein Pointer-Register <strong>de</strong>s Prozessors.<br />

• Schreiben eines Pointer-Registers-Inhalts <strong>de</strong>s Prozessors in eine Pointer-Speicherzelle<br />

• Vergleichen von zwei Pointer-Registerinhalten auf Äquivalenz<br />

• Lesen <strong>de</strong>s Speicherinhalts, auf <strong>de</strong>n ein Pointer zeigt.<br />

Verboten ist Pointer-Arithmetik wie z. B. in<strong>de</strong>xierte Addressierung. Zusätzlich darf ein<br />

Prozessor auf Werte (nicht auf Pointer) die normalen Arithmetik- und Vergleichsoperationen<br />

ausführen.<br />

2.3. Die Zellularautomaten<br />

Das erste Mal wur<strong>de</strong>n Zellularautomaten von John von Neumann vorgeschlagen, welcher<br />

auf <strong>de</strong>r Suche nach einer selbstreproduzieren<strong>de</strong>n Maschine war. Es gelang ihm,<br />

einen Zellularautomaten anzugeben, welcher mit 29 Zustän<strong>de</strong>n fähig war, sich selbst zu<br />

reproduzieren. Später wur<strong>de</strong> dieser Automat von Signorini auf einer SIMD-Maschine<br />

implementiert ([Sig89]).<br />

Schon von Neumann zeigte, dass man mit <strong>de</strong>m Zellularautomaten je<strong>de</strong> beliebige Turingmaschine<br />

simulieren kann. Dieser Beweis wird beispielsweise in [Sar00] und [ARS71]<br />

nachvollzogen. [Sar00] bietet zu<strong>de</strong>m eine gute Übersicht über die Entwicklung von Zellularautomaten.<br />

18

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!