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.

1 EinleitungVor Ausführung eines <strong>Loadbalancing</strong>-Verfahrens besitze jeder Knoten i, i = 1, . . . , ndie Last w 0 i ∈ N 0. Als Ausgangslastverteilung bezeichnet wird der Vektorw 0 = ( w 0 1, . . . , w 0 n) T.Zu berechnen ist der Vektor der Gleichverteilungw = 1 nn∑wi 0 · (1, . . . , 1) T .i=1Es sei x ∈ R N ein Fluss <strong>auf</strong> dem Graphen G. Die Richtung des Flusses wird bestimmtdurch die von der Inzidenzmatrix A festgelegten Richtungen der Kanten und die Vorzeichender Einträge in x; x e > 0 steht für einen Fluss in Richtung der Kante e und x e < 0für einen Fluss in entgegengesetzter Richtung.Definition 1.6. Ein Fluss x ∈ R N <strong>auf</strong> einem Graphen G heißt ausgleichender Fluss,falls gilt:Ax = w 0 − wBemerkung 1.7. Der ausgleichende Fluss ist genau dann eindeutig bestimmt, wenn derGraph G keine Zyklen hat, also ein Baum ist. Andernfalls könnten nämlich die Flusswerteentlang eines Zyklus um einen konstanten Wert verändert werden, ohne dass sichdie Eigenschaft des ausgleichenden Flusses ändert. Ist umgekehrt der Fluss nicht eindeutig,dann gibt es zwei verschiedene Flüsse x 1 , x 2 <strong>mit</strong> Ax 1 = Ax 2 . Da<strong>mit</strong> gilt aberA (x 1 − x 2 ) = 0 und x 1 − x 2 ist ein zirkulärer Fluss.1.2 Allgemeines VorgehenDie Knoten des oben definierten Graphen entsprechen den Prozessoren eines Parallelrechners.Der Datenaustausch zwischen diesen erfolgt ausschließlich über die Kanten desGraphen, also nur zwischen adjazenten Knoten.Prinzipiell ließe sich ein iteratives <strong>Loadbalancing</strong>-Verfahren so organisieren, dass injedem Iterationsschritt Lasteinheiten zwischen den Prozessoren ausgetauscht werden,bis eine Gleichverteilung hergestellt ist [Cyb89, MGS96]. Aus Effizienz- und algorithmischenGründen findet üblicherweise jedoch eine Unterteilung in zwei Phasen statt[DFM99, HB95]. Zunächst wird keine Last bewegt. Stattdessen werden nur einzelneZahlen (Lastwerte) versandt und ein ausgleichender Fluss bestimmt. Erst in der zweitenPhase, dem Scheduling, werden tatsächlich Lasten anhand dieses Flusses verschoben.Dies hat zum einen den Vorteil, dass <strong>Loadbalancing</strong>algorithmen nicht nur <strong>mit</strong> ganzzahligen,sondern auch reellen, negativen und sogar komplexen Lastwerten rechnen können.Zum anderen wird so verhindert, dass einzelne Lasten in <strong>auf</strong>einander folgenden Schrittenunnötig zwischen zwei benachbarten Prozessoren hin- und hergeschoben werden,vergleiche Abschnitt 5.1 in [DFM99].18

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!