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

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

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

<strong>Loadbalancing</strong><strong>auf</strong> <strong>Parallelrechnern</strong><strong>mit</strong> <strong>Hilfe</strong> <strong>endlicher</strong><strong>Dimension</strong>-Exchange-VerfahrenZur Erlangung des akademischen Grades einesDoktors der Naturwissenschaftenam Fachbereich Mathematik derBergischen Universität WuppertalgenehmigteDissertationvonDipl.-Math. Holger ArndtTag der mündlichen Prüfung: 24. Juli 2003Referent:Prof. Dr. A. FrommerKorreferent:Prof. Dr. B. Monien


InhaltsverzeichnisTabellenverzeichnis 7Abbildungsverzeichnis 9Algorithmenverzeichnis 11Vorwort 131 Einleitung 171.1 Das <strong>Loadbalancing</strong>-Problem und Matrizen für Graphen . . . . . . . . . . 171.2 Allgemeines Vorgehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3 Anwendungen für <strong>Loadbalancing</strong> . . . . . . . . . . . . . . . . . . . . . . . 191.4 Parallelrechner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.5 Kommunikationsmodelle und Verfahrensklassen . . . . . . . . . . . . . . . 211.6 Anforderungen an <strong>Loadbalancing</strong>-Verfahren . . . . . . . . . . . . . . . . . 211.7 Häufig verwendete Standardgraphen . . . . . . . . . . . . . . . . . . . . . 211.8 Produktgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.9 Bezeichnungen für spezielle Matrizen . . . . . . . . . . . . . . . . . . . . . 232 Diffusionsverfahren 252.1 Matrizen für Diffusionsverfahren . . . . . . . . . . . . . . . . . . . . . . . 252.2 Einfache Diffusionsverfahren: FOS, SOS und Čebyšev . . . . . . . . . . . . 282.3 Endliche Diffusionsverfahren: OPS und OPT . . . . . . . . . . . . . . . . . 302.4 Eigenwerte von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.5 Stabilität und Sortierung der Eigenwerte . . . . . . . . . . . . . . . . . . . 342.6 Flüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 <strong>Dimension</strong>-Exchange-Verfahren 393.1 Motivation und Einfärbung von Graphen . . . . . . . . . . . . . . . . . . 393.2 Matrizen für gefärbte Graphen . . . . . . . . . . . . . . . . . . . . . . . . 403.3 Allgemeines Vorgehen zur Konstruktion von DE-Verfahren . . . . . . . . . 423.4 Ein erstes <strong>Dimension</strong>-Exchange-Verfahren: DE-FOS . . . . . . . . . . . . . 423.5 Endliche <strong>Dimension</strong>-Exchange-Verfahren . . . . . . . . . . . . . . . . . . . 463.5.1 DE-OPT im nicht-diagonalisierbaren Fall . . . . . . . . . . . . . . . 493.6 Eigenwerte gefärbter Graphen . . . . . . . . . . . . . . . . . . . . . . . . . 513.6.1 Mathematische Grundlagen . . . . . . . . . . . . . . . . . . . . . . 513


Inhaltsverzeichnis8 Zusammenfassung der Ergebnisse 129Literaturverzeichnis 1315


Tabellenverzeichnis1.1 Häufig verwendete Standardgraphen . . . . . . . . . . . . . . . . . . . . . 222.1 Eigenwerte der Laplace-Matrizen einiger Standardgraphen . . . . . . . . . 332.2 Anzahl der verschiedenen Eigenwerte bei Standardgraphen . . . . . . . . . 343.1 Anzahl der Schritte verschiedener Verfahren an drei Beispielgraphen . . . 443.2 Anzahl der verschiedenen Eigenwerte bei Standardgraphen . . . . . . . . . 643.3 Faktoren, um die die l 2 -Normen über dem Minimum liegen können . . . . 753.4 Anzahl der Kommunikationsschritte bei Standardgraphen . . . . . . . . . 864.1 Faktoren, um die die l 2 -Normen über dem Minimum liegen können (ADI) 944.2 Anzahl der Kommunikationsschritte für Produkt-Verfahren . . . . . . . . 1064.3 Anzahl der Kommunikationsschritte für Produktgraphen . . . . . . . . . . 1075.1 Zeiten für OPT <strong>auf</strong> den Graphen der nachfolgenden Tabellen . . . . . . . 1155.2 Ergebnisse für den Zyklus C 32 . . . . . . . . . . . . . . . . . . . . . . . . . 1165.3 Ergebnisse für den kompletten Graphen K 16 . . . . . . . . . . . . . . . . . 1175.4 Ergebnisse für das Gitter G 8 = P 8 × P 8 . . . . . . . . . . . . . . . . . . . 1185.5 Ergebnisse für den Torus T 8 = C 8 × C 8 . . . . . . . . . . . . . . . . . . . . 1195.6 Ergebnisse für den Hypercube H 6 = P 2 × P 2 × P 2 × P 2 × P 2 × P 2 . . . . . 1205.7 Ergebnisse für den zufälligen Graphen R 32,96 . . . . . . . . . . . . . . . . 1206.1 Scheduling-Ergebnisse für den Torus T 8 <strong>auf</strong> ALiCE, Zeiten und Schritte . 1267


Abbildungsverzeichnis2.1 Konvergenz verschiedener Diffusionsverfahren . . . . . . . . . . . . . . . . 322.2 l 1 -, l 2 - und l ∞ -minimaler Fluss am Beispiel des Zyklus C 4 . . . . . . . . . 362.3 verschiedene Sortierungen von Eigenwerten . . . . . . . . . . . . . . . . . 372.4 Vergleich von OPS und OPT . . . . . . . . . . . . . . . . . . . . . . . . . . 383.1 Anzahl der benötigten Schritte in Abhängigkeit vom Parameter α . . . . 453.2 Einfärbung des Zyklus C 2k . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.3 Einfärbung des Pfades P n für gerades und ungerades n . . . . . . . . . . . 563.4 Einfärbung von Zyklen C n <strong>mit</strong> ungeradem n . . . . . . . . . . . . . . . . . 593.5 Einfärbung des Torus T 2k+1 . . . . . . . . . . . . . . . . . . . . . . . . . . 623.6 Einfärbung des Hypercubes H d . . . . . . . . . . . . . . . . . . . . . . . . 633.7 l 2 -Norm des Flusses in Abhängigkeit von α am Beispiel eines 8 × 8-Torus 663.8 DE-OPSfb für den Hypercube H 2 . . . . . . . . . . . . . . . . . . . . . . . 673.9 Abl<strong>auf</strong> der Rechnung beim DE-OPXcc an einem Beispiel . . . . . . . . . . 683.10 l 2 -Norm des Flusses in Abhängigkeit von α, Fortsetzung . . . . . . . . . . 683.11 Schranken für die Normen der Flüsse bei DE-FOS, DE-FOSfb, DE-FOScc . 823.12 Kommunikationsschritte beim SDE-OPX am Beispiel c = 4, m = 4 . . . . 833.13 Abl<strong>auf</strong> des DE-OPX beim Zyklus C 11 . . . . . . . . . . . . . . . . . . . . . 843.14 Vergleich von DE-OPT und SDE-OPT . . . . . . . . . . . . . . . . . . . . 874.1 Schranken für die Normen der Flüsse bei ADI-FOS, MDI-FOS, ADC-FOS . 924.2 Stabilitätsvergleich von OPT und ADI-OPT . . . . . . . . . . . . . . . . . 944.3 Abhängigkeit des ADC-OPT-Verfahrens <strong>mit</strong> Leja (g) -Sortierung von g . . . 954.4 Ein Iterationsschritt beim ADI-SOS2 . . . . . . . . . . . . . . . . . . . . . 984.5 Abhängigkeit des ADC-OPS-Verfahrens von η . . . . . . . . . . . . . . . . 1024.6 Konvergenz von ADI- und nicht-ADI-Verfahren am Beispiel des Gitters G 16 1034.7 Abhängigkeit des DE-ADC-OPT-Verfahrens <strong>mit</strong> Leja (g) -Sortierung von g . 1034.8 Abhängigkeit des DE-ADC-OPS-Verfahrens von η . . . . . . . . . . . . . . 1044.9 Abl<strong>auf</strong> eines Schrittes des DE-ADI-OPTcc-Verfahrens . . . . . . . . . . . . 1044.10 l 2 -Norm des Flusses in Abhängigkeit von α am Beispiel eines Torus T 16 . 1055.1 Abl<strong>auf</strong> von DE-OPTcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.2 Abl<strong>auf</strong> von DE-OPTcc für den Zyklus C 3 . . . . . . . . . . . . . . . . . . . 1126.1 Vergleich der Konvergenz der vier Scheduling-Verfahren . . . . . . . . . . 1249


Algorithmenverzeichnis2.1 Schritt k des FOS-Verfahrens für Prozessor i . . . . . . . . . . . . . . . . . 282.2 FOS-Verfahren, Matrix-Version . . . . . . . . . . . . . . . . . . . . . . . . 282.3 SOS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4 OPS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.5 OPT-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.1 <strong>Dimension</strong> Exchange für den Hypercube H d für Prozessor i . . . . . . . . 393.2 DE-FOS-Verfahren, Matrix-Version . . . . . . . . . . . . . . . . . . . . . . 433.3 DE-FOS-Verfahren, Version <strong>mit</strong> der Schleife über die Farben . . . . . . . . 433.4 SDE-FOS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.5 DE-OPT-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.6 DE-OPT-Verfahren für Prozessor i . . . . . . . . . . . . . . . . . . . . . . 463.7 DE-OPS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.8 DE-OPT-Verfahren für den nicht-diagonalisierbaren Fall . . . . . . . . . . 504.1 Schritt k des ADI-FOS-Verfahrens für Prozessor i . . . . . . . . . . . . . . 894.2 ADI-FOS-Verfahren in Matrixnotation . . . . . . . . . . . . . . . . . . . . 904.3 ADI-FOS-Verfahren für mehrdimensionale Graphen . . . . . . . . . . . . . 924.4 ADI-OPT-Verfahren, zweidimensional . . . . . . . . . . . . . . . . . . . . . 934.5 VDI-OPT-Verfahren, d-dimensional . . . . . . . . . . . . . . . . . . . . . . 934.6 ADI-SOS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.7 ADI-SOS2-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.8 ADI-OPS-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.1 DE-OPTcc-Verfahren für Prozessor i . . . . . . . . . . . . . . . . . . . . . 1116.1 allgemeiner Abl<strong>auf</strong> des Scheduling . . . . . . . . . . . . . . . . . . . . . . 1226.2 DE-Sched aus Sicht eines Prozessors . . . . . . . . . . . . . . . . . . . . . 12311


Vorwort<strong>Loadbalancing</strong>-Verfahren werden verwendet, um Berechnungen <strong>auf</strong> ungleichmäßig ausgelasteten<strong>Parallelrechnern</strong> besser <strong>auf</strong> die einzelnen Prozessoren zu verteilen. Obwohlim Deutschen auch die Begriffe Lastausgleich und Lastverteilung existieren, wird hierdennoch das verbreitete englische <strong>Loadbalancing</strong> verwendet werden.Der Begriff <strong>Loadbalancing</strong> wird für eine Reihe verschiedener Aufgabenstellungen verwendet.Am häufigsten taucht er <strong>auf</strong> im Zusammenhang <strong>mit</strong> der Verteilung vieler Anfragenaus dem Internet <strong>auf</strong> mehrere Webserver. Ein ähnliches Beispiel ist die Verteilung neugestarteter Prozesse <strong>auf</strong> die Prozessoren eines (Shared-Memory)-Parallelrechners. Beidengemeinsam ist, dass neue Lasten (Anfragen bzw. Prozesse) einmal einem Prozessor zugewiesenwerden und dort verbleiben; man spricht hier daher auch vom dynamischenMapping-Problem. In dieser Arbeit dagegen wird das sog. dynamische <strong>Loadbalancing</strong>-Problem betrachtet. Es wird davon ausgegangen, dass bereits eine Anzahl von Lasten(Einzelproblemen) <strong>auf</strong> die Prozessoren eines Parallelrechners verteilt ist. Fallen durchLösung einzelner Probleme Lasten weg oder entstehen woanders neue Lasten, so führtdies zu einem Ungleichgewicht, das durch Verschiebung einzelner Lasten ausgeglichenwerden soll. In den Modellen hierzu wird angenommen, dass alle Lasten gleich groß sind,oder anders ausgedrückt, dass alle Probleme gleich schnell zu lösen sind. Einen gutenÜberblick über die verschiedenen Aspekte des <strong>Loadbalancing</strong>s geben Diekmann, Monienund Preis in [DMP99].Im Wesentlichen lassen sich <strong>Loadbalancing</strong>-Verfahren in zwei Klassen <strong>auf</strong>teilen, nämlichdie sog. Diffusions- und die <strong>Dimension</strong>-Exchange-Verfahren; beide Arten wurdenzuerst von Cybenko in [Cyb89] beschrieben. Beide Verfahren arbeiten iterativ, der Unterschiedzwischen ihnen besteht darin, welche Werte in jedem Iterationsschritt zurAufdatierung verwendet werden und lässt sich vergleichen <strong>mit</strong> dem Unterschied zwischenJacobi- und Gauß-Seidel-Verfahren zur Lösung linearer Gleichungssysteme. Fürdie Klasse der Diffusionsverfahren sind zudem endliche Verfahren entwickelt worden[DFM99, EFMP99], in Analogie zum cg-Verfahren bei linearen Gleichungssystemen.Ziel dieser Arbeit ist die Entwicklung und Bewertung <strong>endlicher</strong> <strong>Dimension</strong>-Exchange-Verfahren. Untersucht werden die Schnelligkeit und Genauigkeit dieser Verfahren sowiedie Frage, wie viele Lasten (u. U. unnötig) verschoben werden. Sämtliche Messergebnisse,die hier gezeigt werden, sind <strong>mit</strong> <strong>Hilfe</strong> paralleler Programme erzielt worden.Die Arbeit ist folgendermaßen gegliedert: Kapitel 1 gibt eine mathematische Definitionder Problemstellung und einen Überblick über Parallelrechnerarchitekturen sowieüber Anwendungsfälle für <strong>Loadbalancing</strong>-Verfahren. Außerdem werden einige Standardgraphensowie Matrizen zur Beschreibung von Graphen definiert. Die Graphen dienendazu, die Topologie von <strong>Parallelrechnern</strong> zu modellieren.13


VorwortDas Kapitel 2 beschäftigt sich <strong>mit</strong> den verschiedenen Diffusionsverfahren, die seit1989 veröffentlicht worden sind. Begonnen wird <strong>mit</strong> einfacheren Verfahren erster undzweiter Ordnung. Danach folgen endliche Verfahren, die <strong>auf</strong> der Kenntnis von Eigenwertenbestimmter Matrizen zu Graphen basieren. Bei einem der endlichen Verfahren wirduntersucht, wie sich die Reihenfolge dieser Eigenwerte <strong>auf</strong> die numerische Stabilität desVerfahrens auswirkt.Das zentrale Kapitel der vorliegenden Arbeit ist das Kapitel 3 über <strong>Dimension</strong>-Exchange-Verfahren.Der wesentliche Unterschied zu Diffusionsverfahren liegt darin, dassdie einzelnen Iterationsschritte weiter unterteilt werden in Teilschritte, wobei stets dieaktuellsten Lastinformationen herangezogen werden. Die Abschnitte 3.1 und 3.2 widmensich der hierfür notwendigen Kantenfärbung der Graphen sowie Matrizen zur Beschreibunggefärbter Graphen. In den Abschnitten 3.3 bis 3.5 wird gezeigt, wie man ausden verschiedenen Diffusionsverfahren entsprechende <strong>Dimension</strong>-Exchange-Varianten gewinnt.Die Idee des <strong>Dimension</strong>-Exchange-Prinzips ist genauso alt wie die Diffusionsverfahren(siehe [Cyb89]), neu in dieser Arbeit sind endliche <strong>Dimension</strong>-Exchange-Verfahren.Von jeder Verfahrensvariante gibt es zwei Arten, eine <strong>mit</strong> unsymmetrischer undeine <strong>mit</strong> symmetrischer Iterationsmatrix. Bei den endlichen unsymmetrischen Algorithmenwird jeweils die Korrektheit nachgewiesen, bei den symmetrischen ist dies wegen derengeren Verwandtschaft zu Diffusionsverfahren nicht nötig. Wie im Diffusionsfall müssenauch für die endlichen <strong>Dimension</strong>-Exchange-Verfahren vorneweg Eigenwerte bestimmterGraphmatrizen ausgerechnet werden; in Abschnitt 3.6 werden für einige wichtige Graphenkonkrete Formeln für diese Eigenwerte hergeleitet. Bei vielen Graphen ist zudemdie Anzahl verschiedener Eigenwerte geringer als im Diffusionsfall, was sich un<strong>mit</strong>telbar<strong>auf</strong> die L<strong>auf</strong>zeiten der Verfahren auswirkt. Der konkrete Abl<strong>auf</strong> des Lastaustausches wirddurch Flüsse <strong>auf</strong> den Graphen beschrieben. Während Diffusionsverfahren Flüsse erzeugen,die eine minimale l 2 -Norm besitzen, entstehen beim <strong>Dimension</strong>-Exchange höhereFlüsse. Abschnitt 3.7 demonstriert, wie man die Flüsse durch zusätzliche Rechnungen,aber <strong>mit</strong> wenig zusätzlicher Kommunikation, verringern kann. In Abschnitt 3.8 werdenwichtige Resultate zur Berechnung und Abschätzung von Flüssen hergeleitet. Zu einemgegebenem Graphen und einem gegebenen Verfahren lassen sich Matrizen konstruieren,die angewandt entweder <strong>auf</strong> eine Ausgangslastverteilung oder einen <strong>mit</strong> irgendeinemanderen Verfahren berechneten Fluss den gesuchten Fluss liefern. Die Spektralnormendieser <strong>mit</strong> <strong>Hilfe</strong> von Moore-Penrose-Inversen bestimmten Matrizen sind ein Maß dafür,um wie viel die berechneten Flüsse im schlimmsten Fall über dem Minimum liegen. Füreinige spezielle Graphen lassen sich diese Matrixnormen theoretisch berechnen, für alleanderen wichtigen Fälle werden experimentell berechnete Werte angegeben. Das Kapitelendet <strong>mit</strong> Betrachtungen zu Aufwand und Stabilität sowie den diesbezüglichen Vorteilenvon <strong>Dimension</strong>-Exchange- gegenüber Diffusionsverfahren.Kapitel 4 ist den Verfahren der alternierenden Richtungen gewidmet, einer speziellenVerfahrensklasse für so genannte Produktgraphen wie Gitter und Torus. Basierend<strong>auf</strong> mehreren bereits existierenden Diffusionsverfahren werden sowohl neue Diffusionsvariantenals auch <strong>Dimension</strong>-Exchange-Verfahren für Produktgraphen konstruiert. DieErgebnisse zur Berechnung von Flüssen aus Kapitel 3 lassen sich zumindest <strong>auf</strong> einen Teilder Verfahren für Produktgraphen übertragen, ebenso wie Methoden zur Flussreduktion.14


Kapitel 5 enthält Hinweise zur Implementierung von <strong>Loadbalancing</strong>-Verfahren sowieausführliche Messergebnisse zum Vergleich der verschiedenen Algorithmen.Während es bis hierher nur darum ging, eine Gleichverteilung zu bestimmen, beschäftigtsich Kapitel 6 <strong>mit</strong> dem Scheduling, d. h. <strong>mit</strong> dem tatsächlichen Verschiebenvon Lasten. Neben bewährten Strategien wird ein neues Verfahren vorgestellt, das diefür <strong>Dimension</strong>-Exchange-Verfahren sowieso notwendige Kantenfärbung der Graphen verwendet.Die neue Methode ist in vielen Fällen gleichwertig und in einigen Situationensogar schneller als die bisherigen Verfahren.Abschließend gibt Kapitel 7 Ausblicke dar<strong>auf</strong>, wie die Verfahren modifiziert werdenmüssen, um verschiedene Knoten- und Kantengewichte zu berücksichtigen. Hier<strong>mit</strong> lassensich verschieden schnelle Prozessoren bzw. Netzwerkverbindungen modellieren.Die vorliegende Dissertation entstand im Zeitraum März 1999 bis April 2003 am FachbereichMathematik der Bergischen Universität Wuppertal.Mein besonderer Dank an dieser Stelle gilt meinem Doktorvater Prof. Dr. AndreasFrommer für die Aufnahme in seine Arbeitsgruppe, für die interessante Themenstellungsowie seine Diskussionsbereitschaft. Seine wertvollen Anmerkungen und kritischenKommentare trugen zum Gelingen dieser Arbeit bei.Bei Prof. Dr. Burkhard Monien bedanke ich mich für die Übernahme des Korreferatessowie die Möglichkeit, den Parallelrechner der Universität Paderborn zu benutzen.Ich danke allen Mitgliedern der Arbeitsgruppe für die gute Zusammenarbeit und angenehmeArbeitsatmosphäre.Diese Arbeit wurde unterstützt von der Deutschen Forschungsgemeinschaft (DFG),Projekt FR 755/14-1.Wuppertal, im Juli 2003Holger Arndt15


1 EinleitungDieses Kapitel beginnt <strong>mit</strong> einer mathematischen Definition des <strong>Loadbalancing</strong>-Problems.Es folgen Einführungen zum allgemeinen Abl<strong>auf</strong> des <strong>Loadbalancing</strong>s, Anwendungsfällenund Parallelrechnerarchitekturen bzw. -topologien sowie hierzu passendenVerfahrensklassen. Abgeschlossen wird das Kapitel <strong>mit</strong> einigen weiteren Definitionenspezieller Graphen und Matrizen.1.1 Das <strong>Loadbalancing</strong>-Problem und Matrizen für GraphenFür die gesamte Arbeit gelte die folgende Generalvoraussetzung.Definition 1.1. Es sei G = (V, E) ein zusammenhängender ungerichteter Graph <strong>mit</strong>n = |V | Knoten und N = |E| Kanten. Die Knoten werden <strong>mit</strong> 1, . . . , n und die Kanten<strong>mit</strong> e 1 , . . . , e N bezeichnet.Graph-Beispiel 1.2. Alle in dieser Arbeit folgenden ”Graph-Beispiele“ werden sich <strong>auf</strong>diesen Pfad der Länge 3 (P 3 ) beziehen.1 21 2 3Hier ist also V = {1, 2, 3} und E = {{1, 2} , {2, 3}}.Zur Beschreibung solcher Graphen wird nun die Inzidenzmatrix definiert.Definition 1.3. Die zum Graphen G gehörende Knoten-Kanten-Inzidenzmatrix A ∈{0; 1; −1} n×N <strong>mit</strong> A = (a ij ) ist definiert durch⎧⎪⎨ 1 falls e j = {i, k} existiert <strong>mit</strong> i < ka ij = −1 falls e j = {i, k} existiert <strong>mit</strong> i > k⎪⎩0 sonst.Bemerkung 1.4. Entgegen der Definition 1.1 wird durch Definition 1.3 jeder Kante eineRichtung zugeordnet. Die hier gewählten Richtungen sind rein willkürlich und könntenauch anders festgesetzt werden, ohne dass sich hierdurch im Folgenden Entscheidendesändert.Graph-Beispiel 1.5.⎛1⎞0A = ⎝−1 1 ⎠0 −117


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


1 Einleitungbehandelten <strong>Loadbalancing</strong>-Verfahren. Im Gegensatz dazu hat bei Rechnern <strong>mit</strong> verteiltemSpeicher (distributed memory) jeder Rechner seinen eigenen, von den anderenProzessoren unabhängigen Speicher. Der Datenaustausch erfolgt durch das Versendenvon Nachrichten (message passing) über ein Netzwerk.Bei den verwendeten Netzwerken sind viele verschiedene Topologien anzutreffen. Besonders<strong>auf</strong> etwas älteren Rechnern sind die Prozessoren oftmals in Form eines Gitters,Torus oder Hypercubes angeordnet, manchmal auch als Zyklus oder als Baum. Währendder Datenaustausch zwischen zwei Prozessoren, die in dieser Struktur benachbartsind, in der Regel sehr schnell ist, kann die Kommunikation zwischen zwei beliebigenKnoten um ein Vielfaches länger dauern. In solchen Fällen ist der für das <strong>Loadbalancing</strong>verwendete Graph dieser Topologie anzupassen. Beispiele für Rechner <strong>mit</strong> solch festerTopologie sind die Cray T3E (3-D Torus), Fujitsu AP3000 (2D-Torus), SGI Origin 2000(Hypercube <strong>mit</strong> 4 Prozessoren pro Knoten) oder der schon etwas ältere (1993) nCUBE2S (Hypercube der maximalen <strong>Dimension</strong> 12).Vielfach werden in neueren <strong>Parallelrechnern</strong> aber Switches bzw. Crossbars eingesetzt,so dass jeder Prozessor <strong>mit</strong> jedem beliebigen anderen Prozessor in etwa gleich schnellkommunizieren kann. Bei mehr als etwa 64 Prozessen werden in der Regel mehrstufigeCrossbars verwendet. Beispiele hierfür sind Fujitsu VPP5000 (einstufiger Crossbar),Hitachi SR8000 (bis zu dreistufiger Crossbar) und NEC SX-6 (mehrstufiger Crossbar).Diese Architektur lässt sich zwar am ehesten durch einen vollständigen Graphen beschreiben;allerdings ist es nicht möglich, dass jeder Prozessor <strong>mit</strong> allen anderen Prozessorengleichzeitig kommuniziert. Der Vorteil ist vielmehr, dass durch Auswahl einzelnerVerbindungen beliebige Teilgraphen verwendet werden können. In diesem Fall kann manentweder einen für die Anwendung passenden Graphen wählen (z. B. bei Finite-Elemente-Anwendungen) oder einen an die zur Verfügung stehende Anzahl an Prozessoren angepasstenGraphen, also beispielsweise bei einer Zweierpotenz einen Hypercube, oder sonsteinen mehrdimensionalen Torus.In diese zweite Kategorie von Rechnern ohne bestimmte Topologie fallen auch dieimmer häufiger anzutreffenden Cluster. Hierbei werden aus Standardkomponenten bestehendeRechner (z. B. normale PCs) <strong>mit</strong>einander vernetzt, im einfachsten Fall <strong>mit</strong> normalenEthernet-Karten, falls bessere Datentransferraten erzielt werden sollen <strong>mit</strong> spezialisierterHardware wie zum Beispiel einem Myrinet-Netzwerk. Mit dem Linux NetworX(2304 Intel-Xeon-Prozessoren, 11 TFlop/s Peak-Performance) und dem HPTi (1536 Prozessoren)befinden sich sogar zwei Cluster unter den ersten zehn Plätzen der TOP500-Liste vom November 2002.Eine ganz andere Art von ”Cluster“ stellen lose vernetzte Rechner dar, die nur gelegentlichgemeinsam für große Rechen<strong>auf</strong>gaben benutzt werden und daher keine besondersschnelle Netzwerkanbindung besitzen. Ein weiteres mögliches Anwendungsgebiet für<strong>Loadbalancing</strong> in der Zukunft stellt das Grid-Computing dar, bei dem mehrere, räumlichunter Umständen weit entfernte, Rechner gemeinsam benutzt werden. Bei diesen letztenbeiden Fällen ist ein schnelles <strong>Loadbalancing</strong>-Verfahren noch wichtiger als bei echten<strong>Parallelrechnern</strong> <strong>mit</strong> schneller spezialisierter Kommunikationshardware.Einen guten Überblick über Parallelrechner-Topologien liefert das Einführungskapitelin [ALO02], ausführlichere Informationen zur Hardware finden sich in [vdSD02]. Dieser20


1.5 Kommunikationsmodelle und VerfahrensklassenBericht wird jährlich aktualisiert.1.5 Kommunikationsmodelle und VerfahrensklassenNeben der im letzten Abschnitt erläuterten Kategorisierung von <strong>Parallelrechnern</strong> gibtes noch ein weiteres Unterscheidungsmerkmal, das für <strong>Loadbalancing</strong>-Algorithmen vongroßer Wichtigkeit ist, nämlich ob der Nachrichtenaustausch immer <strong>auf</strong> zwei Prozessorenbeschränkt ist oder nicht. Beim so genannten All-Port-Modell wird davon ausgegangen,dass ein Prozessor <strong>mit</strong> all seinen Nachbarn gleichzeitig kommunizieren kann. Hier<strong>auf</strong>basieren die in dieser Arbeit zuerst vorgestellten Diffusionsverfahren. Die meisten tatsächlichenParallelrechner entsprechen dagegen eher dem One-Port-Modell, bei dem derDatenaustausch immer paarweise zwischen zwei Prozessoren erfolgt. Die <strong>Dimension</strong>-Exchange-Verfahren, denen der wesentliche Teil dieser Arbeit gewidmet ist, sind speziellfür dieses Modell konstruiert.1.6 Anforderungen an <strong>Loadbalancing</strong>-VerfahrenEine erste Anforderung ergibt sich dadurch, dass die übergeordnete Rechnung für dieDauer des <strong>Loadbalancing</strong>s unterbrochen werden muss, die Bestimmung des ausgleichendenFlusses (erste Phase) sollte also möglichst schnell sein. Bei der Geschwindigkeitheutiger Rechner und Netzwerkhardware wird die Schnelligkeit des Verfahrens allerdingserst bei sehr vielen Prozessoren zu einem wichtigen Kriterium. Zum zweiten sollteein möglichst kleiner ausgleichender Fluss berechnet werden. Sind die Flüsse unnötiggroß, bedeutet dies, dass Lasten <strong>auf</strong> Umwegen oder gar im Kreis verschoben werdenund dann die zweite Phase (das Scheduling) zu lang dauert. Des weiteren sollte der<strong>Loadbalancing</strong>-Algorithmus numerisch stabil arbeiten, was bei unüberlegter Anwendungeiniger Verfahren nicht garantiert ist.Eine gleichzeitige Minimierung der L<strong>auf</strong>zeit und des Flusses hat sich bisher als unmöglichherausgestellt. Das Ziel in den nachfolgenden Kapiteln ist es daher, diesen Anforderungenmöglichst nahe zu kommen.1.7 Häufig verwendete StandardgraphenEs gibt eine Reihe von Standardgraphen, die im L<strong>auf</strong>e der Arbeit immer wieder verwendetwerden. Dies sind: der Pfad der Länge n (P n ), der Zyklus der Länge n (C n ),k × l-Gitter (G k,l ), k × l-Torus (T k,l ), Hypercube der <strong>Dimension</strong> d (H d ), Stern aus nKnoten (S n ), kompletter Graph aus n Knoten (K n ) und zufälliger Graph <strong>mit</strong> n Knotenund N Kanten (R n,N ). Siehe hierzu auch Tabelle 1.1. Quadratische Gitter G k,k und ToriT k,k werden im Folgenden <strong>mit</strong> G k bzw. T k bezeichnet.21


1 EinleitungGraph Abk. Abbildung eines BeispielsPfad P 6Zyklus C 6Gitter G 6,4Torus T 6,4Hypercube H 3Stern S 9kompletter Graph K 4zufälliger Graph R 6,7Tabelle 1.1: Häufig verwendete Standardgraphen1.8 ProduktgraphenUnter den für <strong>Loadbalancing</strong> verwendeten Graphen spielt die Klasse der so genanntenProduktgraphen eine wichtige Rolle. Das Kapitel 4 ist einer speziell hier<strong>auf</strong> angepasstenKlasse von Verfahren gewidmet, aber auch bei den einfacheren Verfahren lässt sich dieseStruktur ausnutzen.Definition 1.8. Es seien G (1) = (V (1) , E (1) ) und G (2) = (V (2) , E (2) ) zusammenhängendeungerichtete Graphen. Dann ist der Produktgraph G = G (1) × G (2) <strong>mit</strong> G = (V, E)definiert durchV = V (1) × V (2)und{() (E = (u (1) , u (2) ), (v (1) , v (2) ) | u (1) = v (1) ∧ (u (2) , v (2) ) ∈ E (2)) (∨ (u (1) , v (1) ) ∈ E (1) ∧ u (2) = v (2))} .Bemerkung 1.9. Zum Teil werden zur Vereinfachung der Notation die Knoten <strong>mit</strong> einfachenNummern statt <strong>mit</strong> Paaren bezeichnet.22


1.9 Bezeichnungen für spezielle MatrizenBeispiel 1.10. Gitter und Torus lassen sich <strong>auf</strong>fassen als Produkt zweier Pfade bzw.Zyklen und der Hypercube als mehrfaches Produkt von Pfaden der Länge zwei:G k,l = P k × P l , T k,l = C k × C l , H d = P 2 × · · · × P 2 .Im Zusammenhang <strong>mit</strong> Produktgraphen werden an verschiedenen Stellen Kroneckerprodukteverwendet.Definition 1.11. Für k ∈ {R, C} seien A ∈ k p×q und B ∈ k r×s zwei Matrizen. DasKroneckerprodukt von A und B ist durch folgende Blockmatrix definiert:⎛⎞a 11 B · · · a 1q B⎜A ⊗ B = ⎝.. ..⎟. ⎠ ∈ k pr×qsa p1 B · · · a pq B1.9 Bezeichnungen für spezielle MatrizenEinheitsmatrizen der <strong>Dimension</strong> n werden <strong>mit</strong> I n bezeichnet, Matrizen aus R n×n , derenEinträge sämtlich eins sind, <strong>mit</strong> J n . Wo die <strong>Dimension</strong> n offensichtlich ist, wird derenAngabe teilweise weggelassen.23


2 DiffusionsverfahrenBei den Diffusionsverfahren handelt es sich um die Verfahrensklasse, die speziell <strong>auf</strong> dasAll-Port-Rechnermodell ausgerichtet ist. Nach einigen Definitionen werden verschiedeneDiffusionsverfahren vorgestellt, die alle innerhalb der letzten etwa zehn Jahre veröffentlichtwurden. Es folgen einige Bemerkungen zu Eigenwerten von Matrizen zur Beschreibungvon Graphen sowie zu den Auswirkungen verschiedener Anordnungen derEigenwerte <strong>auf</strong> die numerische Stabilität der Diffusionsverfahren.2.1 Matrizen für DiffusionsverfahrenZunächst werden mehrere Matrizen zur Beschreibung von Graphen definiert.Definition 2.1. Es sei G ein zusammenhängender ungerichteter Graph und α ( ∈ (0; 1) )ein konstantes Kantengewicht. Definiere die Matrix M Diff ∈ R n×n , M Diff = m Diffijdurch⎧⎪⎨ 1 − α deg(i) falls i = jm Diffij = αfalls {i, j} ∈ E⎪⎩0 sonst,wobei deg(i) den Grad des Knotens i bezeichnet. Sind alle m Diffijeine Diffusionsmatrix des Graphen G.≥ 0, so nennt man M DiffBemerkung 2.2. Die Matrix M Diff ist symmetrisch und doppelt stochastisch, das heißtalle Zeilensummen und Spaltensummen ergeben 1.Graph-Beispiel 2.3.⎛1 − α α 0⎞M Diff = ⎝ α 1 − 2α α ⎠0 α 1 − αIm folgenden sei stets die nachstehende Zusatzvoraussetzung erfüllt. Sie garantiert dieKonvergenz der Diffusionsverfahren, vergleiche Bemerkung 2.12.Voraussetzung 2.4. Es gelte eine der beiden Bedingungen:1. Ein Diagonalelement m Diffiider Diffusionsmatrix M Diff ist positiv.2. Der Graph G ist nicht bipartit.25


