31.07.2015 Aufrufe

Loadbalancing auf Parallelrechnern mit Hilfe endlicher Dimension ...

Loadbalancing auf Parallelrechnern mit Hilfe endlicher Dimension ...

Loadbalancing auf Parallelrechnern mit Hilfe endlicher Dimension ...

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.

5 Details zur Implementierung undMessergebnisseIn diesem Kapitel werden einige Detailinformationen zur Implementierung der besprochenenVerfahren gegeben. Sie sollen helfen, die da<strong>mit</strong> durchgeführten Konvergenz- undZeitmessungen besser zu verstehen und diese Messungen besser <strong>mit</strong> denen anderen Implementationenvergleichen zu können. Außerdem werden einige speziellere Algorithmen(zum Beispiel zum zyklischen Durchl<strong>auf</strong>en der Farben) angegeben, die in den vorigenKapiteln aus Gründen der Übersichtlichkeit weggelassen worden sind.5.1 AllgemeinesDie Implementierung des Testprogramms erfolgte komplett objektorientiert in C++. Fürden Datenaustausch zwischen den Prozessen wird MPI verwendet.5.2 Verwaltung der LastJeder Prozessor hat eine variable Anzahl von Lasteinheiten (auch Token genannt) zuverwalten. Alle Tokens haben grundsätzlich eine feste Größe. Im Testprogramm bestehtjedes Token aus einem dynamisch beschafften Speicherbereich, der <strong>mit</strong> einer Zeichenkettebelegt wird. Die einzelnen Speicherbereiche werden über einen Vektor aus Zeigern hier<strong>auf</strong>verwaltet.Zur Erzeugung der Ausgangslastverteilung stehen zwei verschiedene Initialisierungenzur Verfügung: zum einen eine zufällige Verteilung, die so gewählt ist, das eine vorgegebeneGesamtlast erreicht wird (Rand) und zum anderen eine Peak-Verteilung, bei derein Prozessor die gesamte Last erhält und alle übrigen keine Last haben. Der ausgewählteKnoten bei Peak-Verteilungen ist immer Knoten Nummer 1, d. h. bei Pfaden einEndknoten und bei Gittern ein Eckknoten.5.3 Speicherung der GraphenJeder Knoten kennt seine eigene Nummer, die Größe des Graphen und die Anzahl derbenachbarten Knoten sowie deren Nummern. Je nach Graph kommen hierzu weitere Informationenwie zum Beispiel die beiden <strong>Dimension</strong>en bei einem Gitter oder eine kompletteKantenliste für zufällige Graphen. Dies wird benötigt, um die Eigenwerte während109

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!