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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.1.3. Der Algorithmus von Hirschberg et al.<br />

Auf einem Multiprozessor-System kann man entwe<strong>de</strong>r <strong>de</strong>n modifizierten Warshall verwen<strong>de</strong>n,<br />

um zusammenhängen<strong>de</strong> Komponenten zu erkennen, o<strong>de</strong>r man nutzt <strong>de</strong>n Algorithmus<br />

von Hirschberg et al., welcher bereits so mo<strong>de</strong>lliert wur<strong>de</strong>, dass er die Möglichkeiten<br />

eines Multiprozessor-Systems ausnutzt.<br />

Der Algorithmus von Hirschberg et al. ist ursprünglich in [GR98] als ein Algorithmus auf<br />

<strong>de</strong>r P-RAM vorgestellt wor<strong>de</strong>n. Bei diesem Algorithmus wird versucht, unter Ausnutzung<br />

<strong>de</strong>r nebenläufigen 4 Fähigkeiten eines Mo<strong>de</strong>lls wie <strong>de</strong>r P-RAM, die zusammenhängen<strong>de</strong>n<br />

Komponenten eines Graphen zu bestimmen. Auch hier wird <strong>de</strong>r Algorithmus zunächst<br />

schematisch im Original vorgestellt und dann wird dargestellt, wie dieser Algorithmus<br />

auf <strong>de</strong>m GCA mo<strong>de</strong>lliert wer<strong>de</strong>n kann.<br />

3.1.3.1. Ablauf auf <strong>de</strong>r P-RAM<br />

Der Algorithmus von Hirschberg et al. durchläuft insgesamt O(log(n))-mal eine Schleife.<br />

Nach je<strong>de</strong>m Schleifendurchlauf hat er eine Menge von zusammenhängen<strong>de</strong>n Komponenten.<br />

Diese Komponenten wer<strong>de</strong>n in <strong>de</strong>m n-dimensionalen Vektor C gespeichert, wobei<br />

an <strong>de</strong>r Stelle i genau dann <strong>de</strong>r Wert j steht, wenn <strong>de</strong>r Knoten i zu <strong>de</strong>r Komponente<br />

j gehört. Innerhalb einer Komponente gilt immer, dass die kleinste Nummer aller zugehörigen<br />

Knoten die Nummer <strong>de</strong>r Komponente bestimmt. So wird die Ein<strong>de</strong>utigkeit<br />

<strong>de</strong>r Benennung gewährleistet. Der Algorithmus bestimmt diese Komponenten in zwei<br />

Phasen nun folgen<strong>de</strong>rmaßen:<br />

• Die erste Phase bestimmt eine Verbindung von je<strong>de</strong>r Komponente zu <strong>de</strong>r erreichbaren<br />

Komponente mit <strong>de</strong>r niedrigsten Nummer, die in <strong>de</strong>m n-dimensionalen Vektor<br />

T gespeichert wird.<br />

Zu diesem Zweck muss erst von je<strong>de</strong>m <strong>de</strong>r Komponente angehörigen Knoten die<br />

Verbindung zu <strong>de</strong>m kleinsten Knoten, <strong>de</strong>r nicht <strong>de</strong>r Komponente angehört, gesucht<br />

wer<strong>de</strong>n. Der Wert von <strong>de</strong>ssen Komponente muss anschließend gespeichert wer<strong>de</strong>n.<br />

Danach wird von all diesen Verbindungen diejenige ausgesucht, die zu <strong>de</strong>r niedrigsten<br />

Komponente ungleich <strong>de</strong>r eigenen führt. Diese Verbindung wird gleichzeitig<br />

<strong>de</strong>m Repräsentanten <strong>de</strong>r eigenen Komponente zugeordnet.<br />

Diese Phase setzt sich aus zwei Teilschritten zusammen.<br />

• Die zweite Phase sorgt dafür, dass alle Komponenten, die eine Verbindung zueinan<strong>de</strong>r<br />

haben, zusammengelegt wer<strong>de</strong>n und alle in ihnen enthaltenen Knoten auf<br />

<strong>de</strong>n Knoten mit <strong>de</strong>r niedrigsten Nummer verweisen.<br />

4 Man spricht davon, dass zwei Befehle parallel abarbeitbar sind, wenn man die Befehle zeitgleich<br />

ausführen kann. Nebenläufig be<strong>de</strong>utet hingegen, dass es egal ist, in welcher Reihenfolge die Befehle<br />

ausgeführt wer<strong>de</strong>n. Die Befehle können also parallel abgearbeitet wer<strong>de</strong>n o<strong>de</strong>r aber in je<strong>de</strong>r<br />

Kombination sequentiell hintereina<strong>de</strong>r ohne dass es zu Konflikten kommt.<br />

36

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!