2 Diffusionsverfahren(Definition 2.5. Die Laplace-Matrix L Diff ∈ Z n×n , L Diff =durch⎧⎪⎨ deg(i) falls i = jlij Diff = −1 falls {i, j} ∈ E⎪⎩0 sonst .Graph-Beispiel 2.6.Bemerkung 2.7. Es gilt⎛1 −1⎞0L Diff = ⎝−1 2 −1⎠0 −1 1M Diff = I − αL Diff .l Diffij), von G wird definiertDer Sinn der nachfolgenden Definition wird später deutlich werden, wenn andere Verfahrenbetrachtet werden, bei denen die entsprechenden Matrizen (hier A und A Diff )nicht mehr identisch sind.Definition 2.8. Für einen Graphen G, <strong>auf</strong> den ein Diffusionsverfahren angewandt werdensoll, definiert manA Diff = A .Bemerkung 2.9. Es giltL Diff = AA Diff T .Mit diesen Bezeichnungen entspricht die Berechnung der Gleichverteilung der Lösungdes singulären linearen Gleichungssystems L Diff w = 0. Die Matrix L Diff hat Rang n − 1,nach [HJ85, Th. 8.4.4] ist nämlich 1 ein einfacher Eigenwert von M Diff und 0 da<strong>mit</strong>einfacher Eigenwert von L Diff . Eindeutig wird die Lösung des Systems durch die Forderung,dass die Gesamtlast unverändert bleibt. Äquivalent hierzu ist die Suche nach demFixpunkt w in der Gleichung Mw = w.Die Laplace- und Diffusionsmatrizen der in Definition 1.8 eingeführten Produktgraphenlassen sich leicht aus den Matrizen der kleineren Faktorgraphen“ bestimmen.”Lemma 2.10. Es sei G = G (1) × G (2) ein Produktgraph <strong>mit</strong> ∣ ∣V (1)∣ ∣ = p und ∣ ∣V (2)∣ ∣ = q.Dann ergeben sich die Diffusions- und Laplace-Matrix von G <strong>auf</strong> folgende Weise ausden Matrizen der Faktorgraphen G (1) und G (2) , wobei für beide dasselbe Kantengewichtα verwendet wird:L Diff = I q ⊗ L Diff (1) + L Diff (2) ⊗ I pM Diff = I q ⊗ M Diff (1) + M Diff (2) ⊗ I p − I pqBeweis. Die Gleichung für L stammt aus [EFMP99], die für M lässt sich hier<strong>mit</strong> leichtnachrechnen.Für einige der später zu betrachtenden Verfahren wird die Kenntnis der Eigenwerteder Diffusions- bzw. Laplace-Matrix vorausgesetzt.26


2.1 Matrizen für DiffusionsverfahrenDefinition 2.11. Es seien M Diff und L Diff wie oben. Die Anzahl paarweise verschiedenerEigenwerte dieser Matrizen werde <strong>mit</strong> m bezeichnet. Die zu M Diff gehörenden Eigenwerteseien so geordnet, dassµ Diff1 > µ Diff2 > · · · > µ Diffmund die von L Diff entsprechendλ Diff1 < λ Diff2 < · · · < λ Diffm<strong>mit</strong> µ Diffi= 1 − αλ Diffi .Bemerkung 2.12. Es ist der größte Eigenwert µ Diff1 = 1 <strong>mit</strong> zugehörigem Eigenvektor(1, . . . , 1) T [HJ85, Cor. 8.1.30]. Unter Voraussetzung 2.4 gilt außerdem µ Diffm > −1[Cyb89, Theorem 1].Definition 2.13. Mit γ Diff = max {∣ ∣µ Diff ∣2 , ∣ ∣µ Diff ∣ } m werde der betragsmäßig zweitgrößteEigenwert von M Diff bezeichnet.Lemma 2.14 ([DFM99, Lemma 1]). Es seien w 0 und w die Vektoren der anfänglichenLastverteilung bzw. der Gleichverteilung. Ferner seiw 0 =m∑i=1z ieine Darstellung von w 0 durch (nicht-normalisierte) Eigenvektoren z i von M Diff , d. h.M Diff z i = µ Diffi z i für i = 1, . . . , m. Dann giltw = z 1 .Definition 2.15. Ein polynomiales <strong>Loadbalancing</strong>-Verfahren ist ein Verfahren, bei demsich die Last im Schritt k ausdrücken lässt alsw k = p k (M Diff )w 0<strong>mit</strong> p k ∈ Π k . Hierbei bezeichnet Π k die Menge aller Polynome p vom Grad deg(p) ≤ k,für die p(1) = 1 ist.Alle Verfahren, die hier betrachtet werden, sind polynomiale Verfahren im Sinne obigerDefinition. Die Bedingung p k (1) = 1 bewirkt, dass alle Matrizen p k (M Diff ) doppeltstochastisch sind. Dies stellt sicher, dass die Gesamtlast unverändert bleibt, d. h. dass∑ ni=1 wk i = ∑ ni=1 w0 i ist.Definition 2.16. Mit e k = w k − w werde der Fehler nach dem k-ten Iterationsschrittbezeichnet.27


2 DiffusionsverfahrenLemma 2.17 ([DFM99, Lemma 2]). Es sei w 0 = ∑ mi=1 z i wie in Lemma 2.14. Danngilt:e 0 =m∑i=2z ie k = p k (M Diff )e 0m∑= p k (µ Diffi )z i , k = 0, 1, 2, . . .i=22.2 Einfache Diffusionsverfahren: FOS, SOS und ČebyševDas erste Diffusionsverfahren wurde 1989 von Cybenko entwickelt [Cyb89]. In jedemSchritt vergleichen die Prozessoren ihre aktuelle Last <strong>mit</strong> der aller ihrer Nachbarn. Überjede Kante wird das α-fache der Lastdifferenz in Richtung des Knotens <strong>mit</strong> der geringerenLast verschoben. Dieses Verfahren wird auch als First Order Scheme (FOS) bezeichnet.Für Prozessor i ergibt sich im Schritt k Algorithmus 2.1.for all e = {i, ( j} ∈ E do )yek−1 = α wik−1 − wjk−1x k e = x k−1e + yek−1end forwi k = wk−1 i− ∑ e={i,j}∈E yk−1 eAlgorithmus 2.1: Schritt k des FOS-Verfahrens für Prozessor iBetrachtet man das Verfahren nun nicht mehr lokal aus Sicht eines Prozessors sondernglobal, so erhält das FOS-Verfahren bei Verwendung der Diffusionsmatrix M Diff dieeinfache Gestalt aus Algorithmus 2.2.x 0 = 0for k = 1, 2, . . . dow k = M Diff w k−1x k = x k−1 + αA Diff T w k−1end forAlgorithmus 2.2: FOS-Verfahren, Matrix-VersionBei allen folgenden Verfahren wird jeweils nur noch die Matrix-Version des Algorithmusangegeben, die Beziehung zwischen lokaler und globaler Sicht ist in allen Fällen <strong>mit</strong>dem FOS vergleichbar.Für die zugehörigen Polynome p FOSk<strong>mit</strong> w k = p FOSk(M Diff )w 0 giltp FOSk (t) = t k ;28


2.2 Einfache Diffusionsverfahren: FOS, SOS und Čebyševdiese erfüllen also die kurze Rekursionp FOS0 (t) = 1p FOSk(t) = tp FOS (t) k = 1, 2, . . . .k−1In [Cyb89] wird gezeigt, dass das FOS-Verfahren genau dann konvergiert, wenn die Zusatzvoraussetzung2.4 erfüllt ist. Dann gilt nämlich für γ = γ Diff aus Definition 2.13 dieBeziehung γ < 1 und für die Fehler gilt∥∥∥e k ∥∥2≤ γ k ∥ ∥e 0∥ ∥2.Der Wert γ wird dann möglichst klein und da<strong>mit</strong> die Konvergenz im Sinne der obigen2Abschätzung möglichst gut, wenn α =λ 2 +λ mist, wobei λ 2 und λ m der zweitkleinstebzw. der größte Eigenwert der Laplace-Matrix L Diff sind [Cyb89, EFMP99].Falls γ nahe bei 1 liegt, konvergiert das FOS-Verfahren sehr langsam. Um die Konvergenzzu verbessern, haben Ghosh, Muthukrishnan und Schultz das Second Order Scheme(SOS) [MGS96] entwickelt, vgl. Algorithmus 2.3. Die Polynome erfüllen die Rekursionp SOS0 (t) = 1p SOS1 (t) = tp SOSk(t) = βtp SOSk−1 (t) + (1 − β) pSOS k−2 (t).Dabei ist β ∈ (0; 2) ein fest gewählter Parameter.w 1 = M Diff w 0x 1 = αA Diff T w 0for k = 2, 3, . . . dow k = βM Diff w k−1 + (1 − β) w k−2x k = βx k−1 + βαA Diff T w k−1 + (1 − β) x k−2end forAlgorithmus 2.3: SOS-VerfahrenDas SOS-Verfahren konvergiert für jedes β ∈ (0; 2), die beste Konvergenz ergibt sichfür2β = β opt =1 + √ 1 − γ ; 2in diesem Fall gilt für die Fehler [MGS96]∥ (∥∥e k ∥∥2≤ (β opt − 1) k 2 1 + k √ ) ∥∥1 − γ 2 e 0∥ ∥2.Eng verwandt <strong>mit</strong> dem SOS-Verfahren ist das Čebyšev-Verfahren [DFM99]. Statt einesfesten Parameters β werden in den einzelnen Schritten verschiedene Werte verwendet,nämlichβ 1 = 1, β 2 = 22 − γ 2 , β k =44 − γ 2 β k−1, k = 3, 4, . . . .29


2 DiffusionsverfahrenDie zugehörige Fehlerabschätzung lautet∥∥e k ∥ ∥∥2≤ 2 (β opt − 1) k 21 + (β opt − 1) k ∥ ∥e 0 ∥ ∥2.Das Čebyšev-Verfahren ist also geringfügig besser als SOS.2.3 Endliche Diffusionsverfahren: OPS und OPTBei den bisher vorgestellten Verfahren handelt es sich um nicht-endliche Iterationsverfahren,die mehr oder weniger schnell gegen die Gleichverteilung w konvergieren. In[DFM98, DFM99] wurde ein neues Verfahren vorgestellt, das, ähnlich dem cg-Verfahrenzur Lösung linearer Gleichungssysteme, in endlich vielen Schritten die exakte Lösungbestimmt. Dieses Verfahren wird als Optimal Polynomial Scheme (OPS) bezeichnet.Das Verfahren basiert dar<strong>auf</strong>, dass Polynome p OPSkaus der Menge Π k berechnet werden,die bezüglich des folgenden Innenproduktes orthogonal sind:〈p, q〉 =m∑j=2ω j p(µ Diffj )q(µ Diffj ) (2.1)<strong>mit</strong> ω j = 1 − µ Diffj . Solche Orthogonalpolynome lassen sich <strong>mit</strong> <strong>Hilfe</strong> einer Dreitermrekursion〈berechnen. Das (m − 1)-te Polynom ist zu sich selbst orthogonal, d. h. es istpOPSm−1 , 〉 pOPS m−1 = 0 und so<strong>mit</strong> gilt pOPSm−1 (µDiff i ) = 0 für i = 2, . . . , m.Um das Verfahren durchführen zu können, müssen zunächst alle Eigenwerte µ Diffi derDiffusionsmatrix M Diff bekannt sein. Außerdem müssen vorab Parameter α i , β i und γ iberechnet werden. Für k = 0, . . . , m − 1 sind die Polynome p OPSkgegeben durchp OPS0 (t) = 1p OPS1 (t) = 1 γ 1[(α 1 − t) p OPS0 (t)]p OPSk (t) = 1 [](α k − t) p OPSk−1γ (t) − β kp OPSk−2 (t) , k = 2, . . . , m − 1k<strong>mit</strong>〈tpOPSk−1α k =, 〉pOPS k−1〈pOPSk−1 , 〉 , k = 1, . . . , m − 1 (2.2)pOPS k−1〈pOPSk−1β k = γ , 〉pOPS k−1k−1 〉, k = 2, . . . , m − 1 (2.3)〈pOPSk−2 , pOPS k−2γ 1 = α 1 − 1, γ k = α k − 1 − β k , k = 2, . . . , m − 1 . (2.4)Sind diese Größen einmal berechnet, dann kann das eigentliche in Algorithmus 2.4dargestellte OPS-Verfahren durchgeführt werden.30


w 1 = 1 γ 1[α1 w 0 − M Diff w 0]x 1 = 1 γ 1αA Diff T w 0for k = 2, . . . , m − 1 dow k = 1 [γ αk kw k−1 − M Diff w k−1 − β k w[k−2]]x k = 1γ k(α k − 1) x k−1 − αA Diff T w k−1 − β k x k−2end for2.3 Endliche Diffusionsverfahren: OPS und OPTAlgorithmus 2.4: OPS-VerfahrenAllgemein gilt bei polynomialen <strong>Loadbalancing</strong>-Verfahren nach Lemma 2.17 für dieFehlerm∑e k = p k (µ Diffi )z i ,i=2wobei die z i wieder Eigenvektoren von M Diff sind. Beachtet man, dass die z i paarweiseorthogonal sind, erhält man nach Übergang zur euklidischen Norm∥∥∥e k ∥∥2m ( = ∑m)p k (µ Diffi ) 2 ‖z i ‖ 2 2 ≤ ∑p k (µ Diffi ) 2 mmax ‖z i‖ 22 i=22 .i=2In [DFM99] wird gezeigt, dass der Faktor ∑ mi=2 p k(µ Diffi ) 2 aus der letzten Abschätzung∑für obige Wahl der ω i in jedem Schritt minimal wird. Insbesondere ist e m−1 =mi=2 p m−1(µ Diffi )z i = 0 und da<strong>mit</strong> w m−1 = w.Die Konvergenz der verschiedenen Diffusionsverfahren (FOS, SOS, Čebyšev und OPS)ist in Abbildung 2.1 am Beispiel eines Zyklus der Länge 12 dargestellt. Für die Parameterα bzw. β wurden in den entsprechenden Verfahren jeweils die optimalen Wertegewählt. In dem Diagramm wird die Überlegenheit des OPS-Verfahrens deutlich, SOSund Čebyšev unterscheiden sich nur geringfügig, FOS ist nicht konkurrenzfähig. In derAbbildung wie auch in allen anderen Beispielen, sofern nicht anders angegeben, beträgtdie Gesamtlast 100·n, wobei n die Anzahl der Knoten ist. Die Ausgangsverteilung wurdezufällig erzeugt. Bei den nicht-endlichen Verfahren wird jeweils iteriert, bis der absoluteFehler in der l 2 -Norm garantiert kleiner ist als 0,5. Denn schließlich muss am Ende derRechnung jeder Lastwert <strong>auf</strong> die nächste natürliche Zahl gerundet werden, da nur ganzeLasteinheiten verschoben werden können. In den Beispielen bleibt also ein relativerFehler von 0,5 %. Beim Vergleich der Verfahren sollte man also nicht vergessen, dassdie Anzahl der Schritte bei den nicht-endlichen Verfahren <strong>mit</strong> wachsender Gesamtlastzunimmt, bei den endlichen Verfahren dagegen konstant ist.Das OPS-Verfahren ist im Gegensatz zu den anderen Verfahren etwas <strong>auf</strong>wändiger zuimplementieren, da zunächst die Skalare α k , β k und γ k aus den Eigenwerten berechnetwerden müssen. In [EFMP99] wird <strong>mit</strong> dem OPT -Verfahren ein anderer Algorithmusvorgestellt, der wesentlich einfacher und un<strong>mit</strong>telbar verständlich ist. Er kommt ohnedie Dreitermrekursion aus, vgl. Algorithmus 2.5. Auch wenn die Eigenwerte im Algorithmus<strong>auf</strong>steigend durchl<strong>auf</strong>en werden, hat die Reihenfolge bei exakter Rechnung keineni=231


2 DiffusionsverfahrenC 1210 210 00 5 10 15 20 25 30 35 40 4510 −210 −4e k10 −610 −810 −1010 −12FOSSOSČebyševOPS10 −14SchritteAbbildung 2.1: Konvergenz verschiedener Diffusionsverfahren: Fehler nach jedem Schrittbeim Zyklus C 12Einfluss <strong>auf</strong> das Ergebnis. Aus Gründen der numerischen Stabilität sollten allerdingsspezielle Anordnungen gewählt werde, siehe hierzu Abschnitt 2.5.x 0 = 0for k = 1, (. . . , m − 1 do )w k = I − 1 L Diff w k−1λ Diffk+1x k = x k−1 + 1 A Diff T w k−1λ Diffk+1end forAlgorithmus 2.5: OPT-VerfahrenSatz 2.18 ([EFMP99]). Das OPT-Verfahren endet nach m − 1 Iterationsschritten <strong>mit</strong>w m−1 = w.Beweis. Es sei w 0 = ∑ mi=1 z i wie in Lemma 2.14:(1∏w m−1 = I − 1== z 1k=m−1m∑1∏i=1 k=m−1(λ Diffk+11 − λDiff iλ Diffk+1L Diff ) m∑)z ii=1z i32


2.4 Eigenwerte von GraphenNach Lemma 2.14 aber ist z 1 = w.Um zu sehen, dass auch OPT ein polynomiales Verfahren im Sinne von Definition 2.15ist, lässt sich die Iterationsvorschrift auch <strong>auf</strong> folgende Weise unter Verwendung derMatrix M Diff schreiben:w k =(11 − µ Diff M Diff −k+1)µDiff k+11 − µ Diff I w k−1 (2.5)k+1Bemerkung 2.19. Die nach m − 1 Schritten von OPS und OPT berechneten Polynomesind identisch, denn es gibt nur ein eindeutig bestimmtes Polynom vom Grad m − 1 <strong>mit</strong>den Eigenschaften p(µ Diffi ) = 0 für i = 2, . . . , m und p(1) = 1, siehe auch [DFM99]:p OPSm−1(t) = p OPTm−1(t) =m∏i=2t − µ Diffi1 − µ DiffiBei exakter Rechnung sind die beiden Verfahren OPS und OPT also gleichwertig bezüglichder Anzahl der benötigten Schritte und des Flusses.Bemerkung 2.20. Wegen der engen Verwandtschaft von OPS und OPT gelten viele derim folgenden untersuchten Eigenschaften für beide gleichermaßen. In solchen Fällen wirdabkürzend OPX geschrieben.2.4 Eigenwerte von GraphenEs mag als ein großer Nachteil des OPS- bzw. OPT-Verfahrens erscheinen, dass vor demeigentlichen <strong>Loadbalancing</strong> erst alle Eigenwerte des Graphen berechnet werden müssen.Für die wichtigsten Standardgraphen, die als Parallelrechnertopologien in der Praxis<strong>auf</strong>treten, sind die Eigenwerte jedoch bekannt. Tabelle 2.1 enthält die Eigenwerte dermeisten in Abschnitt 1.7 eingeführten Standardgraphen. Die angegeben Formeln stammenaus [CDS95, Els02]. Bei den Formeln, die für Zyklus, Gitter und Torus angegebenGraph Abk. λ DiffiPfad P n 2 − 2 cos ( πn j) , j = 0, . . . , n − 1Zyklus C n 2 − 2 cos ( 2π( ( n j) ,)j = 0, .(. . , n −))1πn 1j π 1 n 2j 2Gitter G n1 ,n 24 − 2Torus T n1 ,n 24 − 2cos( (cos 2πHypercube H d 0, 2, . . . , 2dStern S n 0, 1, nKompl. Gr. K n 0, n+ cosn 1j 1)+ cos, j i = 0, . . . , n i − 1, i = 1, 2( ))2πn 2j 2 , j i = 0, . . . , n i − 1, i = 1, 2Tabelle 2.1: Eigenwerte der Laplace-Matrizen einiger Standardgraphensind, ist zu beachten, dass einige Eigenwerte mehrfach <strong>auf</strong>treten können. Falls der Graph33


2 DiffusionsverfahrenG keinem der obigen Standardgraphen entspricht, müssen die Eigenwerte zu Beginn derRechnung einmal bestimmt werden, anschließend kann das OPS- oder OPT-Verfahren<strong>mit</strong> diesen Eigenwerten beliebig oft durchgeführt werden.Das folgende Resultat erklärt in Verbindung <strong>mit</strong> Lemma 2.10 nochmals die Eigenwertformelnfür Gitter, Tori und (bei mehrfacher Anwendung) auch Hypercubes. Fernererlaubt es, die Eigenwerte beliebiger anderer Produktgraphen effizient zu berechnen.Lemma 2.21 ([HJ91, Theorem 4.4.5]). Es sei A ∈ C p×p und B ∈ C q×q . Sindλ und µ Eigenwerte von A bzw. B <strong>mit</strong> zugehörigen Eigenvektoren x und y, dann istλ + µ Eigenwert des Kronecker-Produktes I q ⊗ A + B ⊗ I p <strong>mit</strong> Eigenvektor y ⊗ x. JederEigenwert von I q ⊗ A + B ⊗ I p lässt sich als ein solches Produkt schreiben.Wie lange das <strong>Loadbalancing</strong> <strong>mit</strong> OPS oder OPT dauert, hängt ab von der Anzahlm der verschiedenen Eigenwerte von L Diff bzw. M Diff . Für einige Graphen, bei denenFormeln für die Eigenwerte existieren, sind die entsprechenden Werte von m inTabelle 2.2 abgedruckt. Die Werte für Pfad, Zyklus, Hypercube und Stern ergebensich un<strong>mit</strong>telbar aus den Formeln in Tabelle 2.1. Für quadratische Gitter gilt offenbarm(G) ≤ 1 2m(P ) (m(P ) + 1) und für Tori entsprechendes. Hier<strong>mit</strong> erhält man dieFaktoren 1 2 bzw. 1 8 vor k2 . Für die tatsächlichen Zahlen ist zu beachten, dass weitereEigenwerte doppelt <strong>auf</strong>treten. Die Obergrenzen für Gitter und Tori in der Tabelle sindexperimentell er<strong>mit</strong>telt.GraphAnzahlP nn1C n 2 | n2 n + 112 ∤ n2 n + 1 2G k 2 | k2 ∤ k≤ 1 2 k2 + 1≤ 1 2 k2 + 3 2T k 4 | k ≤ 1 8 k2 + 1 2 k + 12 | k, 4 ∤ k ≤ 1 8 k2 + 1 2 k + 3 22 ∤ k ≤ 1 8 k2 + 1 2 k + 3 8H d d + 1S n 3K n 2Tabelle 2.2: Anzahl der verschiedenen Eigenwerte bei Standardgraphen2.5 Stabilität und Sortierung der EigenwerteIm Gegensatz zum OPS-Verfahren hat die Reihenfolge der Eigenwerte λ Diffi beim OPT-Verfahren entscheidenden Einfluss <strong>auf</strong> die numerische Stabilität. Sortiert man die Eigenwerte<strong>auf</strong>steigend, so ergeben sich nach wenigen Schritten sehr große Fehler e k . Bei34


2.5 Stabilität und Sortierung der Eigenwerteetwas größeren Graphen können die Werte 10 16 übersteigen, selbst bei moderaten Anfangslastenunter 100. Bei Rechnung <strong>mit</strong> doppelter Genauigkeit liegt dann auch derabschließende Fehler e m−1 über 10 0 , d. h. das Resultat ist völlig unbrauchbar. Sortiertman die Eigenwerte in absteigender Reihenfolge, so nehmen die Fehlerwerte zuerst monotonab. Der abschließende Fehler ist jedoch in vielen Fällen nur knapp unterhalb 10 0 , beigrößeren Graphen lässt sich sogar ein starker Anstieg in den letzten Iterationsschrittenbeobachten.Zur Erzielung besserer Ergebnisse wird in [EFMP99] eine Sortierung ”von der Mittenach außen“ vorgeschlagen, die <strong>auf</strong> Young (1953) zurückgeht.Beispiel 2.22.• SortYoung ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) = (6, 5, 7, 4, 8, 3, 9, 2, 10, 1, 11),• SortYoung ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) = (6, 7, 5, 8, 4, 9, 3, 10, 2, 11, 1, 12)Bei einigen (größeren) Graphen liefert aber auch diese Sortierung unbrauchbare Resultate.Eine Sortierung, die sich für fast alle praktisch relevanten Fälle als sehr gut erwiesenhat, beruht <strong>auf</strong> gewichteten Leja-Punkten [Rei91]. Diese Sortierung wurde zuerst in[EFMP99] <strong>mit</strong> OPT in Verbindung gebracht und in [Els02] bereits näher untersucht.Definition 2.23 (Leja-Punkte). Es sei {a 1 , . . . , a n } eine Menge reeller oder komplexerZahlen und ω : C → R + eine Gewichtsfunktion. Die Permutation π : {1, . . . , n} →{1, . . . , n} sei folgendermaßen definiert: Wähle π(1) so, dassund für j = 2, . . . , n wähle π(j) so, dassj−1∏∣ 1 − a ∣π(j) ∣∣∣ω ( )aa π(j) =π(l)l=1∣ ∣∣a π(1) = maxn|a i| ω (a i )i=1maxi∈{1,...,n}\{π(1),...,π(j−1)}l=1j−1∏∣ 1 −a ia π(l)∣ ∣∣∣ω (a i ) .Bemerkung 2.24. Speichert man in jedem Schritt die betrachteten Produkte zwischen,so beträgt der Aufwand zur Berechnung der Leja-Sortierung O ( n 2) verglichen <strong>mit</strong>O (n log n) bei einfachen Sortierungen.Reichel [Rei91] schlägt als Gewichtsfunktionen ω(z) = 1 und ω(z) = |z| vor. Späterwerden als Verallgemeinerung Funktionen ω(z) = |z| g betrachtet werden. Diese Sortierungenwerden im folgenden <strong>mit</strong> Leja (g) bezeichnet; die beiden Spezialfälle heißen alsoLeja (0) bzw. Leja (1) .Beispiel 2.25. Die folgenden Beispiele zeigen Leja-Sortierungen der Zahlen von 1 bis 12<strong>mit</strong> verschiedenen Gewichtsfunktionen.• Leja (0) ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) = (12, 1, 6, 9, 3, 11, 2, 8, 4, 10, 5, 7)• Leja ( 1 2 ) ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) = (12, 4, 8, 1, 11, 2, 6, 10, 3, 9, 5, 7)35


2 Diffusionsverfahren• Leja (1) ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) = (12, 6, 3, 10, 1, 8, 11, 2, 5, 9, 4, 7)• Leja (10) ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) = (12, 11, 9, 10, 7, 8, 5, 6, 4, 3, 2, 1)Bei größeren Exponenten dominiert die Gewichtsfunktion und die Sortierung wird irgendwannzur absteigenden Sortierung.Wie sich die verschiedenen Sortierungen <strong>auf</strong> die numerische Stabilität auswirken, istanhand zweier beispielhafter Graphen in Abbildung 2.3 dargestellt. Dort sind <strong>auf</strong>steigende,absteigende Sortierung sowie Young- und Leja-Sortierung gegenübergestellt. Mit derLeja-Sortierung werden eindeutig die besten Ergebnisse erzielt; dabei steigt der Fehlerbei Leja (0) im Gegensatz zu Leja (1) anfangs zwar an, der abschließende Fehler ist aber inden Beispielen wie in der Regel <strong>mit</strong> Leja (0) etwas geringer.Nachdem gezeigt wurde, dass das OPT-Verfahren <strong>mit</strong> der Leja-Sortierung die bestenResultate liefert, soll dieses nun <strong>mit</strong> dem (bei exakter Rechnung äquivalenten) OPS-Verfahren verglichen werden. Wie aus Abbildung 2.4 ersichtlich ist, liefern die beidenVerfahren für praktisch relevante Graphen in etwa gleich gute Ergebnisse. Lediglich beiextrem großen Graphen wie dem 24 × 24-Gitter zeigt sich die Überlegenheit von OPS.Neben solchen besonders strukturierten Graphen werden in Abbildung 2.4 auch zweiZufallsgraphen betrachtet. Die Diagramme zeigen, dass bei ”dünnen“ Zufallsgraphen,insbesondere bei Zufallsbäumen, alle bisher betrachteten Verfahren numerische Problemehaben.2.6 FlüsseIn den bisher besprochenen Algorithmen ist neben der Gleichverteilung der Last jeweilsauch schon der dazugehörende ausgleichende Fluss <strong>mit</strong> bestimmt worden. In [DFM99]und [HB99] ist nachgewiesen worden, dass diese Flüsse in der l 2 -Norm minimal sind.Man könnte sich nun fragen, ob ein l 1 - oder l ∞ -minimaler Fluss nicht ”besser“ wäre.Ein l 1 -minimaler Fluss bewirkt, dass die Last entlang kürzester Wege verschoben wird,l ∞ -Minimalität bedeutet, dass der maximale Fluss über jede einzelne Kante möglichstklein ist. Die l 2 -Minimalität stellt einen guten Kompromiss zwischen diesen Alternativendar und kostet keinerlei zusätzliche Rechenzeit. Vergleiche hierzu auch Abbildung 2.2.04 414 424 40 0112 28 04l 1 -minimal8 03l 2 -minimal8 02l ∞ -minimalAbbildung 2.2: l 1 -, l 2 - und l ∞ -minimaler Fluss am Beispiel des Zyklus C 436


2.6 FlüsseP 32, <strong>auf</strong>steigend10 1610 1410 1210 1010 810 610 410 210 010 −20 5 10 15 20 25 30 3510 310 210 110 00 5 10 15 20 25 30 3510 −1P 32, absteigendP 32, Young10 410 210 010 −210 −410 −610 −80 5 10 15 20 25 30 35P 32, Leja (0)10 410 210 010 −210 −410 −610 −810 −1010 −1210 −140 5 10 15 20 25 30 35P 32, Leja (1)G 12, <strong>auf</strong>steigend10 2010 1510 1010 510 00 10 20 30 40 50 60 70G 12, absteigend10 710 610 510 410 310 210 110 010 −10 10 20 30 40 50 60 70G 12, Young10 810 610 410 210 010 −210 −410 −60 10 20 30 40 50 60 70G 12, Leja (0)10 410 210 010 −210 −410 −610 −80 10 20 30 40 50 60 70G 12, Leja (1)10 210 010 −210 −410 −610 −810 −1010 −120 5 10 15 20 25 30 3510 2 0 10 20 30 40 50 60 7010 010 −210 −410 −610 −8Abbildung 2.3: Numerische Stabilität bei verschiedenen Sortierungen der Eigenwerte amBeispiel des Pfades P 32 und des Gitters G 12 ; dargestellt ist der Fehlernach jedem Schritt des Verfahrens37


2 DiffusionsverfahrenP 810 210 010 −210 −410 −610 −810 −1010 −1210 −140 1 2 3 4 5 6 7 8P 3210 210 010 −210 −410 −610 −810 −1010 −120 5 10 15 20 25 30C 1610 210 010 −210 −410 −610 −810 −1010 −1210 −140 1 2 3 4 5 6 7 8 9C 25610 210 010 −210 −410 −610 −810 −1010 −120 20 40 60 80 100 120G 810 210 010 −210 −410 −610 −810 −100 5 10 15 20 25 30 35G 2410 410 210 010 −210 −410 −610 −810 −1010 −1210 −140 50 100 150 200 250T 1610 210 010 −210 −410 −610 −810 −1010 −1210 −140 5 10 15 20 25 30 35 40T 3210 410 210 010 −210 −410 −610 −810 −1010 −1210 −140 20 40 60 80 100 120 140H 610 210 010 −210 −410 −610 −810 −1010 −1210 −140 1 2 3 4 5 6 7S 1610 210 010 −210 −410 −610 −810 −1010 −1210 −1410 −160 0.5 1 1.5 210 310 210 110 00 5 10 15 20 2510 −1R 32,31R 32,12810 210 010 −210 −410 −610 −810 −1010 −1210 −140 5 10 15 20 25 30Abbildung 2.4: Vergleich von OPS (durchgezogene Linie) und OPT (gestrichelt)38


3 <strong>Dimension</strong>-Exchange-VerfahrenIn diesem Kapitel wird gezeigt, wie man aus den Diffusionsverfahren des letzten Kapitelssowie einigen vorhandenen Ansätzen zu <strong>Dimension</strong>-Exchange-Verfahren erster Ordnungneue Algorithmen konstruieren kann. Diese neuen Verfahren werden danach <strong>mit</strong> ihrenDiffusionsgegenstücken verglichen. Besondere Aufmerksamkeit wird dabei der Frage geschenkt,inwieweit man auch hier Eigenwerte <strong>mit</strong> einfachen Formeln berechnen kann undwie die Flüsse bei den neuen Verfahren aussehen.3.1 Motivation und Einfärbung von GraphenBei den Diffusionsverfahren wird davon ausgegangen, dass jeder Prozessor in einemSchritt <strong>mit</strong> allen benachbarten Prozessoren gleichzeitig kommuniziert, d. h. Diffusionsverfahrensind <strong>auf</strong> das All-Port-Modell spezialisiert. Bei den meisten <strong>Parallelrechnern</strong>ist dies jedoch nicht möglich. Stattdessen muss ein Prozessor nacheinander <strong>mit</strong> seinenNachbarn kommunizieren (One-Port-Modell). Aus diesem Grund ist es sinnvoll, die einzelnenSchritte der Verfahren weiter <strong>auf</strong>zuteilen in Teilschritte, ein Teilschritt für jedenNachbarn. In jedem Teilschritt können dann die aktuellen Informationen aus dem jeweilsletzten Teilschritt verwendet werden.Dieses Vorgehen wurde von Cybenko in [Cyb89] zuerst für den Hypercube vorgeschlagen.Ein Teilschritt entspricht dann genau einer Richtung oder <strong>Dimension</strong>, er umfasstalso alle parallelen Kanten. Daher wird das Verfahren als <strong>Dimension</strong> Exchange bezeichnet.Es sei i ein Knoten eines Hypercubes H d und nachbar(i, l) der Nachbar von i inder <strong>Dimension</strong> l, (bei geeigneter Nummerierung der Knoten unterscheiden sich i undnachbar(i, l) genau im l-ten Bit). Da<strong>mit</strong> ergibt sich das in Algorithmus 3.1 aus Sicht desKnotens i dargestellte Verfahren:for k = 1, 2, . . . dofor l = 1, . . . , d doend forend forw k−1+ l di= (1 − α) wl−1k−1+ di+ αwl−1k−1+ dnachbar(i,l)Algorithmus 3.1: <strong>Dimension</strong> Exchange für den Hypercube H d für Prozessor iIn [Cyb89] wird gezeigt, dass für α = 1 2 ein Schritt ausreicht, d. h. es ist w1 = w.39


3 <strong>Dimension</strong>-Exchange-VerfahrenBeim Hypercube werden die einzelnen Teilschritte durch die verschiedenen <strong>Dimension</strong>en(Richtungen der Kanten) festgelegt. Will man den <strong>Dimension</strong>-Exchange-Ansatz<strong>auf</strong> beliebige Graphen übertragen, so muss sichergestellt werden, dass jeder Prozessorpro Teilschritt nur <strong>mit</strong> höchstens einem Nachbarn kommuniziert. Dies wird durch eineEinfärbung der Kanten erreicht. Diese Idee findet sich bereits in [HLM + 90] und [XL92].Definition 3.1. Eine Einfärbung der Kanten (kurz Einfärbung) des Graphen G = (V, E)<strong>mit</strong> c Farben ist eine Aufteilung der Kantenmenge E in c paarweise disjunkte, nicht-leereTeilmengen E i ,E = E 1 ∪ · · · ∪ E c ,wobei für jedes E i gilt, dass keine zwei Kanten aus E i <strong>mit</strong> demselben Knoten inzidentsind.Die Anzahl der zur Einfärbung verwendeten Farben bestimmt die Anzahl der Teilschrittepro komplettem Schritt und beeinflusst so die Gesamtl<strong>auf</strong>zeit der Verfahren. Esstellt sich also die Frage, wie viele Farben notwendig sind, um einen gegebenen Grapheneinzufärben.Definition 3.2. Es sei G = (V, E) ein Graph. Der chromatische Index von G ist definiertals die minimale Anzahl von Farben, die notwendig ist, um die Kanten von G gemäßDefinition 3.1 einzufärben. Der chromatische Index wird <strong>mit</strong> χ ′ (G) bezeichnet.Der folgende Satz, dessen Beweis z. B. in [FW78] zu finden ist, gibt nun Antwort <strong>auf</strong>obige Frage.Satz 3.3. Es sei G ein Graph <strong>mit</strong> maximalem Grad ϱ. Dann gilt für den chromatischenIndex von Gϱ ≤ χ ′ (G) ≤ ϱ + 1 .Wie in [Arj82] festgestellt wird, ist das Problem der Bestimmung einer Einfärbung ausϱ Farben, falls diese existiert, jedoch NP-vollständig. Eine Einfärbung <strong>mit</strong> ϱ + 1 Farbenist dagegen in polynomialer Zeit berechenbar.3.2 Matrizen für gefärbte GraphenDefinition 3.4. Es sei G = (V, E) ein Graph <strong>mit</strong> Einfärbung E 1 , . . . , E c . Diese Färbungdefiniert Teilgraphen G i = (V, E i ), i = 1, . . . , c. Die Diffusions- und Laplace-Matrizenzu G i werden <strong>mit</strong> M i bzw. L i bezeichnet. Die Inzidenzmatrix A i ∈ {0; 1; −1} n×N erhältman, indem man alle Spalten von A, die nicht zur Farbe i gehören, durch Nullspalten ersetzt;im Gegensatz zur üblichen Definition einer Inzidenzmatrix werden die Nullspaltenhier also nicht entfernt.Graph-Beispiel 3.5.Farbe 1 Farbe 21 2340


