Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
seiner Einfachheit u. a. zur Betrach<strong>tu</strong>ng <strong>de</strong>r Terminierung von Programmen. Das Prinzip<br />
<strong>de</strong>r RAM soll nun erläutert wer<strong>de</strong>n, bevor das Mo<strong>de</strong>ll dann zur parallelen RAM<br />
(P-RAM) erweitert wird.<br />
2.1.1. Prinzip <strong>de</strong>r RAM<br />
Die RAM verfügt über eine CPU mit abzählbar unendlich vielen Registern, in <strong>de</strong>nen<br />
beliebig große natürliche Zahlen gespeichert wer<strong>de</strong>n können. Auf <strong>de</strong>n Werten kann die<br />
CPU arithmetische Operationen ausführen, zusätzlich kann die CPU je<strong>de</strong>rzeit auf <strong>de</strong>n<br />
Speicher zugreifen und von dort Werte in die Register lesen o<strong>de</strong>r Werte in <strong>de</strong>n Speicher<br />
schreiben.<br />
Der Arbeitsablauf <strong>de</strong>r CPU wird von einem Programm festgelegt, welches sich im Speicher<br />
befin<strong>de</strong>t. Even<strong>tu</strong>ell benötigte Eingaben für das Programm stehen ebenfalls an <strong>de</strong>finierten<br />
Stellen im Speicher. Das Programm besteht aus arithmetischen Instruktionen<br />
sowie Speicherzugriffsbefehlen. Um <strong>de</strong>n normalen Programmfluss zu modifizieren, sind<br />
außer<strong>de</strong>m bedingte Sprünge erlaubt. Die Instruktionen <strong>de</strong>s Programms wer<strong>de</strong>n gemäß<br />
eines Takts abgearbeitet und die CPU been<strong>de</strong>t ihre Arbeit bei Programmen<strong>de</strong>.<br />
Bei <strong>de</strong>r Aufwandsbetrach<strong>tu</strong>ng eines Programms auf <strong>de</strong>r RAM müssen drei Aspekte unterschie<strong>de</strong>n<br />
wer<strong>de</strong>n:<br />
• Die Programmgröße bestimmt sich aus <strong>de</strong>r Anzahl <strong>de</strong>r Instruktionen, welche das<br />
Programm bil<strong>de</strong>n.<br />
• Die Speichergröße bestimmt sich aus <strong>de</strong>r Anzahl <strong>de</strong>r vom Programm genutzten<br />
Speicherzellen.<br />
• Der Zeitaufwand, bestimmt sich aus <strong>de</strong>r Anzahl <strong>de</strong>r Takte, welche benötigt wer<strong>de</strong>n,<br />
bis das Programm abgearbeitet ist.<br />
2.1.2. Die P-RAM<br />
Das erste Kapitel von [KKT01] liefert eine Möglichkeit zur Parallelisierung <strong>de</strong>s RAM-<br />
Mo<strong>de</strong>lls. Da alle Berechnungen von <strong>de</strong>r CPU ausgeführt wer<strong>de</strong>n, kann die RAM dadurch<br />
parallelisiert wer<strong>de</strong>n, dass es nicht mehr eine einzige CPU gibt, son<strong>de</strong>rn mehrere Prozessoren.<br />
Diese Prozessoren arbeiten synchron, besitzen also einen gemeinsamen Takt und<br />
haben Zugriff auf einen gemeinsamen Speicher.<br />
Der Datenaustausch zwischen <strong>de</strong>n Prozessoren geschieht über <strong>de</strong>n gemeinsamen Speicher.<br />
Ein Prozessor schreibt seine Werte in eine Speicherzelle und an<strong>de</strong>re Prozessoren<br />
können sie dort bei Bedarf lesen. Ein Nachteil an dieser Mo<strong>de</strong>llierung ist, dass sichergestellt<br />
wer<strong>de</strong>n muss, dass keine zwei Prozessoren zur gleichen Zeit auf eine Speicherzelle<br />
schreiben wollen.<br />
14