3.2 Matrizen für gefärbte GraphenE 1 = {{1, 2}} E 2 = {{2, 3}}⎛ ⎞⎛ ⎞1 00 0A 1 = ⎝−1 0⎠ A 2 = ⎝0 1 ⎠0 00 −1⎛⎞⎛1 − α α 01 0 0⎞M 1 = ⎝ α 1 − α 0⎠ M 2 = ⎝0 1 − α α ⎠0 0 10 α 1 − α⎛ ⎞⎛ ⎞1 −1 00 0 0L 1 = ⎝−1 1 0⎠ L 2 = ⎝0 1 −1⎠0 0 00 −1 1Das folgende sofort herleitbare Lemma fasst einige Eigenschaften der neu eingeführtenMatrizen zusammen.Lemma 3.6. Für die Laplace- und Inzidenzmatrizen der Teilgraphen gilt:L i = A i A T ic∑A = A Diff =L Diff =i=1c∑i=1A iL iA i A T j = 0 für i ≠ jDie neu einzuführenden Verfahren beruhen alle dar<strong>auf</strong>, die Diffusionsmatrizen dereinzelnen Farben hintereinander <strong>auf</strong> den Lastvektor anzuwenden. Um eine möglichstkompakte Notation zu ermöglichen, werden die folgenden Matrizen eingeführt.Definition 3.7. Es seien M 1 , . . . , M c die Diffusionsmatrizen der Teilgraphen zu jeweilseiner Farbe. Dann werden die folgenden Matrizen definiert:M DE = M c · · · M 1M SDE = M 1 · · · M c · M c · · · M 1 = M DET M DEL DE = 1 (I − M DE)αL SDE = 1 (I − M SDE)αHierbei steht (S)DE für (symmetrisches) <strong>Dimension</strong> Exchange.41


3.4 Ein erstes <strong>Dimension</strong>-Exchange-Verfahren: DE-FOSM DE verwendet, Algorithmus 3.3 enthält die einzelnen Teilschritte inklusive der Berechnungdes Flusses. Dieses Verfahren ist nicht neu, es wurde erstmalig in [HLM + 90] fürfor k = 1, 2, . . . dow k = M DE w k−1end forAlgorithmus 3.2: DE-FOS-Verfahren, Matrix-Versionx = 0for k = 1, 2, . . . doŵ 0 = w k−1for j = 1, . . . , c do {Farbschleife}ŵ j = M j ŵ j−1x = x + αA T j ŵj−1end forw k = ŵ cend forAlgorithmus 3.3: DE-FOS-Verfahren, Version <strong>mit</strong> der Schleife über die Farbenden Spezialfall α = 1 2beschrieben. Xu und Lau haben das Verfahren für beliebiges αunter dem Namen Generalized <strong>Dimension</strong> Exchange Method (GDE) in [XL92, XL95] beschriebenund näher untersucht. Aus Gründen der Systematik wird hier die BezeichnungDE-FOS verwendet. Das wichtigste Resultat aus [XL95] ist in folgendem Satz zusammengefasst.(Hier wie auch im Rest dieses Abschnittes wird eine konkrete Einfärbungder Graphen vorausgesetzt, die später erklärt wird.)Satz 3.11. Der optimale Wert für α beim DE-FOS-Verfahren, der den zweitgrößtenEigenwert γ(M DE ) minimiert, ist für den Pfad P k , den Zyklus C 2k sowie das Gitter G k,lund den Torus T 2k,2l <strong>mit</strong> k > lα opt =11 + sin ( )π.kDie symmetrische Variante, SDE-FOS erhält man, indem man die Matrix M SDE stattM DE verwendet. Wie in Algorithmus 3.4 ersichtlich ist, müssen die Farben pro Schrittzweimal durchl<strong>auf</strong>en werden, einmal vorwärts und einmal rückwärts. Zum SDE-FOS-Verfahren gibt es noch keine <strong>mit</strong> Satz 3.11 vergleichbaren theoretischen Ergebnisse. Experimentehaben jedoch folgendes gezeigt:Beobachtung 3.12. Das SDE-FOS-Verfahren konvergiert am schnellsten für α = 1 2 . Indiesem Fall unterscheidet sich das Konvergenzverhalten kaum von DE-FOS. Allerdingsbesteht ein Schritt des SDE-FOS aus doppelt so vielen Teilschritten wie bei DE-FOS.43


3 <strong>Dimension</strong>-Exchange-VerfahrenAußerdem sind die Resultate bei DE-FOS für α = 1 2<strong>mit</strong>unter noch recht weit vom Optimumentfernt, vergleiche hierzu auch Tabelle 3.1. Beim einfachen First-Order-Schemeist die symmetrische Variante also nicht konkurrenzfähig.x = 0for k = 1, 2, . . . doŵ 0 = w k−1for j = 1, . . . , c do {1. Farbschleife (vorwärts)}ŵ j = M j ŵ j−1x = x + αA T j ŵj−1end forfor j = c, . . . , 1 do {2. Farbschleife (rückwärts)}ŵ 2c−j+1 = M j ŵ 2c−jx = x + αA T j ŵ2c−jend forw k = ŵ 2cend forAlgorithmus 3.4: SDE-FOS-Verfahren, Version <strong>mit</strong> den Schleifen über die FarbenIn der Regel ist DE-FOS sogar schneller als SOS und Čebyšev, siehe Tabelle 3.1. Allerdingssollte man hierbei nicht übersehen, dass die Bestimmung des optimalen Wertesvon α für Graphen, über die Satz 3.11 keine Aussage trifft (z. B. der T 7 ), <strong>auf</strong>wändig seinkann.Graph FOS SOS Čebyšev DE-FOS DE-FOS SDE-FOSα = α opt α = 1 2α = 1 2C 12 48 17 14 6 23 23G 8 173 33 27 9 44 44T 8 47 17 14 4 10 10T 7 34 14 12 6 8 9Tabelle 3.1: Anzahl der Schritte verschiedener Verfahren an vier Beispielgraphen beijeweils identischer, zufälliger AusgangslastverteilungIn Abbildung 3.1 ist an Hand von vier Graphen dargestellt, wie die Anzahl der benötigtenSchritte bei verschiedenen Verfahren von α abhängt. Da globale Kommunikationwährend des Abl<strong>auf</strong>s der Verfahren grundsätzlich vermieden werden soll, wird die Anzahlder Schritte im Voraus (nach einer globalen Summe) <strong>mit</strong> <strong>Hilfe</strong> einer Fehlerabschätzungberechnet. Die Ausgangslastverteilung war zufällig, aber für alle Testfälle identisch —am Ende sollte jeder Knoten 100 Lasteinheiten haben. Bei den Diffusionsverfahren darfα nicht größer werden als der Kehrwert des maximalen Knotengrades, da die Diffusionsmatrizensonst negative Diagonalelemente hätten.44


3.4 Ein erstes <strong>Dimension</strong>-Exchange-Verfahren: DE-FOS14012010080604020200150100C 12FOSSOSČebyševDE-FOSSDE-FOS00 0.2 0.4 0.6 0.8 1G 8FOSSOSČebyševDE-FOSSDE-FOS5014012010000 0.2 0.4 0.6 0.8 180604020140120100T 8FOSSOSČebyševDE-FOSSDE-FOS00 0.2 0.4 0.6 0.8 180604020T 7FOSSOSČebyševDE-FOSSDE-FOS00 0.2 0.4 0.6 0.8 1Abbildung 3.1: Anzahl der benötigten Schritte verschiedener Verfahren in Abhängigkeitvom Parameter α anhand von vier Beispielen45


3.5 Endliche <strong>Dimension</strong>-Exchange-VerfahrenDer Eigenwert ϱ ( M (S)DE) = 1 ist laut [HJ85, Th. 8.4.4] einfach, falls die Matrix M (S)DEirreduzibel ist.Für eine beliebige Matrix A = (a ij ) definiere struct(A) = {(i, j) | a ij ≠ 0} die Strukturvon A. Es ist M DE = M c · · · M 1 , wobei alle M i wegen α ∈ (0, 1) nicht-negativ sind undpositive Diagonalelemente haben. Da<strong>mit</strong> ist struct ( M DE) ⊇ struct (M i ) für i = 1, . . . , cund es folgt(struct M DE) ⊇ struct (M c + · · · + M 1 )= struct (L c + · · · + L 1 )= struct(L)= struct(M) .Es ist M DE also irreduzibel, sofern der zugrunde liegende Graph zusammenhängend ist.Wegen M SDE = ( M DE) T M DE ist diese Matrix ebenfalls irreduzibel.Das nachfolgende Lemma stellt sicher, dass die Iteration <strong>mit</strong> der Matrix M DE , obwohldiese unsymmetrisch ist, wie im Diffusionsfall nur <strong>auf</strong> dem orthogonalen Komplementvon w arbeitet.Lemma 3.13. Es sei z 1 = e = (1, . . . , 1) T und z ein weiterer Eigenvektor von M DE zumEigenwert µ ≠ 1. Dann stehen z 1 und z senkrecht <strong>auf</strong>einander.Beweis. Da M DE doppelt stochastisch ist, ist M DEH z 1 = z 1 . Dann gilt:( ) ( Hz H z 1 = z H M DEH z 1 = M z) DE z1 = µz H z 1Wegen µ ≠ 1 ist also 〈z 1 , z〉 = 0.Da<strong>mit</strong> lässt sich Lemma 2.14 (w = z 1 ) <strong>auf</strong> die Matrix M DE übertragen und folgenderSatz wird exakt so bewiesen wie Satz 2.18.Satz 3.14. Das DE-OPT-Verfahren endet nach m−1 Iterationsschritten <strong>mit</strong> w m−1 = w,wobei m die Anzahl paarweise verschiedener Eigenwerte von M DE ist.Als nächstes Verfahren wird DE-OPS betrachtet, vergleiche AlgorithmusInnenprodukt wird analog zum Diffusions-OPS〈p, q〉 =m∑j=2ω j p(µ DEj )q(µ DEj )3.7. Alsverwendet <strong>mit</strong> ω j = 1 − µ DEj . Die Berechnung der α k , β k und γ k wird ohne Änderungaus den Gleichungen (2.2) bis (2.4) übernommen.Satz 3.15. Das DE-OPS-Verfahren endet nach m−1 Iterationsschritten <strong>mit</strong> w m−1 = w,wobei m die Anzahl paarweise verschiedener Eigenwerte von M DE ist; es kann jedochvorkommen, dass das Verfahren in der Vorbereitungsphase bei der Berechnung eines α k<strong>mit</strong> einer Division durch 0 abbricht.47


3 <strong>Dimension</strong>-Exchange-Verfahrenŵ 0 = w 0ˆx 0 = 0for j = 1, . . . , c do {Schleife über die Farben}ŵ j = M j ŵ j−1ˆx j = ˆx j + αA T j ŵj−1end forw 1 = 1 [γ α1 1w 0 − ŵ c]x 1 = − 1 γ 1ˆx cfor k = 2, . . . , m − 1 doŵ 0 = w k−1ˆx 0 = x k−1for j = 1, . . . , c do {Schleife über die Farben}ŵ j = M j ŵ j−1ˆx j = ˆx j + αA T j ŵj−1end forw k = 1 [γ αk kw k−1 − ŵ c − β k w k−2]x k = 1 [γ αk kx k−1 − ˆx c − β k x k−2]end forAlgorithmus 3.7: DE-OPS-VerfahrenBeweis. Zu zeigen ist, dass p m−1 (µ DEi ) = 0 ist für i = 2, . . . , m. Denn <strong>mit</strong> der üblichenZerlegung der Anfangslast w 0 in Eigenvektoren z i von M DE erhält man dannm∑w m−1 = p m−1 (M DE )w 0 = p m−1 (M DE ) z i =i=1m∑p m−1 (µ i )z i = z 1 = w .i=1Zunächst werden die Polynome <strong>mit</strong> dem Faktor γ k skaliert, was <strong>auf</strong> folgende neue Rekursionführt.<strong>mit</strong>ˆp 0 (t) = 1ˆp 1 (t) = (α 1 − t) ˆp 0 (t)ˆp k (t) = (α k − t) ˆp k−1 (t) − ˆβ k ˆp k−2 (t), k = 2, . . . , m − 1α k = 〈tˆp k−1, ˆp k−1 〉〈ˆp k−1 , ˆp k−1 〉 , k = 1, . . . , m − 1ˆβ k =β k= 〈ˆp k−1, ˆp k−1 〉γ k−1 〈ˆp k−2 , ˆp k−2 〉 , k = 2, . . . , m − 1 .Ersetze nun die Polynome ˆp k durch Vektoren f k ∈ R m−1 , f k = ( p k (µ DE2 ), . . . , p k(µ DEm ) ) T .Definiere außerdem M = diag(µ DE2 , . . . , µDE m ), Ω = I − M = diag(ω 2 , . . . , ω m ) und die48


3.5 Endliche <strong>Dimension</strong>-Exchange-VerfahrenBilinearform 〈f, g〉 = ∑ mj=2 ω jf j g j = f T Ωg. Da<strong>mit</strong> erhalten wir eine neue Rekursion fürdie Vektoren f k :<strong>mit</strong>f 0 = (1, . . . , 1) Tf 1 = (α 1 I − M) f 0f k = (α k I − M) f k−1 − ˆβ k f k−2 , k = 2, . . . , m − 1α k = 〈Mf k−1, f k−1 〉〈f k−1 , f k−1 〉= f k−1 T MΩf k−1fk−1 T Ωf , k = 1, . . . , m − 1k−1ˆβ k = 〈f k−1, f k−1 〉〈f k−2 , f k−2 〉 = f k−1 T Ωf k−1fk−2 T Ωf , k = 2, . . . , m − 1k−2Da M DE eine reelle Matrix ist, sind die Eigenwerte µ DEi und die ω i entweder reell oder sietreten in komplex konjugierten Paaren <strong>auf</strong>. Folglich sind die Produkte 〈f, f〉 und 〈Mf, f〉reell – allerdings können sie negativ oder null werden. Im Falle 〈f k−1 , f k−1 〉 = 0 brichtder Algorithmus ab. Im folgenden wird davon ausgegangen, dass kein solcher Break-down<strong>auf</strong>tritt. Dann kann man leicht nachweisen, dass 〈f k , f l 〉 = 0 ist für k ≠ l. Außerdemist keiner der Vektoren f 0 , . . . , f m−2 der Nullvektor, denn sonst gäbe es ein Polynomvom Grad k ≤ m − 2 <strong>mit</strong> m − 1 Nullstellen. Also muss f m−1 = 0 sein, was den Beweisabschließt.Bemerkung 3.16. Bei der Rekursion für die Vektoren f k im letzten Beweis handelt essich um nichts anderes als das komplex symmetrische Lanczos-Verfahren [CW85]. Esberechnet MF = F J <strong>mit</strong> F = (f 0 · · · f m−1 ) und J = tridiag(−1, α i , − ˆβ i+1 ).Auf den Abdruck der Verfahren SDE-OPT sowie SDE-OPS wird hier verzichtet, diealgorithmischen Unterschiede zu den unsymmetrischen Varianten ähneln denen zwischenDE-FOS (Alg. 3.3) und SDE-FOS (Alg. 3.4). Da die Matrix M SDE symmetrisch ist, ist sieim Gegensatz zu M DE <strong>auf</strong> jeden Fall diagonalisierbar und es treten keinerlei komplexeZahlen <strong>auf</strong>. Die Beweise für die Korrektheit von SDE-OPT und SDE-OPS stimmen exakt<strong>mit</strong> denen für OPT und OPS überein, da auch hier in beiden Fällen eine symmetrischeMatrix verwendet wird.Wie bei den Diffusionsverfahren auch wird zukünftig die Abkürzung DE-OPX für einbeliebiges der beiden Verfahren DE-OPS bzw. DE-OPT benutzt, entsprechendes gilt fürSDE-OPX.3.5.1 DE-OPT im nicht-diagonalisierbaren FallBisher ist nicht bekannt, ob überhaupt Graphen und Kantengewichte existieren, so dassM DE nicht diagonalisierbar ist. Dennoch soll in diesem Abschnitt gezeigt werden, dass dasDE-OPT-Verfahren so modifiziert werden kann, dass es auch dann noch eine Gleichverteilungberechnet. Allerdings muss dann statt der Eigenwerte von M DE deren Jordan-Form49


3 <strong>Dimension</strong>-Exchange-Verfahrenbekannt sein. Da diese numerisch jedoch kaum zu berechnen ist, ist dieser Abschnitt ehervon theoretischem Wert.Sei nun X ∈ R n×n die Matrix, die M DE <strong>auf</strong> Jordan-Gestalt transformiert, d. h.⎛J r1 (µ 1 )X −1 M DE X = ⎝⎛⎞⎞µ k 1. .. ... . ..⎠ <strong>mit</strong> J rk (µ k ) = ⎜⎝. ⎟ .. 1 ⎠ ∈ Cr k×r kJ rl (µ l )µ k<strong>mit</strong> µ 1 = 1 und r 1 = 1. Analog zu den Eigenvektoren im diagonalisierbaren Fall existierennun verallgemeinerte Eigenvektoren z i,j <strong>mit</strong> ( M DE − µ DEi I ) j zi,j = 0 für i = 1, . . . , lund j = 1, . . . , r i . Diese stehen senkrecht <strong>auf</strong> der Gleichverteilung, wie folgende Verallgemeinerungvon Lemma 3.13 zeigt:Lemma 3.17. Es sei z 1,1 = e = (1, . . . , 1) T und z ein weiterer verallgemeinerter Eigenvektorvon M DE zum Eigenwert µ ≠ 1. Dann stehen z 1 und z senkrecht <strong>auf</strong>einander.Beweis. Da M DE doppelt stochastisch ist, gilt wieder M DEH z 1,1 = z 1,1 .[]z H z 1,1 = z H 1() j(1 − µ) j M DEH − µI z1,1=[= 0]1(Hj(1 − µ) j M DE − µI)z z 1,1Es sei nun wie üblich m die Anzahl verschiedener Eigenwerte. Zu jedem Eigenwert µ DEk ,k = 1, . . . , m bezeichne s k die <strong>Dimension</strong> des größten Jordanblock zu µ DEk. Der DE-OPT-Algorithmus muss nun so verändert werden, dass jeder Eigenwert µ DEkbzw. λ DEkmehrfachentsprechend seiner maximalen Vielfachheit s k in einem Jordanblock angewandt wird,vergleiche Algorithmus 3.8.for k = 1, . . . , m − 1 dow k,0 = w k−1for j = 1, . . . , s kw k,j =end forw k = w k,s kend for( do )I − 1 L DE w k,j−1λ DEk+1Algorithmus 3.8: DE-OPT-Verfahren für den nicht-diagonalisierbaren Fall50


3.6 Eigenwerte gefärbter GraphenZur Korrektheit des Algorithmus ist zunächst anzumerken, dass ein verallgemeinerterEigenvektor z von M DE zum Eigenwert µ auch ein verallgemeinerter Eigenvektor vonL DE zum Eigenwert λ <strong>mit</strong> µ = 1 − αλ ist, denn( ) [ j 1(L DE − λI z = I − M DE) − 1 ] jα α (1 − µ) I z=(− 1 α) j (M DE − µI) jz= 0 falls(M DE − µI) jz = 0 .Schreibt man nun die Anfangsverteilung in der Form w 0 = ∑ mdann berechnet Algorithmus 3.8also die Gleichverteilung.w m−1 ===1∏k=m−11∏k=m−1m∑ ∑s i((I − 1λ DEk+1I − 1i=1 j=1 k=m−1= z 1,1 ,1∏λ DEk+1(L DE ) skw 0L DE ) ski=1 j=1i=1∑ m∑s iz i,j)I − 1skλ DE L DE z i,jk+1∑ sij=1 z i,j <strong>mit</strong> z 1,1 = w3.6 Eigenwerte gefärbter GraphenDer Aufwand für die im vorigen Abschnitt beschriebenen Verfahren hängt ab von der Anzahlder verschiedenen Eigenwerte. Diese Anzahl wiederum ist abhängig von der konkretgewählten Einfärbung. Bei den Diffusionsvarianten war von Vorteil, dass die Eigenwertevieler Standardgraphen bekannt sind und nicht <strong>auf</strong>wändig berechnet werden müssen.Ziel dieses Abschnittes ist es, nicht nur die Anzahl der Eigenwerte gefärbter Graphen zuer<strong>mit</strong>teln sondern nach Möglichkeit auch die Eigenwerte selbst zu bestimmen.3.6.1 Mathematische GrundlagenZur Untersuchung der Eigenwerte benötigt man Kroneckerprodukte und zirkulante Matrizen.Deren Verwendung im Zusammenhang <strong>mit</strong> Matrizen gefärbter Graphen wurdezuerst vorgeschlagen in [XL95].51


3 <strong>Dimension</strong>-Exchange-VerfahrenDefinition 3.18. Es seien A 1 , A 2 , . . . , A m quadratische Matrizen der Größe r × r. Eineblockzirkulante Matrix hat dann die Form⎛⎞A 1 A 2 · · · A mA m A 1 . . . A m−1Φ (A 1 , . . . , A m ) = ⎜⎝.. . ..⎟. ⎠ .A 2 A 3 · · · A 1Die Eigenwerte einer blockzirkulanten Matrix lassen sich, falls die Blockgröße r kleingenug ist, relativ leicht berechnen.Lemma 3.19 ([XL95, Lemma 3.1]). Es sei A = Φ (A 1 , . . . , A m ) eine blockzirkulanteMatrix. Die Eigenwerte von A sind gleich der Vereinigung aller Eigenwerte der folgendenMatrizen A (0) , . . . , A (m−1) . Hierbei ist für j = 0, . . . , m − 1:A (j) =m∑k=1ω (k−1)j A k <strong>mit</strong> ω = e i 2π m = cos2πm + i sin 2π mAußerdem wird noch eine Aussage über die Eigenwerte von Kroneckerprodukten (sieheDefinition 1.11) benötigt.Lemma 3.20 ([HJ91, Theorem 4.2.12]). Es sei A ∈ C p×p und B ∈ C r×r . Sind λund µ Eigenwerte von A bzw. B <strong>mit</strong> zugehörigen Eigenvektoren x und y, dann ist λµEigenwert von A ⊗ B <strong>mit</strong> Eigenvektor x ⊗ y. Jeder Eigenwert von A ⊗ B lässt sich alsein solches Produkt schreiben.3.6.2 Die Bedeutung von α = 1 2Die Anzahl der Eigenwerte und da<strong>mit</strong> die L<strong>auf</strong>zeit der Verfahren hängt entscheidenddavon ab, wie der Wert α gewählt wird. Für α = 1 2ist die Anzahl der EigenwerteBeobachtungen zufolge im Allgemeinen geringer als für alle anderen Werte. Währenddies in den nächsten Abschnitten für bestimmte Graphen näher betrachtet wird, sollhier zunächst eine allgemeine Erklärung gegeben werden.Die zu den Teilgraphen G i = (V, E i ) gehörenden Matrizen M i haben die Gestalt⎛⎞1 − α αα 1 − α ... M i = P1 − α αα 1 − αP T ,⎜⎟⎝⎠1 ...1<strong>mit</strong> N i = |E i | Blöcken ( )1−α αα 1−α , wobei P irgendeine Permutation ist. Setzt man α =)1, so dass M i da<strong>mit</strong> N i -mal den Eigenwert 0 hat.(2 , wird aus diesen Blöcken 12121212Insgesamt haben M DE und M SDE also den Eigenwert 0 mindestens <strong>mit</strong> VielfachheitN max := max i=1,...,c N i . Die Gesamtzahl der Eigenwerte ist demzufolge m ≤ n−N max +1.52


3.6 Eigenwerte gefärbter Graphen3.6.3 Zyklus C n <strong>mit</strong> geradem nDer am leichtesten zu untersuchende Fall ist der Zyklus C n <strong>mit</strong> geradem n. Hier genügenzwei Farben. Die Kante {1, 2} soll die Farbe 1 erhalten, vgl. Abb. 3.2.1 2 3 4 5 6(1)(2)Abbildung 3.2: Einfärbung des Zyklus C 2kDie zu den Teilgraphen G 1 und G 2 gehörenden Diffusionsmatrizen haben die Gestalt⎛⎞1 − α αα 1 − α1 − α αM 1 =α 1 − α ... ,. .. ⎜⎟⎝1 − α α ⎠α 1 − α⎛⎞1 − α α1 − α αα 1 − α ... M 2 =. .. .⎜1 − α α⎟⎝α 1 − α ⎠α1 − αDann hat die Produktmatrix M DE = M 2 · M 1 die Form⎛⎞A B C BB A B CC B A BB AM DE =C B . . . . .. B CA B⎜B A B C⎟⎝C B A B⎠B C B A<strong>mit</strong> A = (1 − α) 2 , B = α (1 − α), C = α 2 . Man sieht, dass M DE eine blockzirkulanteMatrix ist. Es gilt nämlich(M DE = Φ A 1 , . . . , A n2)53


3 <strong>Dimension</strong>-Exchange-Verfahren<strong>mit</strong>( ) ( )A B0 0A 1 = , AB A 2 =B C( ) C B, A 3 = . . . = A n2 −1 = 0 , A n = .2 0 0Für die Matrizen A (j) , j = 0, . . . , n 2− 1 aus Lemma 3.19 erhält man da<strong>mit</strong>( (A (j) = A 1 + ω j A 2 + ω −j A + C cA n = (j) − is (j)) B ( 1 + c (j) − is (j)) )2 B ( 1 + c (j) + is (j)) A + C ( c (j) + is (j))<strong>mit</strong> c (j) = cos 4πjnund s(j) = sin 4πjn. Das charakteristische Polynom dieser Matrix lautet(χ (j) (t) = t 2 − 2 (1 − α) 2 + 2α 2 c (j)) t + (1 − 2α) 2 .Dessen Nullstellen und da<strong>mit</strong> die Eigenwerte von M DE sind:√t (j)1,2 = (1 − α)2 + α 2 c (j) ± α α 2 − 4α + 2 + 2 (α − 1) 2 c (j) + α ( 2 c (j)) 2 ,j = 0, . . . ,n2 − 1(3.1)Die Anzahl verschiedener Nullstellen m hängt also ab von den c (j) und von α. Es wirdim Folgenden nicht berücksichtigt, dass für bestimmte Werte von α zufällig Eigenwertezusammenfallen können. Zunächst sei α ≠ 1 2 .1. Fall: n ist durch 4 teilbar: Dann giltc (j) = cos 4πjn= cos 4π ( n2 − j) = c ( n 2 −j)nfür j = 1, . . . , n 4 −1. Zu c( n 4 ) = −1 gibt es einen doppelten Eigenwert t ( n 4 )1,2 = 1−2α.Da es für jedes c (j) , j = 1, . . . , n 4− 1 zwei Nullstellen in (3.1) gibt, erhält maninsgesamt m = n − 2 ( n4 − 1) − 1 = n 2 + 1.2. Fall: n nicht durch 4 teilbar: In diesem Fall ist c (j) = c ( n 2 −j) für j = 1, . . . , n−24undda<strong>mit</strong> m = n − 2 ( )n−24 =n2 + 1.Im Falle α = 1 2wird aus Gleichung (3.1):t (j)1 = 1 2 + 1 2 c(j) , t (j)2 = 0Hier fällt <strong>auf</strong>, dass die Diffusionsmatrix M Diff für einen Zyklus der Länge n 2 <strong>mit</strong> α = 1 4genau dieselben Eigenwerte hat, ggf. ohne die 0. Man kann sogar nachrechnen, dassM Diff = ( L T 1 M )2L 1 ⊗ (1 00 0 ) gilt, wobei M 1 = L 1 L T 1 die Cholesky-Zerlegung von M 1 ist.Die Anzahl m der Eigenwerte halbiert sich für α = 1 2also ungefähr gegenüber dem Fallα ≠ 1 2 . Für 4 | n ist zu berücksichtigen, dass 0 für α ≠ 1 2auch schon ein Eigenwert war, für4 ∤ n kommt 0 als zusätzlicher Eigenwert hinzu. Da<strong>mit</strong> ist m = 1 ·( n2 2 + 1 − 1) +1 = n 4 +1für durch 4 teilbares n und m = 1 ( n2 2 + 1) + 1 = n 4 + 3 2im andern Fall.54


3.6 Eigenwerte gefärbter GraphenNachdem die Eigenwerte der Matrix M DE nun bekannt sind, soll als nächstes dieMatrix M SDE = ( M DE) T M DE näher untersucht werden. Als Produkt blockzirkulanterMatrizen ist M SDE selbst wieder blockzirkulant, nämlich:( )M SDE = Φ A 1 , . . . , A n2<strong>mit</strong>( ) ( )A BD EA 1 = , AB A 2 =C D, A 3 = . . . = A n2 −1 = 0 , A nHierbei sind wie oben A = (1 − α) 2 , B = α (1 − α), C = α 2 und(A = A 2 + 2B 2 + C 2 = 4 α 2 − α + 1 ) 22B = 2AB + 2BC = 2α (1 − α) 3 + 2α 3 (1 − α)C = 2AB = 2α (1 − α) 3D = AC + B 2 = 2α 2 (1 − α) 2E = 2BC = 2α 3 (1 − α) .( ) D C= .2 E DÄhnlich wie für M DE oben muss man auch hier Matrizen A (j) berechnen. Deren charakteristischesPolynom ist(χ (j) (t) = t 2 − 2 A + 2Dc (j)) t + F<strong>mit</strong> F = A 2 − B 2 − (C − E) 2 = 16 ( α − 1 2) 4. Da<strong>mit</strong> erhält man die Eigenwerte√t (j)1,2 = A + 2Dc(j) ± I + Jc (j) + K ( c (j)) 2<strong>mit</strong>(I = A 2 − F = 16α 2 (1 − α) 2 α 4 − 2α 3 + 3α 2 − 2α + 1 )2(J = 4AD = −32α 2 (1 − α) 2 α 2 − α + 1 )2K = 4D 2 = 4α 4 (1 − α) 4 .Hieraus ergibt sich, dass M SDE für alle Werte von α dieselbe Anzahl verschiedener Eigenwertehat wie M DE .Ist speziell α = 1 2, so vereinfachen sich diese Formeln erheblich. Statt <strong>mit</strong> obigenFormeln kann man die Eigenwerte in diesem Fall jedoch auch anders herleiten. Es istnämlich M SDE = 1 2 M ⊗ ( 1 1 11 ), wobei M wieder die Diffusionsmatrix des Zyklus C n zu2α = 1 4 ist. M DE und M SDE haben also für α = 1 2 dieselben Eigenwerte. 55


3 <strong>Dimension</strong>-Exchange-Verfahren1 2 3 4 51 2 3 4 56(1)(2)Abbildung 3.3: Einfärbung des Pfades P n für gerades und ungerades n3.6.4 Pfad P nAls nächster Graph soll der Pfad P n untersucht werden. Dieser kann wie in Abbildung 3.3gezeigt immer <strong>mit</strong> zwei Farben eingefärbt werden.Im allgemeinen Fall α ≠ 1 2konnten bislang keine Formeln für die Eigenwerte gefundenwerden. Experimente zeigen, dass es immer n paarweise verschiedene Eigenwerte gibt.Wählt man α = 1 2, so lassen sich auch für den Pfad Formeln herleiten. Begonnen wird<strong>mit</strong> dem Fall, dass n gerade ist.n geradeBeim Pfad geradzahliger Länge ist für α = 1 2⎛ 1 1⎞ ⎛2 211 12 21 12 2M 1 =1 12 2 . , M 2 =.. ⎜⎟ ⎜⎝1 ⎠ ⎝Bestimme nun die Cholesky-Zerlegung M 1 = L 1 L T 1 :⎛⎞1 0L 1 = √ 11 0 ... 2⎜⎟⎝ 1 0⎠ ,1 0Dann ist M DE ähnlich zu L T 1 M 2L 1 = M ⊗ ( 1 0 00), wobei⎛⎞2121212M =⎜⎝3414141214 . ..1412141434⎟⎠12121212 . ..1die Diffusionsmatrix des Pfades der Länge n 2zu α = 1 4ist. Die gesuchten Eigenwertesind daher 0 sowie (vgl. Tabelle 2.1)1 − 1 ( ( )) π2 − 2 cosn j = 1 422 + 1 ( ) 2π2 cos n j , j = 0, . . . , n 2 − 1 .21212121⎞.⎟⎠56


3.6 Eigenwerte gefärbter GraphenÄhnlich wie beim Zyklus oben gilt für M SDEM SDE = M 1 M 2 M 2 M 1 = 1 ( ) 1 12 M ⊗ 1 1so dass M SDE und M DE wieder dieselben Eigenwerte besitzen.n ungeradeDas Vorgehen für ungerades n entspricht exakt dem für gerades n <strong>mit</strong> der Einschränkung,dass man hier keine bekannte Matrix erhält. Für die Matrix L 1 aus der Cholesky-Zerlegung erhält man⎛⎞l 0l 0 ... L 1 =⎜ l 0⎟⎝ l 0 ⎠1√<strong>mit</strong> l = 22, und hier<strong>mit</strong>⎛L T 1 M 2 L 1 =⎜⎝341401412140 ...0Behauptung 3.21. Obige Matrix hat die Eigenwerte12 + 1 ( ) 2π2 cos n j , j = 0, . . . , n − 12und 0.14Beweis. Offensichtlich ist 0 ein n−12-facher Eigenwert. Durch Streichen der Nullzeilenund -spalten entsteht folgende Matrix der <strong>Dimension</strong> p = n+12 :⎛⎞⎜⎝3414141214 . ..141214141√2241214√24120,⎟⎠1412√240,√2412⎞.⎟⎠57


3 <strong>Dimension</strong>-Exchange-Verfahrenwobei alle Eigenwerte bis <strong>auf</strong> 0 erhalten bleiben. Wie man leicht nachrechnet, gehörtzum Eigenwert 1 2 + 1 2 cos ( (T2πn j) der Eigenvektor v j = v j 1 p) , . . . , vj <strong>mit</strong>( )v j (p − l) (2p − 2j − 1) πl= (−1) p−l · 2 · cos, l = 1, . . . , p − 1nv j p = √ 2 .Nun fehlt noch die Bestimmung der Eigenwerte von M SDE . Hier ergibt sich:⎛⎞3 3 1 13 3 1 11 1 2 2 1 1M SDE = 1 1 1 2 2 1 1. ..81 1 2 2 1 11 1 2 2 1 1⎜1 1 2 2 2⎟⎝1 1 2 2 2⎠2 2 4Es sei ˜M die Matrix, die aus M SDE durch Anhängen einer Nullzeile und -spalte entsteht.Hierdurch vergrößert sich lediglich die Vielfachheit des schon vorhandenen Eigenwertes0 um 1. Dann gilt:⎡⎛˜M = 1 2 QT ⎢⎜⎣⎝3414141214 . ..141214141√224√2412⎞⊗⎟⎠( 1 11 1⎤)Q⎥⎦<strong>mit</strong>⎛1 ... Q =1⎜⎝√1√2 12√12− 1⎞⎟⎠√2.Es folgt wieder das Ergebnis, dass die Eigenwerte von M SDE und M DE übereinstimmen.58


3.6 Eigenwerte gefärbter Graphen3.6.5 Zyklus C n <strong>mit</strong> ungeradem nBei den bisher betrachteten Pfaden und Zyklen genügten immer zwei verschiedene Farben.Zur Einfärbung von Zyklen ungerader Länge werden mindestens drei Farben benötigt.Werden keine weiteren Voraussetzungen an n gemacht, bietet sich die erste Einfärbungaus Abbildung 3.4 an. Die Kanten {1, 2} , . . . , {n − 1, n} werden abwechselnd <strong>mit</strong>den Farben 1 und 2 belegt und Kante {1, n} bekommt Farbe 3. Leider ist es für dieseEinfärbung bisher nicht gelungen, Aussagen über die Eigenwerte zu beweisen.C n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15C [3]n , 3 | n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15C n[5a] , 5 | n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15C n[5b] , 5 | n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15C n[5c] , 5 | n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(1)(2)(3)(4)(5)Abbildung 3.4: Einfärbung von Zyklen C n <strong>mit</strong> ungeradem nErfreulicher gestaltet sich der Spezialfall, dass n durch 3 teilbar ist. Dann kann mannämlich den Kanten zyklisch drei Farben zuweisen, wie dies in der Abbildung unterC n[3] dargestellt ist. Die zu den drei Farben gehörenden Matrizen M 1 , M 2 und M 3 sindblockzirkulant <strong>mit</strong> Blockgröße 3. Entsprechend sind auch die Produkte hiervon, M DEund M SDE , blockzirkulant. Mit den im Abschnitt 3.6.3 vorgeführten Methoden könnteman hier also wieder alle Eigenwerte berechnen. Im Falle der unsymmetrischen Matrix59


3 <strong>Dimension</strong>-Exchange-VerfahrenM DE ergeben sich diesmal allerdings komplexe Eigenwerte; da die Anzahl der Eigenwertefür den wichtigen Fall α = 1 2gegenüber der ersten Einfärbung aus Abbildung 3.4Experimenten zufolge sogar zunimmt, wird <strong>auf</strong> die Berechnung hier verzichtet.Auch im symmetrischen Fall soll hier nur <strong>auf</strong> den Fall⎛α = 1 2etwas⎞näher eingegangen√1√2 1werden. Es wird die Matrix Q T M SDE Q <strong>mit</strong> Q = I n ⊗ ⎜ 20⎝− √ 1 √2 1 ⎟3 20⎠ betrachtet. Nach0 0 1Streichen der 1., 4., 7. usw. Spalte und Zeile (diese enthalten nur Nullen) hat diese Matrixdie Gestalt⎛14 6 √ 2 4 4 4 √ ⎞26 √ 2 12 4 √ 24 4 √ 2 14 6 √ 2 41. .. .32...6 √ 2 12 4 √ 2⎜⎝ 4 4 4 √ 2 14 6 √ ⎟24 √ 2 6 √ ⎠2 12Die gesuchten Eigenwerte sind 0 sowie für j = 1, . . . , n 3[√ (21t (j)1,2 = 1 ) ( ) ]513 + 4c (j) ± 4324 + c(j) 4 + c(j)<strong>mit</strong> c (j) = cos 6πjn .Als letzter Spezialfall soll hier kurz betrachtet werden, dass n durch 5 teilbar ist. Hierzuexistieren nur experimentell er<strong>mit</strong>telte Resultate. Analog zu C n [3] kann man nun 5verschiedene Farben im Wechsel verwenden, siehe C n[5a] in Abb. 3.4. Bei Verfahren, diedie symmetrische Matrix M SDE verwenden, reduziert sich dann die Anzahl der Eigenwerteund da<strong>mit</strong> der Schritte, vgl. Tabelle 3.2. Andererseits erhöht sich die Anzahl derTeilschritte von 3 <strong>auf</strong> 5. Vertauscht man die Farben 2 und 3 (C n[5b] ), dann sind die zuden neuen Farben gehörenden Teilschritte 1 und 2 bzw. 3 und 4 unabhängig voneinanderund können so<strong>mit</strong> gleichzeitig ausgeführt werden. Fasst man die gleichzeitig ausgeführtenTeilschritte jeweils zu einem Teilschritt zusammen, so gelangt man zu der EinfärbungC [5c]nC [5c]n, die <strong>mit</strong> drei Farben auskommt. Experimente zeigen, dass die Matrizen zu C n[5b] undgenau dieselben Eigenwerte besitzen.3.6.6 ProduktgraphenEs sei G = G (1) ×G (2) ein Produktgraph <strong>mit</strong> ∣ ∣V (1)∣ ∣ = p und ∣ ∣V (2)∣ ∣ = q. Der Graph G (i) sei<strong>mit</strong> c (i) Farben gefärbt (i = 1, 2). Die Verfahrensmatrizen seien M DE(i) = M (i) · · · M (i)c (i) 1und M SDE(i) analog. Dann lässt sich der Produktgraph G <strong>mit</strong> c = c (1) + c (2) Farbeneinfärben, wobei die Farben 1, . . . , c (1) für die Kanten in Richtung von G (1) verwendet60


3.6 Eigenwerte gefärbter Graphenwerden und die übrigen für die Kanten in Richtung von G (2) . Für die Matrizen M DEund M SDE zu G folgt:M DE = M c · · · M c (1) +1 · M c (1) · · · M 1( ) ( ) (= M (2) ⊗ Ic (2) p · · · M (2)1 ⊗ I p · I q ⊗ M (1))=(M DE(2) ⊗ I p ·(I q ⊗ M DE(1))c (1) )= M DE(2) ⊗ M DE(1)(M SDE = M DE) TMDE=(M DE(2) ⊗ M DE(1)) T (M DE(2) ⊗ M DE(1))( (= M DE(2)) T⊗(M DE(1)) ) T (M DE(2) ⊗ M DE(1))( (= M DE(2)) ) (T (MDE (2) ⊗ M DE(1)) )TMDE (1)= M SDE(2) ⊗ M SDE(1)( )· · · I q ⊗ M (1)1Es müssen also zunächst die Eigenwerte der beiden Faktorgraphen bestimmt werden.Anschließend müssen alle möglichen Produkte je zweier Eigenwerte gebildet werden(Aufwand O (pq)). In der Regel treten hierbei einige Produkte mehrfach <strong>auf</strong>, und zwarauch dann, wenn man aus Symmetriegründen offensichtlich doppelte Produkte erst garnicht <strong>mit</strong> berechnet. Mehrfache Eigenwerte lassen sich zum Beispiel dadurch entfernen,dass man die Werte sortiert, diese sortierte Folge einmal durchläuft und dabei alle mehrfachenWerte streicht. Der Aufwand hierfür beträgt O (pq log(pq)). Selbst in den Fällen,in denen keine Formeln für die Eigenwerte des eindimensionalen Graphen bekannt sind,liegt der Gesamt<strong>auf</strong>wand so nur bei O ( p 3 + q 3) verglichen <strong>mit</strong> O ( (pq) 3) , würde mandie Eigenwerte von M (S)DE direkt ausrechnen.Der Graph G (i) habe nun m (i) verschiedene Eigenwerte. Dann ergibt sich für G eineAnzahli=1m ≤ m (1) m (2) .Ist G (1) = G (2) , so erhält man als maximale Anzahl verschiedener Produkte von m (1)Wertenm∑(1)m ≤ i = 1 ( )2 m(1) m (1) + 1 .Im Fall α = 1 2ist einer der Eigenwerte der Faktorgraphen 0, und da<strong>mit</strong> sind auch alleProdukte <strong>mit</strong> diesem Eigenwert gleich 0. Die Zahl m reduziert sich hierdurch <strong>auf</strong>m ≤(m (1) − 1) (m (2) − 1)+ 1 = m (1) m (2) −(m (1) + m (2)) 61


3 <strong>Dimension</strong>-Exchange-Verfahrenbzw. im Fall G (1) = G (2) <strong>auf</strong>3.6.7 Gitter und Torim∑(1) −1m ≤ 1 + i = 1 ( )2 m(1) m (1) − 1 + 1 .i=1Gitter und Tori sind nichts anderes als Produkte von Pfaden bzw. Zyklen. Entsprechendgelten für die Eigenwertanzahlen die Abschätzungen aus dem letzten Abschnitt. Bei einzelnenGraphen und Verfahren liegt die tatsächliche Eigenwertanzahl etwas unterhalb derso berechneten Schranken, zumindest der Koeffizient vor n 2 stimmt aber Experimentenzufolge exakt. Vergleiche hierzu auch Tabelle 3.2.Ist beim Torus mindestens eine <strong>Dimension</strong> ungerade, so benötigt man zur Einfärbungmindestens fünf Farben. Falls sogar beide <strong>Dimension</strong>en ungerade sind, gibt es keineEinfärbung <strong>mit</strong> minimaler Farbanzahl mehr, die die Produktstruktur respektiert, vgl.Abbildung 3.5. Allerdings hat diese Einfärbung zwei gravierende Nachteile: Der Aufwandzur Berechnung der Eigenwerte ist (im quadratischen Fall) O ( n 3) und die Anzahl derEigenwerte ist verglichen <strong>mit</strong> der der Diffusionsmatrix zu hoch. Wesentlich günstiger1 2 3 4 56 7 8 9 1011 12 13 14 15(1)(2)(3)(4)(5)16 17 18 19 2021 22 23 24 25Abbildung 3.5: Einfärbung des Torus T 2k+1ist es, sechs Farben zu verwenden. Zur Unterscheidung der verschiedenen Einfärbungenwerden die folgenden Bezeichnungen benutzt: T [6]k= C k × C k und T [C3]k= C [3]k× C[3] k .3.6.8 Hypercube H dDer Hypercube H d der <strong>Dimension</strong> d wird anschaulich so nummeriert und <strong>mit</strong> d Farbeneingefärbt, dass parallele Kanten dieselbe Farbe besitzen, vgl. Abbildung 3.6. Verringerte62


3.7 Flussminimierungman alle Knotennummern um eins, so unterschieden sich die Endknoten von Kanten derFarbe j in der Binärdarstellung nur im j-ten Bit.7 83 45 6(1)(2)(3)1 2Abbildung 3.6: Einfärbung des Hypercubes H dDieselbe Einfärbung ergibt sich, wenn man den Hypercube H d <strong>auf</strong>fasst als d-fachesProdukt von Pfaden P 2 der Länge 2. Da<strong>mit</strong> istM DE =d⊗( 1 − α α)α 1 − αi=1und hat als Eigenwerte 1, 1 − 2α, . . . , (1 − 2α) d . Wählt man speziell α = 1 2, so existierennur zwei Eigenwerte, nämlich 0 und 1. Dies stimmt <strong>mit</strong> den Ergebnissen in [Cyb89]überein.Da die Matrix M DE symmetrisch ist, ist M SDE = ( M DE) 2 und hat folglich die Eigenwerte1, (1 − 2α) 2 , . . . , (1 − 2α) 2d .3.6.9 ZusammenfassungIn Tabelle 3.2 sind für alle bisher betrachteten Einfärbungen und Verfahren die Anzahlender Eigenwerte der zugehörigen Matrizen zusammengefasst. Die Zahl der Schritte,die die Verfahren benötigen ist jeweils um eins geringer. Um genaue Aussagen über dasL<strong>auf</strong>zeitverhalten zu erlangen, muss aber jeweils noch die Anzahl der Teilschritte proSchritt <strong>mit</strong> berücksichtigt werden, vergleiche hierzu Abschnitt 3.9. Zusätzlich ist derAufwand zur Bestimmung der Eigenwerte für die <strong>Dimension</strong>-Exchange-Verfahren angegeben.Dort, wo für den Aufwand zwei verschiedene Werte angegeben sind, gilt derkleinere Wert jeweils für den Fall α = 1 2 und der größere für α ≠ 1 2 .3.7 FlussminimierungBei den Diffusionsverfahren ist bekannt, dass die berechneten Flüsse in der l 2 -Norm minimalsind [HB99, DFM99]. Dies ist beim <strong>Dimension</strong>-Exchange, wie Experimente zeigen,in der Regel nicht der Fall. Die einzigen Graphen, für die diese Beobachtung nicht zutrifft,sind Bäume (also z. B. auch Pfade), bei denen der Fluss nämlich eindeutig bestimmt ist.Bei allen übrigen Graphen, also Graphen <strong>mit</strong> Zyklen, deuten Messungen dar<strong>auf</strong> hin, dass63


3 <strong>Dimension</strong>-Exchange-VerfahrenGraph OPT SDE-OPT, α ≠ 1 DE-OPT, α ≠ 1 SDE-OPT, α = 1 DE-OPT, α = 1 Aufwand2 2 2 21Pn 2 | n n (n)n + 1 O (n) / O ( n 3)212 ∤ n n (n)n + 3 O (n) / O ( n 3)2 21Cn 4 | n n + 1 1n + 1 1n + 1 O (n)2 2 412 | n, 4 ∤ n n + 1 1n + 1 1n + 3 O (n)2 2 4 212 ∤ n n + 1 (n) ( 1 n + 3 ) O ( n 3)2 2 2 2C n [3]13 | n, 2 ∤ n n + 1 ( 1 n + 3 ) (n) 1n + 2 ( 2 n + 1) O (n)2 2 2 2 3 3C n [5a]15 | n, 2 ∤ n n + 1 ( 1 n + 5 ) (n) ( 2 n + 3) ( 4 n + 1) O ( n 3)2 2 2 2 5 5C n [5b/c]15 | n, 2 ∤ n n + 1 ( 1 n + 5 ) (n) ( 3 n + 5 ) ( 3 n + 1) O ( n 3)2 2 2 2 10 2 5Gk 2 | k ≤ 1 2 k2 + 1 ( 1 2 k2 1+ 1)8 k2 + 1 k + 1 O ( k 2 log k ) / O ( k 3)42 ∤ k ≤ 1 2 k2 + 3 ( 1 2 2 k2 + 3 ) 12 8 k2 + 1 k + 11 O ( k 2 log k ) / O ( k 3)2 8Tk 4 | k ≤ 1 8 k2 + 1 k + 1 ≤ 1 2 8 k2 + 1 k + 1 12 32 k2 + 1 k + 1 O ( k 2 log k )82 | k, 4 ∤ k ≤ 1 8 k2 + 1 k + 3 ≤ 1 2 2 8 k2 + 1 k + 3 12 232 k2 + 1 k + 11 O ( k 2 log k )4 812 ∤ k8 k2 + 1 k + 3 (k 2 ) ( 1 2 8 4 k2 + 1 k + 5 ) O ( k 6)2 4T [6]1k2 ∤ k8 k2 + 1 k + 3 12 8 2 k2 + 1 k 12 8 k2 + 1 k + 11 O ( k 3)2 8T [C3]1k3 | k, 2 ∤ k8 k2 + 1 k + 3 12 8 8 k2 + k + 15182 k2 + 1 k 12 18 k2 + 1 k + 5 23 2 9 k2 + 1 k + 1 O ( k 3)3Hd d + 1 d + 1 2 O (d) / O (1)Sn 3 n n O (n)Kn 2 | n 2 ≤ n (≤ √ n + 1 + 1) (≤ 2 √ 2n + 1 − 2) O ( n 3)2 ∤ n 2 ≤ n (≤ 2 √ n + 1) (≤ 2 √ 2n + 2 − 2) O ( n 3)Tabelle 3.2: Anzahl der verschiedenen Eigenwerte bei Standardgraphen und verschiedenen Verfahren; experimentell er<strong>mit</strong>telteWerte sind in Klammern notiert; wo für den Aufwand zwei verschiedene Werte angegeben sind, gilt der kleinerefür den Fall α = 1 2 und der größere für α ≠ 1 264


3.7 Flussminimierungdie l 2 -Normen der Flüsse monoton <strong>mit</strong> α wachsen. Wie folgendes Lemma zeigt, ergebensich zumindest für α nahe Null annähernd l 2 -minimale Flüsse.Lemma 3.22. Lässt man bei <strong>Dimension</strong>-Exchange-Verfahren den Wert α gegen Nulll<strong>auf</strong>en, dann konvergieren die von den Verfahren berechneten Flüsse gegen den l 2 -minimalenFluss.Beweis. Wegen der Äquivalenz von OPS und OPT (siehe Bemerkung 2.19) wird nur letzteresVerfahren betrachtet. Der berechnete Fluss hängt bei diesem endlichen Verfahrenstetig von α ab. Für die Matrix L DE gilt:L DE = 1 (I − M DE)α= 1 α (I − M c · · · M 1 )= 1 α (I − (I − αL c) · · · (I − αL 1 ))= 1 (α (Lc + . . . + L 1 ) + α 2 (. . .) )αα→0−→ L c + . . . + L 1 = L DiffBis <strong>auf</strong> Terme höherer Ordnung stimmt L DE also <strong>mit</strong> L Diff überein. Analog erhält manL SDE ≈ 2L, wobei sich der Faktor 2 bei der Division durch die Eigenwerte in den Verfahrenherauskürzt. Für α nahe 0 stimmen also beide <strong>Dimension</strong>-Exchange-Varianten <strong>mit</strong>dem Diffusionsverfahren (nahezu) überein. Von letzterem ist aber bereits bekannt, dasses minimale Flüsse erzeugt.Bemerkung 3.23. Der letzte Beweis zeigt, dass für α nahe 0 bei den <strong>Dimension</strong>-Exchange-Varianten aus Stetigkeitsgründen nicht weniger Eigenwerte <strong>auf</strong>treten können als beimDiffusionsverfahren.Wie der letzte Abschnitt über die Eigenwerte gezeigt hat, sind die <strong>Dimension</strong>-Exchange-Verfahrenaber nicht für solch kleine α-Werte sondern nur für α = 1 2 besondersschnell. Es wäre daher wünschenswert, Abschätzungen dafür zu erhalten, um wie vieldie Flüsse für α = 1 2 über dem Minimum liegen.Abbildung 3.7 zeigt am Beispiel des Torus T 8 , wie die Flusswerte sich <strong>mit</strong> α ∈ (0, 1)ändern. Während die Normen bei beiden Varianten für α = 1 2nahezu identisch sind,sind für α → 1 große Unterschiede zu beobachten. Während die Werte beim SDE-OPXbeschränkt bleiben, gehen sie beim DE-OPX gegen Unendlich. Wie man solche Flussnormenberechnen kann, ist Thema des nächsten Abschnitts 3.8. Hier werden zunächstTechniken vorgestellt, <strong>mit</strong> denen die Norm der Flüsse gesenkt oder in bestimmten Fällensogar minimiert werden kann. Deren Korrektheit wird durch folgenden (un<strong>mit</strong>telbareinsichtigen) Satz sichergestellt.Satz 3.24. Sei G = (V, E) ein ungerichteter zusammenhängender Graph <strong>mit</strong> InzidenzmatrixA; w 0 und w seien wie gehabt. Es mögen verschiedene ausgleichende Flüssex 1 , . . . , x r existieren, d. h. Ax i = w 0 − w, i = 1, . . . , r. Ferner seien δ 1 , . . . , δ r ∈ R∑<strong>mit</strong>ri=1 δ i = 1. Dann ist auch x = ∑ ri=1 δ ix i ein ausgleichender Fluss, also Ax = w 0 − w.65


3 <strong>Dimension</strong>-Exchange-Verfahren‖x(α)‖ 2‖x min ‖ 2T 8, DE-OPT21.81.61.41.210 0.2 0.4 0.6 0.8 1α‖x(α)‖ 2‖x min ‖ 2T 8, SDE-OPT21.81.61.41.210 0.2 0.4 0.6 0.8 1αAbbildung 3.7: l 2 -Norm des Flusses in Abhängigkeit von α am Beispiel eines 8 × 8-Torus<strong>mit</strong> zufälligem w 0 (minimaler Fluss = 1)3.7.1 Vorwärts und rückwärtsEs ist zu beobachten, dass die einzelnen Komponenten des Flusses davon abhängig sind,in welcher Reihenfolge die einzelnen Teilschritte und da<strong>mit</strong> die Farben abgearbeitetwerden.Als einfaches Beispiel hierzu wird der Hypercube H 2 betrachtet, bei dem anfangs einKnoten die Last 4 und die drei übrigen die Last 0 haben. Abhängig davon, ob man <strong>mit</strong>den waagerechten oder den senkrechten Kanten beginnt, erhält man zwei verschiedeneFlüsse x 1 und x 2 , beide <strong>mit</strong> Norm √ 6. Der Fluss x = 1 (2 x 1 + x 2) , der sich als Mittelwertder anderen beiden ergibt, hat eine geringere und in diesem Beispiel sogar minimaleNorm, nämlich √ 5. Vergleiche hierzu Abbildung 3.8.Dieses bislang für einen Spezialfall beschriebene Vorgehen lässt sich problemlos <strong>auf</strong> beliebigeGraphen übertragen. Das DE-OPS- bzw. DE-OPT-Verfahren wird zweimal durchgeführt,wobei die Farben einmal immer vorwärts und einmal rückwärts durchl<strong>auf</strong>enwerden, anschließend wird der Mittelwert der beiden so bestimmten Flüsse berechnet.Die Korrektheit dieses neuen, <strong>mit</strong> DE-OPSfb bzw. DE-OPTfb (forward-backward) bezeichnetenVerfahrens ist durch Satz 3.24 sichergestellt. Die Matrizen M c · · · M 1 = M DEund M 1 · · · M c = M DET haben dieselben Eigenwerte, denn die Diffusionsmatrizen M isind symmetrisch. Der Kommunikations<strong>auf</strong>wand ist sicherlich nicht höher als für SDE-OPX, wo ja pro Schritt auch alle Farben zweimal (vorwärts und rückwärts) durchl<strong>auf</strong>enwerden. Weitere Details zur Implementierung werden in Abschnitt 5.3 gegeben.3.7.2 Zyklisches Durchl<strong>auf</strong>en der FarbenDie zweite Variante nutzt aus, dass alle Matrizen der Form M j−1 · · · M 1 · M c · · · M j fürj ∈ {2, . . . , c} dieselben Eigenwerte haben wie M DE = M c · · · M 1 . Das DE-OPX-Verfahrenwird nun für jede dieser insgesamt c Matrizen einmal durchgeführt, anschließend wirdder Mittelwert aller Flüsse bestimmt. Das gesamte, <strong>mit</strong> DE-OPXcc (color cycling) bezeichneteVerfahren hat zwar den c-fachen Rechen<strong>auf</strong>wand verglichen <strong>mit</strong> DE-OPX, derKommunikations<strong>auf</strong>wand erhöht sich dagegen nur um c − 1 Schritte. Erreicht wird diesdadurch, dass die Einzelrechnungen jeweils um einen Teilschritt versetzt gestartet werden,vergleiche Abbildung 3.9. Da die Anzahl der Rechen- und Kommunikationsopera-66


3.8 Abschätzungen für Flüsse0 040Ausgangssituation(Eigenwerte des H 2 : 0, 1)0 02 01. Teilschritt(2)2(2)2 2 01 11(1)1(1) (1)2. Teilschritt(2)1(2)11(1)11(0.5)1(1.5) (0.5)1(1.5)12 mal DE-OPS:links: zuerst waagerechte,dann senkrechte Kantenrechts: umgekehrtFür beide Flüsse gilt:‖x‖ 2= √ 6 ≈ 2, 45Mittelwert beider Flüsse:‖x‖ 2= √ 5 ≈ 2, 24Abbildung 3.8: DE-OPSfb für den Hypercube H 2tionen die gleiche Größenordnung haben, spielt der erhöhte Rechen<strong>auf</strong>wand keine Rolle.Dass die Menge der <strong>mit</strong> jeder Kommunikation auszutauschenden Daten sich ver-c-fachtist ebenfalls eher bedeutungslos, da die Datenmengen trotzdem noch sehr klein sind unddaher die meiste Zeit für den Aufbau der Kommunikation verwandt wird. Details zurImplementierung dieser Variante werden später in Algorithmus 5.1 erläutert.Abbildung 3.10 zeigt, wie sich beide Varianten <strong>auf</strong> das Beispiel des T 8 aus Abb. 3.7auswirken.3.8 Abschätzungen für FlüsseIn diesem Abschnitt werden Sätze hergeleitet, die es erlauben, zu gegebenen Verfahrenund Graphen auszurechnen, um welchen Faktor die l 2 -Normen der Flüsse die minimaleNorm höchstens übersteigen. Diese Faktoren sind als Normen gewisser Matrizen gegebenund lassen sich in einigen Fällen explizit zahlenmäßig angeben, in den anderen Fällenlassen sie sich experimentell bestimmen.Für die folgende Definition der Pseudoinversen sowie die beiden sich daran anschließendenSätze vergleiche zum Beispiel [GL96, Dav79].67


3 <strong>Dimension</strong>-Exchange-VerfahrenKommunikationsschritte........Rechnung 1: 1 2 3Rechnung 2:Rechnung 3:Rechnung 4:2 334 1 2 3 4 1 2 3 4 1 2 3 44 1 2 3 4 1 2 3 4 1 2 3 44 1 2 3 4 1 2 3 4 1 2 3 44 1 2 3 4 1 2 3 4 1 2 3 411122 3Abbildung 3.9: Abl<strong>auf</strong> der Rechnung beim DE-OPXcc am Beispiel von 4 Schritten und4 Farben‖x(α)‖ 2‖x min ‖ 2T 8, DE-OPTfb21.81.61.41.210 0.2 0.4 0.6 0.8 1α‖x(α)‖ 2‖x min ‖ 2T 8, DE-OPTcc21.81.61.41.210 0.2 0.4 0.6 0.8 1αAbbildung 3.10: Fortsetzung des Beispiels aus Abbildung 3.7 für die beiden FlussreduzierungsvariantenDefinition 3.25. Sei A ∈ R n×q . Eine Matrix X ∈ R q×n heißt Pseudoinverse oderMoore-Penrose-Inverse zu A genau dann, wenn folgende vier Bedingungen erfüllt sind:AXA = A (3.2)XAX = X (3.3)(AX) T = AX (3.4)(XA) T = XA (3.5)Die Pseudoinverse von A ist hierdurch eindeutig bestimmt und wird <strong>mit</strong> A + bezeichnet.Ist A quadratisch und regulär, so ist A + = A −1 .Satz 3.26. Es sei D = diag (d 1 , . . . , d n ) ∈ R n×n eine Diagonalmatrix. Dann ist D + =diag ( d + 1 , . . . , d+ n)gegeben durchd + i={1d ifalls d i ≠ 00 sonst .Satz 3.27. Es sei A ∈ R n×q und A = UΣV T deren Singulärwertzerlegung. Dann giltA + = V Σ + U T .68


3.8 Abschätzungen für FlüsseNach [Iji65, Theorem 1] gilt für Adjazenzmatrizen A ∈ R n×N , die zu zusammenhängendenGraphen gehören, AA + = I − 1 nJ. Dabei ist J die Matrix, deren Einträge allegleich 1 sind. Auf ähnliche Weise wie dieses Resultat lässt sich folgendes zeigen.Satz 3.28. Es sei L ALG die Laplace-Matrix des Diffusionsverfahrens oder eines der entsprechendenGegenstücke eines <strong>Dimension</strong>-Exchange-Verfahrens. Dann gilt:L ALG L ALG+ = I − 1 n JundL ALG+ L ALG = I − 1 n JDabei ist J die Matrix, die überall Einsen enthält.Beweis. Nach Definition der Pseudoinversen ist L ALG L ALG+ L ALG = L ALG und da<strong>mit</strong>(I − L ALG L ALG+) L ALG = 0 .Für e = (1, . . . , 1) T ∈ R n gilt e T L ALG = e T AA ALGT = 0. Da L ALG Rang n − 1 hat,müssen folglich alle Zeilen von I − L ALG L ALG+ Vielfache von e T sein. Da L ALG L ALG+nach der Moore-Penrose-Bedingung (3.4) außerdem symmetrisch ist, ist I − L ALG L ALG+ein Vielfaches von J. Wegen(I − L ALG L ALG+) 2= I − 2L ALG L ALG+ + L} ALG L ALG+ {{ L ALG} L ALG+ = I − L ALG L ALG+L ALGfolgt schließlich die erste Behauptung. Die zweite Gleichheit zeigt man völlig analog.Folgendes Lemma stammt ebenfalls aus [Iji65].Lemma 3.29. Es seien A ∈ R m×n und x ∈ R n . Dann ist Ax = 0 genau dann, wennx T A + = 0.In Analogie zur Matrix A Diff = A bei den Diffusionsverfahren werden nun ähnlicheMatrizen für die übrigen Verfahren benötigt.Definition 3.30. Gegeben sei ein gefärbter Graph G, M i und A i seien wie bisher dieDiffusionsmatrizen und Adjazenzmatrizen der Teilgraphen zur Farbe i. Dann werden69


3 <strong>Dimension</strong>-Exchange-Verfahrenfolgende neue Matrizen definiert:A DE =A SDE ==A DEfb = 1 2A DEcc = 1 cGraph-Beispiel 3.31.c∑M 1 · · · M j−1 A jj=1c∑M 1 · · · M j−1 A j +j=11∑M 1 · · · M c M c · · · M j+1 A jj=cc∑(M 1 · · · M j−1 + M 1 · · · M c M c · · · M j+1 ) A jj=1c∑(M 1 · · · M j−1 + M c · · · M j+1 ) A jj=1⎛c∑ j∑⎝ M l · · · M j−1 +j=1l=1c∑l=j+1M l · · · M c M 1 · · · M j−1⎞⎠ A j⎛ ⎞1 αA DE = A 1 + M 1 A 2 = ⎝−11 − α⎠0 −1⎛1 − α + α 2 − α 3 ⎞α (1 − α)A SDE = A 1 + M 1 A 2 + M 1 M 2 A 2 + M 1 M 2 M 2 A 1 = 2 ⎝−1 + 2α − 2α 2 + α 3 (1 − α) 2 ⎠α (1 − α) α − 1⎛⎞A DEfb = 1 2 (A 1 + M 1 A 2 + A 2 + M 2 A 1 ) = ⎝A DEcc = 1 2 (A 1 + M 1 A 2 + A 2 + M 2 A 1 ) = ⎝⎛α1α22 − 1 1 − α 2− α 2−1α1α22 − 1 1 − α 2− α 2−1⎠⎞⎠Der folgende Satz zeigt, dass sich die Eigenschaft L Diff = AA Diff T <strong>auf</strong> die neuen Matrizenüberträgt.Satz 3.32. Für alle <strong>Loadbalancing</strong>-Verfahren ALG ∈ {Diff, DE, SDE, DEcc, DEfb} giltL ALG = AA ALGT .Beweis. Bewiesen wird nur den Fall ALG = DE. Alle übrigen Fälle werden ähnlich ge-70


3.8 Abschätzungen für Flüssezeigt.αL DE = I − M DE= I − M c · · · M 1= I − ( I − αA c A T )c Mc−1 · · · M 1= I − M c−1 · · · M 1 + αA c A T c M c−1 · · · M 1.= I − M 1 + αA 2 A T 2 M 1 + · · · + αA c A T c M c−1 · · · M 1= αA 1 A T 1 + · · · + αA c A T c M c−1 · · · M 1c∑= α A j A T j M j−1 · · · M 1j=1⎛ ⎞ ⎛⎞c∑c∑= α ⎝ A j⎠ ⎝ A T j M j−1 · · · M 1⎠ da A k A T l = 0 für k ≠ l nach Lemma 3.6= αAA DETj=1 j=1Mit <strong>Hilfe</strong> der Matrizen aus Definition 3.30 lässt sich nun ein erstes Resultat für dieFlüsse bestimmter Verfahren herleiten.Satz 3.33. Es sei ALG ∈ {Diff, DE, SDE, DEcc, DEfb} eine der Verfahrensklassen beim<strong>Loadbalancing</strong>. Betrachtet werden Verfahren der Formw k = p k (M ALG )w 0wobei p k ein Polynom vom Grad k ist <strong>mit</strong> p k (1) = 1, so dasslim p k(µ ALGi ) = 0 für i = 2, . . . , m . (3.6)k→∞Schreibe∑die Anfangslastverteilung w 0 als Summe von Eigenvektoren von L ALG , also w 0 =mi=1 z i <strong>mit</strong> L ALG z i = λ ALGi z i und λ ALG1 = 0. Dann berechnet das Verfahren den folgendenausgleichenden Fluss:∑mx ALG = A ALGT 1i=2λ ALGiBemerkung 3.34. Bedingung (3.6) ist für alle betrachteten Verfahren erfüllt. Insbesonderegilt für die OPS-Varianten p k−1 (µ ALGi ) = 0 und nach Gleichung (2.5) ist auch OPTvon obiger polynomialer Form. Für das unsymmetrische <strong>Dimension</strong>-Exchange (DE) unddessen Varianten muss wieder die Diagonalisierbarkeit von L DE vorausgesetzt werden.z i71


3 <strong>Dimension</strong>-Exchange-VerfahrenBeweis von Satz 3.33. Wir beweisen den Satz zunächst für die einfachste Algorithmenklasse,nämlich ALG-FOS. Für den Fluss x ALG kFOS nach k Schritten gilt:x ALGFOSk= xALGk−1 FOS + αAALG T w k−1∑k−1= α A ALGT M ALGl w 0l=0∑k−1= α A ALGT M ALGll=0∑k−1= αl=0A ALGTm ∑i=2∑m ∑k−1= αA ALGT= αA ALGT m ∑i=2 l=0i=2= A ALGT m ∑i=2∑m z ii=2µ ALG li ziµ ALG li zi1 − µ ALGi1 − µ ALGi1 − µ ALGiλ ALGikz ikz ida µ ALGi= 1 − αλ ALGiIm diesem einfachen Fall ist die Aussage wegen lim k→∞ µ ALG ki = 0, i = 2, . . . , m hier<strong>mit</strong>bereits bewiesen. Nun wird der allgemeine Fall p k (t) = ∑ kr=0 ϕ rt r betrachtet, alsow k =k∑ϕ r M ALGr w 0 .r=0Jeder Summand kann <strong>auf</strong>gefasst werden als ein nach r Schritten abgebrochenes FOS-Verfahren. Da<strong>mit</strong> erhält man:x ALGk =k∑r=0ϕ r x ALG rFOS= A ALGT k ∑= A ALGT m ∑∑mϕ rr=0 i=2i=2= A ALGT m ∑i=2= A ALGT m ∑i=21λ ALGi1λ ALGi1λ ALGi1 − µ ALG rik∑ (r=0λ ALGiz iϕ r · 1 − ϕ r µ ALGi(p k (1) − p k (µ ALGi )()1 − p k (µ ALGi ) z i)r ) z iz i72


3.8 Abschätzungen für Flüssex ALG = limk→∞ xALGk= A ALGT m ∑i=21λ ALGiz iSatz 3.33 hat den Nachteil, dass er die üblicherweise unbekannte Zerlegung von w 0 inEigenvektoren benutzt. Der folgende Satz vermeidet dies.Satz 3.35. Es sei ALG ∈ {Diff, DE, SDE, DEcc, DEfb} eine <strong>Loadbalancing</strong>-Verfahrensklasse.Ferner sei w 0 die Ausgangslastverteilung. Dann wird von dem Verfahren folgenderFluss x ALG bestimmt:x ALG = A ALGT L ALG+ w 0Beweis. Zunächst ist festzustellen, dass das angegebene x ALG tatsächlich ein ausgleichenderFluss ist:Ax ALG = AA ALGT L ALG+ w 0 = L ALG L ALG+ w 0 =(I − 1 )n J w 0 = w 0 − wNun wird wieder die Zerlegung w 0 = ∑ mi=1 z i von w 0 in Eigenvektoren von L ALG ausSatz 3.33 betrachtet. Für i ≠ 1 erhält man <strong>mit</strong> <strong>Hilfe</strong> von Satz 3.28L ALG+ L ALG z i =(I − 1 )n J z i = z i ,denn wegen z 1 ⊥z i ist Jz i = 0. Also istund schließlichL ALG+ z i = 1λ ALG z iiA ALGT L ALG+ w 0 = A ALGTm ∑i=21λ ALGiwas <strong>mit</strong> der bekannten Formel aus Satz 3.33 übereinstimmt.Da<strong>mit</strong> ist es nun möglich, den Fluss für ein bestimmtes Verfahren <strong>auf</strong> einem bestimmtenGraphen unabhängig von der Anfangslast w 0 abzuschätzen.Satz 3.36. Es sei ALG ∈ {Diff, DE, SDE, DEcc, DEfb} eine <strong>Loadbalancing</strong>-Verfahrensklasse.1. Ist ˜x ein beliebiger ausgleichender Fluss, so erhält man den <strong>mit</strong> dem speziellenVerfahren berechneten Fluss x ALG durchInsbesondere ist x ALG unabhängig von der Wahl von ˜x.z i ,x ALG = A ALGT L ALG+ A˜x . (3.7)73


3 <strong>Dimension</strong>-Exchange-Verfahren2. Die l 2 -Norm des Flusses x ALG ∥liegt maximal um den Faktor ∥A ALGT L ALG+ A∥ 2∥über der Norm des minimalen Flusses. Insbesondere ist also ∥A T L Diff + A∥ = 1,2da Diffusionsverfahren minimale Flüsse bestimmen.3. Für jeden Graphen und jedes Verfahren lässt sich eine Ausgangslastverteilung w 0finden, so dass die Schranke aus Teil 2 genau angenommen wird.Beweis.1. Nach Satz 3.35 und <strong>mit</strong> w 0 = A˜x + w istx ALG = A ALGT L ALG+ (A˜x + w) .Aus w T L ALG = w T AA ALGT = 0 folgt <strong>mit</strong> Lemma 3.29 aberL ALG+ w = 0 .2. Nimmt man für ˜x den minimalen Fluss x Diff , so folgt aus Gleichung (3.7) un<strong>mit</strong>telbar∥ ∥ ∥∥x ALG∥∥∥ ≤ ∥A ALGT L ALG+ ∥∥x DiffA∥ ∥ .2 2 23. Sei N = A ALGT L ALG+ A und ν = ‖N‖ 2. Das heißt, ν 2 ist der größte Eigenwert vonN T N. Ferner sei y ein zugehörige Eigenvektor, also N T Ny = ν 2 y. Der Vektor ylässt sich <strong>auf</strong>fassen als Fluss <strong>auf</strong> dem Graphen. Eine passende Anfangslastverteilungerhält man aus Ay = w 0 − w, indem man w zunächst beliebig wählt. Erhöhedann w 0 und w um Vielfache von w, bis alle Komponenten von w 0 nicht-negativsind. Für den <strong>mit</strong> dem speziellen Verfahren berechneten Fluss x gilt dann:(Es ist also y ein minimaler Fluss.)‖x‖ 2= ‖Ny‖ 2= ( y T N T Ny ) 12= ν ‖y‖ 2Aus Teil 1 des Satzes folgt un<strong>mit</strong>telbar:Korollar 3.37. Alle Flüsse, die von beliebigen <strong>Dimension</strong>-Exchange-Verfahren berechnetwerden, sind trotz eventuell komplexer Eigenwerte reell.∥Tabelle 3.3 enthält experimentell er<strong>mit</strong>telte Werte für ∥A ALGT L ALG+ A∥ für verschiedeneVerfahren und Graphen. XXX steht hierbei für einen beliebigen Verfahrenstyp, also2FOS, OPS oder OPT.Einige wenige dieser Resultate lassen sich zudem theoretisch bestätigen, vergleichehierzu die nachfolgenden Sätze. Zunächst aber wird noch ein allgemeinerer Satz zumNachweis minimaler Flüsse bewiesen.74


3.8 Abschätzungen für FlüsseSDE-XXX DE-XXX DE-XXXfb DE-XXXccP n 1 1 1 1√ √C n 2 | n 2 ≈ 1, 414 2 ≈ 1, 414 1 12 ∤ n < √ 2 ≈ 1, 414 < √ 2 ≈ 1, 414 < 3√ √1119≈ 1, 00277 < 103≈ 1, 0541C n[3]√ √3 | n 395≈ 1, 249 153 √ 113≈ 1, 29119≈ 1, 00277 1C n[5]5 √ √ √35 | n7≈ 1, 237 355≈ 1, 183 12335111≈ 1, 000568 1C n[5b]√5 | n 1453 √ √59≈ 1, 3385≈ 1, 342 15245123≈ 1, 00383 ≈ 1, 0275C n[5c]√5 | n 1453 √ √59≈ 1, 3385≈ 1, 342 15245123≈ 1, 00383 ≈ 1, 0170G k < 2 < 2 < √ √2 ≈ 1, 414 < 52≈ 1, 118√ √T k 2 | k 2 22 ≈ 1, 414 52≈ 1, 1182 ∤ k < 2 < 2, 002 < √ 2 < 1, 183T [6]k2 ∤ k < 2 < 2, 016 < √ 2 < 1, 22 ?T [3C]k2 ∤ k < 1, 93 ? < 2, 078 ? < 1, 307 ? < 1, 18 ?√ √ √H d d dd2 , (1 für d = 1) ∗Tabelle 3.3: Die Werte geben an, um welchen Faktor die l 2 -Norm der von den Verfahrenberechneten Flüsse für α = 1 2im schlimmsten Fall über der Normdes minimalen Flusses liegen kann. Die Werte für die ungeraden Torisind numerisch bestätigt bis k = 45. Theoretisch nachgewiesen sind dieErgebnisse für den Pfad und den Zyklus gerader Länge sowie die erstenbeiden Werte √ für den Hypercube. Bei DE-XXXfb lässt sich für H dd+1nur der Wert2beweisen. Vergleiche hierzu die nachfolgenden Sätze.√∗ 1, 1, 10, √ 20, √ 34, √ 54, √ 81, √ 114, √ 156, √ 208, √ 268für d = 1, . . . , 113 4 5 6 7 8 9 10 11Satz 3.38. Ein <strong>Loadbalancing</strong>-Verfahren erzeugt minimale Flüsse für jede Ausgangslastverteilungw 0 genau dann, wenn es minimale Flüsse für alle Peak-Ausgangsverteilungw 0,i,p i= (0, . . . , 0, p i , 0, . . . , 0), i = 1, . . . , n, p i ∈ N 0 erzeugt. Hierbei hat Prozessor ianfänglich p i Lasteinheiten, alle anderen Prozessoren haben keine Last.Beweis. Sei w 0 = ( w 0 1 , . . . , w0 n)=∑ ni=1 w0,i,w0 i eine beliebige Ausgangslastverteilungund sei x i der Fluss zu w 0,i,p i, also x i = A ALGT L ALG+ w 0,i,p i, vergleiche Satz 3.35. Dannist der Fluss x zu w 0 x = A ALGT L ALG+ w 0= A ALGT L ALG+ n ∑=i=1w 0,i,w0 in∑n∑A ALGT L ALG+ w 0,i,w0 i = x i .i=1i=175


3 <strong>Dimension</strong>-Exchange-VerfahrenNach Voraussetzung sind die x i minimal, was insbesondere bei Diffusionsverfahren immererfüllt ist. Da Diffusionsverfahren sogar für jede Ausgangsverteilung minimale Flüsseerzeugen und darüber hinaus minimalen Flüsse eindeutig bestimmt sind, ist auch xminimal.Jetzt werden wie angekündigt einige der Resultate aus Tabelle 3.3 theoretisch nachgerechnet.Bei Zyklen gerader Länge erhält man die Flussabschätzung durch pures Nachrechnender entsprechenden Formeln.Satz 3.39. Bei Zyklen C n gerader Länge n ist der von DE-XXX und SDE-XXX <strong>mit</strong> α = 1 2berechnete Fluss in der l 2 -Norm höchstens um den Faktor √ 2 höher als der minimaleFluss.Beweis. Nach Satz 3.36 ist zum Beweis die Norm von X (S)DE = A (S)DET L (S)DE+ A nachzurechnen.Diese Berechnung ist nicht allzu schwierig, dafür etwas langwierig. Aus diesemGrund werden nur die wichtigsten Zwischenergebnisse angegeben. Dabei wird intensivdie in Definition 3.18 eingeführte Notation für blockzirkulante Matrizen verwendet, diehier <strong>auf</strong> nicht-quadratische Blöcke ausgedehnt wird.A 1 =A 2 =(Φ(( 1−1), 0, . . . , 0))0( (( ( )))0 −10 Φ , 0, . . . , 0,1)0A = A 1 + A 2M 1 = Φ(( 12M 2 = Φ121212(( 120012) ), 0, . . . , 0),( ) 0 0, 0, . . . , 0,120A DE = A 1 + M 1 A 2( (( )1= Φ , 0, . . . , 0−1)( )) 0120 0(( 1( )))Φ 2 −11 , 0, . . . , 0, 22)− 1 2A SDE = A 1 + M 1 A 2 + M 1 M 2 A 2 + M 1 M 2 M 2 A 1( (( ( 1 1( ))= Φ , 4 −1−1)1 , 0, . . . , 0, 44)− 1 Φ4(( 3L DE = Φ 2− 1 ) ( )2 0 0− 1 3 ,2 2− 1 2− 1 , 0, . . . , 0,2( ( )3L SDE = Φ Φ2 2), −1 , Φ, 0, . . . , 0, Φ(− 1 4 , −1 4(( 12 12), 0, . . . , 0,( −12− 1 20 0))(− 1 4 , −1 4))( ))) −12− 1 2Für die benötigten Pseudoinversen P (S)DE = L (S)DE+ findet man folgende Formeln:P (S)DE = 1 ()n Φ P (S)DE1 , . . . , P (S)DE n276


3.8 Abschätzungen für Flüsse<strong>mit</strong>( 11 = Φ24 n2 + 1 4 n − 1 6 , 1 24 n2 − 1 4 n − 1 6))P DEP SDE( l 2 − l − 1 2 ln + 124 n2 + 1 4 n − 1 6l 2 − 3l − 1 2 ln + 1Pl DE =24 n2 + 3 4 n + 11 ⊗ ( 1 1 ) l = 2, . . . , n62( 11 = Φ24 n2 + 1 4 n − 1 6 , 1 24 n2 − 1 4 n − 1 6)(P (1)l= l 2 − 2l − 1 2 ln + 1 24 n2 + 1 2 n + 5 )· J 2 l = 2, . . . , n 62Die Korrektheit der angegebenen Pseudoinversen lässt sich durch Nachrechnen der vierMoore-Penrose-Bedingungen (3.2)-(3.5) nachweisen; dabei istP (S)DE L (S)DE+ = L (S)DE+ P (S)DE = 1 Φ (n − 1, −1 . . . , −1) .nDa<strong>mit</strong> erhält man schließlichundX DE = X SDE =X (S)DE X (S)DET =( I −2n J )0 I − 2 n J( I +2n J 0 )0 I − 2 n J .Die letzte Matrix hat nur die drei Eigenwerte 0, 1 und 2 und so<strong>mit</strong> folgt das Ergebnis∥∥∥X (S)DE ∥∥2= √ 2 .Bemerkung 3.40. Der Faktor √ 2 aus dem letzten Satz wird in folgender Situation erreicht:w 0 = (4, 0, 4, 0, . . . , 4, 0), w = (2, 2, . . . , 2). Sortiert man die Einträge in denFlussvektoren nach Farben, so erhält man als minimalen Fluss∥x Diff ∥= (1, . . . , 1, −1, . . . , −1) , ∥x Diff ∥∥2= √ nund als <strong>Dimension</strong>-Exchange-Flussx DE = (2, . . . , 2, 0, . . . , 0) ,∥∥x DE ∥ ∥∥2=√ n2 · 4 = √ 2 · √n .Der Nachweis, dass die Flüsse <strong>auf</strong> dem Zyklus durch Flussreduktion sogar minimalwerden, ist dank Satz 3.38 sehr einfach.Satz 3.41. Bei Zyklen C n gerader Länge n ist der von DE-XXXfb und DE-XXXcc <strong>mit</strong>beliebigem α berechnete Fluss in der l 2 -Norm minimal.77


3 <strong>Dimension</strong>-Exchange-VerfahrenBeweis. Nach Satz 3.38 genügt es, die Behauptung für Peakverteilungen zu zeigen. Außerdemstimmen beide Verfahren bei nur zwei Farben überein. O. B. d. A. habe anfänglichnur Knoten 1 eine von 0 verschiedene Last. Ein minimaler Fluss ist dadurch gekennzeichnet,dass der Flusswert für die beiden Kanten, die jeweils denselben Abstand vomKnoten 1 haben, gleich ist. Dies wird durch die Mittelwertbildung der Verfahren genauerreicht.Die Berechnung der Flüsse beim Hypercube vereinfacht sich dadurch ein wenig, dassman die benötigte Pseudoinverse leicht angegeben kann.Satz 3.42. Beim Hypercube H d ist der von DE-XXX und SDE-XXX <strong>mit</strong> α = 1 2 berechneteFluss in der l 2 -Norm höchstens um den Faktor √ d höher als der minimale Fluss. DieseGrenze ist scharf, d. h. es gibt Fälle, in denen dieser Faktor erreicht wird.Beweis. Zunächst ist festzustellen, dass für α = 1 2beide Verfahren dasselbe Ergebnisliefern. Das SDE-Verfahren hat nämlich bereits nach dem ersten Halbschritt (der <strong>mit</strong>einem DE-Schritt übereinstimmt) die Gleichverteilung der Last erzielt. Die Behauptungwird nun durch Berechnung der Norm von A DET L DE+ A bewiesen, vergleiche Satz 3.36.A i =(( ) )10 2 d ,(i−1)2 d−1 I 2 d−i ⊗ ⊗ I−1 2 i−1 0 2 d ,(d−i)2 d−1A =d∑i=1A iM i = 1 2 I 2 d−i ⊗ J 2 ⊗ I 2 i−1A DEi= M 1 · · · M i−1 A i(( ) )11= 0 2 d ,(i−1)2 d−1 I2 i−1 2 d−i ⊗ ⊗ J−1 2 i−1 0 2 d ,(d−i)2 d−1A DE =d∑i=1A DEiM DE = 1 2 d J 2 dL DE = 2(I 2 d − 1 )2 d J 2 dDa die Matrix L DE symmetrisch ist und als Eigenwerte nur 0 und 2 besitzt, hat sie alsPseudoinverse L DE+ = 1 4 LDE (verwende L DE = QΣQ T <strong>mit</strong> Σ = diag(0, 2, . . . , 2) undSatz 3.27). Da<strong>mit</strong> istA DET L DE+ A = 1 4 ADET L DE A = 1 4 ADET AA DET A = 1 4(A DET A) 2.78


3.8 Abschätzungen für FlüsseBerechne nun A DET A =: N = (N ij ) i,j∈{1,...,d}:⎧1I2⎪⎨i−2 2 d−i ⊗ J 2 i−1 i = j0N ij =( )i > j11( )⎪⎩ I2 i−1 2 d−j ⊗ ⊗ I 2 j−i−1 ⊗ J 2 i−1 ⊗ 1 −1 i < j−1Weiterhin stellt man fest, dass N 2 = 2N ist. Zusammengefasst ergibt sich, dass diegesuchte Größe∥∥A DET L DE+ A∥ = 1 ∥∥N 2∥ ∥2 4 2= 1 4 ‖2N‖ 2 = 1 2 ‖N‖ 2 = 1 2 ϱ ( NN T ) 12ist. NN T ist eine Blockdiagonalmatrix <strong>mit</strong> Diagonalblöcken(NNT ) ii = 12 i−3 I 2 i−1 ⊗ J 2 i−1 + 12 i−2 d∑k=i+1I 2 d−k ⊗Mit <strong>Hilfe</strong> des Satzes von Geršgorin folgt nun endlich‖N‖ 2 2 ≤ max2∑d−1maxi=1,...,d r=1,...,2 d−1 s=1∣ (( NN T ) )iirs( 1 −1−1 1)⊗ I 2 k−i−1 ⊗ J 2 i−1 .∣ ≤ max 4 + 4 (d − i) = 4d .i=1,...,dBeide Abschätzungen sind sogar Gleichheiten, wie sich durch Konstruktion einer Ausgangsverteilungzeigen lässt, bei der der Faktor √ d erreicht wird. Wähle hierzu w 0 so,dass für die beiden Endknoten jeder Kante gilt, dass einer die Last 2d hat, der andere 0(zum Beispiel indem die Knoten i die Last 2d erhalten, für die die Binärdarstellung voni − 1 eine gerade Anzahl Einsen enthält). Dann sind alle Komponenten des minimalenFlusses x Diff betragsmäßig 1 und dessen Norm ist daher∥∥∥x Diff ∥∥2= √ N = √ d · 2 d−1 .Der <strong>Dimension</strong>-Exchange-Fluss ist <strong>auf</strong> allen 2 d−1 Kanten der ersten Farbe d und <strong>auf</strong>allen anderen 0 und seine Norm so<strong>mit</strong>∥∥∥x DE ∥∥2= √ 2 d−1 · d 2 = √ d · √d· 2 d−1 .Das folgende Lemma wird benötigt für Hypercubeflüsse, die <strong>mit</strong> Vorwärts-rückwärts-Technik generiert werden.Lemma 3.43. Seien i, d ∈ N <strong>mit</strong> 1 ≤ i ≤ d. Dann gelten folgende Gleichheiten:∑i−1( )11 −12 k I 2 i−k−1 ⊗ ⊗ J−1 1 2 k−1 + 12 i−1 J 2 i−1 = I 2 i−1d∑k=i+1k=1(11 −12 d−k+1 J 2 d−k ⊗ −1 1)⊗ I 2 k−i−1 + 12 d−i J 2 d−i = I 2 d−i 79


3 <strong>Dimension</strong>-Exchange-VerfahrenBeweis. Da beide Gleichungen ähnlich bewiesen werden, beschränkt sich der Beweis <strong>auf</strong>die erste Gleichung. Die Matrix <strong>auf</strong> deren linker Seite werde <strong>mit</strong> I bezeichnet. Diesewerde entsprechend der folgenden Skizze in Gebiete zerlegt:0 121 00 121 0330 121 00 121 0Auf der Diagonalen (Gebiet 0) gilt:I rr =∑i−1k=112 k + 12 i−1 = 1 .Sei nun I rs ein Element aus Gebiet l ∈ {1, . . . , i − 1}. Für dieses Element folgt:I rs = − 1 i−12 l + ∑k=l+112 k + 12 i−1 = 0 .Satz 3.44. Beim Hypercube H d ist der von DE-XXXfb <strong>mit</strong> α = 1 2berechnete Fluss in√d+1der l 2 -Norm höchstens um den Faktor2höher als der minimale Fluss.Beweis. Der Beweis dieses Satzes erfolgt nach dem selben Schema wie beim letzten Satz.Insbesondere ist L DEfb = L DE = 2 ( I 2 d − 1 J2 d 2 d). Für die zu diesem Verfahren gehörendeMatrix A DEfb gilt:A DEfbi = 1 2 (M 1 · · · M i−1 A i + M d · · · M i+1 A i )(( )( )1 1= 0 I2 i 2 d−i ⊗ ⊗ J−1 2 i−1 + 11J2 d−i+1 2 d−i ⊗−1)⊗ I 2 i−1 0A DEfb =d∑i=1A DEfbi80


3.8 Abschätzungen für FlüsseBerechne nun die Matrix N := A DEfbT A:⎧1I2 i−1 2 d−i ⊗ J 2 i−1 + 1 J2 d−i 2 d−i ⊗ I 2 i−1( )i = j⎪⎨ 11( )I2N ij =i 2 d−j ⊗ ⊗ I 2 j−i−1 ⊗ 1 −1 ⊗ J 2 i−1 i < j−1( )( )11⎪⎩ J2 d−i+1 2 d−i ⊗ 1 −1 ⊗ I 2 i−j−1 ⊗ ⊗ I 2 j−1 i > j−1Weiterhin lässt sich nachrechnen, dass N 2 = 2N ist. Im Gegensatz zum letzten Beweismuss man hier statt NN T die Matrix N := N T N berechnen. Es werden nun zunächstdie Diagonalblöcke dieser Matrix betrachtet.∑i−1N ii = Nki T N ki + Nii 2 +=k=1∑i−1k=1d∑k=i+1(11 −12 k I 2 d−k−1 ⊗ −1 1N T ki N ki)⊗ J 2 k−1+ 12 i−1 I 2 d−i ⊗ J 2 i−1 + 12 d−i J 2 d−i ⊗ I 2 i−1 + 12 d−2 J 2 d−1d∑( )11 −1+2 d−k+1 J 2 d−k ⊗ ⊗ I−1 1 2 k−2k=i+1= 2I 2 d−1 + 12 d−2 J 2 d−1Für die letzte Gleichheit ist Lemma 3.43 benutzt worden. Sei nun i > j:j−1∑N ij = Nki T N kj + NjiN T jj +k=1∑i−1k=j+1N T ki N kj + N T ii N ij += I 2 d−i ⊗ ( 1 −1 ) ( 1 ∑j−1⊗ I 2 i−j−1 ⊗ ⊗−1)+ 1 2 j I 2 d−i ⊗ ( 1 −1 ) ⊗ I 2 i−j−1 ⊗k=1( 1−1)⊗ J 2 j−1+ 0+ 12 d−i+1 J 2 d−i ⊗ ( 1 −1 ) ( ) 1⊗ I 2 i−j−1 ⊗ ⊗ I−1 2 j−1d∑( )11 −1+2 d−k+2 J 2 d−k ⊗ ⊗ I−1 1 2 k−i−1 ⊗ ( 1k=i+1= I 2 d−i ⊗ ( 1 −1 ) ⊗ I 2 i−j−1 ⊗( 1−1)⊗ I 2 j−1d∑k=i+1N T ki N kj(11 −12 k+1 I 2 j−k−1 ⊗ −1 1)⊗ J 2 k−1−1 ) ( 1⊗ I 2 i−j−1 ⊗ ⊗ I−1)2 j−181


3 <strong>Dimension</strong>-Exchange-VerfahrenDie letzte Umformung gilt wiederum nach Lemma 3.43. Die Summe der Beträge derElemente jeder Zeile von N ist da<strong>mit</strong>Nach Satz von Geršgorin ist da<strong>mit</strong> gezeigt:∥∥A DET L DE+ A∥ = 1 ∥2 42 + 12 d−2 · 2d−1 + (d − 1) · 2 = 2d + 2 .∥N 2∥ ∥2= 1 4 ‖2N‖ 2 = 1 2 ‖N‖ 2 = 1 2 ϱ (N) 1 2 ≤12√2d + 2 =√d + 12√dBemerkung 3.45. Man beachte, dass die experimentell er<strong>mit</strong>telte Schranke bei2√stattd+12aus letztem Satz liegt. Im Gegensatz zu den vorangegangenen Sätze erhält manhier also nur eine Abschätzung der Flussnorm. Dennoch ist hier<strong>mit</strong> bewiesen, dass dasVorwärts-und Rückwärts-Durchl<strong>auf</strong>en der Farben eine Verbesserung des Verfahrens bewirkt.Alle bisher angegebenen Schranken für Flüsse bezogen sich <strong>auf</strong> endliche Verfahrenund das Kantengewicht α = 1 2. Beim DE-FOS und dessen Abwandlungen hängt dasl<strong>auf</strong>zeitoptimale α aber von der Größe des Graphen ab und liegt zwischen 1 2und 1,vergleiche Satz 3.11. Die in Abbildung 3.11 dargestellten Schranken für Gitter und Torider Größen 2 bzw. 4 bis 24 verdeutlichen, dass hierdurch höhere Flüsse entstehen als beiOPT und OPS.‖x(DE)‖ 2‖x min ‖ 28765432DE-FOS10 5 10 15 20k‖x(DEfb)‖ 2‖x min ‖ 232DE-FOSfb10 5 10 15 20k‖x(DEcc)‖ 2‖x min ‖ 232DE-FOScc10 5 10 15 20kAbbildung 3.11: Schranken für die Normen der Flüsse bei DE-FOS, DE-FOSfb und DE-FOScc für Gitter G k (gestrichelt) und Tori T k (durchgezogene Linie)verschiedener Größe <strong>mit</strong> l<strong>auf</strong>zeitoptimiertem α3.9 Aufwand der VerfahrenZur Beurteilung, welches Verfahren bei einem gegebenem Graphen das schnellste ist,reicht es nicht aus, die Zahl m der verschiedenen Eigenwerte zu betrachten. Vielmehr82


3.9 Aufwand der Verfahrenmuss man zusätzlich die Anzahl c der Farben berücksichtigen, da hierdurch (im wesentlichen)die Anzahl der Teilschritte pro Schritt bestimmt wird. Jeder Teilschritt bestehtaus einer Kommunikationsoperation und einer festen Anzahl von Rechenoperationen. Dadarüber hinaus die Größe der kommunizierten Daten recht klein ist, wird der Zeit<strong>auf</strong>wandpraktisch ausschließlich durch die Zahl der Kommunikationen bestimmt.Die DE-OPX-Verfahren benötigen c(m − 1) Kommunikationsschritte. Beim SDE-OPXwerden pro Eigenwert alle Farben zweimal verwendet, was <strong>auf</strong> 2c(m − 1) Schritte führt.Um Zeit zu sparen, kann man jedoch <strong>auf</strong>einander folgende Teilschritte <strong>mit</strong> der gleichenFarbe zusammenfassen, vergleiche Abbildung 3.12. Dann genügen (2c − 2)(m − 1) + 1Kommunikationsschritte.1 2 3 4 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 4 4 3 2 1Abbildung 3.12: Kommunikationsschritte beim SDE-OPX am Beispiel c = 4, m = 4Hierzu bedarf es folgender kleiner Abänderung im Verfahren: Zwischen den Knoten kund l gebe es eine Kante der Farbe c. Zu Beginn des c-ten Teilschritts müssen k und lihre aktuellen Lastwerte w k und w l austauschen. Danach berechnen beide Prozessorennicht nur ihren eigenen Lastwert neu sondern auch den ihres Nachbarn. Dadurch entfälltdie Kommunikation zu Beginn des nächsten Teilschrittes, dem wiederum die Farbe czugeordnet ist. Analog wird für Farbe 1 vorgegangen. Der Vorteil dieser Technik machtsich am stärksten bei Graphen <strong>mit</strong> nur zwei Farben bemerkbar, da in diesem Fall nurein einziger Kommunikationsschritt mehr gebraucht wird verglichen <strong>mit</strong> DE-OPX.Wie in den Abschnitten 3.7.1 und 3.7.2 bereits angedeutet, stimmt der Aufwand vonDE-OPXfb <strong>mit</strong> SDE-OPX überein und für DE-OPXcc ergeben sich c(m−1)+c−1 Schritte.Die direkte Zuordnung der Kommunikationsschritte zu den Farben ergibt in einigenFällen bloß eine obere Schranke für den tatsächlichen Zeitbedarf. Dies betrifft solche Graphenbei denen die Anzahl der Farben größer ist als der maximale Knotengrad. Betrachteals Beispiel hierzu Abbildung 3.13. Durch Vermischung der zu den Farben gehörendenTeilschritte sind für 5 Schritte (Eigenwerte) nicht 5 · 3 = 15 sonder nur 11 Kommunikationsschrittenotwendig. Diese Beobachtung wurde bereits in [XL95] beschrieben.Nun wird die Situation für beliebiges n betrachtet Jeder Prozessor muss pro Eigenwert<strong>mit</strong> zwei Nachbarn kommunizieren; insgesamt führt dies <strong>auf</strong> n(m−1) Kommunikationen.Wie die Abbildung verdeutlicht, finden in jedem Kommunikationsschritt⌈ n−12Kommunikationenstatt. Die Gesamtzahl der Kommunikationsschritte ist daher 2n⌉n−1 (m − 1)und nicht 3(m−1), wie obige Formel vermuten ließe. ⌈ Ähnliche⌉Überlegungen ergeben fürden Torus T n [6] , dass nicht 6(m − 1) sondern nur 4nn−1 (m − 1) Kommunikationsschritteanfallen.Dieselben Überlegungen gelten für die Diffusionsverfahren im One-Port-Kommunikationsmodell.83


3 <strong>Dimension</strong>-Exchange-VerfahrenK.-Schritt 1:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 2:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 3:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 4:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 5:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 6:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 7:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 8:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 9:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 10:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 11:1 2 3 4 5 6 7 8 9 10 11K.-Schritt 12: entspricht K.-Schritt 1Abbildung 3.13: Abl<strong>auf</strong> des DE-OPX beim Zyklus C 11 ; dargestellt sind jeweils nur dieKanten, über die im jeweiligen Kommunikationsschritt Daten ausgetauschtwerden84


3.10 Stabilität der <strong>Dimension</strong>-Exchange-Verfahren3.9.1 Eine Verbesserung bei Diffusionsverfahren: FB-OPTZerlegt man bei Diffusionsverfahren die kompletten Schritte in Teilschritte, so lässt sichausnutzen, dass die Reihenfolge der Teilschritte hier völlig beliebig ist. Setzt man voraus,dass überhaupt eine Einfärbung für den Graphen bestimmt ist, dann kann man dieFarben, ähnlich wie beim SDE-OPT, abwechselnd vorwärts und rückwärts durchl<strong>auf</strong>en.Auf diese Weise lassen sich wiederum <strong>auf</strong>einander folgende Kommunikationsoperationenüber Kanten der selben Farbe zu einer Kommunikation zusammenfassen. Diese effizienzsteigerndeAbwandlung wird im folgenden <strong>mit</strong> FB-OPT usw. bezeichnet.3.9.2 Zusammenfassender VergleichIn Tabelle 3.4 werden die L<strong>auf</strong>zeiten der Diffusions- und <strong>Dimension</strong>-Exchange-Verfahrenverglichen. Hierbei wird davon ausgegangen, dass der verwendete Parallelrechner nurOne-Port-Kommunikation zulässt. Die einzelnen Schritte der Diffusionsverfahren müssendann ebenfalls in Teilschritte zerlegt werden, wobei hierfür stets die Einfärbung verwendetwird, die <strong>auf</strong> die geringste L<strong>auf</strong>zeit führt. Bei den <strong>Dimension</strong>-Exchange-Verfahrenwird jeweils nur der Fall α = 1 2betrachtet. Die Tabelle zeigt, dass DE-OPX und auchDE-OPXcc für viele, wenn auch nicht alle Graphen, schneller sind als OPX. Mit derneuen Diffusionsart FB-OPX erreicht man zumindest bei den eindimensionalen Graphenvergleichbar gute Ergebnisse. Der folgende Satz gibt eine untere Schranke für die Anzahlder Schritte.Satz 3.46. Die Anzahl der Kommunikationsschritte bei One-Port-Kommunikation einesbeliebigen <strong>Loadbalancing</strong>-Verfahrens <strong>auf</strong> einem Graphen G ist im Worst Case mindestensso groß wie der Durchmesser diam(G) des Graphen.Beweis. Es seien k und l zwei Knoten des Graphen <strong>mit</strong> Abstand diam(G). Betrachte denFall, dass anfänglich die gesamte Last ausschließlich <strong>auf</strong> Knoten k vorliegt. Dann sindmindestens diam(G) Kommunikationsschritte nötig, bis sich der Lastwert des Knotens lzum ersten Mal ändert.Im Sinne obigen Satzes sind die DE-OPX-Verfahren (ggf. bis <strong>auf</strong> eine konstante Zahlvon ein oder zwei Kommunikationsschritten) optimal für den Pfad, den Ring geraderLänge und den Hypercube.3.10 Stabilität der <strong>Dimension</strong>-Exchange-VerfahrenDie <strong>Dimension</strong>-Exchange-Verfahren sind den Diffusionsverfahren nicht nur im Hinblick<strong>auf</strong> die L<strong>auf</strong>zeiten überlegen sondern auch bezüglich der numerischen Stabilität. Die Beobachtungenzum Einfluss der Reihenfolge der Eigenwerte beim OPT in Abschnitt 2.5übertragen sich direkt <strong>auf</strong> die DE- und SDE-Varianten. Kleine Fehler am Ende der Rechnungergeben sich nur unter Verwendung der Leja-Sortierungen. Komplexe Eigenwertewerden hierbei bezüglich ihrer Beträge sortiert. Wählt man α nahe 0, dann sindDiffusions- und <strong>Dimension</strong>-Exchange-Verfahren nahezu identisch, vgl. Lemma 3.22. Entsprechendunterscheiden sich die Diagramme zur Konvergenz auch nicht wesentlich. So85


3 <strong>Dimension</strong>-Exchange-VerfahrenGraph diam OPX FB-OPX SDE-OPX DE-OPX DE-OPXccPn 2 | n n − 1 2n − 2 n n + 1 n n + 12 ∤ n n − 1 2n − 2 n n + 2 n + 1 n + 21Cn 4 | n2 n + 112 | n, 4 ∤ n2 n n 12 n + 1 12 n + 2 12 n + 1 12 n + 212 ∤ nC [3]n 3 | n, 2 ∤ n1C [5]C [5b,c]n 5 | n, 2 ∤ n12 n n 12 n + 1 12 n + 1 12 n 12 n − 1 2n n 2n + 3 n + 2 +⌈⌉2n−1n + 4 +⌈2 n − 1 2n n43n + 5 2n 2n + 22 n − 1 162n n5n + 17 4n 4n + 41n 5 | n, 2 ∤ n2 n − 1 62n n5 n + 10 95 n 95 n + 2Gk 2 | k 2k − 2 2k 2 3 2 k2 3+ 14 k2 + 3 2 k + 1 12 k2 1+ k2 k2 + k + 32 ∤ k 2k − 2 2k 2 + 232 k2 + 5 2Tk 4 | k k12 k2 + 2k334 k2 + 3k + 13 412 k2 + 2k + 3 2⌉2n−112 k2 + 2k + 9 28 k2 + 3 2 k + 1 316 k2 + 3 4 k + 1 18 k2 + 1 2 k 18 k2 + 1 2 k + 312 | k, 4 ∤ k k2 k2 3+ 2k + 28 k2 + 3 2 k + 5 32 16 k2 + 3 2 k + 13 14 8 k2 + k + 3 128 k2 + k + 9 212 ∤ k k − 1 f(k)2 k2 + 2k − 3 22k 2 5+ 4k + 34 k2 + 5 2 k + 5 54 ⌈ ⌉ 4 k2 + 5 2 k + 21 4 ⌈1k2 ∤ k k − 1 f(k)2 k2 + 2k − 3 52 4 k2 + 5k + 19 14 2 k2 + 5 2 k + 8 + 8 1k−1 2 k2 + 5 2 k + 13 + 81k2 ∤ k k − 1 f(k)2 k2 + 2k − 3 52 9 k2 + 10 3 k + 16 43 k2 4+ 2k3 k2 + 2k + 5T [6]T [C3]Hd d d 2 d 2 − d + 1 2d − 1 d 2d − 1Sn 2 2n − 2 2n − 3 2n 2 − 6n + 4 n 2 − 2n + 1 n 2 − n − 1k−1⌉Tabelle 3.4: Anzahl der Kommunikationsschritte bei Standardgraphen und verschiedenen Verfahren; bei allen <strong>Dimension</strong>-Exchange-Verfahren wird α = 1 2angenommen; zum Vergleich ist jeweils der Durchmesser diam der Graphen <strong>mit</strong>angegeben; (f(k) = min { 58 k2 + 5 2 k − 25 8 , 1 2 k2 + 5 2 k} )86


3.10 Stabilität der <strong>Dimension</strong>-Exchange-VerfahrenP 810 210 010 −210 −410 −610 −810 −1010 −1210 −140 1 2 3 4 5P 3210 210 010 −210 −410 −610 −810 −1010 −120 2 4 6 8 10 12 14 16C 1610 210 010 −210 −410 −610 −810 −1010 −1210 −140 1 2 3 4 5C 25610 210 010 −210 −410 −610 −810 −1010 −120 10 20 30 40 50 60G 810 210 010 −210 −410 −610 −810 −100 2 4 6 8 10G 2410 410 210 010 −210 −410 −610 −810 −1010 −1210 −140 10 20 30 40 50 60 70T 1610 210 010 −210 −410 −610 −810 −1010 −1210 −140 2 4 6 8 10T 3210 410 210 010 −210 −410 −610 −810 −1010 −1210 −140 5 10 15 20 25 30 35H 610 210 010 −210 −410 −610 −810 −1010 −1210 −140 0.2 0.4 0.6 0.8 1 1.2S 1610 210 010 −210 −410 −610 −810 −1010 −1210 −1410 −160 2 4 6 8 10 12 14 16R 32,3110 210 010 −210 −410 −610 −810 −1010 −120 5 10 15 20R 32,12810 210 010 −210 −410 −610 −810 −1010 −1210 −140 2 4 6 8 10 12 14 16 18Abbildung 3.14: Vergleich von DE-OPT (durchgezogene Linie) und SDE-OPT (gestrichelt);es werden dieselben Graphen verwendet wie für die Diffusionsverfahrenin Abbildung 2.487


3 <strong>Dimension</strong>-Exchange-Verfahrenverbessern sich die Ergebnisse für den Zufallsgraphen R 32,31 aus Abbildung 2.4 erst ungefährab α = 0,17.Das Konvergenzverhalten für α = 1 2ist in der Abbildung 3.14 dargestellt. Bei keinemder zwölf betrachteten Graphen und zwei Verfahren sind Konvergenzprobleme festzustellen.88


4 Verfahren für ProduktgraphenDas letzte Kapitel hat gezeigt, dass für einige Graphen wie Pfade und Zyklen zeitoptimale(oder annähernd optimale) Verfahren gefunden sind. Bei Gittern und Tori dagegenunterscheiden sich der Durchmesser des Graphen (O (n)) und die L<strong>auf</strong>zeit (O ( n 2) ) umeine ganze Größenordnung. In diesem Kapitel werden Verfahren vorgestellt werden, diedie spezielle Struktur der Graphen besser ausnutzen und die L<strong>auf</strong>zeiten da<strong>mit</strong> tatsächlichin die Nähe des Durchmessers bringen. Als eine Schwierigkeit dabei wird sich dasProblem herausstellen, dass die Flüsse relativ groß werden können.Der Begriff des Produktgraphen, der hier wieder benötigt wird, ist bereits in Kapitel1.8 eingeführt worden.4.1 ADI-FOSDas einfachste, wenn auch nicht sehr effiziente Diffusionsverfahren ist das FOS aus Kapitel2.2. Hat man nun einen Produktgraphen G = G (1) × G (2) vorliegen, so kann manFOS abwechselnd <strong>auf</strong> den Kanten in Richtung von G (1) und G (2) ausführen. Dieses Verfahrenstammt aus [EFMP99] und wird <strong>mit</strong> ADI-FOS bezeichnet. ADI steht hierbei füralternating direction iteration.Es seien M Diff (1) = I − α (1) L Diff (1) und M Diff (2) = I − α (2) L Diff (2) die Diffusionsmatrizenvon G (1) bzw. G (2) . Ein Schritt von ADI-FOS hat für Knoten (i, j) die Form ausAlgorithmus 4.1.for all e = {(i, ( j), (l, j)} ∈ E)doye k−1 = α (1) w k−1(i,j) − wk−1 (l,j)end forw k− 1 2(i,j) = wk−1 (i,j) − ∑ e={(i,j),(l,j)}∈E yk−1 efor all e = {(i, ( j), (i, l)} ∈ E ) doye k−1 = α (2) w k− 1 2(i,j) − 1 wk− 2(i,l)end forw(i,j) k = 1 wk− 2(i,j) − ∑ e={(i,j),(i,l)}∈E yk−1 eAlgorithmus 4.1: Schritt k des ADI-FOS-Verfahrens für Prozessor iIn Matrixschreibweise ergibt sich der sehr kurze Algorithmus 4.2.89


4 Verfahren für Produktgraphenfor k = 1, 2, . . . dow k = M Diff (2) ⊗ M Diff (1) w k−1end forAlgorithmus 4.2: ADI-FOS-Verfahren in MatrixnotationIn [EFMP99] wird gezeigt, dass im Falle G (1) = G (2) ADI-FOS nur halb so vieleIterationen wie FOS benötigt, um die selbe Fehlerschranke zu erreichen. Die Anzahl derbenötigten Iterationen und die Höhe des Flusses hängen beide vom Parameter α ab.Minimale Flüsse ergeben sich, wenn man α gegen Null l<strong>auf</strong>en lässt, wobei die Anzahl derIteratiosschritte sehr groß werden kann. Wählt man α so, dass die L<strong>auf</strong>zeit minimiertwird, können sich andererseits recht hohe Flüsse ergeben.Das ADI-FOS kann man auch <strong>auf</strong>fassen als eine Kombination von Diffusions- und<strong>Dimension</strong>-Exchange-Verfahren, also von FOS und DE-FOS [EMP00]. Zur Vereinfachungsei M Diff (2) = M Diff (1) . Dann ist M Diff (1) = I − αL Diff (1) , L Diff (1) = A (1) A (1)T und()M ADI = M Diff (1) ⊗ M Diff (1) = M Diff (1) Diff (1))⊗ I(I ⊗ M=(I − αL Diff (1) ⊗ I) (I − αI ⊗ L Diff (1)) .Färbe die Kanten nun so <strong>mit</strong> 2 Farben, dass alle Kanten einer Richtung dieselbe Farbebesitzen. (Dies ist keine Einfärbung im bisherigen Sinne!) Bezeichnet man die beidenInzidenzmatrizen der Teilgraphen einer Farbe <strong>mit</strong> A 1 bzw. A 2 , so ist A 1 = ( I ⊗ A (1) | 0 )und A 2 = ( 0 | A (1) ⊗ I ) . Mit L 1 = A 1 A T 1M i = I − αL i erhält man schließlichM Diff/DE = M 2 M 1 =(I − αL Diff (1) ⊗ I= I ⊗ LDiff (1) und L 2 = L Diff (1) ⊗ I sowie) (I − αI ⊗ L Diff (1)) = M ADI .Diese Gleichheit kann man nun ausnutzen, um <strong>mit</strong> <strong>Hilfe</strong> von Satz 3.35 eine Formel fürden Fluss des Verfahrens zu bestimmen.Korollar 4.1. Von ADI-Verfahren wird bei Anfangslast w 0 folgender Fluss x berechnet:x = A ADIT L ADI+ w 0<strong>mit</strong> M ADI = I − L ADI , L ADI = AA ADIT und A ADI = A 1 + M 1 A 2 .MDI-FOSZur Verkleinerung der Flüsse wird in [EFMP99] als Variante des Verfahrens MDI-FOS(mixed direction iteration) eingeführt. Hierbei bleiben alle Schritte <strong>mit</strong> ungeradem kunverändert, in den anderen wird <strong>mit</strong> den Kanten der zweiten Richtung begonnen unddie anderen werden danach benutzt. Formal verwendet man im Wechsel die MatrizenM Diff (2) ⊗M Diff (1) und M Diff (1) ⊗M Diff (2) . Diese Variante kann man Auffassen als Mischformvon Diffusion und symmetrischem <strong>Dimension</strong>-Exchange (SDE-FOS). Aus Satz 3.35ergibt sich hier<strong>mit</strong> das folgende Korollar.90


4.2 SDI-VerfahrenKorollar 4.2. Von MDI-Verfahren wird bei Anfangslast w 0 folgender Fluss x berechnet:x = A MDIT L MDI+ w 0<strong>mit</strong> A MDI = A 1 + M 1 A 2 + M 1 M 2 A 2 + M 1 M 2 M 2 A 1 und L MDI = AA MDIT .ADC-FOSAls weitere Variante kann man das zyklische Durchl<strong>auf</strong>en der Farben des DE-OPTccaus Abschnitt 3.7.2 <strong>auf</strong> die verschiedenen Richtungen übertragen. Man beginnt hier alsoeinmal <strong>mit</strong> Richtung eins und einmal <strong>mit</strong> Richtung zwei und bildet am Ende denMittelwert beider errechneter Flüsse. Dieses neue Verfahren wird <strong>mit</strong> ADC-FOS bezeichnet(alternating direction cycling). Ähnlich wie beim DE-OPTcc können auch hier beideRechnungen gleichzeitig, nur um einen Halbschritt versetzt stattfinden, wodurch sichder Kommunikations<strong>auf</strong>wand im Vergleich zu ADI-FOS nur wenig erhöht. Analog zumDE-OPTcc verwendet man nun die Matrizen A ADC = 1 2 (A 1 + M 1 A 2 + A 2 + M 2 A 1 ) undL ADC = AA ADCT zur Darstellung der Flüsse gemäß Satz 3.35.Korollar 4.3. Von ADC-Verfahren wird bei Anfangslast w 0 folgender Fluss x berechnet:x = A ADCT L ADC+ w 0Experimenteller Vergleich der VariantenEine experimentelle Untersuchung zeigt, dass die Normen∥∥A XXXT L XXX+ A∥ , XXX ∈2{ADI, MDI, ADC} und da<strong>mit</strong> die Schranken für die Flüsse bei (quadratischen) Tori fürfestes α unabhängig von der Größe sind; die Schranken für Gitter nähern sich denen desTorus <strong>mit</strong> wachsender <strong>Dimension</strong> an. Leider wächst aber das optimale α <strong>mit</strong> der Größedes Graphen, so dass die Flüsse im jeweils l<strong>auf</strong>zeitoptimalen Fall doch deutlich anwachsen,bei MDI allerdings schwächer als bei ADI, vergleiche hierzu auch Abbildung 4.1. Esfällt <strong>auf</strong>, dass sich hier recht hohe Schranken ergeben, obwohl es sich um eine Mischungaus normalem Diffusionsverfahren und <strong>Dimension</strong>-Exchange handelt, wobei das eine minimaleFlüsse erzeugt und das andere zumindest moderatere Normen produziert, vergleicheAbbildung 3.11. In der Praxis bleiben die Flüsse meist weit unter diesen Schranken.Erst bei der ADC-Variante ergeben sich Schranken, die in ähnlichen Bereichen liegen wiedie der normalen Diffusionsverfahren.Das ADI-FOS-Verfahren ist natürlich nicht <strong>auf</strong> zwei <strong>Dimension</strong>en beschränkt. Dahersei nun der d-dimensionale Graph G = G (1) × · · · × G (d) gegeben <strong>mit</strong> G (i) = ( V (i) , E (i)) ,∣∣V (i)∣ ∣ = n (i) und ∣ ∣E (i)∣ ∣ = N (i) . Der zugehörige Algorithmus 4.3 zeigt zusätzlich dieAufdatierung des Flusses. Beim MDI-FOS werden alle <strong>Dimension</strong>en abwechselnd vorwärtsund rückwärts durchl<strong>auf</strong>en.4.2 SDI-VerfahrenIn den nachfolgenden Abschnitten werden weitere Verfahren besprochen, die das Prinzipder alternierenden Richtungen mehr oder weniger <strong>auf</strong>wändig <strong>mit</strong> einfachen Loadbalan-91


4 Verfahren für Produktgraphen‖x(ADI)‖ 2‖x min ‖ 220015010050ADI-FOS‖x(MDI)‖ 2‖x min ‖ 28765432MDI-FOS110 5 10 15 20 0 5 10 15 200 5 10 15 20kkk∥Abbildung 4.1: Schranken ∥A XXXT L XXX+ A∥ für die Normen der Flüsse bei ADI-FOS,2‖x(ADC)‖ 2‖x min ‖ 21.351.31.251.21.151.11.05ADC-FOSMDI-FOS und ADC-FOS für Gitter G k (gestrichelt) und Tori T k (durchgezogeneLinie) verschiedener Größe <strong>mit</strong> l<strong>auf</strong>zeitoptimiertem αx = 0for k = 1, 2, . . . do˜w 0 = w k−1for l = 1, . . . , d do {<strong>Dimension</strong>sschleife} )˜w l =(I n (d)···n (l+1) ⊗ M Diff (l) ⊗ I n (l−1)···n (1) )x = x + α(I n (d)···n (l+1) ⊗ A(l)T ⊗ I n (l−1)···n (1)end forw k = ˜w dend for˜w l−1˜w l−1Algorithmus 4.3: ADI-FOS-Verfahren für mehrdimensionale Graphencing-Verfahren kombinieren. Eine Möglichkeit, die grundsätzlich sehr leicht zu implementierenist, ist die einzelnen Richtungen komplett hintereinander zu durchl<strong>auf</strong>en. Erstwenn die Last in allen parallelen Graphen der ersten Richtung ausgeglichen ist, wird<strong>mit</strong> der nächsten Richtung begonnen, usw. Hierbei macht es weder Probleme, dass Verfahrenwie SOS oder OPS <strong>auf</strong> die letzten beiden Iterierten zugreifen, noch die einzelnenFaktorgraphen verschiedene und unterschiedlich viele Eigenwerte haben können. Nachteilist, dass die so produzierten Flüsse meist deutlich höher sind als die alternierendberechneten. Diese Verfahrensklasse wird als weniger wichtig angesehen. Wenn <strong>auf</strong> siezurückgegriffen wird, wird das Präfix SDI- (sequential directions) verwendet.4.3 ADI-OPTKombiniert man die Technik der alternierenden Richtungen <strong>mit</strong> dem OPT-Verfahren,so erhält man das in [EFMP99] vorgestellte ADI-OPT. Es sei G = G (1) × G (1) , LDiff (1)die Laplace-Matrix von G (1) , und <strong>mit</strong> λ (1)1 , . . . , λ(1) m werden die Eigenwerte von LDiff (1)92


4.3 ADI-OPTbezeichnet. Wie in Algorithmus 4.4 zu sehen ist, wird das <strong>auf</strong> den Eigenwerten desGraphen G (1) basierende OPT abwechselnd <strong>auf</strong> die beiden Richtungen von G angewandt.So erhält man nach m − 1 Iterationsschritten die Gleichverteilung w = w m−1 . Daseinfache OPT-Verfahren würde dagegen deutlich länger dauern, da die Laplace-Matrixvon G bis zu m(m+1)2verschiedene Eigenwerte haben kann.for k = 1, (. . . , m − 1 do ) ()w k = I − 1 L Diff (1) ⊗ I I − 1 I ⊗ L Diff (1) w k−1λ (1)k+1λ (1)k+1end forAlgorithmus 4.4: ADI-OPT-Verfahren, zweidimensionalNatürlich ist auch ADI-OPT nicht <strong>auf</strong> zwei <strong>Dimension</strong>en beschränkt und die Graphender verschiedenen Richtungen müssen auch nicht identisch sein. Bei verschiedenenGraphen G (i) muss man lediglich vorab d Sätze von Eigenwerten bestimmen. In Algorithmus4.5 wird im ersten Schritt <strong>mit</strong> allen Richtungen begonnen, Richtungen <strong>mit</strong>weniger Eigenwerten sind daher früher beendet als andere. Als Bezeichnung hierfür wirdVDI-OPT benutzt (variable directions).for k = 1, . . . , max { m (1) , . . . , m (d)} − 1 do˜w 0 = w k−1for l = 1, . . . , c do {<strong>Dimension</strong>sschleife}if k < m (l) ( then)˜w l = I n − 1 I n (d)···n (l+1) ⊗ LDiff (l) ⊗ I n (l−1)···n (1)x = x + 1λ (l)k+1else˜w l = ˜w l−1end ifend forw k = ˜w dend forλ (l)k+1(I n (d)···n (l+1) ⊗ A(l)T ⊗ I n (l−1)···n (1) )Algorithmus 4.5: VDI-OPT-Verfahren, d-dimensionalIn Kapitel 2.5 wurde festgestellt, dass die numerische Stabilität des OPT-Verfahrensvon der Reihenfolge der Eigenwerte λ i abhängt. Diese Eigenschaft überträgt sich direkt<strong>auf</strong> ADI-OPT, wobei die Fehler dank der geringeren Anzahl von Rechenschritten wenigergroß werden, vgl. Abbildung 4.2. Verwendet man die <strong>auf</strong> Leja-Punkten beruhendeSortierung, so läuft ADI-OPT selbst <strong>auf</strong> den großen Gittern G 32 und G 64 noch stabil.Wie beim ADI-FOS sind auch hier die berechneten Flüsse nicht mehr l 2 -minimal. Zusätzlichhängen sie nun noch entscheidend von der Reihenfolge der Eigenwerte ab. Wiedie experimentellen Beispiele in Tabelle 4.1 zeigen, erhält man die geringsten Flusswertebei absteigender Sortierung. Aus Gründen der besseren numerischen Stabilität˜w j−1˜w l−193


4 Verfahren für ProduktgraphenG 16, OPTG 32, ADI-OPT10 15 0 5 10 15 20 25 3010 20 0 20 40 60 80 100 12010 1510 1010 510 010 −510 1010 510 010 −5Abbildung 4.2: Stabilitätsvergleich von OPT (links, für G 16 ) und ADI-OPT (rechts, fürG 32 ) bei <strong>auf</strong>steigender (gestrichelt) und Leja (1) -Sortierung (durchgezogeneLinie)ist eine Leja-Sortierung <strong>mit</strong> passender Gewichtsfunktion aber wiederum vorzuziehen.Wie Abbildung 4.3 zeigt, hat der Exponent g der Gewichtsfunktion ω(z) = |z| g beiLeja-Sortierungen zweierlei Auswirkungen. Mit steigendem g verringert sich der Fluss,während der abschließende Fehler ansteigt. Werte um 1, 5 haben sich praktisch als guterKompromiss erwiesen. Zur weiteren Flussreduzierung empfehlen sich die schon vom ADI-FOS bekannten Varianten MDI-OPT (durchl<strong>auf</strong>e die Richtungen abwechselnd vorwärtsund rückwärts [EFMP99]) und ADC-OPT (mehrere jeweils <strong>mit</strong> einer anderen Richtungstartende Durchläufe und Mittelwertbildung).P 6 × P 6 C 4 × C 4 C 8 × C 8 C 32 × C 32 C 8 × C 8 × C 8= G 6 = T 4 = T 8 = T 32ADI-OPT <strong>auf</strong>st. 527 1,48 34,2 − 82,3ADI-OPT abst. 1,012 1,049 1,046 1,024 1,13ADI-OPT Young 6,61 1,48 1,62 1,89 2,08ADI-OPT Leja (0) 3,83 1,049 1,98 353 2,18ADI-OPT Leja (1) 1,013 1,049 1,056 1,041 1,14MDI-OPT Leja (1) 1,008 1,031 1,033 1,025 1,10ADC-OPT Leja (1) 0,996 0,998 0,998 0,999 1,0003SDI-OPT Leja (1) 1,12 1,16 1,39 2,05 1,84Tabelle 4.1: Die Zahlen geben an, um welchen Faktor die l 2 -Normen der Flüsse bei einigenBeispielen über dem Minimum liegen. (Werte < 1 sind <strong>auf</strong> die Rundung<strong>auf</strong> ganze Zahlen zurückzuführen, siehe auch Abschnitt 5.4.)94


4.4 ADI-SOS und ADI-Čebyšev1.1T 24 , ADC-OPT10 −6‖x(g)‖ 2‖xmin‖ 21.081.061.041.0210 −710 −810 −910 −1010 −11e m−1110 −120 0.5 1 1.5 2 2.5 3 3.5 4 10−13gAbbildung 4.3: Abhängigkeit des ADC-OPT-Verfahrens <strong>mit</strong> Leja (g) -Sortierung vom Exponenteng der Gewichtsfunktion ω(z) = |z| g . Dargestellt ist, um welchenFaktor der Fluss über dem Minimum liegt (durchgezogene Linie,linke Skala) und der abschließende Fehler e m−1 (gestrichelte Linie, rechteSkala)4.4 ADI-SOS und ADI-ČebyševAls erstes Verfahren, das in jedem Schritt <strong>auf</strong> die zwei letzten Iterierten zurückgreift, wirddas ADI-SOS betrachtet. Hierzu werden zwei verschiedene Möglichkeiten der Umsetzungbetrachtet. Die erste stammt aus [Els02], die zweite und neue, hier zur Unterscheidung<strong>mit</strong> ADI-SOS2 bezeichnete, ist etwas <strong>auf</strong>wändiger, wird sich dafür aber im nächsten Abschnitt<strong>auf</strong> das OPS übertragen lassen. Zur Vereinfachung der Darstellung wird hier nurein einfaches ”quadratisches“ Produkt G = G (1) × G (1) betrachtet. Eine Übertragung <strong>auf</strong>verschiedene Faktorgraphen in G = G (1) × G (2) ist aber möglich. Zur Vorabbestimmungder Anzahl benötigter Schritte muss man dann die ”langsamste“ Richtung betrachten.Weitere Hinweise zum allgemeinen Fall werden an den jeweiligen Stellen gegeben.ADI-SOSDas ADI-SOS aus [Els02] beruht <strong>auf</strong> der Iteration(w 1 = M (1) ⊗ M (1)) w 0(w k = β M (1) ⊗ M (1)) w k−1 + (1 − β) w k−2 k = 2, 3, . . .und ist ausführlicher in Algorithmus 4.6 dargestellt.In unserem Spezialfall entspricht der optimale Wert für β dem Wert β (1)opt des Faktorgraphenund die Anzahl der Iterationen verringert sich gegenüber dem normalen SOSum den Faktor √ 2 [Els02]. (Bei nicht-quadratischen Produkten nimmt man β (i)opt , wobei95


4 Verfahren für Produktgraphenx = 0˜w 1 = ( I ⊗(M (1)) w 0)x = x + α I ⊗ A (1)T w 0w 1 = ( M (1) ⊗ I ) ˜w 1x = x + α ( M (1) ⊗ I ) ˜w 1for k = 2, 3, . . . do˜w 0 = w k−1˜x 0 = x k−1˜w 1 = ( I ⊗ M((1)) ˜w 0)˜x 1 = ˜x 0 + α I ⊗ A (1)T ˜w 0˜w 2 = ( M (1) ⊗ I ) ˜w 1˜x 2 = ˜x 1 + α ( M (1) ⊗ I ) ˜w 1w k = β ˜w 2 + (1 − β) w k−2x k = β˜x 2 + (1 − β) x k−2end forAlgorithmus 4.6: ADI-SOS-Verfahreni die Richtung ist, deren zweitgrößter Eigenwert γ maximal ist.)Wie im Abschnitt 4.1 zu ADI-FOS beschrieben, kann man auch hier die VariantenMDI-SOS und ADC-SOS konstruieren. Da die jeweiligen FOS- und SOS-Varianten polynomialin derselben Iterationsmatrix (M (1) ⊗ M (1) für ADI) sind erzeugen sie auchjeweils dieselben Flüsse und es gelten auch für diese Verfahren zweiter Ordnung dieFlussabschätzungen aus Abschnitt 4.1.ADI-SOS2Das nun einzuführende ADI-SOS2 ist ausschließlich für zwei Richtungen konzipiert undbenötigt zusätzliche Zwischenwerte. Zu diesem Zweck werden die verschiedenen zu berechnendenLastvektoren <strong>mit</strong> Doppelindizes bezeichnet. Zur Unterscheidung, aus welcherRichtung ein Wert berechnet wird, werden Indizes z und s (Zeile / Spalte) verwendet.Definiere nun die folgenden Lastvektoren:w 0,0 = w 0( )wz k,1 = M (1) ⊗ I w k,0 k = 0, 1, . . .(ws 1,l = I ⊗ M (1)) w 0,l l = 0, 1, . . .( )wzk,l = β M (1) ⊗ I w k,l−1 + (1 − β) w k,l−2 k = 0, 1, . . . ; l = 2, 3, . . .(= β I ⊗ M (1)) w k−1,l + (1 − β) w k−2,l k = 2, 3, . . . ; l = 0, 1, . . .w k,ls96


4.4 ADI-SOS und ADI-ČebyševDer folgende Satz garantiert, dass wzk,l = wsk,l ist für alle k und l. Im Vorgriff <strong>auf</strong> diesesResultat wurden in der obigen Formel <strong>auf</strong> der rechten Seite die Indizes z und s bereitsweggelassen.Satz 4.4. Für obige Lastvektoren gilt w k,lz= w k,ls =: w k,l für k, l ≥ 1.Beweis. Der Beweis wird per Induktion über k + l geführt.Induktionsanfang: k = l = 1:(w 1,0 = I ⊗ M (1)) w 0,0( )w 0,1 = M (1) ⊗ I w 0,0( ) ( ) (⇒ wz 1,1 = M (1) ⊗ I w 1,0 = M (1) ⊗ I I ⊗ M (1)) w 0,0(⇒ ws 1,1 = I ⊗ M (1)) (w 0,1 = I ⊗ M (1)) ( )M (1) ⊗ I w 0,0Wegen ( I ⊗ M (1)) ( M (1) ⊗ I ) = M (1) ⊗ M (1) = ( M (1) ⊗ I ) ( I ⊗ M (1)) gilt alsowz 1,1 = ws 1,1 .Induktionsschritt: Die Behauptung sei nun korrekt für alle k, l <strong>mit</strong> k + l ≤ c für einfestes c. Sei jetzt k + l = c + 1.1. Fall: k, l ≥ 2:w k,l−1 = w k,l−1sw k,l−2 = w k,l−2s⇒ w k,lz(= β I ⊗ M (1)) w k−1,l−1 + (1 − β) w k−2,l−1(= β I ⊗ M (1)) w k−1,l−2 + (1 − β) w k−2,l−2(= β 2 M (1) ⊗ M (1)) w k−1,k−1[( )+ β (1 − β) M (1) ⊗ I w k−2,l−1 ++ (1 − β) 2 w k−2,l−2(I ⊗ M (1)) w k−1,l−2]Wie man leicht nachrechnet, erhält man für wsk,l dasselbe Ergebnis.2. und 3. Fall: k = 1, l ≥ 2 bzw. k ≥ 2, l = 1: Ähnlich.Korollar 4.5. Die Vektoren w k,k konvergieren gegen die Gleichverteilung w.Beweis. Dem letzten Satz zufolge kommt es nicht dar<strong>auf</strong> an, über welche Zwischenwertew i,j ein Vektor w k,k berechnet wird. Insbesondere kann man den folgenden ”Weg“wählen, der exakt dem Verfahren SDI-SOS entspricht: w 0,0 , w 0,1 , . . . , w 0,k , w 1,k , . . . , w k,k .Für genügend großes k wird in diesem Fall zuerst eine Gleichverteilung innerhalb allerKopien von G (1) in einer Richtung <strong>mit</strong> dem gewöhnlichen SOS-Verfahren hergestellt;danach wird SOS in der anderen Richtung angewandt, was zur globalen Gleichverteilungführt.97


4 Verfahren für ProduktgraphenWählt man den Weg aus dem letzten Beweis, so braucht man zwar keine ” überflüssigen“Zwischenwerte zu berechnen, die zugehörigen Flüsse liegen aber Experimentenzufolge ähnlich wie beim SDI-OPT weit entfernt vom Minimum. Die geringsten Flüsseerhält man bei einem ”Weg durch die Mitte“. In jedem bis <strong>auf</strong> den ersten Iterationsschrittwerden aus vier vorhandenen Werten w k−2,k−2 , w k−1,k−2 , w k−2,k−1 und w k−1,k−1neue Werte w k,k−2 , w k,k−1 , w k−1,k und w k,k berechnet, vergleiche Abbildung 4.4. DieAnzahl der Kommunikationsoperationen erhöht sich durch die Berechnung zusätzlicherZwischenwerte jedoch nicht. Die Daten, die zur Berechnung von w k,k−2 und w k,k−1 benötigtwerden, können gemeinsam verschickt werden, ebenso die Daten zur Berechnungvon w k−1,k und w k,k . Das gesamte Verfahren ist Algorithmus 4.7 zu entnehmen.(k, k)(k, k − 1)(k, k − 2)(k − 1, k)(k − 1, k − 1)(k − 1, k − 2)(k − 2, k − 1)(k − 2, k − 2)Abbildung 4.4: Ein Iterationsschritt beim ADI-SOS2w11 = w 0w01 = ( I ⊗ M (1)) w11w10 = ( M (1) ⊗ I ) w11w = ( M (1) ⊗ I ) w01for k = 2, 3, . . . dow22 = w11w12 = w01w21 = w10w11 = ww02 = β ( I ⊗ M (1)) w12 − (1 − β) w22w01 = β ( I ⊗ M (1)) w11 − (1 − β) w21w10 = β ( M (1) ⊗ I ) w11 − (1 − β) w12w = β ( M (1) ⊗ I ) w01 − (1 − β) w02end forAlgorithmus 4.7: ADI-SOS2-VerfahrenGenau wie bei ADI-OPT und ADC-OPT ergeben sich auch hier kleinere Flüsse, fallsdas Verfahren ein zweites Mal angewandt wird und der Mittelwert beider Flüsse genommenwird. Die Iterationsvorschrift für den zweiten Durchl<strong>auf</strong> erhält man, indem man inAlgorithmus 4.7 bei den Größen wXY die Indizes X und Y vertauscht sowie M (1) ⊗ I98


4.4 ADI-SOS und ADI-Čebyševund I ⊗ M (1) vertauscht. Das Verfahren wird entsprechend <strong>mit</strong> ADC-SOS2 bezeichnet.Satz 4.4 und Korollar 4.5 gelten ebenfalls für G (1) ≠ G (2) . Prinzipiell ist sogar eineÜbertragung <strong>auf</strong> d > 2 Faktoren möglich. Die Lastvektoren erhalten dann d-fache Indizesund pro Schritt müssen aus 2 d alten d · 2 d−1 neue Lastwerte berechnet werden. DieAnwendung der Verfahren <strong>auf</strong> höherdimensionale Graphen ist daher nicht sinnvoll.VergleichNun soll untersucht werden, welche der beiden SOS-Versionen für Produktgraphen bessereResultate erzielt. Da das ADI-SOS2 <strong>auf</strong> Grund der Berechnung von Zwischenwertennicht wie die anderen Verfahren durch einfache Matrixoperationen ausgedrückt werdenkann, lassen sich die üblichen Sätze zur Berechnung des Flusses nicht mehr anwenden, sodass im Gegensatz zum ADI-SOS keine theoretischen Resultate angegeben werden können.Experimente zeigen jedoch, dass die Flüsse von ADI-SOS2 nicht nur höher sind alsdie von ADI-SOS erzeugten, sondern sogar ganz erheblich über den schon relativ hohenFlüssen von SDI-SOS liegen. In der Konvergenzgeschwindigkeit unterscheiden sich beideVerfahren dagegen nicht, wie nicht nur Experimente belegen sondern im Folgenden auchgezeigt wird. Der Grund dafür, dass das insgesamt schlechtere ADI-SOS2 hier überhauptbetrachtet wird, ist der, dass sich nur dieses effizient <strong>auf</strong> OPS übertragen lässt.Bevor die Konvergenz von ADI-SOS und ADI-SOS2 verglichen wird, werden neue MatrizenS 1 und S 2 zur Beschreibung der Verfahren eingeführt. Vernachlässigt man jeweilsden ersten Schritt der Verfahren, so kann man die beiden Verfahren so formulieren, dassjeder Schritt nur aus einer Multiplikation <strong>mit</strong> einer (vergrößerten) Matrix besteht:bei ADI-SOS und⎛ ⎞⎜⎝w k−1,k−1w k−1,kw k,k−1w k,kbei ADI-SOS2.( ) (wk−1w k =⎛⎟⎠ = ⎝)0 I(1 − β) I βM (1) ⊗ M (1)} {{ }=:S 1( wk−2w k−1 )⎞0 0 0 I0 0 (1−β)I βM (1) ⊗I⎠0 (1−β)I 0 βI⊗M (1)(1−β) 2 β(1−β)M (1) ⊗I β(1−β)I⊗M (1) β 2 M (1) ⊗M (1)} {{ }=:S 2⎛w k−2,k−2 ⎞⎜w k−2,k−1⎟⎝w k−1,k−2 ⎠w k−1,k−1Satz 4.6. Die Parameter α und β seien optimal gewählt, γ bezeichne den zweitgrößtenEigenwert von M (1) . Dann stimmt der zweitgrößte Eigenwert von S 1 <strong>mit</strong> dem von S 2überein und für diesen gilt γ S = 1−√ 1−γ 2γ.Beweis. Die Eigenwerte und Eigenvektoren von M (1) werden <strong>mit</strong> µ i und z i bezeichnet,also M (1) z i = µ i z i . Wie üblich sei µ 1 = 1 > µ 2 ≥ · · · ≥ µ n und z 1 = w. Sind α und β2optimal gewählt, dann ist γ = µ 2 = −µ n und β = √ .1+ 1−γ 2Das Eigensystem von S 1 lässt sich leicht berechnen. Es istϕ i,j,± = βµ iµ j2±√β 2 µ 2 i µ2 j4+ 1 − β99


4 Verfahren für Produktgraphen( )(zi ⊗ zein Eigenwert zum Eigenvektor v i,j,± =jw. Insbesondere ist vϕ i,j,± z i ⊗ z 1,1,+ =j w)Eigenvektor zum Eigenwert ϕ 1,1,+ = 1. Der zweitgrößte Eigenwert istγ S 1 = ϕ 1,2,+= βγ√β2 + 2 γ 2+ 1 − β4==γ1 + √ 1 − γ 2 + √ √√√ γ 2(1 + √ 1 − γ 2 ) 2+ 1 −γ(1 − √ )1 − γ 21 − (1 − γ 2 )= 1 − √ 1 − γ 2γ.+ 021 + √ 1 − γ 2Für die Matrix S 2 erhält man ähnliche Resultate. Zum Eigenwert (σ i,± σ j,± ) gehört derEigenvektor⎛⎞z i ⊗ z jv i,±,j,± = ⎜ σ j,± z i ⊗ z j⎟⎝ σ i,± z i ⊗ z j⎠σ i,± σ j,± z i ⊗ z j<strong>mit</strong>σ ι,± = βµ √ι β2 ± 2 µ 2 ι4+ 1 − β .Der zweitgrößte Eigenwert ist γ S 2 = (σ 1,+ σ 2,+ ) und stimmt <strong>mit</strong> γ S 1überein.Korollar 4.7. Für optimal gewähltes α und β konvergieren ADI-SOS und ADI-SOS2gleich schnell.Beweis. Die Konvergenzgeschwindigkeit wird jeweils bestimmt durch den zweitgrößtenEigenwert der Matrizen S 1 bzw. S 2 , die nach Satz 4.6 übereinstimmen. Die Iterationwirkt nämlich nur <strong>auf</strong> das orthogonale Komplement ( des Vektors der Gleichverteilung.wIm Falle des ADI-SOS2 steht der Vektor v 1,1,+ = senkrecht <strong>auf</strong> allen übrigen Eigenvektoren<strong>mit</strong> Ausnahme von v 1,1,− =. Aufgrund der Tatsache, dassw)( )w(β − 1) w( ) wk−1die Gesamtlast erhalten bleibt, enthalten die Iteriertenw k aber keinen Anteil inRichtung von v 1,1,− . Für ADI-SOS2 gilt entsprechendes.Die Aussagen über die vergleichbare Konvergenz beider Verfahren lassen sich wegender geforderten Optimalität der Parameter für beide Richtungen nicht <strong>auf</strong> den Fall verschiedenerFaktoren übertragen.100


4.5 ADI-OPSADI-ČebyševAlle Konstruktionen aus diesem Abschnitt lassen sich <strong>auf</strong> die ähnlich zu konstruierendenVerfahren ADI-Čebyšev und ADI-Čebyšev2 übertragen. Ein Analogon zu Satz 4.6 lässtsich allerdings nicht zeigen, da sich die Iterationsmatrizen hier in jedem Schritt ändern.Experimenten zufolge konvergieren aber auch diese beiden Verfahren etwa gleich schnellund es gelten dieselben Beobachtungen zu den Flüssen.4.5 ADI-OPSWill man eine OPS-Version für Produktgraphen erzeugen, so hat man prinzipiell dieselbenbeiden Möglichkeiten wie im letzten Abschnitt für SOS. Der erste Ansatz, OPS fürdie Matrix M (1) ⊗M (1) ist jedoch nicht sinnvoll, da diese in etwa genauso viele Eigenwertebesitzt, wie die Diffusionsmatrix des kompletten Produktgraphen. Dagegen lässt sichder für ADI-SOS2 verwendete Ansatz problemlos <strong>auf</strong> OPS übertragen, das resultierendeVerfahren wird <strong>mit</strong> ADI-OPS bezeichnet und ist in Algorithmus 4.8 dargestellt. Zur Bew11= w 0w01 = 1 γ 1(α1 I − I ⊗ M (1)) w11w10 = 1 γ 1(α1 I − M (1) ⊗ I ) w11w = 1 (γ α1 1I − M (1) ⊗ I ) w01for k = 2, . . . , m − 1 dow22 = w11w12 = w01w21 = w10w11 = ww02 = 1γ k((α k I − I ⊗ M) w12 − β k w22)w01 = 1γ k((α k I − I ⊗ M) w11 − β k w21)w10 = 1γ k((α k I − M ⊗ I) w11 − β k w12)w = 1γ k((α k I − M ⊗ I) w01 − β k w02)end forAlgorithmus 4.8: ADI-OPS-Verfahrenrechnung der für die Dreitermrekursion des OPS benötigten Koeffizienten α k , β k , γ k wirddas Innenprodukt (2.1) für Polynome verwendet (〈p, q〉 = ∑ mj=2 ω jp(µ Diffj )q(µ Diffj )). Dabeiwar ω j so gewählt, dass der Fehler nach jedem einzelnen Schritt möglichst klein wird.Dar<strong>auf</strong>, dass das Verfahren nach m Schritten <strong>mit</strong> Fehler 0 endet, hat diese Wahl jedochkeinen Einfluss. Während beim OPS grundsätzlich minimale Flüsse berechnet werdenund eine Änderung des Produktes da<strong>mit</strong> keinen Sinn macht, lässt sich beim ADI-OPSder Fluss dadurch verbessern, dass ω j durch Potenzen ω η jersetzt wird, also〈p, q〉 =m∑j=2ω η j p(µDiff j )q(µ Diffj ) .101


4 Verfahren für ProduktgraphenExperimente zeigen, dass die Flüsse <strong>mit</strong> steigendem η kleiner werden, während der abschließendeRundungsfehler ansteigt. Eine zusätzliche Verringerung der Flüsse wird auchhier wieder erreicht, indem zwei Rechnungen, einmal <strong>mit</strong> der ersten und einmal <strong>mit</strong> derzweiten Richtung beginnend, durchgeführt und die Flüsse ge<strong>mit</strong>telt werden. Die Auswirkungenvon η <strong>auf</strong> dieses ADC-OPS genannte Verfahren ist am Beispiel des T 16 inAbbildung 4.5 dargestellt. Werte für η zwischen 3 und 4 haben sich praktisch als guterwiesen.‖x(η)‖ 2‖xmin‖ 2T 16 , ADC-OPS1.161.141.121.11.081.061.041.0211 2 3 4 5 6 7 8η10 −910 −1010 −1110 −12e m−1Abbildung 4.5: Abhängigkeit des ADC-OPS-Verfahrens von η: Dargestellt ist, um wieviel der Fluss über dem Minimum liegt (dicke Linie, linke Skala) und derabschließende Fehler e m−1 (dünne Linie, rechte Skala)Eine Übertragung des quadratischen Falles <strong>auf</strong> verschiedene Faktorgraphen G (1) ≠G (2) ist wiederum möglich; die Eigenwerte sowie die für die Dreitermrekursion benötigtenParameter α k , β k , γ k müssen dann vorab für jede Richtung separat berechnet werden. DieAnzahl verschiedener Eigenwerte der Faktorgraphen werde <strong>mit</strong> m (1) und m (2) bezeichnet,wobei die erste Zahl größer sein möge. Dann wird Algorithmus 4.8 bis zur Berechnung vonw m(2) −1,m (2) −1 angewandt und anschließend <strong>auf</strong> den eindimensionalen OPS-Algorithmusbis zur Berechnung von w m(1) −1,m (2) −1 gewechselt.4.6 <strong>Dimension</strong> Exchange für ProduktgraphenDie Übertragung der Diffusionsverfahren <strong>auf</strong> das <strong>Dimension</strong>-Exchange-Modell ist im Falleder Verfahren für Produktgraphen genauso einfach wie im Abschnitt 3.3. Es muss wiederumnur die Diffusionsmatrix M bzw. die Laplace-Matrix L durch die entsprechendeMatrix für gefärbte Graphen ersetzt werden. Die daraus resultierenden Verfahren heißenz. B. DE-ADC-OPS oder SDE-ADI-OPT. Die Schnelligkeit dieser Verfahren verdeutlichtdas Beispiel in Abbildung 4.6.102


4.6 <strong>Dimension</strong> Exchange für ProduktgraphenG 1610 2 0 5 10 15 20 25 30 3510 010 −2DE-OPSADI-OPSDE-ADI-OPS10 −4e k10 −610 −810 −1010 −12SchritteAbbildung 4.6: Konvergenz von ADI- und nicht-ADI-Verfahren am Beispiel des GittersG 16Die Methoden zur Flussreduktion aus dem letztem Abschnitt (ADC-. . . , ω(z) = |z| g , η)lassen sich ebenfalls direkt <strong>auf</strong> die <strong>Dimension</strong>-Exchange-Verfahren anwenden, vergleichehierzu die Abbildungen 4.7 und 4.8.‖x(g)‖ 2‖xmin‖ 21.061.0551.051.0451.041.0351.031.025T 24 , DE-ADC-OPT0 0.5 1 1.5 2 2.5 3 3.5 4g10 −1010 −11Abbildung 4.7: Abhängigkeit des DE-ADC-OPT-Verfahrens <strong>mit</strong> Leja (g) -Sortierung vomExponenten g der Gewichtsfunktion ω(z) = |z| g : Fluss (durchgezogeneLinie, linke Skala) und abschließender Fehler (gestrichelte Linie, rechteSkala),vgl. Abb. 4.3.e m−1Als weitere Variante kann man auch das schon aus Abschnitt 3.7.2 bekannte zyklischeDurchl<strong>auf</strong>en der Farben <strong>auf</strong> die Verfahren DE-ADI-OPX für Produktgraphen (<strong>mit</strong> zweiRichtungen) übertragen, siehe Abbildung 4.9. Zu beachten ist hierbei, dass die zu denbeiden Richtungen gehörenden Halbschritte nicht vermischt werden dürfen; das zyklische103


4 Verfahren für Produktgraphen1.251.2T 16 , DE-ADC-OPS5 · 10 −12‖x(η)‖ 2‖xmin‖ 21.151.11 · 10 −12e m−11.0511 2 3 4 5 6 7 8ηAbbildung 4.8: Abhängigkeit des DE-ADC-OPS-Verfahrens von η: Dargestellt ist, um wieviel der Fluss über dem Minimum liegt (dicke Linie, linke Skala) und derabschließende Fehler e m−1 (dünne Linie, rechte Skala), vgl. Abb. 4.5Rechnung 1: 1Rechnung 2:Rechnung 3:Rechnung 4:Rechnung 5:Rechnung 6:Rechnung 7:Rechnung 8:Rechnung 9:112222223333333331111112224 5 65 664 556664 5 65 66444444555Abbildung 4.9: Abl<strong>auf</strong> eines Schrittes des DE-ADI-OPTcc-Verfahrens am Beispiel einesGraphen, der in zwei Richtungen <strong>mit</strong> 3 je Farben gefärbt ist; jede Spaltesteht für einen KommunikationsschrittDurchl<strong>auf</strong>en ist hier also <strong>auf</strong> jeden einzelnen Halbschritt anzuwenden. Ist der Graph inbeiden Richtungen <strong>mit</strong> jeweils c Farben gefärbt, so erhöht sich der Aufwand für einenkompletten Schritt von 2c <strong>auf</strong> 4c − 2 Kommunikationsoperationen. Der Rechen<strong>auf</strong>wanderhöht sich gemäß der Abbildung um den Faktor c 2 . (Bei d > 2 <strong>Dimension</strong>en ist dieserAnsatz nicht mehr vernünftig, da sich der Rechen<strong>auf</strong>wand um den Faktor c d erhöht.)FlüsseFür die Verfahren (S)DE-OPX konnte gezeigt werden, dass der Fluss für α gegen 0minimal wird. Auf die ADI-Varianten trifft dies nicht mehr zu, wie die Experimente inAbbildung 4.10 zeigen. An den Unstetigkeitsstellen der beiden rechten Bilder ändert sich104


4.7 L<strong>auf</strong>zeitenjeweils die durch Leja-Sortierung bestimmte Reihenfolge der Eigenwerte.‖x(α)‖ 2‖x min ‖ 2‖x(α)‖ 2‖x min ‖ 2T 16, DE-ADI-OPS1.81.71.61.51.41.31.21.110 0.1 0.2 0.3 0.4 0.5αT 16, DE-ADC-OPS1.21.181.161.141.121.11.081.061.041.0210 0.1 0.2 0.3 0.4 0.5α‖x(α)‖ 2‖x min ‖ 2‖x(α)‖ 2‖x min ‖ 2T 16, DE-ADI-OPT1.21.181.161.141.121.11.081.061.041.0210 0.1 0.2 0.3 0.4 0.5αT 16, DE-ADC-OPT1.051.041.031.021.0110 0.1 0.2 0.3 0.4 0.5αAbbildung 4.10: l 2 -Norm des Flusses in Abhängigkeit von α am Beispiel eines 16 × 16-Torus <strong>mit</strong> zufälligem w 0 (minimaler Fluss = 1)4.7 L<strong>auf</strong>zeitenDie L<strong>auf</strong>zeiten der verschiedenen Verfahren sind in Tabelle 4.2 zusammengefasst. Hierbeiist jeweils berücksichtigt, dass zwei <strong>auf</strong>einander folgende Kommunikationen entlangKanten der selben Farbe durch eine Kommunikation zusammengefasst werden können.Wie die L<strong>auf</strong>zeiten für konkrete Graphen und Einfärbungen bei ausgesuchten Verfahrenaussehen, ist Tabelle 4.3 zu entnehmen. Es ist festzustellen, dass für Gitter undfür Tori <strong>mit</strong> geraden <strong>Dimension</strong>en Verfahren <strong>mit</strong> optimaler oder zumindest annäherndoptimaler L<strong>auf</strong>zeit gefunden sind. Zum einen erreicht man diese L<strong>auf</strong>zeiten durch dieKombination von alternierenden Richtungen und <strong>Dimension</strong> Exchange. Die zweite Möglichkeitist, in beiden Richtungen hintereinander zu balancieren und für jede RichtungVorwärts-rückwärts-Diffusion zu verwenden. Hierbei ist zu beachten, dass die zweite AlternativeExperimenten zufolge erheblich höhere Flüsse erzeugt. Die Zeiten für Vorwärtsrückwärts-Diffusion<strong>mit</strong> alternierenden Richtungen liegen zwischen den optimalen undden ”Standardverfahren“ wie ADI-OPT.105


4 Verfahren für ProduktgraphenVerfahren Anzahl KommunikationsschritteADI-OPX 2c (m − 1)MDI-OPX 2c (m − 1)SDI-OPX 2c (m − 1)ADC-OPX2c (m − 1) + cFB-SDI-OPX (2c − 2) (m − 1) + 2FB-MDI-OPX (2c − 1) (m − 1) + 1DE-XY Z-OPX̂= XY Z-OPXDE-ADI-OPXcc (4c − 2) (m − 1)DE-ADC-OPXcc (4c − 2) (m − 1) + 2c − 1SDE-ADI-OPX (4c − 2) (m − 1)SDE-MDC-OPX (4c − 3) (m − 1) + 4c − 2Tabelle 4.2: Anzahl der Kommunikationsschritte verschiedener Verfahren für ProduktgraphenG = G (1) × G (1) , c ist die Anzahl der Farben von G (1) und m dieAnzahl der Eigenwerte von G (1)106


4.7 L<strong>auf</strong>zeitenGraph G diam ADI-OPX ADC-OPX FB-SDI-OPX FB-MDI-OPXGk = Pk × Pk 2k − 2 4k − 4 4k − 2 2k 3k − 23Tk = Ck × Ck 2 | k k 2k 2k + 2 k + 22 k + 12 ∤ k k − 1 2k 2k + 3 2k52 k − 3 2Graph G diam DE-ADI-OPX SDE-MDC-OPX DE-ADC-OPX DE-ADC-OPXcc5Gk = Pk × Pk 2 | k 2k − 2 2k22 ∤ k 2k − 2 2k + 25k + 6 2k + 2 3k + 32 k + 17 22k + 4 3k + 6Tk = Ck × Ck 4 | k k k54 k + 6 k + 2 32 k + 352 | k, 4 ∤ k k k + 24 k + 17 3⌈ 2k + 4⌈ ⌉ 2 k + 62 ∤ k k − 1 2k + 4 + 4 9k−1⌉2 k + 29 22k + 7 + 4k−15k + 10T [C3]k= C [3]k × C[3]20k3 | k, 2 ∤ k k − 1 4k 3k + 19 4k + 33 k + 5Tabelle 4.3: Anzahl der Kommunikationsschritte bei Produktgraphen G = G (1) × G (1) <strong>mit</strong> verschiedenen Verfahren; bei allen<strong>Dimension</strong>-Exchange-Verfahren wird α = 1 2angenommen; zum Vergleich ist jeweils der Durchmesser diam(G)der Graphen <strong>mit</strong> angegeben107


108


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


5 Details zur Implementierung und Messergebnissedes <strong>Loadbalancing</strong>s ohne Kommunikation lokal berechnen zu können. Eine parallele Berechnungder Eigenwerte würde sich nur für große unstrukturierte Graphen lohnen.Ergänzungen für Verfahren, die die Kanten vorwärts und rückwärts durchl<strong>auf</strong>enBei einigen Verfahren wie DE-OPTfb oder SDE-OPT werden die Kanten des Graphenim Wechsel vorwärts und rückwärts durchl<strong>auf</strong>en. Hat ein Knoten A als ersten Nachbarnden Knoten B und ist gleichzeitig A erster Nachbar von B, dann gibt es für beide zwei<strong>auf</strong>einander folgende Kommunikationsoperationen über die gemeinsame Kante. Diesezwei Kommunikationen lassen sich zu einer vereinen. Dasselbe gilt für den jeweils letztenNachbarn eines Knotens. So haben die Knoten 1 und 2 des Graphen in Abbildung 5.2 a)z. B. eine solche spezielle erste Kante, Knoten 3 dagegen nicht. Ergänzend muss alsogespeichert werden, ob die erste und die letzte Kante eine solch spezielle Kante ist odernicht.Ergänzungen für das zyklische Durchl<strong>auf</strong>en der FarbenGegeben sei ein <strong>mit</strong> c Farben gefärbter Graph. Im Gegensatz zu früher startet die ersteRechnung nun <strong>mit</strong> Farbe zwei, die letzte (c-te) Rechnung entspricht dem Abl<strong>auf</strong> des einfachenVerfahrens. Gemäß Abbildung 5.1 wird die gesamte Rechnung <strong>auf</strong>geteilt in einenersten Halbschritt, m − 2 reguläre Schritte und einen abschließenden Halbschritt. Diedicken grauen Linien deuten an, wo innerhalb der Einzelrechnung eine Schleife über alleFarben komplett ist. Gibt es Knoten, deren Grad kleiner ist als c, so muss diese Infor-Rechnung 1:Rechnung 2:Rechnung 3:Rechnung 4:2 33ersterHalbschritt4 1 2 3 4 1 2 3 4 1 2 3 4 14 1 2 3 4 1 2 3 4 1 2 3 44 1 2 3 4 1 2 3 4 1 2 3 41122 31 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4reguläre SchritteletzterHalbschrittAbbildung 5.1: Abl<strong>auf</strong> von DE-OPTccmation extra gespeichert werden. Als Beispiel hierzu wird der C 3 aus Abbildung 5.2 a)betrachtet. Kursiv neben jedem Knoten eingetragen ist die lokale Nummerierung derNachbarn. Teil b) der Abbildung enthält wiederum den Abl<strong>auf</strong> der Rechnung inklusiveder Markierungen, wo jeweils eine Schleife über alle Nachbarn beendet ist. Diese Informationmuss in einem separaten Vektor gespeichert werden; für den Prozessor 3 aus demBeispiel ergibt sich also (0, 1, 2). Auf den Prozessoren 1 und 2 lautet die Vektoren (1, 1, 2)und (1, 2, 2); sie tragen im Algorithmus 5.1 zum DE-OPTcc die Bezeichnung ccend.5.4 Berechnung und Speicherung der FlüsseDie Flüsse <strong>auf</strong> jedem Prozessor werden in einem Vektor gespeichert, dessen Länge derAnzahl der Nachbarn entspricht. Während des <strong>Loadbalancing</strong>s wird <strong>mit</strong> Gleitkommazahlengerechnet, die am Ende <strong>auf</strong> die nächste ganze Zahl gerundet werden, denn es110


5.4 Berechnung und Speicherung der Flüsse{erster Halbschritt}ŵ = wfor j = ccend(1) + 1, . . . ,Anzahl der Nachbarn do {Farbschleife}Datenaustausch, ŵ an Nachbar j, ŵ j von Nachbar jfor r = 1, . . . ,Anzahl der Farben and while ccend(r) < j do{Schleife über die einzelnen Rechnungen}y = α (ŵ(r) − ŵ j (r))ŵ(r) = ŵ(r) − yx j (r) = x j (r) + 1αλ DE1end forend for{m − 2 reguläre Schritte}yfor k = 1, . . . , m − 2 dofor r = 1, . . . ,Anzahl ( der ) Farben and while ccend(r) = 0 dow k (r) = 1 − 1 w k−1 + 1 ŵαλ DEk+1αλ DEk+1ŵ(r) = w k (r)end forfor j = 1, . . . ,Anzahl der Nachbarn do {Farbschleife}Datenaustausch, ŵ an Nachbar j, ŵ j von Nachbar jfor r = 1, . . . ,Anzahl der Farben do {Rechnungsschleife}y = α (ŵ(r) − ŵ j (r))ŵ(r) = ŵ(r) − yif ccend(r) ≥ j thenx j (r) = x j (r) + 1 yαλ DEk+1elsex j (r) = x j (r) + 1 yαλ DEk+2end ifif ccend(r) = j then{ein Schritt ( in)Rechnung r ist beendet: neues w}w k (r) = 1 − 1 w k−1 + 1 ŵαλ DEk+1αλ DEk+1ŵ(r) = w k (r)end ifend forend forend for{abschließender Halbschritt}for j = 1, . . . , ccend(c) do {Farbschleife}Datenaustausch, ŵ an Nachbar j, ŵ j von Nachbar jfor r =Anzahl der Farben, . . . , 1 and while ccend(r) ≥ j doy = α (ŵ(r) − ŵ j (r))ŵ(r) = ŵ(r) − yx j (r) = x j (r) + 1αλ DEmend forend forfor r = 1, . . . ,Anzahl ( der)Farben doyw m−1 (r) = 1 − 1 w m−2 + 1 ŵαλ DEmαλ DEmend for{Mittelwert der r Flüsse berechnen}for j = 1, . . . ,Anzahl der Nachbarn dox j = Mittelwert{x j (r)|r = 1, . . . , Anzahl der Farben}end forAlgorithmus 5.1: DE-OPTcc-Verfahren für Prozessor i111


5 Details zur Implementierung und Messergebnissea)2 1 1 2 1 21 2 3b)Rechnung 1:Rechnung 2:Rechnung 3:1 2 1 2 1 22 1 2 1 21 2 1 21 21 21 211 2Abbildung 5.2: Abl<strong>auf</strong> von DE-OPTcc für den Zyklus C 3 : a) Skizze des Graphen <strong>mit</strong>lokaler Nummerierung der Nachbarn, b) Abl<strong>auf</strong> des Verfahrens aus Sichtvon Prozessor 3können nur ganze Lasten verschoben werden. Diese Rundung kann dazu führen, dass dietatsächliche Last nach Ende des Schedulings bei einem Knoten vom Grad δ um maximalδ 2 vom exakten Mittelwert (w i) abweicht. Außerdem kann es vorkommen, dass derbei exakter Rechnung l 2 -minimale Fluss nach Rundung unter allen ganzzahligen Flüssennicht mehr die kleinste Norm <strong>auf</strong>weist.Haben zwei Prozessoren A und B eine gemeinsame Kante, so wird der Fluss über dieseKante <strong>auf</strong> beiden Prozessoren, aber <strong>mit</strong> unterschiedlichem Vorzeichen, gespeichert.Prozessor A Prozessor By = α (w A − w B ) y = α (w B − w A )x AB = x AB + y x BA = x BA + yIn obigem Ausschnitt aus dem FOS muss sichergestellt sein, dass anschließend exaktx AB = −x BA gilt. Schon bei kleinen Rundungsfehlern können sich bei der abschließendenRundung der Flüsse <strong>auf</strong> ganze Zahlen Abweichungen von einer ganzen Lasteinheitergeben. Bei x86-Prozessoren tritt genau dieses Problem <strong>auf</strong>, da Zwischenergebnissein Registern <strong>mit</strong> höherer Genauigkeit (80 Bit) gespeichert werden können. WerdenRegisterinhalte zwischenzeitlich in den Hauptspeicher ausgelagert, so wird <strong>auf</strong> 64Bit gerundet. IEEE-Konfor<strong>mit</strong>ät erreicht man <strong>mit</strong> dem g++-Compiler durch die Option-ffloat-store. Die da<strong>mit</strong> verbundenen Performance-Einbußen bei den Berechnungenfallen wegen der Dominanz der Kommunikationszeiten kaum <strong>auf</strong>.5.5 Grundlegende Voraussetzungen für alle VerfahrenEs wird bei allen Verfahren verlangt, dass sie ohne globale Kommunikation währenddes <strong>Loadbalancing</strong>s auskommen. Bei allen iterativen, nicht-endlichen Verfahren (z. B.FOS, SOS) wird jedoch zur Bestimmung der notwendigen Anzahl der Iterationsschritteeinmal zu Beginn der anfängliche Fehler ∥ ∥ e0 2= ∥ w 0 − w ∥ 2bestimmt. Mit <strong>Hilfe</strong> derFehlerabschätzungen aus Kapitel 2.2 wird garantiert, dass der abschließende Fehler inder l 2 -Norm kleiner als 1 2wird. Beim DE-FOS findet sich keine vergleichbar einfacheAbschätzung, da die Iterationsmatrix M DE unsymmetrisch ist. Ungeachtet dessen wird112


5.6 Synchron oder Asynchron?hier wie beim FOS der zweitgrößte Eigenwert zu Rate gezogen. Die Praxis zeigt, dass dieabschließenden Fehler <strong>auf</strong> diese Weise zumindest in der Größenordnung von 1 2 bleiben.Endliche Verfahren wie OPS oder OPT werden nicht vorzeitig abgebrochen, auch wenndies manchmal sinnvoll wäre; vergleiche hierzu zum Beispiel die Konvergenz für das GitterG 24 in Abbildung 2.4. Stattdessen werden immer m − 1 Schritte durchgeführt, wobeim die Anzahl verschiedener Eigenwerte ist, inklusive 1. Allerdings werden bei der Berechnungder Eigenwerte solche Eigenwerte als gleich angesehen und da<strong>mit</strong> nur einmalgezählt, die absolut näher als 10 −12 beieinander liegen. (Eine vergleichbare relative Genauigkeitkann <strong>mit</strong> den üblichen Berechnungsmethoden für Eigenwerte nicht garantiertwerden.)5.6 Synchron oder Asynchron?Bei <strong>Dimension</strong>-Exchange-Verfahren ist die Reihenfolge der Kommunikation eines Prozessors<strong>mit</strong> seinen Nachbarn durch die Einfärbung des Graphen strikt festgelegt. DerDatenaustausch erfolgt paarweise durch eine Sende-Empfangs-Operation (Sendrecv inMPI).Da der gleichzeitige Datenaustausch <strong>mit</strong> mehreren Nachbarknoten, wie er für Diffusionsverfahrenoptimal wäre, <strong>auf</strong> den meisten Systemen nicht durchführbar ist, wird auchbei diesen Verfahren einzeln <strong>mit</strong> allen Nachbarn kommuniziert. Am einfachsten ist es,hierzu die sowieso vorhandene Einfärbung zu benutzen und genauso zu verfahren, wiebeim <strong>Dimension</strong>-Exchange auch. Alternativ hierzu wurde folgende asynchrone Alternativeuntersucht: Zu Beginn eines Schrittes wird für alle Nachbarn ein nicht-blockierendesSenden (Isend) des eigenen Lastwertes initialisiert. In der dar<strong>auf</strong>folgenden Schleife werdenLastinformationen von den Nachbarn nacheinander, aber in beliebiger Reihenfolge,empfangen und weiterverarbeitet. Erst danach werden die Sendeoperationen abgeschlossen.Verfahren, die nach diesem Prinzip arbeiten, bekommen den Zusatz Async-.Die schnellsten Diffusionszeiten erreicht man durch eine Kombination von Vorwärts-Rückwärts-Iteration und asynchroner Kommunikation; bezeichnet wird dies <strong>mit</strong> FB-Async-. Zwei <strong>auf</strong>einander folgende Kommunikationen über eine spezielle erste oder letzteKante werden zusammengefasst und nur für die übrigen ”<strong>mit</strong>tleren“ Kanten wird asynchroneKommunikation verwendet.5.7 Verwendete Rechner und SoftwareDie Zeitmessungen wurden <strong>auf</strong> drei verschiedenen <strong>Parallelrechnern</strong> bzw. Rechnerclusterndurchgeführt.ALiCEALiCE (Alpha-Linux-Cluster-Engine,www.theorie.physik.uni-wuppertal.de/Computerlabor/ALiCE.phtml) ist der Parallelrechnerder Universität Wuppertal. Er besteht aus 128 Compaq DS10 Workstations.Jeder einzelne Rechner ist <strong>mit</strong> einem Alpha 21264 EV67 Prozessor <strong>mit</strong> 616 MHz113


5 Details zur Implementierung und MessergebnisseTaktfrequenz sowie 256 MB Speicher ausgestattet. Als Kommunikationshardware kommtein Myrinet-Netzwerk zum Einsatz. Als dar<strong>auf</strong> <strong>auf</strong>setzende MPI-Implementierung wirdParastation3 (www.par-tec.com) verwendet. Übersetzt wird das Programm <strong>mit</strong> demCompaq-C++-Compiler cxx in Version 6.3.9.6.PSCDer zweite zum Testen verwendete Rechner ist der PSC am Paderborn Center for ParallelComputing (PC 2 , www.upb.de/pc2/index.html). Dieser Rechner vom Typ SiemenshpcLine besteht aus 96 Knoten <strong>mit</strong> je zwei Pentium-III-Prozessoren <strong>mit</strong> 850 MHzund 512 MB Speicher. Zwar enthalten die Knoten schnelle Dolphin-PCI/SCI-Kartenzur Kommunikation, für die Tests wurden jedoch nur die zusätzlich vorhandenen 100-MBit-Ethernet-Karten benutzt. Auf diese Weise stehen die Resultate für einen ”typischen“PC-Cluster. Als Kommunikationssoftware wird MPICH in der Version 1.2.4(www.mcs.anl.gov/mpi/mpich) verwendet, als Compiler g++ Version 2.95.3. Von denzwei Prozessoren pro Knoten wurde für die Messungen jeweils nur einer verwendet.PC-ClusterAls dritte Testplattform diente ein kleiner PC-Cluster am Fachbereich Mathematik derUniversität Wuppertal, bestehend aus 16 Pentium-III-PCs <strong>mit</strong> 800 MHz und 384 MBRAM sowie 100-MBit-Ethernet-Kommunikation. Bei Topologien über 16 Knoten wurdenmehrere Prozesse pro Rechner gestartet. Die verwendete MPI-Implementierung istLAM/MPI Version 6.5.6 (www.lam-mpi.org) in Kombination <strong>mit</strong> dem g++ in Version3.0.3. Statt des Client-to-Client-Mode (c2c) wurde die prinzipiell langsamere Kommunikationüber den LAM-Dämon verwendet. Der Grund hierfür sind Performance-Einbrücheim c2c-Mode, wenn mehrere Prozesse <strong>auf</strong> dem selben Rechner asynchron kommunizieren.EigenwertberechnungIn Fällen, wo keine expliziten Formeln zur Eigenwertberechnung bekannt sind, also vorallem bei unstrukturierten Graphen, wird zur effizienten Berechnung der EigenwerteLAPACK (Linear Algebra Package, www.netlib.org/lapack) verwendet in Kombination<strong>mit</strong> einer für den jeweiligen Rechner optimierten BLAS-Bibliothek (Basic LinearAlgebra Subprograms). Während für ALiCE <strong>mit</strong> der cxml eine Compaq-eigene BLAS-Version existiert, sollte <strong>auf</strong> PCs ATLAS (Automatically Tuned Linear Algebra Software,math-atlas.sourceforge.net) verwendet werden.5.8 Ergebnisse der Zeit- und FlussmessungenFür die Zeit- und Flussmessungen wurden insgesamt sechs Topologien betrachtet: Zyklus,kompletter Graph, Gitter, Torus, Hypercube und zufälliger Graph. Die angegebenenZeiten beinhalten nur das eigentliche <strong>Loadbalancing</strong>, nicht aber die Berechnungder Eigenwerte oder zum Beispiel die Bestimmung des optimalen α beim FOS. Gehtman davon aus, dass sich die Topologie nicht ändert, muss die Eigenwertberechnungja auch nur einmal durchgeführt werden, während das <strong>Loadbalancing</strong> wiederholt angewandtwird. Außerdem haben die Messwerte ergeben, dass diese zusätzlichen Zeitenim Vergleich zum gesamten <strong>Loadbalancing</strong> keine entscheidende Rolle spielen. Die einzige114


5.8 Ergebnisse der Zeit- und FlussmessungenAusnahme hiervon stellt vielleicht das DE-FOS bei unstrukturierten Graphen dar, wo zurBestimmung des optimalen α eine Art binäre Suche <strong>mit</strong> mehreren Eigenwertberechnungendurchgeführt wird. Um die Zeiten der verschieden schnellen Rechner besser vergleichenzu können, sind skalierte statt absoluter Zeiten abgedruckt. Als Referenz dient daseinfachste (d. h. am leichtesten zu implementierende) endliche Verfahren, nämlich OPT;dessen Zeiten werden <strong>auf</strong> 100 gesetzt. Die realen Zeiten für dieses Verfahren sind in Tabelle5.1 ersichtlich. Sie liegen in der Regel im Bereich weniger Milli- bis Zentisekunden.Graph ALiCE PSC PC-ClusterC 32 1,41 4,26 16,83K 16 0,751 2,26 10,2G 8 5,23 14,6 191T 8 2,14 6,88 94,8H 6 1,65 9,85 92,0R 32,96 10,7 29,3 110Tabelle 5.1: Zeiten für OPT <strong>auf</strong> den Graphen der nachfolgenden Tabellen in Millisekunden(im Falle des PC-Clusters sind die gemessenen Zeiten dividiert durchdie Anzahl der Prozesse pro Prozessor)Im Falle des PC-Clusters sind die gemessen Zeiten durch die Anzahl der Prozesse proRechner dividiert. Mit Ausnahme der Hypercubes und vielleicht des zufälligen Graphenwar hier sichergestellt, dass keine zwei zu benachbarten Knoten gehörenden Prozesse <strong>auf</strong>dem selben Prozessor liefen. Als Referenz für den minimalen Fluss wurden die Resultatedes OPS-Verfahrens verwendet, da dieses ein besonders stabiles Konvergenzverhaltenzeigt.Von maximal 28 verschiedenen Verfahren wurden jeweils die durchgeführt, die <strong>auf</strong> denjeweiligen Graphen anwendbar sind.Der Wert für das konstante Kantengewicht α wurde für alle nicht-endlichen Verfahrenjeweils optimal gewählt, bei allen <strong>Dimension</strong>-Exchange-Verfahren gleich 1 2, und beimOPS so, dass alle Diagonalelemente von M Diff positiv bleiben (0,4 / 0,06 / 0,2 / 0,2/ 0,15 / 0,1 für C / K / G / T / H / R). Bei den endlichen Verfahren wurden dieEigenwerte <strong>mit</strong>tels Leja-Sortierung angeordnet; als Exponent g für die Gewichtsfunktionwurde 1 bei Nicht-ADI- und 1,5 bei ADI-Verfahren benutzt. Der Wert für η bei ADI-OPSund dessen Varianten wurde <strong>auf</strong> 4 gesetzt.Um die Zeiten im Millisekundenbereich exakt genug messen zu können, wurden erstensmindestens 50 Messungen hintereinander ausgeführt und zweitens wurde mindestens 20Sekunden lang gemessen. Diese Prozedur wurde sechsmal wiederholt. Nach Streichungdes kleinsten und größten Wertes wurde über die vier übrigen Werte ge<strong>mit</strong>telt.Die erste Tabelle 5.2 zum Zyklus C 32 zeigt, dass sich die OPT-Zeiten, in Übereinstimmung<strong>mit</strong> den Vorhersagen in Tabelle 3.4, etwa <strong>auf</strong> die Hälfte reduzieren lassen. Esist zu erkennen, dass die Verfahren DE-OPTfb und SDE-OPT bei einem Graphen <strong>mit</strong>nur zwei Farben wegen der Zusammenfassung von je zwei Teilschritten tatsächlich kaumlänger dauern als DE-OPT. Das Problem der nicht-minimalen Flüsse kann bei Zyklen115


5 Details zur Implementierung und Messergebnisseweitestgehend vernachlässigt werden.Verfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 341 1866 1333 1787 0,999 1Async-SOS 45 298 225 256 1 1Async-Čebyšev 37 255 196 215 1 1OPT 16 100 100 100 1,001 1FB-Async-OPT 16 51 60 57 1,001 1Async-OPS 16 95 74 90 1 1DE-FOS 17 153 152 123 1,02 1,037DE-OPT 8 39 56 54 1,002 1,001DE-OPTfb 8 42 60 57 1 1DE-OPTcc 8 42 62 57 1 1SDE-OPT 8 52 58 57 1,002 1,001DE-OPS 8 39 56 54 1,002 1,001Tabelle 5.2: Ergebnisse für den Zyklus C 32Der komplette Graph aus Tabelle 5.3 entspricht am ehesten der Topologie vieler Parallelrechner,bei denen <strong>mit</strong> <strong>Hilfe</strong> von Switches oder Crossbars jeder Prozessor <strong>mit</strong> jedemanderen gleichberechtigt kommunizieren kann. Allerdings ist es technisch ausgeschlossen,alle möglichen Verbindungen gleichzeitig zu benutzen. Da dieser Graph nur einen vonNull verschiedenen Eigenwert hat, sind Diffusionsverfahren hierfür relativ schnell. Dennochsteigt der Aufwand <strong>mit</strong> der Gesamtzahl der Prozessoren, da <strong>mit</strong> allen Nachbarneinmal kommuniziert werden muss. Für das nachfolgende Scheduling bedeutet dies, dassdie Lasten über wesentlich mehr Kanten verschoben werden als bei anderen Graphen.Nichtsdestotrotz ist <strong>Dimension</strong>-Exchange im Falle dieses speziellen Graphen den Diffusionsverfahrensowohl in Bezug <strong>auf</strong> die L<strong>auf</strong>zeiten als auch <strong>auf</strong> die Flüsse klar unterlegen.Die beiden wichtigsten Graphen sind sicherlich das Gitter G 8 in Tabelle 5.4 sowie derTorus T 8 in Tabelle 5.5, da man an diesen Beispielen (fast) alle Verfahren vergleichenkann und gerade der Torus in der Praxis als Topologie einiger Parallelrechner verwendetwird. Unter den Verfahren, die die Produktgraphstruktur nicht ausnutzen, sticht vorallem das DE-OPTcc hervor, das in vergleichsweise kurzer Zeit Flüsse berechnet, die nurwenig über dem Minimum liegen. Unter den ADI-Verfahren ist DE-ADC-OPT dasjenige,das geringe Zeiten und kleine Flüsse am besten vereint. Legt man ausschließlich Wert<strong>auf</strong> eine möglichst geringe L<strong>auf</strong>zeit, kommen vor allem FB-SDI-OPT und DE-ADI-OPTin Betracht; sollen die Flüsse möglichst klein gehalten werden, ist eher Async-ADC-OPS<strong>mit</strong> genügend großem η das Verfahren der Wahl, oder auch das wegen der komplexerenImplementierung nur für den Torus getestete DE-ADC-OPTcc. Die recht hohen Zeiten<strong>auf</strong> der PSC für Tori scheinen nicht repräsentativ zu sein und sollten nicht überbewertetwerden.Der Hypercube aus Tabelle 5.6 verhält sich ähnlich wie Gitter und Tori, auch hier istDE-OPTcc das zu bevorzugende Verfahren. Die <strong>auf</strong>geführten ADI-Verfahren sind zwar116


5.8 Ergebnisse der Zeit- und FlussmessungenVerfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 2 200 153 191 0,997 1Async-SOS 2 202 153 194 1 1Async-Čebyšev 2 201 152 195 1 1OPT 1 100 100 100 1 1FB-Async-OPT 1 76 60 91 1 1Async-OPS 1 72 46 91 1 1DE-FOS 6 577 577 545 2,83 3,00DE-OPT 7 405 590 568 2,83 3,00DE-OPTfb 7 754 1107 1039 1,91 1,90DE-OPTcc 7 573 920 699 1,10 1,06SDE-OPT 4 616 635 646 2,78 2,76DE-OPS 7 411 590 572 2,82 3,00Tabelle 5.3: Ergebnisse für den kompletten Graphen K 16durchführbar, indem man den Hypercube als Produkt von P 2 -Pfaden <strong>auf</strong>fasst, die resultierendenVerfahren entsprechen aber alle entweder DE-OPT oder DE-OPTcc, bringen dafüraber einen zusätzlichen Verwaltungs<strong>auf</strong>wand <strong>mit</strong> sich. Die Zeiten <strong>auf</strong> dem PC-Clustersind für den Hypercube dadurch etwas verfälscht, dass eine von sechs Kommunikationenlokal erfolgte.Der ”zufällige“ Graph (Tabelle 5.7) ist für alle Testfälle identisch. Er besteht aus32 Knoten, 96 Kanten, hat einen Knotengrad zwischen 2 und 9 und lässt sich <strong>mit</strong> 9Farben einfärben. Hier lieferte DE-FOS die Gleichverteilung am schnellsten, aber <strong>auf</strong>Kosten recht hoher Flüsse; am zweitschnellsten war das asynchrone Čebyšev-Verfahren,das sogar minimale Flüsse erzeugt. Sinnvoll könnte noch das hier nicht getestete DE-FOScc sein. Der Grund für die Überlegenheit gegenüber eigenwertbasierten Verfahrendürfte sein, dass der hier gewählte Zufallsgraph einen recht kleinen Durchmesser hatte.Bei unregelmäßigen Gittern, wie sie bei der Aufteilung von Teilgebieten <strong>auf</strong> Prozessorenin Finite-Elemente-Anwendungen entstehen, lohnen sich endliche Verfahren eher.117


5 Details zur Implementierung und MessergebnisseVerfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 173 439 388 398 1 1Async-SOS 33 98 89 84 1 1Async-Čebyšev 27 84 77 69 1 1OPT 32 100 100 100 1 1FB-Async-OPT 32 67 69 82 1 1Async-OPS 32 81 71 79 1 1DE-FOS 9 46 49 32 1,53 1,20DE-OPT 10 24 35 34 1,14 1,041DE-OPTfb 10 37 57 50 1,017 1,003DE-OPTcc 10 27 40 36 1,020 1,012SDE-OPT 10 49 56 51 1,13 1,031DE-OPS 10 24 35 33 1,14 1,041Async-MDI-FOS 87 272 221 204 1,32 1,041Async-ADI-Čebyšev 19 74 65 50 2,14 1,041Async-ADC-Čebyšev 19 58 67 51 1,009 1,003Async-ADI-Čebyšev2 19 87 73 54 9,47 2,93Async-ADC-Čebyšev2 19 121 83 57 3,51 1,99FB-SDI-OPT 7 12 18 12 1,51 1,47Async-MDI-OPT 7 24 22 23 1,020 1,010FB-MDI-OPT 7 19 23 21 1,020 1,010Async-ADC-OPT 7 18 23 22 0,996 1,001Async-ADI-OPS 7 37 26 23 1,037 1,016Async-ADC-OPS 7 54 35 25 1,006 1,002DE-ADI-OPT 4 12 18 16 1,16 1,060DE-ADC-OPT 4 13 20 16 1,037 1,012DE-ADI-OPS 4 26 21 16 1,20 1,061DE-ADC-OPS 4 43 28 19 1,047 1,012Tabelle 5.4: Ergebnisse für das Gitter G 8 = P 8 × P 8118


5.8 Ergebnisse der Zeit- und FlussmessungenVerfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 47 319 276 319 1 1Async-SOS 17 145 129 124 1 1Async-Čebyšev 14 127 115 104 1 1OPT 12 100 100 100 1 1FB-Async-OPT 12 69 67 86 1 1Async-OPS 12 78 69 90 1 1DE-FOS 4 77 77 39 1,38 1,38DE-OPT 3 24 34 25 1,23 1,23DE-OPTfb 3 34 48 40 1,042 1,039DE-OPTcc 3 30 44 35 1,033 1,031SDE-OPT 3 43 47 40 1,23 1,23DE-OPS 3 24 33 25 1,23 1,23Async-MDI-FOS 24 216 184 166 1,29 1,26Async-ADI-Čebyšev 10 117 103 74 1,37 1,44Async-ADC-Čebyšev 10 99 130 81 1,006 1,014Async-ADI-Čebyšev2 10 136 192 80 2,32 2,47Async-ADC-Čebyšev2 10 177 220 84 1,20 1,21FB-SDI-OPT 4 24 60 22 1,38 1,39Async-MDI-OPT 4 36 77 37 1,03 1,033FB-MDI-OPT 4 31 70 27 1,03 1,033Async-ADC-OPT 4 30 77 39 0,998 1,003Async-ADI-OPS 4 55 82 37 1,058 1,059Async-ADC-OPS 4 76 104 40 1,005 1,005DE-ADI-OPT 2 19 50 21 1,24 1,24DE-ADC-OPT 2 23 58 22 1,059 1,069DE-ADC-OPTcc 2 32 81 37 0,992 1,004DE-ADI-OPS 2 31 55 21 1,28 1,28DE-ADC-OPS 2 51 76 24 1,070 1,073Tabelle 5.5: Ergebnisse für den Torus T 8 = C 8 × C 8119


5 Details zur Implementierung und MessergebnisseVerfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 21 281 266 70 0,999 1Async-SOS 11 176 156 39 1 1Async-Čebyšev 9 155 134 33 1 1OPT 6 100 100 100 1 1FB-Async-OPT 6 69 83 55 1 1Async-OPS 6 73 80 22 1 1DE-FOS 1 73 35 17 1,51 1,58DE-OPT 1 21 29 16 1,51 1,58DE-OPTfb 1 30 46 33 1,12 1,17DE-OPTcc 1 32 43 23 1,070 1,080SDE-OPT 1 38 45 33 1,51 1,58DE-OPS 1 21 28 16 1,51 1,58Async-MDI-FOS 1 − − 11 1,51 1,58FB-SDI-OPT 1 26 29 16 1,51 1,58Async-MDI-OPT 1 29 30 8 1,51 1,58FB-MDI-OPT 1 26 29 15 1,51 1,58Async-ADC-OPT 1 34 45 16 1,044 1,080DE-ADI-OPT 1 22 29 15 1,51 1,58DE-ADC-OPT 1 33 44 23 1,044 1,080Tabelle 5.6: Ergebnisse für den Hypercube H 6 = P 2 × P 2 × P 2 × P 2 × P 2 × P 2Verfahren Schritte Zeiten‖x‖Fluss: 2‖x min ‖ 2ALiCE PSC PC-Cluster Rand PeakAsync-FOS 23 59 41 71 0,999 1Async-SOS 11 32 24 36 0,999 1Async-Čebyšev 10 30 23 35 0,999 1OPT 31 100 100 100 1 1FB-Async-OPT 31 60 45 81 1 1Async-OPS 31 71 48 92 1 1DE-FOS 4 21 22 20 1,84 1,87DE-OPT 17 37 57 55 1,58 1,60DE-OPTfb 17 68 103 96 1,20 1,20DE-OPTcc 17 44 74 58 1,14 1,15SDE-OPT 17 95 101 95 1,60 1,62DE-OPS 17 37 57 54 1,58 1,60Tabelle 5.7: Ergebnisse für den zufälligen Graphen R 32,96120


6 Scheduling-VerfahrenIn den vorangegangenen Kapiteln ist eine Vielzahl von Verfahren vorgestellt worden, diealle — ausgehend von einer anfänglichen Lastverteilung w 0 — einen Fluss x berechnen,der diese Lasten ausgleichen soll. Obwohl man hier von <strong>Loadbalancing</strong>-Verfahren spricht,ist bisher noch keine einzige Lasteinheit von einem Prozessor zu einem anderen bewegtworden — dies ist Aufgabe des sich nun anschließenden Schedulings. Im Idealfall mussjeder Prozessor weniger Last an seine Nachbarn abgeben, als er anfänglich besitzt; dannkann der Fluss in einem einzigen Schritt erfüllt werden. Anderenfalls muss eine der untenbeschriebenen Strategien angewandt werden.6.1 Das Scheduling-ProblemDie folgende formale Beschreibung des Scheduling-Problems ist angelehnt an die in[DFM99].Gegeben sei ein Graph G <strong>mit</strong> Adjazenzmatrix A, eine Anfangslastverteilung w 0 sowieein ausgleichender Fluss x, also Ax = w 0 − w. Es wird zur Vereinfachung angenommen,dass die durch A festgelegte Richtung der Kanten jeweils der Flussrichtung entspricht,d. h. x i ≥ 0 für alle i. Es sei A = A + + A − eine Zerlegung von A in ihren positivenund negativen Anteil, also a + ij = max {a ij, 0} und a − ij = min {a ij, 0}. Gesucht ist eineZerlegung des Flusses S(x) = (˜x 0 , . . . , ˜x k−1) <strong>mit</strong> x = ∑ k−1j=0 ˜xj undso dassA˜x j = A } {{ +˜x }j + A} {{ −˜x }j = w j − w j+1 ,senden empfangenw j ≥ A +˜x j für alle j ∈ {0, . . . , k − 1}ist, wobei die Ungleichung komponentenweise erfüllt sein muss. Die Zerlegung S heißtzeitoptimal, falls k minimal ist unter all solchen Zerlegungen.6.2 Scheduling-VerfahrenEin zeitoptimales Scheduling ist schwer zu finden. Stattdessen werden in der Praxis heuristischeVerfahren verwendet; ein allgemeiner Rahmen für ein solches Verfahren ist inAlgorithmus 6.1 angegeben. Schon für die <strong>Loadbalancing</strong>-Verfahren galt die Forderung,dass sie ohne globale Kommunikation auskommen sollen. Entsprechend soll auch hier dieBestimmung des Teilflusses ˜x k in jedem Schritt nur <strong>auf</strong> lokalen Informationen beruhen.121


6 Scheduling-VerfahrenGemäß [DFM99] spricht man von einem lokalen Greedy-Scheduling, wenn zusätzlich folgendesgilt: Hat ein Knoten in einem Schritt genügend Lasteinheiten, um die Flüsse überalle ausgehenden Kanten zu sättigen, so wird dies erfüllt; hat er keine ausreichende Zahlan Lasteinheiten, so verteilt er all seine Last nach einer bestimmten Regel (Heuristik)<strong>auf</strong> einen Teil oder auch alle ausgehenden Kanten.x 0 = x; k = 0while x k ≠ 0 dobestimme ˜x k ≠ 0 <strong>mit</strong> w k ≥ A +˜x kx k+1 = x k − ˜x kw k+1 = w k − A˜x kk = k + 1end whileAlgorithmus 6.1: allgemeiner Abl<strong>auf</strong> des SchedulingRRG und PPGZwei Beispiele für solche Greedy-Verfahren werden in [DFM99] beschrieben. Bei Round-Robin Greedy (RRG) wird erst eine Kante komplett <strong>auf</strong>gefüllt, dann die nächste und soweiter. Sind in einem Schritt nicht genügend Lasteinheiten vorhanden, so werden einige(eventuell auch gar keine) Kanten komplett <strong>auf</strong>gefüllt, eine Kante zum Teil und der Restgar nicht. Im Gegensatz dazu werden bei Proportional Parallel Greedy (PPG) in jedemSchritt alle Kanten bedacht. Dabei ist die in einem Schritt über eine Kante verschobeneLast proportional zur Flussanforderung über diese Kante.Verbesserung des RRGDie bisherige Beschreibung des RRG macht keine Aussage darüber, in welcher Reihenfolgedie Kanten durchl<strong>auf</strong>en werden; sie könnte bei einer konkreten Implementierung zumBeispiel von der Speicherung des Graphen und nicht vom jeweiligen Fluss abhängen.Eine Verbesserung lässt sich dadurch erzielen, dass die Kanten vorher nach der Höheder Flussanforderungen sortiert werden, beginnend bei der größten. Schließlich ist beigroßen Flüssen über eine Kante die Wahrscheinlichkeit relativ hoch, dass die Lasten nichtkomplett im Zielknoten verbleiben, sondern von dort zum Teil noch weiter versandt werdenmüssen, eventuell sogar über mehrere Stationen. Eine Bevorzugung solcher Kantenkann die Gesamtzahl der Schritte reduzieren. Diese Modifikation wird <strong>mit</strong> SRRG (SortedRRG) bezeichnet.Scheduling <strong>mit</strong> gefärbten GraphenBei den <strong>Loadbalancing</strong>-Verfahren lag der Schwerpunkt dieser Arbeit <strong>auf</strong> <strong>Dimension</strong>-Exchange-Verfahren. Die hierfür benötigte Einfärbung des Graphen kann auch für dasanschließende Scheduling verwendet werden. Außerdem sind RRG und insbesondere PPGwiederum für das All-Port-Modell entworfen. Sie arbeiten am besten, wenn Lasten anmehrere bzw. alle Nachbarn zugleich versandt werden können. Das in Algorithmus 6.2präsentierte DE-Sched ist <strong>mit</strong> seiner Schleife über die Farben dagegen bestens für dasOne-Port-Modell geeignet. Allerdings entspricht das Verfahren insofern nicht mehr exakt122


6.3 Messergebnisseobiger Definition lokaler Greedy-Scheduler, als dass in einem Schritt Lasteinheiten voneinem Knoten aus versandt werden können, die zuvor im selben Schritt erst eingetroffensind.while x e ≠ 0 für mindestens eine inzidente Kante e dofor j = 1, . . . , c do {Farbschleife}if es gibt eine Kante e der Farbe j <strong>mit</strong> x e > 0 thensende max {x e , w} Lasteinheiten über Kante e, wobeiw die aktuelle Last istelse if es gibt ein e der Farbe j <strong>mit</strong> x e < 0 thenend ifend forend whileversuche, Last über x ezu empfangenAlgorithmus 6.2: DE-Sched aus Sicht eines Prozessors6.3 MessergebnisseVergleich der KonvergenzBevor die L<strong>auf</strong>zeiten verglichen werden, wird die Konvergenz der vier Verfahren untersucht.Bei einer zufälligen Ausgangslastverteilung und einem <strong>Loadbalancing</strong>-Verfahren,das (annähernd) minimale Flüsse erzeugt, sind alle Verfahren sehr schnell und unterscheidensich kaum: In der Regel werden hier nur ein bis drei Schritte benötigt. Erst beikünstlich erhöhten Flüssen, wie in Abbildung 6.1 werden Unterschiede deutlich. In allengezeigten Beispielen erhält man die typische Reihenfolge, dass DE-Sched am schnellstenkonvergiert, gefolgt von PPG, SRRG und RRG.ImplementierungsdetailsWie schon in Abschnitt 5.2 beschrieben, werden die Lasten <strong>mit</strong> <strong>Hilfe</strong> eines Vektors vonZeigern <strong>auf</strong> Speicherbereiche fester Größe (die eigentlichen Lasteinheiten) verwaltet. ZuBeginn des Schedulings wird <strong>auf</strong> jedem Knoten i, der insgesamt mehr Last erhält als erabgeben muss, Speicher für w i −wi 0 Lasteinheiten beschafft. Unter Umständen muss aberbei solchen Knoten, die Lasten von einem Nachbarn zu einem anderen durchleiten“,”während des Schedulings weiterer Speicher alloziert werden. Die Freigabe nicht mehrbenötigten Speichers erfolgt erst nach Herstellung der Gleichverteilung. Bevor jeweilsLasten verschickt werden können, müssen sich beide beteiligten Prozessoren über dieAnzahl der Einheiten verständigen, wozu vorher eine Nachricht in Richtung des Flussesgesandt wird. Gegebenenfalls wird hier eine Null versandt, falls ein Prozessor, der Datensenden müsste, gerade keine Last hat.Die Ergebnisse der Zeitmessungen <strong>auf</strong> ALiCE (vergleiche Abschnitt 5.7) sind in Tabelle6.1 zusammengefasst. Die Zeiten sind so skaliert, dass 100 dem <strong>Loadbalancing</strong> <strong>mit</strong>DE-OPT und α = 1 2entspricht. Der betrachtete Graph ist stets ein 8 × 8-Torus, die123


6 Scheduling-Verfahren∥ ∥ x k∥ ∥2∥ ∥x k ∥ ∥212000100008000600040002000250002000015000100005000T 16 , DE-OPT, α = 0, 99RRGSRRGPPGDE-Sched00 5 10 15 20SchritteH 8 , DE-OPT, α = 0, 99RRGSRRGPPGDE-Sched00 5 10 15 20 25 30 35 40SchritteT 16 , ADI-Čebyšev2, α = α opt∥ ∥x k ∥ ∥210000800060004000RRGSRRGPPGDE-Sched200000 5 10 15 20SchritteAbbildung 6.1: Vergleich der Konvergenz der vier Scheduling-Verfahren, bei den erstenbeiden Beispielen sind durch die Wahl α = 0,99 künstlich hohe Flüsseerzeugt worden, ADI-Čebyšev2 erzeugt schon bei optimalem α hohe Flüsse124


6.3 MessergebnisseFlüsse wurden <strong>mit</strong> DE-OPT generiert. Die kleinen Zahlen am linken Spaltenrand gebendie Anzahl der Iterationsschritte beim Scheduling an.Im ersten Abschnitt der Tabelle werden verschiedene Initialisierungen der Lasten verglichen.Bei der zufälligen Verteilung Rand unterscheiden sich alle vier Verfahren kaum.Bei den anderen beiden hat DE-Sched leichte Vorteile. Peak bedeutet, dass zu Beginn alleLast <strong>auf</strong> einem Knoten konzentriert ist. Da hierbei sehr spezielle Flüsse erzeugt werdenund bei Rand sehr kleine, wird für alle weiteren Vergleiche die <strong>mit</strong> spec bezeichnete spezielleVerteilung verwendet, bei der die meisten Knoten eine zufällige kleine Last habenund 6 ausgewählte Knoten eine im Mittel fünfzigfach höhere Last.Im zweiten Tabellenabschnitt werden die Flussnormen durch Erhöhung von α schrittweisevergrößert. Hierbei entstehen spezielle Kreisflüsse, <strong>mit</strong> denen PPG klar am bestenzurechtkommt. Insbesondere stellt man hier fest, dass die Anzahl der Schritte alleinekein gutes Maß für die Schnelligkeit der Verfahren ist.Bei den weiteren Messungen wurde die Gesamtzahl der Lasteinheiten von 64 bis <strong>auf</strong>640000 her<strong>auf</strong>gesetzt bzw. die Lastgröße von einem Byte bis <strong>auf</strong> 100 kB. Ab einer bestimmtenGröße nimmt die Zeit jeweils linear in Abhängigkeit von der Gesamtlast undder Lastgröße zu. Dann sind die Datenpakete so groß, dass die Bandbreite der Kommunikationshardwaredie Zeiten bestimmt. Es ist zu beobachten, dass DE-Sched in derRegel etwas schneller ist als die anderen drei, die sich untereinander kaum unterscheiden.Vor allem aber ist festzustellen, dass bei größeren oder vielen Lasten ein gutesScheduling-Verfahren wichtiger ist als ein schnelles <strong>Loadbalancing</strong>-Verfahren.125


6 Scheduling-Verfahrenα Ges.-last Lastgr. Init. RRG SRRG PPG DE-Sched0,5 100n 1000 Rand 2 55 2 57 2 56 1 540,5 100n 1000 spec 4 266 4 264 4 328 2 2400,5 100n 1000 Peak 8 2360 8 2369 8 2366 3 21560,01 100n 1000 spec 3 221 3 236 3 226 2 2070,5 100n 1000 spec 4 266 4 264 4 328 2 2400,9 100n 1000 spec 10 1414 9 1350 8 1405 4 12560,99 100n 1000 spec 75 17364 71 19203 56 7993 25 148660,999 100n 1000 spec 691 235490 540 181411 533 104068 229 1901940,5 1n 1000 spec 4 13 4 13 4 13 2 110,5 10n 1000 spec 4 37 4 38 4 38 2 340,5 100n 1000 spec 4 266 4 264 4 328 2 2400,5 1000n 1000 spec 4 2971 4 2974 4 2974 2 25760,5 10000n 1000 spec 4 29953 4 30140 4 30054 2 259620,5 100n 1 spec 4 26 4 28 4 28 2 250,5 100n 10 spec 4 29 4 30 4 31 2 280,5 100n 100 spec 4 54 4 57 4 57 2 520,5 100n 1000 spec 4 266 4 264 4 328 2 2400,5 100n 10000 spec 4 2771 4 2769 4 2770 2 24160,5 100n 100000 spec 4 27665 4 27691 4 27618 2 24590Tabelle 6.1: Scheduling-Ergebnisse für den Torus T 8 <strong>auf</strong> ALiCE, Zeiten und Iterationsschritte(kleine Zahlen)126


7 Kurze AusblickeVor einer Zusammenfassung der Ergebnisse werden noch kurz einige Aspekte des <strong>Loadbalancing</strong>sbetrachtet, die in dieser Arbeit bisher unbeachtet geblieben sind.7.1 Unterschiedliche KantengewichteBisher wurde das Kantengewicht α immer konstant gehalten. Möchte man bestimmteKanten für den Lastaustausch bevorzugen, so muss man zu individuellen Gewichtenα 1 , . . . , α N übergehen. Gründe hierfür können verschieden leistungsfähige Netzwerkverbindungensein oder geometrische Gründe bei Gebietszerlegungen. Die Ergebnisse in[DFM99] zu Diffusionsverfahren lassen sich folgendermaßen verallgemeinern. Die bisherigenMatrixdefinitionen werden ein wenig abgeändert:A = diag(α 1 , . . . , α N )˜L i = A i AA T i˜M i = I − ˜L ià ALG wie bisher <strong>mit</strong> ˜M j statt M j˜L ALG = AAÃALGT˜M ALG = I −˜LALGDas kantengewichtete ALG-FOS berechnet die Wertew k = ˜M ALG w k−1 , x k = x k−1 + AÃALGT w k−1 , k = 1, 2, . . . .Alle anderen Verfahren werden entsprechend angepasst. In Analogie zu Satz 3.36 gilt fürdie FlüsseHierbei istx ALG = AÃALGT ˜LALG + A˜x, ˜x irgendein ausgleichender Fluss∥ ∥ ∥∥x ALG ∥∥A ∥∥∥ ≤ AÃALGT ˜LALG + ∥A∥−1 ∥ ∥x Diff ∥∥A−1A −1=∥ A 1 2 à ALGT ˜LALG + AA − ∥ 12∥∥x Diff∥∥2‖x‖ A −1 =∥A −1( ∥ N)∥∥A − 1 ∥∥2∑1 212 x = x 2 iα iund der Diffusionsfluss ist nach [DFM99] in dieser Norm minimal.i=1,127


7 Kurze AusblickeWeitere, insbesondere numerische Ergebnisse hierzu liegen nicht vor. Der Geschwindigkeitsvorteilder <strong>Dimension</strong>-Exchange-Verfahren für α = 1 2geht aber sicherlich verloren.Die Stabilitätsvorteile dürften dagegen für moderate Kantengewichte (α i nicht zu nahebei 0) erhalten bleiben.7.2 KnotengewichteNicht nur die Kanten, sondern auch die Knoten lassen sich <strong>mit</strong> Gewichten versehen.Hier<strong>mit</strong> lässt sich die Situation verschieden leistungsfähiger Prozessoren innerhalb einesClusters beschreiben. Die Gewichte werden <strong>mit</strong> c 1 , . . . , c n bezeichnet. Statt der üblichenGleichverteilung w wird dann eine gewichtete Zielverteilung w berechnet: w i = c icw i <strong>mit</strong>c = ∑ ni=1 c i. Die Ergebnisse in [EMP00] hierzu lassen sich ebenfalls problemlos <strong>auf</strong> den<strong>Dimension</strong>-Exchange-Fall verallgemeinern.C = diag(c 1 , . . . , c n )ˆL ALG = AÂALGT = L ALG C −1 ALG = C −1 AˆM ALG = I − αˆL ALGDas knotengewichtete ALG-FOS berechnet da<strong>mit</strong> die Wertew k = ˆM ALG w k−1 , x k = x k−1 + αÂALGT w k−1 , k = 1, 2, . . . .Weitere Verfahren lassen sich ähnlich konstruieren. Allerdings liegen zur Konvergenzdieser <strong>Dimension</strong>-Exchange-Arten bisher weder theoretische noch experimentelle Ergebnissevor. Die Untersuchung wird hier dadurch erschwert, dass ˆM ALG nicht mehr doppeltstochastisch ist und der Eigenvektor w zum Eigenwert 1 da<strong>mit</strong> auch nicht mehr senkrecht<strong>auf</strong> den übrigen Eigenvektoren steht. Der Geschwindigkeitsvorteil durch viele zusammenfallendeEigenwerte wird durch die Knotengewichtung genauso zunichte gemacht wie beigewichteten Kanten.128


8 Zusammenfassung der ErgebnisseZur Lösung des <strong>Loadbalancing</strong>-Problems wurden zahlreiche Verfahren aus den zwei KlassenDiffusion und <strong>Dimension</strong>-Exchange untersucht und verglichen; dabei wurden sowohlendliche als auch nicht-endliche Varianten betrachtet. Das Hauptaugenmerk lag hierbei<strong>auf</strong> den in dieser Arbeit neu eingeführten endlichen <strong>Dimension</strong>-Exchange-Verfahren.Die wichtigsten neu eingeführten <strong>Loadbalancing</strong>-Verfahren sind das <strong>auf</strong> einer Dreitermrekursionbasierende DE-OPS und das einfachere DE-OPT aus Abschnitt 3.5. Zusätzlichwurden <strong>mit</strong> SDE-OPS und SDE-OPT symmetrische Varianten konstruiert.In Abschnitt 3.6 konnten für fast alle Standardgraphen Formeln für die Eigenwerte derIterationsmatrizen M DE und M SDE bestimmt werden, wenn auch zum Teil nur für denwichtigen Fall des Kantengewichtes α = 1 2. Die Anzahl der von den Verfahren benötigtenKommunikationsschritte und da<strong>mit</strong> die L<strong>auf</strong>zeit der Verfahren hängt direkt ab von derAnzahl verschiedener Eigenwerte. Über die Berechnung der Eigenwerte konnte so gezeigtwerden, dass die L<strong>auf</strong>zeiten der <strong>Dimension</strong>-Exchange-Verfahren in vielen Fällen unterdenen der Diffusionsvarianten liegen. Insbesondere bei sehr regelmäßig strukturiertenGraphen ergeben sich hier oft Verbesserungen um Faktoren zwei oder vier wie bei Zyklenoder Gittern und Tori; aber auch bei unstrukturierten Graphen hat <strong>Dimension</strong>-Exchangekleinere Vorteile. Nicht zu empfehlen ist <strong>Dimension</strong>-Exchange lediglich bei solchen starkstrukturierten Graphen, die sich nur unregelmäßig einfärben lassen, wie Tori ungerader<strong>Dimension</strong>, oder die zu große Knotengrade <strong>auf</strong>weisen wie der komplette Graph oder derStern. In einigen konkreten Fällen kann man die L<strong>auf</strong>zeit <strong>mit</strong> <strong>Dimension</strong>-Exchange sogarminimieren, zum Teil gelingt dies auch <strong>mit</strong> der hier ebenfalls neu vorgestellten Vorwärts-Rückwärts-Implementierung von Diffusionsverfahren (FB-OPX), vergleiche Tabelle 3.4.Während Diffusionsverfahren vereinzelt numerische Probleme <strong>auf</strong>weisen, ist die Konvergenzbei <strong>Dimension</strong>-Exchange praktisch nie gefährdet, sofern man zur Anordnung derEigenwerte des Graphen gewichtete Leja-Punkte verwendet.Als grundsätzlicher Nachteil von <strong>Dimension</strong>-Exchange sind die im Allgemeinen nichtminimalenFlüsse zu nennen, so dass im Vergleich zur Diffusion mehr Lasten über weitereWege verschoben werden. Durch Anwendung der vorgestellten Flussreduktionstechniken(DE-OPTfb, DE-OPTcc) lässt sich dieser Effekt jedoch deutlich reduzieren. Das zyklischeDurchl<strong>auf</strong>en der Farben aus Abschnitt 3.7.2 schafft dies sogar, ohne die L<strong>auf</strong>zeit des Verfahrensnennenswert zu verlängern. Eine genaue Analyse der produzierten Flüsse wurdein Abschnitt 3.8 vorgenommen. Für einen gegebenen Graphen und eine bestimmte VerfahrensklasseALG (Diffusion, symmetrisches / unsymmetrisches <strong>Dimension</strong>-Exchangeoder eine der Varianten zur Flussreduktion) lässt sich die Höhe des Flusses im WorstCase direkt berechnen. Gemäß Satz 3.36 liegt die l 2 -Norm des Flusses im schlimms-129


8 Zusammenfassung der Ergebnisse∥ten Fall genau um den Faktor ∥A ALGT L ALG+ A∥ über dem Minimum. Diese Normen2konnten für alle wichtigen Graphen unabhängig von deren Größe und den wichtigenFall α = 1 2bestimmt werden, teils wurden die Werte theoretisch berechnet und teilsnumerisch er<strong>mit</strong>telt; <strong>auf</strong>gelistet sind diese in Tabelle 3.3.Speziell angepasst an die Struktur von Produktgraphen wie Gitter und Tori sinddie ADI-Verfahren aus Kapitel 4. Es wurden nicht nur erstmals <strong>Dimension</strong>-Exchange-Verfahren für Produktgraphen konstruiert, sondern auch ein neues Diffusionsverfahren.Durch die Berechnung zusätzlicher Zwischenwerte ließ sich auch aus dem schnellen undziemlich stabilen OPS ein ADI-Algorithmus konstruieren, ohne dass die L<strong>auf</strong>zeiten spürbarüber denen von ADI-OPT liegen. Der Aufwand der DE-ADI-Verfahren ist bei Gitternund Tori gerader <strong>Dimension</strong> (ggf. bis <strong>auf</strong> eine von der Größe des Graphen unabhängigeZahl von zwei oder vier Schritten) optimal (siehe Tabelle 4.3). Das schon für das DE-OPT-Verfahren erfolgreiche zyklische Durchl<strong>auf</strong>en der Farben zur Reduzierung der Flüsselässt sich bei ADI-Verfahren <strong>auf</strong> die Richtungen übertragen (ADC-Verfahren). Durch dieWahl der Gewichtsfunktion der Leja-Sortierung bei (DE-)ADI-OPT und den Exponentenη im Innenprodukt des (DE-)ADI-OPS sind weitere Verringerungen der Flüsse möglich.Für die zweite Phase des <strong>Loadbalancing</strong>s, das Scheduling, wurde ein neues Verfahrenvorgestellt, das <strong>auf</strong> der für <strong>Dimension</strong>-Exchange benötigten Einfärbung des Graphenberuht. Experimente haben gezeigt, dass sich hier<strong>mit</strong> bei höheren Flüssen <strong>mit</strong> vielenoder sehr großen Lasten Zeitvorteile erzielen lassen; allerdings gilt dies nicht in allenSituationen. In praktisch relevanten Fällen unterscheiden sich alle vier getesteten Verfahrenkaum. Die Ergebnisse haben jedoch auch gezeigt, dass das Scheduling bei sehrvielen oder sehr großen Lasten wesentlich länger dauern kann als das <strong>Loadbalancing</strong>-Verfahren davor; Versuche, den gesamten Prozess weiter zu beschleunigen, müssen alsohier ansetzen.130


Literaturverzeichnis[ALO02]Götz Alefeld, Ingrid Lenhardt und Holger Obermaier. Parallele numerischeVerfahren. Springer, Berlin, 2002.[Arj82] Eshrat Arjomandi. An Efficient Algorithm for Colouring the Edges of aGraph with ∆ + 1 Colours. INFOR, 20(2):82–101, Mai 1982.[CDS95][Cro97][CW85][Cyb89][Dav79]Dragoš M. Cvetković, Michael Doob und Horst Sachs. Spectra of Graphs:Theory and Applications. Johann Ambrosius Barth Verlag, Heidelberg, Leipzig,3. Auflage, 1995.Thomas W. Crockett. An introduction to parallel rendering. Parallel Computing,23:819–843, 1997.Jane K. Cullum und Ralph A. Willoughby. Lanczos Algorithms for LargeSymmetric Eigenvalue Computations Vol. I Theory. Progress in ScientificComputing Vol. 3. Birkhäuser, Boston, Basel, Stuttgart, 1985.George Cybenko. Dynamic Load Balancing for Distributed Memory Multiprocessors.Journal of Parallel and Distributed Computing, 7:279–301, 1989.Philip J. Davis. Circulant Matrices. Pure and Applied Mathematics. JohnWiley & Sons, New York, Chichester, Brisbane, Toronto, 1979.[DDNR96] Ralf Diekmann, Uwe Dralle, Friedhelm Neugebauer und Thomas Römke.PadFEM: A Portable Parallel FEM-Tool. In HPCN Europe 96, Brüssel,April 1996.[DFM98][DFM99][DMP99]Ralf Diekmann, Andreas Frommer und Burkhard Monien. Nearest NeighborLoad Balancing on Graphs. In G. Bilardi, G. Italiano, A. Piertracaprina undG. Pucci, Hrsg., 6th European Symposium on Algorithms (ESA ’98), LectureNotes in Computer Science, No. 1461, Seiten 429–440. Springer-Verlag, 1998.Ralf Diekmann, Andreas Frommer und Burkhard Monien. Efficient schemesfor nearest neighbor load balancing. Parallel Computing, 25:789–812, 1999.Ralf Diekmann, Burkhard Monien und Robert Preis. Load Balancing Strategiesfor Distributed Memory Machines. In B.H.V. Topping, Hrsg., Paralleland Distributed Processing for Computational Mechanics: Systems and Tools,Seiten 124–157. Saxe-Coburg Publications, 1999.131


Literaturverzeichnis[EFMP99] Robert Elsässer, Andreas Frommer, Burkhard Monien und Robert Preis.Optimal and Alternating-Direction <strong>Loadbalancing</strong> Schemes. In P. Amestoy,P. Berger, M. Daydé, I. Duff, V. Frayssé, L. Giraud und D. Ruiz, Hrsg.,Euro-Par’99 Parallel Processing, Lecture Notes in Computer Science, No.1685, Seiten 280–290. Springer-Verlag, 1999.[Els02]Robert Elsässer. Spectral Methods for Efficient Load Balancing Strategies.Dissertation, Universität Paderborn, Fachbereich Mathematik / Informatik,Februar 2002.[EMP00] Robert Elsässer, Burkhard Monien und Robert Preis. Diffusive Load BalancingSchemes on Heterogeneous Networks. In 12th ACM Symposium onParallel Algorithms and Architectures (SPAA) 2000, Seiten 30–38, 2000.[Fel97][FM98]Rainer Feldmann. Computer Chess: Algorithms and Heuristics for a DeepLook into the Future. In F. Plasil und K. G. Jeffrey, Hrsg., SOFSEM’97:Theory and Practice of Informatics, Lecture Notes in Computer Science, No.1338, Seiten 1–18. Springer-Verlag, 1997.Rainer Feldmann und Burkhard Monien. Selective Game Tree Search on aCray T3E. Technical report, University of Paderborn, November 1998.[FW78] Stanley Fiorini und Robin J. Wilson. Edge-Colorings of Graphs. In Lowell W.Beineke und Robin J. Wilson, Hrsg., Selected Topics in Graph Theory, Kapitel5, Seiten 103–126. Academic Press, London, 1978.[GL96][HB95][HB99][HJ85][HJ91]Gene H. Golub und Charles F. Van Loan. Matrix Computations. The JohnHopkins University Press, Baltimore, London, 3. Auflage, 1996.Y. F. Hu und R. J. Blake. An Optimal Dynamic Load Balancing Algorithm.Daresbury Laboratory Report DLP 95010, Daresbury Laboratory, 1995.Y. F. Hu und R. J. Blake. An improved diffusion algorithm for dynamic loadbalancing. Parallel Computing, 25:417–444, 1999.Roger A. Horn und Charles R. Johnson. Matrix Analysis. Cambridge UniversityPress, 1985.Roger A. Horn und Charles R. Johnson. Topics in Matrix Analysis. CambridgeUniversity Press, 1991.[HLM + 90] Seyed H. Hosseini, Bruce Litow, Mohammad I. Malkawi, Joseph McPhersonund K. Vairavan. Analysis of a Graph Coloring Based Distributed LoadBalancing Algorithm. Journal of Parallel and Distributed Computing, 10:160–166, 1990.[Iji65]Yuji Ijiri. On the Generalized Inverse of an Incidence Matrix. Journal of theSociety for Industrial and Applied Mathematics, 13(3):827–836, September1965.132


Literaturverzeichnis[LM92] Reinhard Lüling und Burkhard Monien. Load Balancing for DistributedBranch & Bound Algorithms. In Proceedings of the 6th International ProcessingSymposium (IPPS ’92), Seiten 543–549, 1992.[MGS96][Pad]S. Muthukrishnan, Bhaskar Ghosh und Martin H. Schultz. First and secondorder diffusive methods for rapid, coarse, distributed load balancing. In SPAA’96. Proceedings of the 8th annual ACM symposium on Parallel algorithmsand architectures, Seiten 72–81, 1996.PadFEM: Parallel Adaptive FEM. www.upb.de/pc2/projects/padfem.[Rei91] Lothar Reichel. The Application of Leja Points to Richardson Iterationand Polynomial Preconditioning. Linear Algebra and its Applications, 154–156:389–414, 1991.[SR99][vdSD02][XL92][XL95]Olaf Schmidt und Ludger Reeker. New Dynamic Load Balancing Strategyfor Efficient Data-Parallel Radiosity Calculations. In H. R. Arabnia, Hrsg.,Proceedings of the 1999 International Conference on Parallel and DistributedProcessing Techniques and Applications (PDPTA’99), Seiten 532–538.CSREA Press, 1999.Aad J. van der Steen und Jack J. Dongarra. Overview of Recent Supercomputers,2002. www.top500.org/ORSC/2002.Chengzhong Xu und Francis C. M. Lau. Analysis of the Generalized <strong>Dimension</strong>Exchange Method for Dynamic Load Balancing. Journal of Parallel andDistributed Computing, 16(4):385–393, Dezember 1992.Chengzhong Xu und Francis C. M. Lau. The Generalized <strong>Dimension</strong> ExchangeMethod for Load Balancing in k-ary n-cubes and Variants. Journalof Parallel and Distributed Computing, 24(1):72–85, Januar 1995.133

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!