Faktorisierung d¨unn besetzter,
positiv definiter Matrizen
J¨
urgen Schulze
Faktorisierung d¨unn besetzter,
positiv definiter Matrizen
Dissertationsschrift
zur Erlangung des akademischen Grades
doctor rerum naturalium
(Dr. rer. nat.)
vorgelegt im Fachbereich Mathematik/Informatik
der Universit¨
at Paderborn
von
J¨
urgen Schulze
Vorwort
Viele Freunde und Kollegen haben zum Gelingen dieser Arbeit beigetragen. An dieser Stelle
m¨ochte ich mich bei ihnen allen f¨ur ihre Hilfe und Unterst¨utzung bedanken.
Mein besonderer Dank gilt Prof. Dr. Burkhard Monien f¨ur die Betreuung dieser Arbeit. Die
T¨atigkeit an seinem Lehrstuhl erm¨oglichte mir die Teilnahme an internationalen Konferenzen
und die Beteiligung am aktuellen Forschungsgeschehen. Das hervorragende Arbeitsklima sowie
Diskussionen mit Prof. Dr. Burkhard Monien trieben meine Arbeit voran und inspirierten mich.
Bei meinem ehemaligen Kollegen Dr. Ralf Diekmann bedanke ich mich f¨ur die vorbildliche
Zusammenarbeit, konstruktive Kritik und f¨ur so manchen verschafften Durchblick. Vielen Dank
auch an Cleve Ashcraft und Patrick Amestoy, die mit großem Eifer meine zahllosen E-Mails
beantwortet haben. Insbesondere die enge Zusammenarbeit mit Cleve war sehr fruchtbar und hat
mir viel Freude bereitet.
Des weiteren bedanke ich mich bei meinem lieben Kollegen Torsten Fahle f¨ur aufmerksames
Korrekturlesen und das eine oder andere Dutzend hilfreiche Hinweise. Weiterer Dank gilt Stefan
Blazy, Axel Keller, Robert Preis, Dr. Markus R¨ottger, Ulf-Peter Schroeder und Stefan Tsch¨oke
f¨ur Anregungen und Hilfestellungen.
Schließlich m¨ochte ich mich bei meinen Eltern bedanken, die mich immer unterst¨utzten und
die meine Ausbildung erm¨oglichten. Herzlichen Dank!
Paderborn, im September 2000 J¨urgen Schulze
iii
Inhaltsverzeichnis
1 Einleitung 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Direkte vs. iterative L¨osungsverfahren . . . . . . . . . . . . . . . . . . . 4
1.1.2 Sequentielle vs. parallele L¨osungsverfahren . . . . . . . . . . . . . . . . 6
1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Grundlagen 9
2.1 Gauß-Elimination und Dreieckszerlegung von Matrizen . . . . . . . . . . . . . . 10
2.2 Graphentheoretische Beschreibung der Cholesky-Zerlegung . . . . . . . . . . . 16
2.3 Klassische Ordering-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Die Profil-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 Die Bottom-up- und die Top-down-Methode . . . . . . . . . . . . . . . 21
3 Ordering-Verfahren f¨ur gitterf¨
ormige Graphen 25
3.1 Literatur¨ubersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Ein verbessertes Nested-Dissection-Verfahren f¨ur quadratische Gitter . . . . . . . 28
3.3 Ein verbessertes Bottom-up-Verfahren f¨ur quadratische Gitter . . . . . . . . . . . 35
4 Ordering-Verfahren f¨ur beliebige Graphen 39
4.1 Literatur¨ubersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.1 Quotientengraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.2 Bottom-up-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.3 Top-down-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.4 Multisection-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2 Ein verbessertes Multisection-Verfahren . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Konstruktion der Knotenseparatoren . . . . . . . . . . . . . . . . . . . . 60
4.2.2 Optimierung der Knotenseparatoren . . . . . . . . . . . . . . . . . . . . 70
v
vi
Inhaltsverzeichnis
4.2.3 Dreistufiges Multisection . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3 Die Ordering-Bibliothek PORD ........................... 80
4.3.1 Die Programme pord und multipord ................... 80
4.3.2 Experimentelle Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . 82
5 Symbolische und numerische Faktorisierung 93
5.1 Der sequentielle Fall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.1.1 Die symbolische Faktorisierung und der Eliminationsbaum . . . . . . . . 95
5.1.2 Vom Eliminationsbaum zum Frontbaum . . . . . . . . . . . . . . . . . . 97
5.1.3 Die numerische Faktorisierung nach der Multifrontal-Methode . . . . . . 99
5.1.4 Experimentelle Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2 Der parallele Fall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2.1 Mapping des Frontbaumes . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.2.2 Die parallele symbolische Faktorisierung . . . . . . . . . . . . . . . . . 112
5.2.3 Die parallele numerische Faktorisierung . . . . . . . . . . . . . . . . . . 116
5.2.4 Experimentelle Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . 122
6 Zusammenfassung und Ausblick 133
Literaturverzeichnis 137
Kapitel 1
Einleitung
Mit dem Aufkommen elektronischer Rechenanlagen haben sich die an die numerische Mathe-
matik gestellten Anforderungen entscheidend ver¨andert. Ganz selbstverst¨andlich verbindet man
heute mit einem numerischen Verfahren auch einen Algorithmus, der ¨uber ein entsprechendes
Programm auf einem Computer ausgef¨uhrt werden kann. Dieser enge Zusammenhang zwischen
der Entwicklung numerischer Methoden und der Umsetzung in effiziente Algorithmen hat im
Laufe der vergangenen Jahre zur Bildung einer neuen Disziplin innerhalb der numerischen Ma-
thematik gef¨uhrt, dem Wissenschaftlichen Rechnen (scientific computing). Ein wichtiges Ziel
des Wissenschaftlichen Rechnens besteht darin, f¨ur einen Computer ”konstruktive Verfahren zu
entwickeln und bereitzustellen, mit denen Aufgaben der angewandten Mathematik aus allen Be-
reichen der Naturwissenschaften und Technik erfolgreich und m¨oglichst effizient bearbeitet und
zahlenm¨aßig zu einer L¨osung gef¨uhrt werden k¨onnen“ (vgl. [143], S. 1094). In der numerischen
Praxis lassen sich viele dieser Aufgaben auf die folgenden drei Standardprobleme der linearen
Algebra zur¨uckf¨uhren:
L¨
osung linearer Gleichungssysteme Gesucht ist die L¨osung eines linearen Gleichungssystems
, wobei
eine nichtsingul¨are
-Matrix darstellt und
einen aus
Eintr¨agen
bestehenden Vektor. Der Vektor
heißt auch rechte Seite. Die (eindeutige) L¨osung des
Gleichungssystems ist ein Vektor
mit
Eintr¨agen. Dieser Vektor heißt L¨
osungsvektor.
L¨
osung linearer Ausgleichsprobleme Gesucht ist ein Vektor
, f¨ur den
das Mini-
mum annimmt. Dabei ist
eine
-Matrix und
ein Vektor mit
Eintr¨agen. Der
L¨osungsvektor
besteht aus
Eintr¨agen.
bezeichnet die euklidische Norm. Im Falle
heißt
¨
uberbestimmtes Gleichungssystem. In der Regel existiert f¨ur ein
solches Gleichungssystem keine L¨osung.
L¨
osung des Eigenwertproblems Zu einer gegebenen
-Matrix
ist ein aus
Eintr¨agen
bestehender Vektor
und ein Skalar
gesucht, so daß
!
gilt. Der Vektor
heißt Eigenvektor zum Eigenwert
.
1
2
Kapitel 1. Einleitung
DieL¨osunglinearerGleichungssystemebildetdenKern vieler numerischer Anwendungen. Große
Gleichungssysteme treten z.B. in den Ingenieurswissenschaften bei der Simulation von Fl¨ussig-
keits- oder Gasstr¨omungen oder bei der Simulation des Verhaltens von Materialien wie Stahl,
Beton, Holz usw. unter Belastung auf. Ganz grob unterscheidet man zwischen direkten und ite-
rativen L¨osungsverfahren (vgl. Abschnitt 1.1.1). Auf lineare Ausgleichsprobleme st¨oßt man,
wenn durch wissenschaftliche Experimente der Wert von Konstanten in empirischen Formeln
bestimmt werden soll. Eigenwertprobleme findet man z.B. in der Physik bei der Analyse von
Schwingungen. Eigenwerte spielen auch bei der Untersuchung des Konvergenzverhaltens itera-
tiver L¨osungsverfahren eine große Rolle.
In dieser Arbeit betrachten wir das erste Standardproblem der linearen Algebra. Dabei kon-
zentrieren wir uns auf die Untersuchung und Entwicklung von sequentiellen und parallelen Al-
gorithmen zur schnellen Faktorisierung großer, d¨unn besetzter, positiv definiter Matrizen mit
reellen Koeffizienten. Eine symmetrische
"
-Matrix
heißt positiv definit, falls f¨ur alle
-
elementigen Vektoren
#
gilt, daß
%$&
echt gr¨oßer als null ist. Positiv definite Matrizen
besitzen eine Reihe interessanter Eigenschaften (siehe z.B. Stoer [137]). Insbesondere existiert
f¨ur jede positiv definite Matrix
genau eine untere Dreiecksmatrix
'
mit positiven Diagonal-
elementen, so daß gilt
'('
$
. Die Matrix
'
heißt Faktormatrix. Ihre Berechnung stellt den
aufwendigsten Schritt bei der direkten L¨osung eines Gleichungssystems dar. Ist
'
bekannt, so
erh¨alt man
durch L¨osen der gestaffelten Gleichungssysteme
')
*
und
'
$+
)
.
Die Faktormatrix
'
kann mit Hilfe des Cholesky-Verfahrens berechnet werden. Wie alle di-
rekten Verfahren zur L¨osung eines linearen Gleichungssystems basiert auch die Methode von
Cholesky auf einer sukzessiven Elimination der Unbekannten. Ist
d¨unn besetzt, so entstehen
im Laufe des Eliminationsprozesses oftmals viele zus¨atzliche von null verschiedene Elemente.
Diese Elemente heißen Fill-in oder Auff¨
ullung von
. Ein wesentlicher Nachteil direkter Verfah-
ren besteht nun gerade darin, daß durch die Auff¨ullung von
der zur L¨osung des Gleichungs-
systems ben¨otigte Rechen- und Speicheraufwand stark ansteigen kann. Durch eine ”geschickte“
Pivotwahl ist es jedoch m¨oglich, diesen Mehraufwand signifikant zu reduzieren.
Im Falle einer indefiniten Koeffizientenmatrix muß die Pivotwahl dar¨uber hinaus die nume-
rische Stabilit¨at und die Durchf¨uhrbarkeit des Verfahrens sicherstellen. In der Regel lassen sich
nicht alle Ziele gleichermaßen erreichen, so daß die Aufrechterhaltung der numerischen Stabilit¨at
durch einen h¨oheren Rechenaufwand erkauft wird. Ist die Matrix jedoch positiv definit, so ist das
Verfahren ohne Beeintr¨achtigung der numerischen Stabilit¨at f¨ur jede beliebige Pivotreihenfolge
durchf¨uhrbar. Man w¨ahlt deshalb die Reihenfolge so, daß die Auff¨ullung von
m¨oglichst ge-
ring ist. Die Entwicklung verbesserter Algorithmen zur Bestimmung einer m¨oglichst optimalen
Pivotreihenfolge bildet einen Schwerpunkt dieser Arbeit.
Gelingt es die Auff¨ullung von
in Grenzen zu halten, so stellen direkte L¨osungsverfahren
eine interessante Alternative zu den in der numerischen Praxis oftmals bevorzugten iterativen
Verfahren dar. Ob nun ein direktes Verfahren einem iterativen vorgezogen werden sollte, h¨angt
1.1. Motivation
3
von vielen Faktoren ab und kann nicht eindeutig beantwortet werden. In Abschnitt 1.1 gehen wir
auf diese viel diskutierte Frage n¨aher ein und motivieren, warum wir uns auf L¨osungsverfahren
f¨ur positiv definite Gleichungssysteme konzentrieren. Daran anschließend wird in Abschnitt 1.2
der Aufbau dieser Arbeit beschrieben.
1.1 Motivation
Im Bereich des Wissenschaftlichen Rechnens spielt die Simulation komplexer physikalischer
Systeme eine zentrale Rolle. Ein solches System ist beispielsweise durch einen Tragfl¨achenfl¨ugel
gegeben, der in einem Windkanal umstr¨omt wird. Ziel der Simulation ist die Berechnung der
dabei entstehenden Wirbel und Auftriebskr¨afte sowie die Bestimmung der Druckverteilung und
Str¨omungsgeschwindigkeit in der N¨ahe der Fl¨ugeloberfl¨ache.
Oftmals wird das physikalische System durch partielle Differentialgleichungen beschrieben,
wobei zus¨atzliche Nebenbedingungen den Zustand des Systems am Rand und zu Beginn der Si-
mulation festlegen. Aufgabe ist dann die Bestimmung einer Funktion des Ortes und der Zeit,
die alle Differentialgleichungen und alle Nebenbedingungen erf¨ullt. Ist diese Funktion bekannt,
so k¨onnen die gesuchten physikalischen Gr¨oßen f¨ur jeden beliebigen Ort des Grundgebiets be-
rechnet werden. In der Regel ist es jedoch nicht m¨oglich, eine solche geschlossene Funktion
zu finden. Das kontinuierliche physikalische System muß dann in ein diskretes mathematisches
Modell transformiert werden. Dies kann beispielsweise mit Hilfe eines Differenzenverfahrens
geschehen.
Differenzenverfahren beruhen auf der Idee, die in den Differentialgleichungen auftretenden
Ableitungen durch Differenzenquotienten zu approximieren. Hierf¨ur ist ein Gitter notwendig,
das vor Beginn der eigentlichen Simulation auf das Grundgebiet des physikalischen Systems
projiziert wird. Die gesuchten physikalischen Gr¨oßen k¨onnen dann f¨ur jeden Ort des Grundge-
biets, der mit einem Gitterknoten zusammenf¨allt, n¨aherungsweise berechnet werden. In der Re-
gel wird der Wert einer physikalischen Gr¨oße nur von den Werten an benachbarten Gitterknoten
unmittelbar beeinflußt, so daß die Koeffizientenmatrix
sehr d¨unn besetzt ist. Des weiteren ent-
halten viele partielle Differentialgleichungen einen Operator, der zu einem Gleichungssystem
mit positiv definiter Koeffizientenmatrix f¨uhrt. Die positive Definitheit erm¨oglicht den Einsatz
effizienter, iterativer Gleichungsl¨oser. Aber auch direkte L¨osungsverfahren profitieren von dieser
Eigenschaft, da keine Pivotsuche zur Aufrechterhaltung der numerischen Stabilit¨at durchgef¨uhrt
werden muß.
Im folgenden werden wir die Vor- und Nachteile direkter und iterativer L¨osungsverfahren
diskutieren. Insbesondere stellen wir die vier grundlegenden Schritte zur direkten L¨osung eines
positiv definiten Gleichungssystems vor. Daran anschließend werden wir den Einsatz paralleler
Rechner zur L¨osung d¨unn besetzter Gleichungssysteme motivieren.
4
Kapitel 1. Einleitung
1.1.1 Direkte vs. iterative L¨
osungsverfahren
Iterative Verfahren erzeugen ausgehend von einem Startvektor
-,
eine Folge
/.102
0434343
von Vek-
toren, die gegen die gesuchte L¨osung
eines Gleichungssystems konvergiert. In vielen F¨allen
ist der Rechenaufwand pro Iterationsschritt vergleichbar mit dem Aufwand zur Multiplikation
von
mit einem Vektor. Klassische Iterationsverfahren wie z.B. das Jacobi-Verfahren (Ge-
samtschrittverfahren)oder das Gauß-Seidel-Verfahren(Einzelschrittverfahren)benutzen die Fix-
punktiteration
-576&.98-5;:<
, um ausgehend von
-,
den L¨osungsvektor
zu approximieren.
Beide Verfahren unterscheiden sich lediglich in der aus
abgeleiteten Iterationsmatrix
8
.
F¨ur Gleichungssysteme mit positiv definiter Koeffizientenmatrix existieren weitaus effizi-
entere Iterationsverfahren. An dieser Stelle sei lediglich das cg-Verfahren (conjugate gradient
method) erw¨ahnt. Es beruht darauf, daß die L¨osung
des Gleichungssystems
+=
das Funk-
tional
>@?BADC
.
A
$
A
:E $
A
minimiert. Im Gegensatz zu den klassischen Iterationsverfahren,
die zur exakten Berechnung des L¨osungsvektors
unendlich viele arithmetische Operationen
durchf¨uhren m¨ussen, stoppt das cg-Verfahren bei rundungsfehlerfreier Rechnung nach h¨ochstens
Schritten mit der exakten L¨osung. In der numerischen Praxis kann jedoch von einer exakten
Rechnung nicht ausgegangen werden, so daß eventuell zus¨atzliche Iterationen notwendig sind.
Die Geschwindigkeit, mit der die Fixpunktiteration gegen den L¨osungsvektor
konvergiert,
wird durch den betragsm¨aßig gr¨oßten Eigenwert
FG %HJILKM?
8
CNF
der Iterationsmatrix
8
bestimmt.
Dieser Wert heißt Spektralradius und wird mit
OP?
8
C
bezeichnet. Gilt
OP?
8
CRQTS
, so erzeugt die
Fixpunktiteration f¨ur jeden beliebigen Startvektor
-,
eine zum L¨osungsvektor
konvergente
Folge (vgl. Schwarz [134] oder Stoer und Bulirsch [138]). Die entscheidende Gr¨oße f¨ur die Kon-
vergenzg¨ute des cg-Verfahrens ist die Kondition der Matrix
. Diese wird mit
UJ?
C
bezeichnet
und entspricht dem Quotienten
FV WHJILKM?
CNFVXPFG %HZYV[M?
CNF
. Der enge Zusammenhang zwischen der
Konvergenzgeschwindigkeit und den numerischen Eigenschaften der Matrix
bzw.
8
ist cha-
rakteristisch f¨ur alle Iterationsverfahren. Im Gegensatz dazu h¨angt die Effizienz eines direkten
L¨osungsverfahrens von der Nichtnullstruktur der Matrix
ab. Es sind also v¨ollig unterschiedli-
che Eigenschaften der Koeffizientenmatrix, die die Effizienz eines iterativen und die eines direk-
ten L¨osungsverfahrens beeinflussen.
Der wesentliche Vorteil eines iterativen L¨osungsverfahrens liegt in dem geringen Speicher-
platzbedarf. Dar¨uber hinaus ist es oftmals m¨oglich, durch spezielle Techniken die Konvergenz-
geschwindigkeit signifikant zu erh¨ohen. Beispielsweise kann in vielen F¨allen die Kondition der
Matrix
bzw. der Spektralradius der Iterationsmatrix
8
durch Multiplikation mit einer geeig-
net gew¨ahlten Matrix verbessert werden. In diesem Fall spricht man von einer Vorkonditionie-
rung. Ferner kann die Korrektur der Vektorkomponenten beim ¨
Ubergang von
-5
nach
-5\6&.
durch
Einf¨uhrung eines Relaxationsparameters
]
verst¨arkt werden. Im Falle
]^Q
spricht man von
Unter- und im Falle
]_
von ¨
Uberrelaxation. Es ist jedoch zu bedenken, daß die optimale
Wahl eines Relaxationsparameters bzw. einer Vorkonditionierungsmatrix selbst wieder von den
numerischen Eigenschaften des zu l¨osenden Gleichungssystems abh¨angt. Zudem tauchen in der
1.1. Motivation
5
numerischen Praxis immer wieder Matrizen auf, deren schlechte Kondition sich ¨uberhaupt nicht
oder nur unwesentlich verbessern l¨aßt.
Der Vorteil eines direkten Verfahrens besteht nun gerade darin, daß seine Effizienz nicht
von den numerischen Eigenschaften der Matrix
abh¨angt. Gelingt es, den w¨ahrend der Fak-
torisierung entstehenden Fill-in zu begrenzen, so erreicht man nicht nur eine Beschleunigung
des Verfahrens, sondern auch eine signifikante Reduzierung des Speicherbedarfs. Ist
positiv
definit, so kann die Pivotreihenfolge und die Nichtnullstruktur von
'
vor Beginn der eigentli-
chen Faktorisierung berechnet werden. Die Faktorisierung von
wird dann nicht mehr durch
Zeilenvertauschungen oder Speicherverwaltungsoperationen unterbrochen. Dies f¨uhrt zu einer
h¨oheren Cache-Effizienz und damit zu einer weiteren Beschleunigung des direkten Verfahrens.
Zur L¨osung eines positiv definiten Gleichungssystems sind dann die folgenden Schritte notwen-
dig (vgl. George und Liu [53]):
Ordering Berechne eine Pivotreihenfolge, so daß der Grad der Auff¨ullung von
m¨oglichst
gering ist. Vertausche die Zeilen und Spalten von
entsprechend der berechneten Reihen-
folge. Bestimme dazu eine geeignete Permutationsmatrix
`
und bilde
`
`
$
.
Symbolische Faktorisierung Berechne die Nichtnullstruktur der Faktormatrix
'
von
`
`
$
'('
$
und allokiere Speicherplatz f¨ur ihre Nichtnullelemente.
Numerische Faktorisierung Berechne die Nichtnullelemente von
'
.
Bestimmung des L¨
osungsvektors L¨ose die gestaffelten Gleichungssysteme
'(a
`
,
'
$&b
a
und
c
`
$
b
.
Sind mehrere Gleichungssysteme mit identischer Koeffizientenmatrix aber verschiedenen rech-
ten Seiten zu l¨osen, so m¨ussen die ersten drei Schritte nur einmal durchgef¨uhrt werden. Demge-
gen¨uber ist bei einem iterativen Verfahren eine Wiederholung des gesamten L¨osungsprozesses
erforderlich. Der modulare Aufbau des direkten L¨osungsverfahrens hat einen weiteren Vorteil:
Im Bereich der Strukturmechanik besitzen viele Differentialgleichungen einen Operator, der in-
nerhalb des Differenzenverfahrens zu Koeffizientenmatrizen f¨uhrt, die sich lediglich in ihren
numerischen Eintr¨agen, nicht jedoch in ihrer Besetzungsstruktur unterscheiden. In diesem Fall
muß nur einmal – n¨amlich zu Beginn der Simulation – ein Ordering berechnet werden.
Zusammenfassend l¨aßt sich feststellen, daß sowohl iterative als auch direkte L¨osungsverfah-
ren ihre Vorteile besitzen. Der in der Literatur oftmals beklagte hohe Speicherbedarf direkter
Verfahren kann durch moderne Ordering-Strategien zum Teil erheblich reduziert werden. Ge-
lingt dar¨uber hinaus eine auf die speziellen Eigenschaften der Rechnerarchitektur zugeschnit-
tene Implementierung des Faktorisierungsalgorithmus, so erh¨alt man ein effizientes, universell
einsetzbares L¨osungsverfahren.
6
Kapitel 1. Einleitung
1.1.2 Sequentielle vs. parallele L¨
osungsverfahren
In den vergangenen Jahren hat sich die Leistung der klassischen Einprozessorrechner im Durch-
schnitt alle 18 Monate verdoppelt (Gesetz von Moore). Die steigende Rechnerkapazit¨at erm¨og-
licht es, immer komplexere Aufgaben in Angriff zu nehmen. Dies gilt insbesondere f¨ur den Be-
reich des Wissenschaftlichen Rechnens wo heute Simulationen hochkomplexer physikalischer
Systeme durchgef¨uhrt werden. Als Beispiel seien an dieser Stelle virtuelle Crash-Tests genannt,
durch die sich erhebliche Einsparungspotentiale bei der Entwicklung eines neuen Automobils
ergeben. Damit die Simulationen die Realit¨at m¨oglichst exakt widerspiegeln, m¨ussen auch klein-
ste Details eines physikalischen Systems erfaßt werden. Dazu ist eine Diskretisierung mit einem
sehr feinen Gitter erforderlich. Trotz Anwendung adaptiver Diskretisierungsmethoden entsteht
so ein Bedarf an immer mehr Rechenleistung.
Die potentiell unbeschr¨ankte Nachfrage nach Rechenkapazit¨at kann von den klassischen Ein-
prozessorrechnern nicht erf¨ullt werden. Daher hat der Einsatz paralleler Rechnersysteme in den
letzten Jahren immer mehr an Bedeutung gewonnen. Verst¨arkt wurde diese Entwicklung durch
den stetigen Preisverfall bei Halbleitern und Speicherelementen. Grunds¨atzlich k¨onnen moderne
Parallelrechner in drei Klassen eingeteilt werden: SMP-Systeme, verteilte Systeme und Vek-
torrechner. Ein SMP-System (symmetric multi-processor system) besteht aus mehreren Prozes-
soren, die ¨uber einen Bus oder Kreuzschienenschalter (crossbar switch) auf einen gemeinsa-
men Speicher zugreifen. Viele urspr¨unglich f¨ur Einprozessorrechner entwickelte Anwendungen
lassen sich relativ einfach auf ein SMP-System portieren. Der Nachteil eines solchen Systems
besteht jedoch darin, daß das Konzept des gemeinsamen Speichers physikalisch nicht belie-
big skalierbar ist. In großen Parallelrechnern besitzt daher jeder Prozessor seinen eigenen lo-
kalen Speicher. Der Datenaustausch in einem solchen verteilten System (distributed memory
system) findet ¨uber ein Verbindungsnetzwerk statt. Entscheidend f¨ur die Kommunikationseffizi-
enz ist dabei weniger die Anzahl der Kanten ¨uber die eine Nachricht gesendet wird (Dilation),
als vielmehr die Anzahl der Nachrichten, die zur selben Zeit ¨uber eine gemeinsame Kante ge-
routet werden (Kongestion). In einem Vektorrechner spielt sich die Parallelit¨at auf einer sehr
viel niedrigeren Stufe ab. Diese Rechner besitzen spezielle Prozessoren, die dem Pipelining-
Prinzip folgend verschiedene Phasen einer Operation mit verschiedenen Operanden gleichzeitig
ausf¨uhren k¨onnen. Heute findet man kaum noch reine Vektorrechner. Vielmehr werden verteilte
oder SMP-Systeme mit Vektorprozessoren ausgestattet, um so eine weitere Leistungssteigerung
zu erreichen. Dar¨uber hinaus existieren Hybrid-Architekturen, bei denen mehrere kleinere SMP-
Systeme ¨uber ein Netzwerk miteinander verbunden sind.
Die wachsende Bedeutung des parallelen Rechnens hat die Entwicklung skalierbarer Algo-
rithmen zur L¨osung d¨unn besetzter Gleichungssysteme stark forciert. In dieser Arbeit stellen wir
einen parallelen Faktorisierungsalgorithmus vor, der auf dem Prinzip des Nachrichtenaustau-
sches (message passing) beruht. Durch die Definition standardisierter Kommunikationsschnitt-
stellen wie z.B. MPI (message passing interface) ist es prinzipiell m¨oglich, diesen Algorithmus
1.2. Aufbau der Arbeit
7
auf verschiedenen Parallelrechner auszuf¨uhren. Dabei ist jedoch zu beachten, daß die von einem
parallelen System zur Verf¨ugung gestellte Rechenleistung nur dann voll genutzt werden kann,
wenn ein Algorithmus bis ins Detail der jeweiligen Architektur angepaßt ist. Bei der Entwick-
lung des hier vorgestellten Faktorisierungsalgorithmus wurde ein verteiltes System zugrunde
gelegt, wobei die Minimierung des Kommunikations-Overheads im Vordergrund stand.
Obwohl die Faktorisierung einer d¨unn besetzten Matrix ein gr¨oßeres Parallelisierungspoten-
tial besitzt als die einer voll besetzten (vgl. Kapitel 5), ist die Entwicklung eines skalierbaren
Faktorisierungsalgorithmus ungleich schwieriger. Bereits im sequentiellen Fall sind komplexere
Datenstrukturen und Algorithmen erforderlich, um die d¨unne Struktur der Koeffizientenmatrix zu
erhalten und auszunutzen. Dar¨uber hinaus muß die Faktorisierung so organisiert werden, daß ein
effektiver Einsatz der von modernen Computern bereitgestellten Caching-Mechanismen m¨oglich
ist. In einem verteilten System stellt sich dar¨uber hinaus die Frage, welche Berechnungsschritte
von welchen Prozessoren ausgef¨uhrt werden sollen. Die Zuordnung der Berechnungsschritte auf
die Prozessoren und die damit verbundene Verteilung der Nichtnullelemente von
bzw.
'
hat
einen entscheidenden Einfluß auf die Skalierbarkeit des Faktorisierungsalgorithmus.
Zusammenfassend l¨aßt sich feststellen, daß bereits die Entwicklung eines effizienten sequen-
tiellen Algorithmus zur L¨osung d¨unn besetzter Gleichungssysteme hohe Anforderungen stellt.
Da in der numerischen Praxis immer gr¨oßere Gleichungssysteme gel¨ost werden m¨ussen, ist eine
Parallelisierung der komplexen sequentiellen Algorithmen unumg¨anglich. Die L¨osung der hier-
bei zus¨atzlich entstehenden Optimierungsaufgaben stellt eine weitere Herausforderung dar.
1.2 Aufbau der Arbeit
In dieser Arbeit stellen wir Algorithmen zur Berechnung einer Pivotreihenfolge und Algorithmen
zur Durchf¨uhrung der symbolischen und numerischen Faktorisierung vor. Wir befassen uns also
mit den ersten drei Schritten zur L¨osung eines positiv definiten Gleichungssystems. Aufgrund
ihrer hohen praktischen Bedeutung stehen Algorithmen zur Berechnung einer Pivotreihenfolge
im Mittelpunkt dieser Arbeit.
In Kapitel 2 stellen wir zun¨achst zwei elementare Verfahren zur Berechnung der Faktorma-
trix
'
vor. Beide Verfahren sind numerisch ¨aquivalent, d.h. sie f¨uhren die gleiche Anzahl von
Multiplikations- und Additionsoperationen aus. Die Verfahren unterscheiden sich lediglich in der
Reihenfolge der Operationen.Anschließend zeigen wir, wie derbei der Faktorisierung entstehen-
de Fill-in graphentheoretisch beschrieben werden kann. Die grundlegende Idee besteht darin, die
Auff¨ullung von
durch eine Folge von Eliminationsgraphen zu modelieren. Nahezu alle aus der
Literatur bekannten Methoden zur Minimierung des Fill-in basieren auf dieser graphentheoreti-
schen Beschreibung. Schließlich stellen wir die drei grundlegenden Ordering-Methoden vor. Es
handelt sich um die Profil-, die Bottom-up- und die Top-down-Methode.
In Kapitel 3 untersuchen wir Ordering-Verfahren f¨ur Matrizen, deren Nichtnullstruktur einen
8
Kapitel 1. Einleitung
gitterf¨ormigen Graphen induziert. Diese Matrizen spielen in der numerischen Praxis eine große
Rolle. Wir pr¨asentieren eine leichte Modifikation des bekannten Nested-Dissection-Verfahrens
von George [48]. Durch diese Modifikation kann der bei der Faktorisierung eines
"d
-Gitters
entstehende Fill-in um fast die H¨alfte reduziert werden. Gleiches gilt f¨ur die Anzahl der Mul-
tiplikations- und Additionsoperationen, die zur Berechnung der Faktormatrix ben¨otigt werden.
Anhand einer genauen Analyse des modifizierten Nested-Dissection-Verfahrens zeigen wir, daß
die G¨ute eines Orderings ganz entscheidend von der ”Form“ der Gebiete abh¨angt, die im Laufe
des Eliminationsprozesses entstehen.
In Kapitel 4 pr¨asentieren wir ein neues Ordering-Verfahren f¨ur beliebige Graphen. Charakte-
ristisch f¨ur das Verfahren ist eine enge Koppelung zwischen Bottom-up- und Top-down-Metho-
den. Dabei werden die im Rahmen eines Top-down-Verfahrens konstruierten Knotenseparatoren
als R¨ander der von einem unvollst¨andigen Bottom-up-Ordering gebildeten Gebiete interpretiert.
Die Motivation besteht darin, die Schw¨achen der einen Methode durch die St¨arken der anderen
auszur¨aumen. Dies geschieht in zwei Schritten: Zum einen benutzen wir Bottom-up-Techniken
zur Konstruktion der Knotenseparatoren. Dazu entwickeln wir ein neuartiges Multilevel-Ver-
fahren, bei dem spezielle Knotenauswahlstrategien zur Schrumpfung eines Graphen eingesetzt
werden. Zum anderen benutzen wir die Knotenseparatoren als ein ”Ger¨ust“ zur Generierung und
Evaluierung einesweiten Spektrums von Bottom-up-Orderings. Aus diesem Spektrum kann dann
das beste Ordering ausgew¨ahlt werden. Im Vergleich zu einem reinen Bottom-up-Algorithmus
reduziert sich so die Anzahl der zur Berechnung von
'
ben¨otigten Multiplikations- und Additi-
onsoperationen um durchschnittlich 42%. Da der Aufwand zur Berechnung von
'
den Aufwand
zur L¨osung eines Gleichungssystems dominiert, f¨uhrt dies zu einer signifikanten Beschleunigung
des direkten L¨osungsverfahrens.
In Kapitel 5 beschreiben wir sequentielle und parallele Algorithmen zur Durchf¨uhrung der
symbolischen und numerischen Faktorisierung. Im sequentiellen Fall gehen wir insbesondere auf
Techniken zur Steigerung der Cache- und Registereffizienz ein. Der von uns implementierte Fak-
torisierungsalgorithmus basiert auf der von Duff und Reid [35, 36] entwickelten Multifrontal-
Methode. Um die von modernen Hochleistungsrechner bereitgestellte Floating-Point-Leistung
voll nutzen zu k¨onnen, benutzt der Faktorisierungsalgorithmus einen auf BLAS3 Routinen ba-
sierenden numerischen Kern. Zur Parallelisierung unseres Faktorisierungsalgorithmus verwen-
den wir das von Gupta et al. [63, 66] vorgeschlagene zweidimensionale Mapping-Schema. Im
parallelen Fall steht die Minimierung des Kommunikations-Overheads im Vordergrund. Anhand
zweier Beispiele zeigen wir, daß die mit Hilfe des neuen Verfahrens berechneten Orderings auch
f¨ur die parallele Faktorisierung geeignet sind und sehr gute Ergebnisse liefern.
In Kapitel 6 fassen wir die in dieser Arbeit vorgestellten Methoden zur effizienten L¨osung
d¨unn besetzter, positiv definiter Gleichungssysteme zusammen und diskutieren einige ungel¨oste
Probleme.
Kapitel 2
Grundlagen
Wie bereits in der Einleitung erw¨ahnt, beruhen alle direkten Verfahren zur L¨osung eines li-
nearen Gleichungssystems auf einer sukzessiven Elimination der Unbekannten. In seiner allge-
meinsten Form wird dieser Eliminationsprozeß vom Gaußschen Algorithmus beschrieben. An-
gewandt auf eine nichtsingul¨are Matrix
liefert der Algorithmus eine Dreieckszerlegung der
Form
`
E
'(e
. Dabei ist
`
eine Permutationsmatrix,
'
eine untere Dreiecksmatrix mit Einsen
in der Diagonale und
e
eine obere Dreiecksmatrix. Die Matrix
`
beschreibt die bei der Pivot-
wahl vorzunehmenden Zeilenvertauschungen. Ist
d¨unn besetzt, so muß die Pivotwahl nicht
nur die Durchf¨uhrbarkeit und numerische Stabilit¨at des Verfahrens garantieren, sondern auch die
Auff¨ullung von
in Grenzen halten. Diese Aufgaben lassen sich nur schwer vereinen, so daß
die Aufrechterhaltung der numerischen Stabilit¨at oftmals durch einen gr¨oßeren Rechenaufwand
erkauft werden muß.
Ist
jedoch symmetrisch und positiv definit, so existiert eine eindeutig bestimmte untere
Dreiecksmatrix
'
mit positiven Diagonaleintr¨agen, f¨ur die gilt
'('
$
. Bei der Berechnung
von
'
werden die Diagonalelemente einfach in ihrer nat¨urlichen Reihenfolge als Pivots gew¨ahlt.
Die positive Definitheit der Matrix
garantiert dabei die Durchf¨uhrbarkeit und numerische Sta-
bilit¨at des Verfahrens. Im Falle einer d¨unn besetzten Koeffizientenmatrix steht jetzt ”nur“ noch
die Minimierung der Auff¨ullung von
im Vordergrund. Da f¨ur jede Permutationsmatrix
`
gilt,
daß mit
auch
`
`
$
positiv definit ist, kann wie folgt vorgegangen werden: Bestimme ei-
ne Permutationsmatrix
`
, so daß die Auff¨ullung von
`
`
$
m¨oglichst gering ist und berechne
anschließend die Faktormatrix
'
von
`
`
$
.
Dieses Kapitel ist in drei Abschnitte gegliedert. In 2.1 werden zwei elementare Verfahren
zur Berechnung der Faktormatrix
'
vorgestellt. Es handelt sich um das Cholesky-Verfahren und
um eine Variante des Cholesky-Verfahrens. Angelehnt an die Ausf¨uhrungen in Stoer [137] wird
die enge Verwandtschaft beider Verfahren zum Gaußschen Algorithmus und zur direkten LR-
Zerlegung nach Crout dargestellt. Abschnitt 2.2 zeigt, wie der bei der Faktorisierung entstehende
Fill-in graphentheoretisch beschrieben werden kann. Viele Heuristiken zur Bestimmung einer
9
10
Kapitel 2. Grundlagen
”guten“ Permutationsmatrix
`
benutzen diese graphentheoretische Beschreibung der Auff¨ullung
von
. In der Regel basieren die Heuristiken auf einer der in Abschnitt 2.3 vorgestellten Metho-
den. Es handelt sich dabei um die Profil-, die Bottom-up- und die Top-down-Methode.
2.1 Gauß-Elimination und Dreieckszerlegung von Matrizen
Im folgenden stellen wir den Gauß-Algorithmus, die direkte LR-Zerlegung nach Crout, das Cho-
lesky-Verfahren und eine Variante des Cholesky-Verfahrens vor. Zwischen allen vier Verfahren
gibt es zahlreiche verwandtschaftliche Beziehungen. So unterscheiden sich beispielsweise die
ersten und die letzten beiden lediglich in der Reihenfolge der Multiplikations- und Additions-
operationen, nicht jedoch in ihrer Anzahl. Des weiteren kann die Cholesky-Zerlegung als eine
auf symmetrische, positiv definite Matrizen zugeschnittene LR-Zerlegung interpretiert werden.
Im folgenden sei angenommen, daß
eine reelle, nichtsingul¨are
f
-Matrix ist und
fgih
efj
ein Vektor. Mit Hilfe des Gaußschen Eliminationsverfahrens kann ein lineares Gleichungssystem
kEl0 E
mn
oqp
.r.
34343
p
.
j
.
.
..
.
.
p
j
.
34343
p
jsj
tsu
v
0 w
mn
o
.
.
.
.
j
tsu
v
(2.1)
gel¨ost werden. Dazu wird (2.1) durch geeignete Zeilenvertauschungen und Linearkombinationen
von Zeilen schrittweise in ein gestaffeltes Gleichungssystem der Form
e
+=7xy0
e
mn
o=z
.r.
34343
z
.
j
....
.
.
z
jsj
tsu
v
transformiert, welches dieselben L¨osungen besitzt. Da
e
eine obere Dreiecksmatrix ist mit
zs{|{
f¨ur
}
S
0s34343/0
, kann das gestaffelte Gleichungssystem leicht gel¨ost werden.
Der Einfachheit halber werden beim Gaußschen Eliminationsverfahren die Zeilenvertau-
schungen und Linearkombinationen von Zeilen nicht an den Gleichungen (2.1) durchgef¨uhrt,
sondern an der um den Vektor
erweiterten Koeffizientenmatrix
?
~0\
C
mn
op
.r.
3s343
p
.
j
.
.
.
..
.
..
.
.
p
j
.
3s343
p
jj
j
tsu
v
3
Man erh¨alt dann eine Kette von Matrizen
?
~07
C;
?
,
0\s
,
C ?
.
074
.
C
34343
?
j
.
074
j
.
C
-?e
0\7x
C
0
wobei der ¨
Ubergang
?
5
.
0\
5
.
C ?
57
0\
5\
C
f¨ur
S
043s343/0
S
formal wie folgt be-
schrieben werden kann:
2.1. Gauß-Elimination und Dreieckszerlegung von Matrizen
11
(1) Bestimme ein Element
p
5
.
5
=
,
z
g
04343s3/0
, und vertausche die Zeilen
z
und
von
?
5
.
07
5
.
C
. Ein solches Element existiert, da
nichtsingul¨ar ist. Sei
?
5
.
0
5
.
C
die resultierende Matrix.
(2) F¨ur
}
:
S
0434343/0
setze
{
5
\
und subtrahiere das
{
5
-fache der
-ten Zeile von
Zeile
}
. Die resultierende Matrix ist
?
570\
5\
C
.
Das in Schritt (1) bestimmte Element heißt Pivotelement und sollte aus Gr¨unden der numerischen
Stabilit¨at sorgf¨altig gew¨ahlt werden (vgl. Stoer [137]). Die Subtraktionen in Schritt (2) bewirken,
daß in Spalte
von
5\
alle Elemente unterhalb der Diagonale zu null werden. Die Variable
5
tritt also in den entsprechenden Gleichungen nicht mehr auf; daher der Name Eliminationsver-
fahren. Man kann den ¨
Ubergang von
?
5
.0\
5
.
C
nach
?
5\07
5\
C
auch mit Hilfe von Ma-
trizenmultiplikationen beschreiben. Sei
`
5
?B
.
0434343¡0
5
.
0
0
5\6&.
0s34343/0
.
0
5
0
6&.
04343s3/0
j
C
wobei
{
den
}
-ten Einheitsvektor darstellt. Weiter sei
'
5
eine untere Dreiecksmatrix der Form
'
5
mn
n
n
n
n
n
n
n
o
S
...
S
5\6&.r¢ 5
S
.
.
....
j
5
S
tsu
u
u
u
u
u
u
u
v
3
Dann gilt
?
5\0\
5\
C
'
5
`
5
?
5
.0\
5
.
C
. Unter der vereinfachenden Annahme, daß keine
Zeilenvertauschungen im Laufe des Eliminationsprozesses vorgenommen werden, erh¨alt man
e
'
j
.
ll7'
.
~3
Da
'
5
nichtsingul¨ar ist, kann die Gleichung umgeformt werden zu
'
.
.
ll2'
.
j
.
e
*
mit
'
.
.
ll7'
.
j
.
mn
n
n
n
n
o
S
£
.
S
.
.
....
j
.r¢V.
S
j
.
j
34343
j
¢
j
.
S
tsu
u
u
u
u
v
¤'
3
Als Ergebnis erh¨alt man eine Dreieckszerlegung
¥
'(e
. Diese Dreieckszerlegung l¨aßt sich
auch direkt, ohne Bildung der Matrizen
.0s34343/07
j
.
, berechnen. Dazu betrachtet man die
12
Kapitel 2. Grundlagen
R
LA
k
R
L
k
A
Abb. 2.1: Bei der Berechnung der
¦
-ten Zeile von
§
(links) bzw. der
¦
-ten Spalte von
¨
(rechts) wird
auf die grau dargestellten Elemente aus
§
und die schraffiert eingezeichneten Elemente aus
¨
zugegriffen. Die zu berechnenden Elemente sind schwarz dargestellt.
Variablen
{G©
,
}(ª«@?B
{|{
SlC
, und
zs{V©
,
«¬ª}
, als Unbekannte, die mit Hilfe der
Gleichungen
p
{G©
HZYV[
{
¢
©
®L¯
.
{
®
z
®
©
?B
{|{
SNC
bestimmt werden. Die Elemente
{G©
k¨onnen spaltenweise und die Elemente
zs{G©
zeilenweise be-
rechnet werden. Man setzt dazu nacheinander f¨ur
S
0434343¡0
z
5
{
p
5
{
5
.
°
©
¯
.
5
©\z\©{
0
}
043s343Z0
0
{
5
?
p
{
5
5
.
°
©
¯
.
{G©z\©
5
C2X
z
575
0
}
:
S
043s343/0
3
(2.2)
In Schritt
wird also zuerst die
-te Zeile von
e
und anschließend die
-te Spalte von
'
(oh-
ne
575
) berechnet. F¨uhrt man die Dreieckszerlegung auf einem Computer durch, so werden die
Elemente aus
nach und nach durch die Elemente
z
5
{
und
{
5
¨uberschrieben. Abbildung 2.1
zeigt, auf welche bereits berechneten Elemente von
'
und
e
bei der Berechnung der
-ten Zei-
le von
e
(links) und der
-ten Spalte von L (rechts) zugegriffen wird. Die oben beschriebene
Reihenfolge, in der die Elemente aus
'
und
e
berechnet werden, wurde urspr¨unglich von Crout
vorgeschlagen. Nach Banachiewicz ist auch eine zeilenweise Berechnung von
'
und
e
m¨oglich
(vgl. Wilkinson [141]).
Die direkte Dreieckszerlegung nach Crout (2.2) unterscheidet sich von der Gauß-Elimination
lediglich in der Reihenfolge – nicht jedoch in der Anzahl – der ben¨otigten Operationen. Nach
der Berechnung der
-ten Zeile von
e
und der
-ten Spalte von
'
k¨onnen die Elemente von
5\
wie folgt berechnet werden:
p
5\
{G©
p
{G©
5
®¯
.
{
®
z
®
©
0
}
0
«
:
S
0434343¡0
3
2.1. Gauß-Elimination und Dreieckszerlegung von Matrizen
13
Die Matrix
57
dient also als Speicher von st¨uckweise berechneten Skalarprodukten. Bei der
direkten Dreieckszerlegung verzichtet man auf einen solchen Zwischenspeicher und berechnet
die Skalarprodukte in einem Schritt.
Nicht jede Matrix besitzt eine Dreieckszerlegung der Form
=
'e
wie das Beispiel
*²±
S
S
d³
zeigt. In der Regel m¨ussen zun¨achst die Zeilen und Spalten von
in geeigneter Weise permutiert
werden. Man erh¨alt dann eine Zerlegung der Gestalt
`
_
'(e
. Es gibt jedoch eine wichtige
Klasse von Matrizen, bei denen man ohne Permutationsmatrix auskommt:
Satz 2.1 Sei
gh
efj´j
eine symmetrische, positiv definite Matrix. Dann gibt es genau eine
(reelle) untere
"i
-Dreiecksmatrix
'
,
{
5
*
f¨
ur
}QE
, mit
575
,
S
04343s3/0
, so daß gilt
*
'('
$
.
Die Dreiecksmatrix
'
heißt Faktormatrix von
. Der Beweis des Satzes liefert zugleich ein Ver-
fahren zur Berechnung von
'
. Aus diesem Grund werden wir den Beweis an dieser Stelle noch
einmal wiederholen. Wir orientieren uns dabei an den Ausf¨uhrungen von George und Liu [53].
Beweis: Der Beweis wird durch Induktion nach
gef¨uhrt. Im Falle
S
besteht
aus einer
(reellen) Zahl
µ¶
, die eindeutig in der Form
µ
.r.
.r.
,
.r.
*:¸·
µ
, geschrieben werden kann.
Sei nun angenommen, daß der Satz f¨ur alle symmetrischen, positiv definiten
?¹
SNC
-reihigen
Matrizen g¨ultig ist. Wir partitionieren
wie folgt:
= ±
µ
$ º
³
3
Dabei ist
º
eine
?¹
SNC
-reihige Matrix,
"gh
e
j
.
ein Vektor der L¨ange
S
und
µ
gh
e
ein
Skalar. Wegen
$
.
.
µ
gilt
µ¶
. Sei
h
j
.
die
?B
SNC
-reihige Einheitsmatrix, dann l¨aßt sich
darstellen als
*»
·
µ
¼
½ ¾
h
j
.¸¿
»
S
º
¼\¼À
¾
¿
»
·
µ
¼À
½ ¾
h
j
.
¿
3
(2.3)
Die Matrix
º
¼\¼ À
¾
ist nicht nur symmetrisch, sondern selbst wieder positiv definit, denn f¨ur
einen Vektor
)
gih
ej
.
der L¨ange
S
gilt
?
)
$
µ
0
)
$
C
±
µ
$ º
³
»
¬Á
ÀM¼
¾
)
$
¿
)
$
?
º
W $
µ
C)
14
Kapitel 2. Grundlagen
und damit
)
$
?
º
¼\¼
À
¾
C)"
. Nach Induktionsvoraussetzung besitzt die Matrix
º
¼\¼
À
¾
eine
eindeutige Faktormatrix
Â'
. Die Matrix
kann daher geschrieben werden als
E »
·
µ
¼
½ ¾
Â'
¿
»
·
µ
¼
À
½ ¾
Â'
$
¿
'('
$
3
Die Eindeutigkeit von
'
folgt aus der Eindeutigkeit von
Â'
und aus der Tatsache, daß
µ
eindeutig
als Quadrat von
:¸·
µ
dargestellt werden kann (vgl. Induktionsanfang).
Der Vektor
?
·
µ
0
¼
½ ¾
C
$
entspricht der ersten Spalte der Faktormatrix
'
. Die zweite Spalte
erh¨alt man, indem (2.3) auf die Restmatrix
º¼\¼À
¾
angewandt wird. Dies ist m¨oglich, da
º¼\¼À
¾
wieder symmetrisch und positiv definit ist. Die Matrix
º
¼\¼
À
¾
¨ubernimmt dabei – wie die Matrix
.
bei der Gauß-Elimination – die Rolle des oben angesprochenen Zwischenspeichers f¨ur die
Skalarprodukte.
Angelehnt an die LR-Zerlegung nach Crout (2.2) k¨onnen auch hier die Variablen
525
und
{
5
,
}¬Ã
, der Faktormatrix
'
direkt berechnet werden. Dazu benutzt man die Bestimmungsglei-
chungen (
S
04343s3/0
)
p
575
5
©
¯
.
5
©
0
p
{
5
5
©
¯
.
{G©
5
©
0
}
:
S
0434343/0
3
Aufgel¨oßt nach
575
bzw.
{
5
erh¨alt man dann die Formeln
575
ÄÅ
Å
Æ
p
575
5
.
©
¯
.
5
©
0
{
5
?
p
{
5
5
.
©
¯
.
{G©
5
©
C2X
575
0
}
:
S
0s34343/0
3
(2.4)
Das Verfahren (2.4) geht zur¨uck auf Cholesky [20]. Die Faktormatrix
'
wird deswegen auch
Cholesky-Faktor genannt. In der Literatur bezeichnet man (2.4) als Inner-Product- und (2.3)
als Outer-Product-Form der Cholesky-Zerlegung. Abbildung 2.2 zeigt f¨ur beide Verfahren, auf
welche Elemente bei der Berechnung der
-ten Spalte von
'
jeweils zugegriffen wird. Dabei
nehmen wir wieder an, daß die Koeffizienten von
nach und nach durch die Koeffizienten von
'
¨uberschrieben werden. Beide Verfahren ben¨otigen die gleiche Anzahl von Multiplikations- und
Additionsoperationen. Bezeichne
Ç/?B'È
¢ 5
C
die Anzahl der Subdiagonalelemente
^
in Spalte
von
'
. In
'
gibt es
Ç¡?'C
j
.
5
¯
.
Ç¡?'(È
¢ 5
C
(2.5)
2.1. Gauß-Elimination und Dreieckszerlegung von Matrizen
15
A
L
k
L
k
Restmatrix
Restmatrix
Abb. 2.2: Beim Cholesky-Verfahren (links) wird zur Berechnung der
¦
-ten Spalte von
¨
auf die schraffiert
eingezeichneten Elemente von
¨
zugegriffen. Beim Outer-Product-Verfahren (rechts) kann die
¦
-te Spalte sofort berechnet werden. Anschließend werden die grau dargestellten Elemente der
Restmatrix wie in (2.3) beschrieben modifiziert.
von null verschiedene Elemente unterhalb der Diagonale. Man kann leicht zeigen (vgl. George
und Liu [53]), daß f¨ur die Berechnung des Cholesky-Faktors
'
S
É
j
.
5
¯
.
Ç/?B'È
¢ 5
Cs?¹Ç/?B'(È
¢ 5
C
:ËÊ
C
(2.6)
Multiplikationsoperationen und
S
É
j
.
5
¯
.
Ç/?B'È
¢ 5
Cs?¹Ç/?B'(È
¢ 5
C
:
SlC
(2.7)
Additionsoperationen durchgef¨uhrt werden m¨ussen. Die Summe der f¨ur die Berechnung von
'
ben¨otigten Multiplikations- und Additionsoperationen wird in der Literatur oft mit
Ì%?B'ÍC
bezeich-
net. Ist die
f
-Matrix
voll besetzt, so gilt
Ç¡?'(È
¢ 5
C
. F¨ur die Berechnung von
'
werden
dann
ÌÎ?'C
.
Ï
Ï
:
.
ÐÑ
Multiplikations- und Additionsoperationen ben¨otigt.
An dieser Stelle sei noch einmal darauf hingewiesen, daß bei der Pivotwahl auf die numeri-
sche Stabilit¨at keine R¨ucksicht genommen werden muß. Nach (2.4) gilt n¨amlich:
FV
5
©
FDÒ
·
p
575
0
«
S
0s34343/0
0
S
043s343/0
3
Im Gegensatz zur Gauß-Elimination k¨onnen also die bei der Cholesky-Zerlegung auftretenden
Zahlen nicht zu groß werden (vgl. Wilkinson [141]).
16
Kapitel 2. Grundlagen
2.2 Graphentheoretische Beschreibung der Cholesky-
Zerlegung
Ist
eine d¨unn besetzte, positiv definite Matrix, so enth¨alt der Cholesky-Faktor
'
in der Regel
sehr viel mehr Elemente
=
als
selbst. Der Grad der Auff¨ullung von
, und damit die Anzahl
der f¨ur die Berechnung von
'
ben¨otigten Operationen, h¨angt entscheidend von der Reihenfolge
ab, in der die Diagonalelemente als Pivots gew¨ahlt werden. In diesem Abschnitt zeigen wir, wie
die Entstehung von Fill-in bei der spaltenweisen Berechnung des Cholesky-Faktors nach dem
Outer-Product-Verfahren durch die Konstruktion von Eliminationsgraphen modelliert werden
kann. Viele Heuristiken zur Bestimmung einer ”guten“ Permutationsmatrix
`
basieren auf dieser
graphentheoretischen Beschreibung der Auff¨ullung von
.
Im folgenden ben¨otigen wir einige Begriffe aus der Graphentheorie: Ein Graph
Ó
ist ein
Tupel
?LÔ
0\Õ
C
. Die Menge
Ô
beschreibt die Knoten und die Menge
Õ_Ö
Ô×Ô
die Kanten des
Graphen.
Ó
heißt ungerichtet, falls mit
?
b0
ADC
g=Õ
,
b
A
, auch immer die Kante
?BA
0b
C
in
Õ
enthalten ist. Man unterscheidet dann nicht mehr zwischen den Kanten
?
b0
AÎC
und
?BA
0b
C
. Ein
ungerichteter Graph enth¨alt keine self-loops, d.h. Kanten der Form
?
b0b
C
.
Ist jedem Knoten
A
g
Ô
ein Gewicht
F AJF
zugeordnet, so heißt
Ó
gewichtet. Das Gewicht
einer Knotenmenge
Ø
Ö
Ô
ist
FÙØ¬F
°*ÚNÛlÜ
F
b
F
. In der Literatur bezeichnet man das Gewicht
einer Menge
Ø
oftmals mit
ÝÍÞsßàâá¤ãN?rØäC
. Da wir in dieser Arbeit sowohl ungewichtete als auch ge-
wichtete Graphen betrachten, benutzen wir zur Vereinfachung der Darstellung die Notation
FجF
.
Gewichtete Graphen entstehen immer dann, wenn mehrere Knoten eines ungewichteten Graphen
zu einem logischen Knoten verschmolzen werden. Standardm¨aßig betrachten wir alle Graphen
als ungewichtet, d.h.
F AZF
S
und
FÙØ¬F
entspricht der Kardinalit¨at von
Ø
. In einem gewichteten
Graphen bezeichnen wir die Kardinalit¨at von
Ø
mit
åsæMç2èZ?rØäC
.
Ist
?
b0
ADC
eine Kante des Graphen, so heißen die Knoten
b0
A
adjazent oder benachbart in
Ó
.
Die Menge aller zu
A
adjazenten Knoten wird mit
æMèé2ê?¹ADC
bezeichnet und
è%ÞàDêë?BADC
FæMèéê?BADCNF
heißt Grad des Knotens
A
. F¨ur
Ø
Ö
Ô
ist die Menge der zu
Ø
adjazenten Knoten definiert als
æMèé2êë?rØäC
íì
ÚlÛlÜ
æMèé2ê?
b
C
Ø
.
Ein (einfacher) Weg der L¨
ange
zwischen zwei Knoten
A
0
A
x
g
Ô
ist eine Folge
A
b
,
0b
.
043s343/0 b
5
A
x
mit
?
b
{
.
0b
{
C
gîÕ
f¨ur
}
S
0s34343/0
, wobei jeder Knoten nur einmal an-
getroffen wird. Gilt
?
b
5
0b
,
C
gÕ
,
kª
É
, so erh¨alt man einen Kreis der L¨
ange
:
S
. Der Graph
Ó
heißt zusammenh¨
angend, falls zwischen je zwei Knoten immer ein Weg existiert.
Der durch die Knotenmenge
Ø
Ö
Ô
induzierte Teilgraph von
Ó
ist der Graph
Ó@?rØäC
?rØ
0\Õ
?rØäC2C
mit
Õ
?rØäC
=Õï
?rØîØðCñC
. Die Menge
Ø
heißt (maximale) Zusammenhangskompo-
nente, falls
Ó¶?ØðC
zusammenh¨angend ist und
æMèéê(?rØäC
íò
. Schließlich heißt eine Knotenmenge
óÖ
Ô
eines ungerichteten Graphen Clique, falls die Knoten in
ó
paarweise durch eine Kan-
te miteinander verbunden sind. Durch
ó
wird der vollst¨
andige Teilgraph
Ó@?
ó
C
induziert. Der
Einfachheit halber schreiben wir
Õ
?
ó
C
ó
ó
, wobei
Õ
?
ó
C
jedoch keine self-loops enth¨alt.
2.2. Graphentheoretische Beschreibung der Cholesky-Zerlegung
17
In dieser Arbeit betrachten wir nur ungerichtete Graphen. Jede symmetrische
-Matrix
definiert einen ungerichteten Graphen
Ó
?LÔ
0\Õ
C
mit
Knoten. Sei
Ô
A
.
0s34343/0
A
j
, dann
ist
?¹A
{
0
A
©
C
gôÕ
genau dann, wenn
p
{G©
õ
. Jeder Spalte
«
, und damit auch jedem Diagonalele-
ment
p
©©
, ist so ein Knoten
A
©
des Graphen
Ó
zugeordnet. Ist
Ó
zusammenh¨angend, so heißt
irreduzibel. Durch (2.3) wird die Matrix
transformiert in die Matrix
º¼\¼ À
¾
.
. Nach
Parter [108] und Rose [118] erh¨alt man den zu
.
geh¨orenden Graphen
Ó
.
, indem
Ó
wie folgt
modifiziert wird:
(1) Entferne Knoten
A
.
zusammen mit allen inzidenten Kanten.
(2) F¨uge Kanten hinzu, so daß alle Knoten aus
æMèNé2ê?BA
.
C
eine Clique bilden.
Man sagt, daß
Ó
.
durch Elimination des Knotens
A
.
aus
Ó
entstanden ist.
Ó
.
heißt deswegen
auch Eliminationsgraph von
Ó
. Wir wollen die Konstruktion von
Ó
.
an einem Beispiel veran-
schaulichen. Dazu betrachten wir die symmetrische Matrix
*
mn
n
n
n
n
n
n
o
p
.r.
p
Ï
.
pâö
.
p
Ð
.
p
r
p
Ï
p
Ñ
p
Ï
.
p
Ï
p
ÏrÏ ÷ ÷
p¤ö
.
÷
pâöröøp
Ð
ö
p
Ð
.
÷
p
Ð
öøp
ÐrÐ
p
Ñ
p
ÑrÑ
tsu
u
u
u
u
u
u
v
3
(2.8)
Wird
wie in (2.3) beschrieben partitioniert, so gilt
µ
p
.r.
und
c
?
D0
p
Ï
.
0
pâö
.
0
p
Ð
.
0\
C
$
. Nach
einer Iteration des Outer-Product-Verfahrens erh¨alt man die Matrix
º
W%$
µ
mn
n
n
n
n
o
p
r
p
Ï
p
Ñ
p
Ï
p
ÏrÏ
ù
ñù
¾
¬ú\ûñürúýü
þ
¬úÿürúýü
þ
ú\ûñüúýü
þ
pâörö
¾
p
Ð
ö
¾
úÿüúýü
þ
p
Ð
ö
¾
p
ÐrÐ
¾
p
Ñ
p
ÑrÑ
tsu
u
u
u
u
v
.
3
Die in (2.8) in Fettdruck dargestellten Nullelemente von
werden in
.
ersetzt durch die von
null verschiedenen Elemente
@
ù
¾
und
¬
ù
¾
. Ganz allgemein gilt, daß nach der ersten
Iteration des Outer-Product-Verfahrens ein Element
p
{V©
,
}
0
«
g
É
0s34343/0
, ersetzt wird durch
p
{G©
¾
. Dabei entsteht Fill-in, falls
p
{G©
und
p
{
.
0
p
©
.
. Sieht man von dem entarteten
Fall ab, daß
p
{G©
¾
²
f¨ur
p
{G©
(Fill-out), so gilt also f¨ur die Kantenmenge
Õ
.
des
Eliminationsgraphen
Ó
.
:
?BA
{
0
A
©
C
gdÕ
.
?¹A
{
0
A
©
C
gdÕ
oder
?BA
{
0
A
.
C
0
?¹A
©
0
A
.
C
gdÕ¬3
Dies entspricht genau der Regel (2) von Parter und Rose. Abbildung 2.3 zeigt f¨ur
und
.
die
zugeh¨origen Graphen
Ó
und
Ó
.
.
18
Kapitel 2. Grundlagen
4
5 6
3
61
v
v
v
3
v
v
2
v4
v
5
v
v
v
2
v
Abb. 2.3: Der aus der Matrix (2.8) abgeleitete Graph
(links) und der Eliminationsgraph
.
(rechts).
Die durch Elimination des Knotens
.
entstandenen Fill-Kanten sind in Fettdruck dargestellt.
Durch die spaltenweise Berechnung von
'
nach dem Outer-Product-Verfahren, erh¨alt man
so eine Sequenz von Eliminationsgraphen
Ó
5
,
S
04343s3/0
,
Ó
j
ò
, wobei
Ó
5
aus
Ó
5
.
(
Ó
,
Ó
) durch Elimination des Knotens
A
5
entsteht. Die dabei eingef¨ugten Kanten entsprechen
exakt dem Fill-in von
. Man nennt die eingef¨ugten Kanten deswegen auch Fill-Kanten. Auf-
grund der positiven Definitheit von
ist es m¨oglich, die Diagonalelemente in jeder beliebigen
Reihenfolge als Pivots zu w¨ahlen. Daher k¨onnen auch die Knoten in
Ó
in jeder beliebigen Rei-
henfolge eliminiert werden. Eine solche Eliminationsreihenfolge wird mathematisch durch eine
Permutation
ËPÔ
S
04343s3/0
beschrieben. Ist ein Knoten
A
{
mit der Zahl
numeriert, d.h.
?¹A
{
C
, so wird
A
{
beim ¨
Ubergang von
Ó
5
.
nach
Ó
5
eliminiert. Die Permutation
heißt
Ordering. Man ist nun bestrebt
so zu w¨ahlen, daß die Anzahl der entstehenden Fill-Kanten
minimiert wird. Aus
kann die Permutationsmatrix
`
leicht abgeleitet werden. Man setzt dazu
`
?B
0434343/0
C
.
Wir wollen das oben Gesagte an dem aus der Matrix (2.8) abgeleiteten Graphen
Ó
veran-
schaulichen (siehe auch Abbildung 2.3). Werden die Knoten in ihrer nat¨urlichen Reihenfolge
eliminiert, so entstehen die Fill-Kanten
?¹A
Ï
0
A
ö
C
,
?BA
Ï
0
A
Ð
C
(Elimination von
A
.
),
?¹A
Ï
0
A
Ñ
C
(Elimina-
tion von
A
) und
?BA
ö
0
A
Ñ
C
,
?BA
Ð
0
A
Ñ
C
(Elimination von
A
Ï
). Setzt man
?BA
.
C
,
?¹A
Ñ
C
S
und
?¹A
5
C
f¨ur
É
043s343/0
, so erh¨alt man die Eliminationsreihenfolge
A
Ñ
0
A
0
A
Ï
0
A
ö
0
A
Ð
0
A
.
. Man
vergewissert sich leicht, daß durch diese Reihenfolge keine Fill-Kante entsteht.
Durch
wird ein weiterer Graph definiert. Dieser heißt aufgef¨
ullter (filled) Graph und wird
mit
Ó
?LÔ
0\Õ
C
bezeichnet.DieMenge
Õ
enth¨altneben denKantenaus
Õ
alleFill-Kantendie
entstehen, wenn die Knoten des Graphen
Ó
in der durch
beschriebenen Reihenfolge eliminiert
werden. Nach Rose et al. [119] stehen die Kantenmengen
Õ
und
Õ
wie folgt in Beziehung
zueinander.
Lemma 2.1 (Rose et al. [119])
Sei
eine Numerierung der Knoten von
Ó
. Dann ist
?¹A
0
A
x
C
gdÕ
genau dann, wenn
?BA
0
A
x
C
giÕ
,
oder es gibt einen Weg
A
0b
.
0s34343/0 b
5
0
A
x
in
Ó
mit
?
b
{
C Q
@ß
?¹ADC
0
?¹A
x
C\
f¨
ur alle
}
S
0434343¡0
.
Zwei Knoten
A
0
A
x
mit
?¹A
0
A
x
C
gEÕ
sind also in dem aufgef¨ullten Graphen
Ó
benachbart, falls
es in dem urspr¨unglichen Graphen
Ó
einen Weg zwischen
A
und
A
x
gibt, der ausschließlich ¨uber
2.2. Graphentheoretische Beschreibung der Cholesky-Zerlegung
19
Knoten f¨uhrt, die vor
A
und
A
x
eliminiert werden. Lemma 2.1 istvongrundlegenderBedeutung, da
hierdurch die Fill-Kanten anhand von
Ó
und
bestimmt werden k¨onnen. Eine explizite Bildung
der Eliminationsgraphen ist nicht erforderlich.
Kennt man die Kantenmenge
Õ
, so kennt man auch die Nichtnullstruktur des Cholesky-
Faktors
'
von
`
`
$
. Bezeichne
@æMèé
ê
?¹AÎC
die Menge aller zu
A
adjazenten Knoten in
Ó
, die
nach
A
eliminiert werden, also
@æMèéñê
Î?BADC
g
Ô
!
g
æMèé2ê
Î?BADC
und
?
C
?¹ADC
. Weiter
sei
"
ã7ç
#
%åãl?'(È
¢ 5
C
} E
$
{
5
. Die Menge
"
ã7ç
#
Îåã?B'È
¢ 5
C
enth¨alt also die Zeilenindizes der
von null verschiedenen Subdiagonalelemente in Spalte
von
'
. Dann gilt:
g
¶æMèNé
ê
?¹ADC
?
C
g
"
ã7ç
#
Îåã?B' È
¢
%
C
3
(2.9)
Die Menge
¶æMèNé
ê
?¹ADC
heißt monotone Adjazenz des Knotens
A
in dem aufgef¨ullten Graphen
Ó
.
Aus (2.9) folgt sofort
F
&
@æMèé
ê
?BADCNF
Ç¡?' È
¢
%
C
3
(2.10)
Man kann daher
F
&
@æMèéê
D?
'
.
?%C2ClF
anstelle von
Ç/?B'(È
¢ 5
C
in die Formeln (2.5), (2.6) und (2.7)
einsetzen und erh¨alt so die Anzahl der Subdiagonalelemente
im Cholesky-Faktor
'
von
`
`
$
und die Anzahl der zur Berechnung von
'
ben¨otigten Operationen.
Der Graph
Ó
besitzt einige sehr interessante Eigenschaften, auf die wir in den nachfolgen-
den Kapiteln Bezug nehmen. Zur Beschreibung dieser Eigenschaften ben¨otigen wir die folgen-
den Definitionen aus der Graphentheorie: Ein ungerichteter Graph
Ó
?Ô
0\Õ
C
heißt chordal,
falls es in jedem Kreis der L¨ange
Ê
zwei nicht aufeinanderfolgende Knoten
b0
A
gibt mit
?
b0
ADC
gôÕ
. Die Kante
?
b0
ADC
wird auch Sehne genannt. Eine Menge
(
Ö
Ô
heißt Knotensepa-
rator, falls der Teilgraph
Ó¶?Ô
(
(C
nicht zusammenh¨angend ist. Seien
p
0\
zwei nicht adjazente
Knoten aus
Ô
. Ein Knotenseparator
(
heißt
p
0\
-Separator, falls die Knoten
p
0\
in
Ó¶?Ô
(
(C
zu verschiedenen Zusammenhangskomponenten geh¨oren. Falls keine echte Teilmenge von
(
ein
p
0\
-Separator ist, so heißt
(
minimaler
p
07
-Separator. Ein minimaler Knotenseparator ist eine
Knotenmenge
(
Ö
Ô
, die bez¨uglich zweier nicht adjazenter Knoten
p
0\
einen minimalen
p
0\
-
Separator darstellt. Schließlich heißt ein Ordering
f¨ur die Knoten aus
Ô
perfekt, falls bei der
Bildung der Eliminationsgraphen keine zus¨atzliche Kanten entstehen.
Nach Dirac [29] und Fulkerson, Gross [44] gilt:
Satz 2.2 (Dirac [29] und Fulkerson, Gross [44])
Sei
Ó
ein ungerichteter Graph. Dann sind die folgenden Aussagen ¨
aquivalent:
(1)
Ó
ist chordal.
(2)
Ó
besitzt ein perfektes Ordering.
(3) Jeder minimale Knotenseparator in
Ó
bildet eine Clique.
Aufgrund der Konstruktion von
Ó
ist
ein perfektes Ordering f¨ur diesen Graphen. Nach
Satz 2.2 ist
Ó
chordal, und jeder minimale Knotenseparator in
Ó
bildet eine Clique.
20
Kapitel 2. Grundlagen
2.3 Klassische Ordering-Verfahren
Nach Yannakakis [142] ist die Bestimmung einer Permutationsmatrix
`
, so daß die Auff¨ullung
von
`
`
$
minimal ist, ein
)+*
-vollst¨andiges Problem. Zur Bestimmung einer m¨oglichst guten
Permutationsmatrix werden Heuristiken benutzt, deren Eingabe in der Regel aus dem ungerich-
teten Graphen
Ó
besteht. Die Heuristiken konstruieren dann f¨ur die Knoten des Graphen ein
Ordering
, so daß der aufgef¨ullte Graph
Ó
m¨oglichst wenige zus¨atzliche Kanten enth¨alt. In
diesem Abschnitt stellen wir kurz drei klassische Ordering-Methoden vor, auf denen viele Heu-
ristiken basieren. Es handelt sich um die Profil-, die Bottom-up- und die Top-down-Methode.
2.3.1 Die Profil-Methode
Die Profil-Methode geh¨ort zu den ¨altesten und am weitesten verbreiteten Ordering-Methoden.
Ziel ist dabei, die Zeilen und Spalten der Matrix
so zu permutieren, daß die von null verschie-
denen Elemente m¨oglichst nah an der Diagonalen liegen. Auch f¨ur dieses Ordering-Problem ist
die Bestimmung einer optimalen Permutationsmatrix wieder
),*
-vollst¨andig[107]. Zur Erl¨aute-
rung der Profil-Methode ben¨otigen wir einige zus¨atzliche Definitionen: Bezeichne
-
{
?
C
den
Spaltenindex des ersten Elementes
in Zeile
}
, also
-
{
?
C
§
.
«
/
p
{G©
. Dann ist
die Bandweite der
}
-ten Zeile von
, kurz
0
{
?
C
, definiert durch
0
{
?
C
}
-
{
?
C
. Wegen
p
{|{
9
gilt
-
{
?
CäÒî}
und damit
0
{
?
Cäª
. Das Profil von
besteht nun aus der Indexmenge
1
ç
2435
?
C
q
?B}
0
« C
6 7-
{
?
C Ò«¬Q }ñ
. Nach George und Liu [53] gilt
1
ç
2435
?
C
1
ç
2435
?B'
:
'
$
C
,
so daß der Aufwand f¨ur die Berechnung von
'
entscheidend von der Gr¨oße des Profils, d.h. von
°
j
{
¯
.
0
{
?
C
abh¨angt.
Einer der bekanntesten Algorithmen zur Profilminimierung ist der Algorithmus von Cuthill
und McKee [26]. Hierbei werden die Knoten des Graphen
Ó
mit Hilfe einer speziellen Breiten-
suche durchlaufen. Vor dem Start des Algorithmus wird die innerhalb der Breitensuche benutzte
Schlange (queue)
8
mit einem pseudo-peripheren Graphknoten initialisiert. Der Algorithmus
arbeitet dann wie folgt: Sei
b
der erste Knoten in
8
. Der Knoten
b
wird aus
8
entfernt und
als n¨achsten numeriert. Anschließend werden alle Nachbarn von
b
, die weder numeriert noch
in
8
gespeichert sind, aufsteigend sortiert nach ihrem Knotengrad in
8
eingef¨ugt. Der gesamte
Prozeß wird so lange wiederholt bis
8
leer ist.
Sei wieder
die Numerierung und
`
die aus
abgeleitete Permutationsmatrix. Durch die
Vorgehensweise wird f¨ur benachbarte Knoten
b
,
A
mit
?
b
CQ
9
(?BADC
die Differenz
?BADC
?
b
C
minimiert. Dies f¨uhrt wiederum zu einer Minimierung der Bandweite von Zeile
?¹ADC
in
`
`
$
,
denn es gilt
0
?`
`
$
C
?BADC
§
.
(?
b
C
6
bg
æMèé2ê?¹ADC
;:
AW¤
. In [99] beweisen Liu und
Sherman, daß durch Umdrehen des Cuthill-McKee-Orderings das Profil niemals vergr¨oßert, son-
dern in vielen F¨allen sogar weiter verkleinert wird. Dieser Effekt wurde erstmals vonGeorge [47]
beobachtet. Das so modifizierte Ordering heißt Reverse-Cuthill-McKee-Ordering.
2.3. Klassische Ordering-Verfahren
21
Die Profil-Methode hat jedoch einen entscheidenden Nachteil. Gilt n¨amlich
-
{
?B`
`
$
CQî}
f¨ur alle Zeilen
}
É
0434343¡0
, so kann man leicht zeigen (vgl. George und Liu [53]), daß un-
abh¨angig von der Anzahl der Elemente
#
im Profil von
`
`
$
das Profil von
'
:
'
$
voll
besetzt ist. Die Bedingung ist beispielsweise erf¨ullt, wenn
irreduzibel ist und
`
mit Hilfe des
Cuthill-McKee-Algorithmus berechnet wird.
Obwohl die im n¨achsten Abschnitt vorgestellten Bottom-up- und Top-down-Methoden signi-
fikant bessere Orderings produzieren, werden auch heute noch in vielen kommerziellen Anwen-
dungen Algorithmen zur Profilminimierung eingesetzt. Dies liegt haupts¨achlich daran, daß viele
der in der numerischen Praxis auftretenden Matrizen bereits eine Bandstruktur besitzen. Da bei
Verwendung eines Profil-Orderings die Bandstruktur w¨ahrend der Faktorisierung erhalten bleibt,
k¨onnen einfachere Datenstrukturen benutzt werden. Hierdurch reduziert sich der Aufwand bei
der Implementierung eines numerischen Algorithmus erheblich.
Der Entwicklung verbesserter Algorithmen zur Profilminimierung wird daher auch heute
noch viel Aufmerksamkeit geschenkt. Neben den klassischen Minimierungsverfahren basieren
auch viele neuere Algorithmen auf einer Breitensuche. Zu den klassischen Verfahren geh¨oren der
oben beschriebenen Cuthill-McKee-Algorithmus sowie die Algorithmen von King [82], Gibbs-
King [57] und Gibbs-Poole-Stockmeyer [58]. Zu den auf Breitensuche basierenden neueren Ver-
fahren geh¨oren der Sloan-Algorithmus [135] sowie die von Duff et al. [38] und Kumfert und
Pothen [85] vorgestellten Erweiterungen des Sloan-Algorithmus. Weitere state-of-the-art Algo-
rithmen basieren auf Spektral-Verfahren (vgl. Barnard et al. [18] und Paulino et al. [106]) oder
Multilevel-Verfahren (vgl. Boman und Hendrickson [22]). In dieser Arbeit werden wir nicht
n¨aher auf die Profil-Methode eingehen.
2.3.2 Die Bottom-up- und die Top-down-Methode
Die Bottom-up-Methode benutzt die in Abschnitt 2.2 vorgestellten Eliminationsgraphen, um ein
Ordering zu berechnen. Basierend auf dem aus
abgeleiteten Graphen
Ó
wird nach den Regeln
von Parter und Rose eine Sequenz von Eliminationsgraphen
Ó
5
,
S
0s34343/0
,
Ó
j
ò
, ge-
neriert. Dabei ist entscheidend, nach welcher Vorschrift der beim ¨
Ubergang von
Ó
5
.
nach
Ó
5
zu eliminierende Knoten ausgew¨ahlt wird. Zu den bekanntesten Auspr¨agungen der Bottom-up-
Methode geh¨ort der von Tinney und Walker [139] vorgestellte Minimum-Degree-Algorithmus.
Hierbei wird aus
Ó
5
.
ein Knoten
A
mit minimalem Grad entfernt, damit die in
Ó
5
entstehende
Clique m¨oglichst klein ist. Der Minimum-Degree-Algorithmus geht zur¨uck auf eine von Marko-
witz [102] vorgeschlagene Pivotsuche zur L¨osung linearer Gleichungssysteme mit unsymmetri-
scher Koeffizientenmatrix.
Genaugenommen ist die Anzahl der in
Ó
5
einzuf¨ugenden Kanten nicht von der Gr¨oße der
entstehenden Clique abh¨angig, sondern von der Anzahl der nicht durch eine Kante verbundenen
Knoten in der Nachbarschaft des eliminierten Knotens. Man nennt diesen Wert die Unzul¨
ang-
22
Kapitel 2. Grundlagen
lichkeit (deficiency) des eliminierten Knotens. Formal ist die Unzul¨anglichkeit eines Knotens
A
definiert durch
èÎÞ
=<
ê
?BADC
F
¤ b0
>
?
b0
>
g
æMèé
ê
?BADC
0bg
æèé
ê
?
CWF
. Bei dem von Ro-
se [118] vorgeschlagenen Minimum-Deficiency- oder Minimum-Local-Fill-Algorithmus wird aus
Ó
5
.
ein Knoten
A
entfernt, f¨ur den
è%Þ
6<
ê
?¹AÎC
minimal ist. In Kapitel 4 werden wir noch ein-
mal n¨aher auf den Minimum-Degree- und den Minimum-Deficiency-Algorithmus eingehen und
weitere Auspr¨agungen der Bottom-up-Methode vorstellen.
Bei der Bottom-up-Methode wird das Ordering
von ”unten nach oben“ aufgebaut. Der
beim ¨
Ubergang von
Ó
5
.
nach
Ó
5
zu eliminierende Knoten wird dabei nach einem lokalen Kno-
tenauswahlverfahren bestimmt. Im Gegensatz dazu baut die Top-down-Methode das Ordering
von ”oben nach unten“ auf. Man bestimmt also zuerst diejenigen Knoten, die ganz zum Schluß
eliminiert werden. Eine weit verbreitete Auspr¨agung der Top-down-Methode ist der Nested-Dis-
section-Algorithmus von George und Liu [51]. Der Algorithmus geht zur¨uck auf ein von Ge-
orge [48] vorgestelltes Verfahren zur Numerierung spezieller quadratischer Gitter. Diese Gitter
heißen Gitter mit 9-Punkte-Stern und werden in Kapitel 3 genauer betrachtet.
Der Nested-Dissection-Algorithmus von George und Liu ist ein rekursiver Algorithmus mit
Parametern
,
und
@
. Auf Eingabe eines ungerichteten Graphen
Ó
?Ô
07Õ
C
und einer Zahl
A
arbeitet der Algorithmus wie folgt: Gilt
FVÔ+FÍQ
,
, so werden die Knoten aus
Ô
in beliebiger
Reihenfolge von
A
FGÔkF
:
S
bis
A
numeriert. Anschließend wird
A
A
FVÔkF
gesetzt. Im Falle
FGÔcF%ª*
,
wird ein Knotenseparator
(
bestimmt, durch dessen Entnahme
Ó
in zwei Teilgraphen
Ó@?
º
C
und
Ó@?
B
îC
zerf¨allt mit
Ô
(C:
º
:CB
und
F
º
F
0
F
DB
TF&Ò
E@
FGÔcF
,
Q
E@
Q^S
. Die Knoten
aus
(
werden dann in beliebiger Reihenfolge von
A
F
F(
fF
:
S
bis
A
numeriert. Anschließend
wird
A
A
F
D(
fF
gesetzt und es erfolgt ein rekursiver Aufruf f¨ur jeden zusammenh¨angenden
Teilgraphen von
Ó¶?
º
C
und
Ó¶?
GB
îC
. Initial gilt
A
. Der Parameter
,
steuert die Termination,
und der Parameter
@
beeinflußt die Balance der generierten Partitionen.
È
Wegen der rekursiven Struktur des Algorithmus k¨onnen die Separatoren auf nat¨urliche Art
und Weise in Ebenen eingeteilt werden. Ein Separator
(
geh¨ort zur Ebene
}
, wenn
(
in Rekur-
sionsstufe
}
konstruiert wurde. Die Ebene null besteht aus dem initialen Separator. Eine Ebene
}
heißt h¨
ohere Ebene bez¨uglich einer Ebene
«
, falls
}Q«
. Die Ebene null ist die oberste Ebene.
Abbildung 2.4 zeigt ein nach George [48] berechnetes Ordering f¨ur ein
H
IH
-Gitter mit 9-
Punkte-Stern. Das Ordering kann auch mit Hilfe des Nested-Dissection-Algorithmus generiert
werden. Dazu wird beim ersten Aufruf der aus den Knoten
A
ö
,
A
.r.
,
A
.
KJ
,
A
Ð
,
A
Ï
,
A
Ï
L
,
A
ö
Ñ
be-
stehende Separator konstruiert. Die Knoten werden von
M
Ê
bis
MON
numeriert. Nach Entnahme
des Separators zerf¨allt der Graph in zwei Teile. Im linken Teil w¨ahlt man den Separator
Ar
,
A
Ï
,
A
ö
und im rechten Teil den Separator
A
Ñ
,
A
&P
,
A
J
. Beide Separatoren geh¨oren zur Ebene
eins. Die Knoten des ersten Separators werden von
S
QN
bis
ÉâÉ
numeriert, die des zweiten von
M
bis
M
É
. Das Verfahren wird rekursiv fortgesetzt bis nur noch ein einzelner Knoten ¨ubrig bleibt
R
In dieser Arbeit werden wir oft Partitionierungen durch eine F¨
arbung der Knoten darstellen. In diesem Zusam-
menhang enth¨alt
S
alle schwarz (black) und
T
alle weiß (white) gef¨arbten Knoten.
2.3. Klassische Ordering-Verfahren
23
8
4847
1
9
5 6
10 12 13
15 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35
36 37 38 39 40 41 42
43 44 45 46 49
49 49 22 30 25
3 8 6 48 24 29 27
2 7 5 23 28 26
19 20 21 46 40 41 42
10 18 13 45 31 39 34
12 17 15 44 33 38 36
11 16 14 43 32 37 35
47
1
v2
v3
v4v v 7
v
v v v 11
vv v 14
v
v16
v17
v
v
19
v
18 20
v
vv
vvv
vv
vvvvv
vvvvv
v
v
v
v
v v
vvvvvvv
Abb. 2.4: Georges Nested-Dissection-Ordering f¨ur ein
U$VWU
-Gitter mit 9-Punkte-Stern. Jeder Knoten
{
ist
mit
XZY.
{
[
beschriftet. Die Knoten aller zu einer Ebene geh¨orenden Separatoren sind im gleichen
Grauton dargestellt. Je h¨oher die Ebene, desto dunkler der Grauton.
(
,
S
). Georges Ordering ist also ein spezielles, auf quadratische Gitter zugeschnittenes Ne-
sted-Dissection-Ordering. Man spricht daher auch von Georges Nested-Dissection-Ordering f¨ur
quadratische Gitter.
Lipton et al. stellen in [90] eine leicht modifizierte Version des Nested-Dissection-Algorith-
mus von George und Liu vor. In ihrem verallgemeinerten (generalized) Nested-Dissection-Al-
gorithmus werden aus
Ó@?
º
C
und
Ó@?
B
îC
die Graphen
Ó@?
º
C
?
º
:(
0\Õ
?
º
:(
(C
íÕ
?
(
(CñC
und
Ó@?
B
îC
?
GB :I(
0\Õ
?
GB :I(
(C
*Õ
?
(
(C2C
konstruiert. Der Algorithmus wird dann rekursiv
f¨ur
Ó@?
º
C
und
Ó@?
B
îC
aufgerufen. Es gibt hier also immer genau zwei rekursive Aufrufe, wobei
die Separatorknoten in jeden Aufruf mit einbezogen werden. Sie werden jedoch kein zweites
Mal numeriert. Erf¨ullt der aus einer
Ë
-Matrix
abgeleitete Graph
Ó
ein
.
G\
-Separator-
Theorem [89], und wird der Graph nach dem verallgemeinerten Nested-Dissection-Ordering nu-
meriert, so gilt f¨ur den entsprechenden Cholesky-Faktor
'
nach Lipton et al.:
Ç/?B'C
,]
?¹
^5.2
âà/C
und
ÌÎ?'C
]
?B
Ï
\
C
. Benutzt man hingegen zur Numerierung von
Ó
den Nested-Dissection-
Algorithmus von George und Liu, so reicht die Existenz eines
.
G\
-Separator-Theorems allein
nicht aus, um einen Fill-in von h¨ochstens
]
?B
^52
âàZC
zu garantieren. Ist jedoch zus¨atzlich
Ó
planar oder von begrenztem Grad, so gelten auch hier die obigen Schranken (vgl. Gilbert und
Tarjan [61]). Der Nested-Dissection-Algorithmus von Lipton et al. spielt in der praktischen An-
wendung kaum eine Rolle. Dies liegt haupts¨achlich daran, daß der Algorithmus von George und
Liu f¨ur die wichtige Klasse der planaren Graphen die gleichen Ergebnisse liefert. Hinzu kommt,
24
Kapitel 2. Grundlagen
daß dieser Algorithmus sehr viel einfacher implementiert werden kann. Wenn wir im folgenden
von einem Nested-Dissection-Ordering sprechen, so meinen wir immer ein nach dem Algorith-
mus von George und Liu konstruiertes Ordering.
In der Literatur wird das Nested-Dissection-Verfahren wie folgt motiviert: Da die Knoten
der Teilgraphen
Ó¶?
º
C
und
Ó¶?
GB
îC
vor den Knoten des Separators
(
eliminiert werden, kann es
nach Lemma 2.1 in
Ó
keine Kante geben, die einen Knoten aus
Ó¶?
º
C
mit einem Knoten aus
Ó@?
B
îC
verbindet. In dem entsprechenden Cholesky-Faktor
'
gibt es daher Bl¨ocke, die nur aus
Nullelementen bestehen. Dies wird durch den Umstand erkauft, daß die Knoten aus
(
in den
meisten F¨allen eine Clique in
Ó
bilden, was wiederum zu einem vollbesetzten Block in
'
f¨uhrt.
Dazu muß
(
noch nicht einmal ein minimaler Knotenseparator sein wie in Satz 2.2 verlangt.
In der Tat sind die von einer Heuristik konstruierten Knotenseparatoren nur in wenigen F¨allen
minimale
p
0\
-Separatoren. Nach Lemma 2.1 bildet jedoch
(
bereits dann eine Clique, wenn
in
Ó@?
º
C
oder
Ó@?
B
îC
eine Zusammenhangskomponente
Ø
existiert, so daß jeder Knoten aus
(
zu mindestens einem Knoten aus
Ø
adjazent ist. Diese Bedingung wird in der Regel von allen
heuristisch berechneten Knotenseparatoren erf¨ullt.
Vor einer Implementierung der hier kurz beschriebenen Auspr¨agungen der Bottom-up- und
der Top-down-Methode, m¨ussen noch eine Reihe offener Fragen beantwortet werden. So stellt
sich beispielsweise bei der Implementierung des Minimum-Degree-Algorithmus die Frage, wel-
cher Knoten eliminiert werden soll, wenn mehrere Knoten den gleichen minimalen Grad besit-
zen. Die G¨ute eines Minimum-Degree-Orderings kann ganz entscheidend von einer solchen Tie-
Breaking-Strategie abh¨angen (vgl. Abschnitt 3.3). Bei der Implementierung des Nested-Dissec-
tion-Algorithmus steht die Entwicklung eines effizienten Verfahrens zur Bestimmung m¨oglichst
kleiner Knotenseparatoren im Vordergrund. In denzwei folgenden Kapiteln werden wir im Detail
auf diese offenen Fragen eingehen. Insbesondere werden wir, angeregt durch die Ergebnisse aus
Kapitel 3, ein Ordering-Verfahren entwickeln, in dem die Bottom-up-Methode und das Nested-
Dissection-Verfahren auf eine neue Art und Weise miteinander verkn¨upft sind.
Kapitel 3
Ordering-Verfahren f¨ur gitterf¨
ormige
Graphen
Die in der numerischen Praxis auftretenden Gleichungssysteme besitzen oftmals eine Koeffi-
zientenmatrix
, deren Nichtnullstruktur einen gitterf¨ormigen Graphen
Ó
induziert. Dies ist
beispielsweise bei der L¨osung des Dirichletschen Randwertproblems auf einem offenen, qua-
dratischen Gebiet
_
mittels finiter Differenzen der Fall (vgl. Frommer [43] oder Schwarz [134]).
Zur L¨osung des Randwertproblems ist eine Funktion
`
gesucht, so daß f¨ur einen Punkt
b
aus
_
mit Koordinaten
?
J0
)ÎC
gilt:
ba
`
?
J0
)%C
-
ë?
J0
)ÎC
0
falls
b
im Inneren von
_
liegt
0
`
?
J0
)ÎC
=Î0
falls
b
auf dem Rand von
_
liegt
3
(3.1)
Dabei bezeichnet das Symbol
a
den Laplace-Operator. Um
`
numerisch zu approximieren, er-
setzt man (3.1) mittels einer geeigneten Diskretisierung durch ein lineares Gleichungssystem.
Beim Differenzenverfahren wird dazu ein
-Gitter auf das quadratische Gebiet
_
projiziert
(vgl. Abschnitt 1.1). Man l¨ost jetzt (3.1) nur noch f¨ur solche Punkte aus
_
, die mit einem Knoten
des Gitters zusammenfallen. Bezeichne
?
{
0
)
©
C
die Koordinaten desjenigen Punktes aus
_
, der
mit dem Gitterknoten
?B}
0
«DC
,
ScÒ}
0
«Ò
, zusammenf¨allt. Bei einer Diskretisierung mit einem
5-Punkte-Stern ist der Funktionswert
ba
`
?
{
0
)
©
C
eines inneren Punktes
?
{
0
)
©
C
,
S¬Qí}
0
«
0
Q
,
abh¨angig von den Werten
`
?
{
.
0
)
©
C
,
`
?
{
6&.
0
)
©
C
,
`
?
{
02
©
.
C
und
`
?
{
0
)
©
6&.
C
. Die entsprechen-
den Gitterknoten liegen
:
-f¨ormigum
?B}
0
«DC
und bilden zusammen mit
?¹}
0
« C
einen 5-Punkte-Stern.
Wird zur Diskretisierung ein 9-Punkte-Stern benutzt, so ist
ca
`
?
{
0
)
©
C
zus¨atzlich abh¨angig von
`
?
{
.
0
)
©
.
C
,
`
?
{
6&.
0
)
©
.
C
,
`
?
{
.
0
)
©
6&.
C
und
`
?
{
6&.
0
)
©
6&.
C
. Die zus¨atzlichen Gitterknoten lie-
gen
-f¨ormig um
?¹}
0
« C
. Alle Knoten zusammen bilden mit
?B}
0
« C
einen 9-Punkte-Stern. In beiden
F¨allen kann basierend auf den Abh¨angigkeiten ein lineares Gleichungssystem aufgestellt werden.
Dieses Gleichnungsystem enth¨alt f¨ur jeden Knoten des Diskretisierungsgitters genau eine Glei-
chung (die sogenannte Laplace-Gleichung). Die Koeffizientenmatrix
ist also eine
-
Matrix. Im ersten Fall induziert
ein zu dem Diskretisierungsgitter isomorphes
d
-Gitter
Ó
25
26
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
mit
Ô
q
?¹}
0
« C
6
wSÒ}
0
«¶Ò
und
Õîq
?2?¹}
.
0
«
.
C
0
?¹}L
0
«41CñC
6
?B}
.
0
«
.
C
0
?B}
0
«41C
g
Ô
0
F }
.
}LâF
:
F «
.
«4âF
S
. Im zweiten Fall enth¨alt
Ó
zus¨atzlich die Kanten
?ñ?B}
.
0
«
.
C
0
?¹}L
0
«4C2C
~?¹}
.
0
«
.
C
0
?¹}L
0
«4C
g
Ô
0
F }
.
}LMF
S
und
F «
.
«4âF
SM
. Das erste Gitter heißt Gitter mit 5-Punkte-Stern, das zweite
Gitter mit 9-Punkte-Stern.
In diesem Kapitel betrachten wir Ordering-Verfahren f¨ur
d
!!
-Gitter mit 5-Punkte- bzw.
9-Punkte-Stern. Das Kapitel ist wie folgt gegliedert: In Abschnitt 3.1 stellen wir einige wich-
tige, aus der Literatur bekannte Ergebnisse bez¨uglich der Numerierung gitterf¨ormiger Graphen
vor. Alle Aussagen gelten dabei sowohl f¨ur Gitter mit 5-Punkte-Stern als auch f¨ur Gitter mit 9-
Punkte-Stern. In Abschnitt 3.2 pr¨asentieren wir ein verbessertes Nested-Dissection-Ordering f¨ur
quadratische Gitter mit 5-Punkte-Stern. Basierend auf einer genauen Analyse des verbesserten
Orderings geben wir ein allgemeines Kriterium zur Charakterisierung eines guten Orderings an.
In Abschnitt 3.3 zeigen wir, daß die gleichen Verbesserungen auch mit Hilfe eines Bottom-up-
Orderings erreicht werden k¨onnen. Wir benutzen dazu ein Minimum-Degree-Ordering mit einer
speziellen Tie-Breaking-Strategie.
3.1 Literatur¨ubersicht
Wird f¨ur die Numerierung eines
d
¬
-Gitters mit
d
Ò
ein Algorithmus zur Profilminimierung
benutzt, so ben¨otigt man f¨ur die Berechnung des Choleky-Faktors mindestens
d
Ï
:
e]
?
d
/C
Multiplikations- und Additionsoperationen. Der Choleky-Faktor enth¨alt dabei mindestens
d
:
]
?
Gd
%ZC
von null verschiedene Subdiagonalelemente (vgl. George und Liu [53]). Eine weitere
Reduzierung des Fill-in bzw. der Zahl der ben¨otigten Operationen kann – wenn ¨uberhaupt – nur
mit komplexeren Ordering-Verfahren erreicht werden. Bei dem von George [49] vorgestellten
One-Way-Dissection-Verfahren wird das
d
-Gitter zun¨achst durch vertikale Separatoren in
etwa gleich große Bl¨ocke zerteilt. Danach werden die Knoten eines jeden Blocks zeilenweise
numeriert. Zum Schluß werden die Separatorknoten numeriert. Man beginnt dazu mit den Knoten
des am weitesten links stehenden Separators. Sind alle Knoten dieses Separators numeriert (die
Reihenfolge spielt dabei keine Rolle), so f¨ahrt man mit den Knoten des rechts davon stehenden
Separators fort. Auf diese Weise werden die Separatoren von links nach rechts wie bei einem
Profil-Ordering durchnumeriert. George zeigt, daß in Abh¨angigkeit von den Dimensionen
d
und
die Zahl der Bl¨ocke so gew¨ahlt werden kann, daß f¨ur die Berechnung des Cholesky-Faktors
nur noch
f
4
X
Ê
d
Ð
\
:
g]
?
d
/C
Operationen notwendig sind.
Mit Hilfe des Nested-Dissection-Verfahrens kann die Zahl der ben¨otigten Multiplikations-
und Additionsoperationen weiter reduziert werden. Wir betrachten dazu zun¨achst ein quadrati-
sches
i
-Gitter. Wird dieses Gitter nach Georges Nested-Dissection-Verfahren numeriert, so
ben¨otigt man f¨ur die Berechnung des Cholesky-Faktors
h
É
N
¤X
iM
É
Ï
:
,]
?B
52
âà(ZC
Operationen.
Der Cholesky-Faktor enth¨alt dabei
Ê
SlX
iM
(
5.2
Mà
:
j]
?B
C
von null verschiedene Elemente (vgl.
George und Liu [53]). Die Numerierung eines
d
i
-Gitters mit
d
Qô
kann nun auf die Nume-
3.1. Literatur¨ubersicht
27
rierung mehrerer quadratischer Gitter zur¨uckgef¨uhrt werden. Im einfachsten Fall wird das
d
¸R
-
Gitter (
d
ËÒõ/X
É
) zun¨achst rekursiv durch vertikale Separatoren in
/X
kd
quadratische Gitter mit
Seitenl¨ange
d
geteilt. Anschließend werden in den quadratischen Gittern die Separatoren wie
von George beschrieben konstruiert. F¨ur die Berechnung des Cholesky-Faktors sind dann ins-
gesamt
S
É
M
X
Ê
d
:
]
?
Gd
Ï
C
Operationen notwendig. Rose und Whitten [120] beobachteten, daß
sich der Aufwand zur Berechnung des Cholesky-Faktors weiter verringern l¨aßt, wenn die ober-
sten
ZX
kd
S
vertikalen Sepratoren nicht entsprechend ihrer Rekursionstiefe, sondern einfach von
links nach rechts wie beim One-Way-Dissection-Ordering durchnumeriert werden. Zur Berech-
nung des Cholesky-Faktors werden dann nur noch
SâS
É
X
Ê
d
:
l]
?
d
Ï
C
Operationen ben¨otigt. Im
Fall
d
Ò/X
É
liefert also die Kombination mit einem Profil-Ordering bessere Ergebnisse als ein
reines Nested-Dissection-Ordering. Wir werden auf diesen Effekt in Abschnitt 4.1.4 noch einmal
genauer eingehen.
Bhat et al. zeigen in [19], daß durch eine geschickte Auslegung des
d
R
-Gitters,
d
QË
, mit
quadratischen Gittern die Zahl der ben¨otigten Operationen weiter reduziert werden kann. Auch
sie benutzen einen Hybrid-Ansatz. F¨ur die Numerierung der quadratischen Gitter wird Georges
Nested-Dissection-Verfahren benutzt. Anschließend werden die verbleibenden Separatorknoten
mit Hilfe eines Profil-Verfahrens numeriert. Bhat et al. zeigen, daß bei Verwendung ihres Local-
Nested-Dissection-Verfahrens nur noch
h
É
N
¤X
Êâ
d
h
É
N
¤XDS
k
d
Ï
:
e]
?
d
%
^5.2
Mà
Wd
PC
Operationen
f¨ur die Berechnung des Cholesky-Faktors notwendig sind. Setzt man in der Formel
d
, so
erh¨alt man interessanterweise wieder
h
É
N
¤X
iM
É
Ï
:
j]
?¹
52
âà(ZC
, also den gleichen Aufwand wie
bei Georges Nested-Dissection-Verfahren f¨ur quadratische Gitter.
Nach Hoffman et al. [74] ist Georges Nested-Dissection-Ordering f¨ur quadratische Gitter
asymptotisch optimal. Eliminiert man n¨amlich nacheinander die Knoten eines
-Gitters, so
tritt unweigerlich der Fall ein, daß zum ersten Mal eine Zeile oder Spalte des Gitters nur noch
einen nicht eliminierten Knoten
A
enth¨alt. Man kann nun zeigen, daß in dem entsprechenden
Eliminationsgraphen der Knoten
A
zu mindestens
S
Knoten benachbart ist. Diese
S
Knoten bilden zusammen mit
A
eine Clique der Gr¨oße
in dem aufgef¨ullten Graphen. F¨ur die
Berechnung des Cholesky-Faktors sind demnach mindestens
]
?¹
Ï
C
Multiplikations- und Addi-
tionsoperationen notwendig.
Eine untere Schranke f¨ur den Fill-in kann wie folgt abgeleitet werden (vgl. wieder Hoffman
et al. [74]): Jedes
~
-Gitter enth¨alt
?B
:
SlC
viele Teilgitter der Gr¨oße
R
,
É
0434343/0
.
Da der aufgef¨ullte Graph nach Satz 2.2 chordal ist, muß in jedem
"
-Teilgitter eine Kante
vorhanden sein, die zwei gegen¨uberliegende Seiten des Teilgitters verbindet. Man sagt, daß diese
Kante das Teilgitter zerst¨ort. Da eine solche Kante maximal
Teilgitter der Gr¨oße
;ä
zerst¨oren
kann, enth¨alt der aufgef¨ullte Graph mindestens
°
j5
¯
j
5\6&.
nm
5ª
po
j
Kanten, wobei
o
j
die
-te Harmonische Zahl ist. Bezeichne
q
die Euler-Konstante (
q
#Î3
r
HkH
É
S
34343
), dann
gilt (vgl. z.B. Knuth [83]):
o
j
5.
:
q
:
+]
?SNX/C
. Damit gibt es in dem Cholesky-Faktor
mindestens
]
?B
52
âàZC
von null verschiedene Elemente.
28
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
S1
S2
S3
Abb. 3.1: Links die
s
-f¨ormige Anordnung der Separatoren bei dem von George vorgeschlagenen Nested-
Dissection-Ordering f¨ur ein quadratisches Gitter mit Seitenl¨ange
tvuxwQy{z}|
,
~ul
. Rechts die
V
-f¨ormige Anordnung der Separatoren in dem modifizierten Nested-Dissection-Ordering. Die
Seitenl¨ange des quadratischen Gitters betr¨agt hier
t!uxwQy4sl|
.
Benutzt man f¨ur die Numerierung eines
-Gitters ein Minimum-Degree-Verfahren, so
h¨angt die G¨ute des Orderings ganz entscheidend von der verwendeten Tie-Breaking-Strategie
ab. Berman und Schnitger geben in [21] ein Minimum-Degree-Ordering an, durch das in dem
Cholesky-Faktor ein Fill-in von
]
?B
D
ù
ö
C
erzeugt wird. F¨ur die Berechnung des Cholesky-
Faktors werden dabei
]
?¹
Ï
D
ù
ö
C
Multiplikations- und Additionsoperationen ben¨otigt. Bei einem
Minimum-Degree-Ordering mit schlechter Tie-Breaking-Strategie kann also der Fill-in und die
Zahl der ben¨otigten Operationen asymptotisch h¨oher sein als bei Georges Nested-Dissection-
Ordering.
3.2 EinverbessertesNested-Dissection-Verfahrenf¨urquadra-
tische Gitter
Die in Abbildung 3.1(links) dargestellte
:
-f¨ormige Anordnung der Separatoren in einem qua-
dratischen Gitter ist charakteristisch f¨ur Georges Nested-Dissection-Ordering. Handelt es sich
um ein Gitter mit 5-Punkte-Stern, so kann diese durch eine 45 Grad Drehung ¨uberf¨uhrt wer-
den in eine
-f¨ormige Anordnung (siehe Abbildung 3.1(rechts)). Im folgenden zeigen wir, daß
dadurch der Fill-in und die Zahl der ben¨otigten Operationen in etwa halbiert wird.
Sei also
Ó
ein
!
-Gitter mit 5-Punkte-Stern und
É
y
:
S
. Weiter sei
`
die aus dem
modifizierten Nested-Dissection-Ordering abgeleitete Permutationsmatrix. Im folgenden wollen
wir die Anzahl der Subdiagonalelemente
=
im Cholesky-Faktor
'
von
`
`
$
und die Anzahl
3.2. Ein verbessertes Nested-Dissection-Verfahren f¨ur quadratische Gitter
29
der zur Faktorisierung ben¨otigten Operationen genau berechnen. Als Hilfsmittel dient uns dabei
das folgende Lemma (vgl. auch George [48]).
Lemma 3.1 Sei
ein Nested-Dissection-Ordering der Knoten
Ô
des Graphen
Ó
und
(
Ö
Ô
ein
minimaler Knotenseparator. Sei weiter angenommen, daß eine Menge
e
Ö
Ô
(
existiert mit
@æMèé
ê
?BADC
(
e
f¨
ur alle
A
g
(
. Es gelte
F
D(
äF
und
F e
¡F
z
. Dann betr¨
agt die Anzahl
der Subdiagonalelemente
=
in den zu
(
geh¨
orenden Spalten des Cholesky-Faktors
-
ë?
â0
z
C
S
É
?
SlC
:
z
3
Zur Faktorisierung dieser Spalten werden
?
â0
z
C
S
Ê
Ï
:
S
É
:
z
:
z
:
z
Multiplikations- und Additionsoperationen ben¨
otigt.
Beweis: Sei
(
A
.
0434343¡0
A
®
. Da
ein Nested-Dissection-Ordering ist, k¨onnen wir an-
nehmen, daß
?¹A
{
6&.
C
?¹A
{
C
:
S
f¨ur
}
S
04343s3/0
@
S
. Aufgrund der Minimalit¨at von
(
bilden die Knoten
A
.
0434343Z0
A
®
eine Clique in
Ó
(vgl. Satz 2.2) und es gilt:
@æMèé
ê
?BA
{
C
A
{
6&.
04343s3Z0
A
®
:
e
f¨ur
}
S
0s34343/0
. Aus (2.10) folgt dann
Ç/?B'(È
¢
C
w
}
:
z
. Die Anzahl
der Subdiagonalelemente
*
in den Spalten
?BA
.
C
0s34343Z0
?¹A
®
C
berechnet sich daher zu
®
{
¯
.
Ç¡?'
È
¢
%
C
®
{
¯
.
}
:
z
-
ë?
¤0
z
C
3
Nach (2.6) und (2.7) verursacht die Faktorisierung der Spalten
?BA
.
C
0s34343/0
(?BA
®
C
S
É
®
{
¯
.
?
}
:
z
Cs?
}
:
z
:ËÊ
C
:
S
É
®
{
¯
.
?
w
}
:
z
Cs?
}
:
z
:
SNC
?
â0
z
C
Multiplikations- und Additionsoperationen.
F¨ur das neue Nested-Dissection-Ordering werden zun¨achst die in Abbildung 3.1(rechts) dar-
gestellten Separatoren
(
.
0
(
¡
und
(
Ï
konstruiert.
(
.
ist der initiale Seprator (Ebene 0) und besteht
aus
É
y
:
S
Knoten. Die Separatoren
(
¡
und
(
Ï
(Ebene 1) bestehen aus jeweils
É
y
.
Knoten. Alle
drei Separatoren sind minimal. Da alle Knoten, die nicht zu
(
.
0
(
¡
oder
(
Ï
geh¨oren, vor den
Knoten aus
(
.
0
(
¡
0
(
Ï
eliminiert werden, kann mit Hilfe von Lemma 2.1 leicht gezeigt werden,
daß f¨ur einen Knoten
A
g
(
¡
(bzw.
A
g
(
Ï
) gilt
@æMèé2ê
D?BADC
(
¡
(
.
(
@æMèéê
%?¹AÎC
(
Ï
(
.
).
Des weiteren gilt
@æMèé
ê
?BADC
(
.
ò
f¨ur alle
A
g
(
.
. Es folgt
e
m
e
b
ù
(
.
und
e
b
ò
.
Damit betr¨agt die Anzahl der Subdiagonalelemente
²
in den letzten
É
y
6&.
:
S
Spalten nach
Lemma 3.1:
-
ë?F
D(
¡F
0
F
F(
.
FVC
:
-
ë?\F
F(
Ï
F
0
F
F(
.
FGC
:
-
?F
F(
.
F
0\
C
É
-
ë?
É
y
.
0
É
y
:
SNC
:
-
ë?
É
y
:
S
0\
C
H
M
É
y
:
É
y
3
(3.2)
30
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
Zur Faktorisierung dieser Spalten werden
É
Ê
S
É
É
Ï
y
:
É
S
M
É
y
:
H
Ê
É
y
(3.3)
Multiplikations- und Additionsoperationen ben¨otigt. Nach Entnahme der Separatoren
(
.
0
(
¡
und
(
Ï
entstehen vier zusammenh¨angende Teilgraphen in Form eines rechtwinkligen Dreiecks. Auf
den Katheten eines solchen Dreiecks liegen jeweils
É
y
.
und auf der Hypotenuse
É
y
S
Knoten.
Jedes Dreieck wird durch die in den Ebenen zwei und drei konstruierten Separatoren in zwei
kleinere Dreiecke und eine Raute zerteilt. Auf den Katheten der Dreiecke und den Seiten der
Raute liegen jeweils
É
y
Knoten. In den darauf folgenden Rekursionsstufen werden Dreiecke
und Rauten durch Entnahme der
-f¨ormig angeordneten Separatoren in immer kleinere Dreiecke
und Rauten zerteilt (vgl. Abbildung 3.1 (rechts)). Die Rekursion stoppt, wenn ein Dreieck aus nur
noch vier und eine Raute aus nur noch f¨unf Knoten besteht.
Bezeichne
{
ein Dreieck, auf dessen Katheten jeweils
É
{
Knoten liegen. Weiter sei
2Þ
?
{
C
die Menge der Knoten, durch dessen Entnahme
{
in zwei kleinere Dreiecke und eine Raute
zerf¨allt, wobei auf jeder Kathete eines kleineren Dreiecks und auf jeder Seite der Raute
É
{
.
Knoten liegen. Wir wollen jetzt die Anzahl der Subdiagonalelemente
in den zu
2Þ
?
{
C
geh¨orenden Spalten und die Anzahl der zur Faktorisierung dieser Spalten ben¨otigten Operatio-
nen berechnen. Abbildung 3.2(links) zeigt ein Dreieck
{
f¨ur
}
õÊ
. Die grau eingezeichneten
Separatoren
8
.
und
8
bilden die Menge
ñÞ
?
'
{
C
. Das Dreieck wird von den schraffiert einge-
zeichneten Knotenmengen
Ø
.
0
Ø
und dem Knoten
b
umrandet. Diese Knoten geh¨oren zu Se-
paratoren, die in einer h¨oheren Ebene konstruiert wurden. In
{
werden zuerst die Knoten des
Separators
8
.
und anschließend die des Separators
8
eliminiert. Beide Separatoren sind mini-
mal. Mit
e
$
8
:
ËØ
.
:
b
und
e
$
m
Ø
.
:
ËØ
:
b
betr¨agt die Anzahl der von null
verschiedenen Subdiagonalelemente in den zu
2Þ
=
?
'
{
C
geh¨orenden Spalten nach Lemma 3.1:
-i
?¹}rC
-
ë?\F
8
.
F
0
F
8
F
:
FØ
.
F
:
SNC
:
-
ë?F
8
MF
0
FÙØ
.
F
:
FÙØMF
:
SNC
3
In
{
gilt nun:
F
8
.
F
É
{
.
S
,
F
8
âF
É
{
.
,
FØ
.
F
*Ê
É
{
.
und
FØ F
É
{
.
. Daraus folgt:
-i
?¹}rC
-
?
É
{
.
S
0
M
ð
É
{
.
:
SNC
:
-
ë?
É
{
.
0
M
É
{
.
:
SNC
N
M
É
{
É
É
{
3
(3.4)
Zur Faktorisierung dieser Spalten werden
?B}C
S
S
É
É
Ï
{
:
S
É
É
{
É
Ê
É
{
(3.5)
Multiplikations- und Additionsoperationen ben¨otigt. Bezeichne jetzt
{
eine Raute, auf dessen
Seiten jeweils
É
{
Knoten liegen. Weiter sei
2Þ
=
?
K
{
C
die Menge der Knoten, durch dessen Entnah-
me
{
in vier kleinere Rauten zerf¨allt, wobei auf jeder Seite einer kleineren Raute
É
{
.
Knoten
liegen. Abbildung 3.2(rechts) zeigt eine Raute
{
f¨ur
}
*Ê
. Die grau eingezeichneten Separato-
ren
8
Ï
,
8
ö
und
8
Ð
bilden die Menge
2Þ
=
?
K
{
C
. In der Raute werden zuerst die Knoten aus
8
Ï
028
ö
3.2. Ein verbessertes Nested-Dissection-Verfahren f¨ur quadratische Gitter
31
U1
U
2
T1
T2
U3
T5
U4
T3
T4
u v
w
Abb. 3.2: Links ein Dreieck
{
, rechts eine Raute
{
,
u
. Die Knotenmengen
pY.
{
[
bzw.
p$Y.
{
[
sind grau dargestellt. Dreieck und Raute werden von den schraffiert eingezeichneten Knoten-
mengen und dem Knoten
, bzw. den Knoten
umrandet.
und anschließend die Knoten aus
8
Ð
eliminiert. Alle Separatoren sind minimal. Nach Lemma 3.1
betr¨agt die Anzahl der Subdiagonalelemente
*
in den zu
ñÞ
?
'
{
C
geh¨orenden Spalten
-¡
?¹}rC
-
ë?\F
8
Ï
F
0
F
8
Ð
F
:
FØ
Ï
F
:
É
C
:
-
ë?F
8
ö
F
0
F
8
Ð
F
:
FÙØ
ö
F
:
É
C
:
-
ë?\F
8
Ð
F
0
FÙØ
Ï
F
:
FÙØ
ö
F
:
É
C
3
In
{
gilt:
¢ £
Ï
¢4¤¥¢ £
ö
¢4¤
É
¦.§/¨©jª
,
¢ £¬«i¢i¤9
¦®©ª
und
¢°¯±4¢i¤²¢¯´³k¢4¤¶µ¸·
¦.§/¨©ª
. Daraus folgt:
¹º»'¼½
¤9b·
¹¾»
¦.§/¨
©ªk¿pÀ
·
¦.§/¨ ½;Á¹»
¦
©ªk¿>Â
·
¦.§/¨ ½
¤Ã
ª
µ
iÄ
¦
©ª
Ã
·
¦Á
ÃÆÅ
(3.6)
Zur Faktorisierung dieser Spalten werden
Ç
º»K¼½
¤²ÃOÈ
ª
ª
±
¦
©
ªÉÀ
È
µ
iÄ
¦
©ËÊ
Ã
¦Á
Ã
(3.7)
Multiplikations- und Additionsoperationen ben¨otigt. Im folgenden bezeichne
Ì
¦
die Anzahl der
Dreiecke, auf deren Katheten jeweils
iÍ
§?¦
Knoten liegen und
Î
¦
die Anzahl der Rauten, auf deren
Seiten jeweils
Í
§?¦
Knoten liegen. Es gilt
Ì
¨
¤ µ
und
Î
¨
¤ Ï
. Jedes Dreieck zerf¨allt durch
Entnahme der in Abbildung 3.2 dargestellten Separatoren in zwei kleinere Dreiecke und eine
Raute. Jede Raute wiederum zerf¨allt in vier kleinere Rauten. Daher gilt:
Ì
¦ÑÐ$¨
¤·Ì
¦
und
Î
¦ÑÐ$¨
¤,µÒ·Î
¦
Á
Ì
¦
Å
Durch Induktion zeigt man leicht:
Ì
¦
¤+
¦ÑÐ$¨
und
Î
¦
¤
ª
Ä
¦
©
¦
Å
(3.8)
32
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
Damit gibt es
Ì
Í
§/¨
¤9 Í
Dreiecke, die nur aus vier Knoten und
Î
Í
§/¨
¤
¨
Ó
Ä
Í
©
¨
Ä
Í
Rauten, die nur
aus f¨unf Knoten bestehen. In einem solchen Dreieck bilden die drei Knoten auf den Katheten eine
unabh¨
angige Menge, d.h. sie sind nicht durch eine Kante miteinander verbunden. Gleiches gilt
f¨ur die vier Knoten auf den Seiten einer Raute. In dem modifizierten Nested-Dissection-Orde-
ring werden zuerst die Knoten der unabh¨angigen Menge eliminiert und danach der verbleibende
Knoten. In den entsprechenden Spalten des Cholesky-Faktors gibt es
ª
Ê·
Í
Á
iµ^·Ô
ª
Â
iÄ
Í
©
ª
ÍÕ
¤
Ã
·Ä
Í
Á
Ã
·
Í
(3.9)
von null verschiedene Subdiagonalelemente. Zur Faktorisierung dieser Spalten werden
Â4Ö
·É
Í
Á
ª
È
À
·Ô
ª
Â
Ä
Í
©
ª
ÍÕ
¤94b·iÄ
Í
Á
Í
(3.10)
Multiplikations- und Additionsoperationen ben¨otigt. Mit Hilfe von (3.2), (3.4), (3.6), (3.8) und
(3.9) kann nun die Gesamtzahl der von null verschiedenen Subdiagonalelemente in
×
berechnet
werden. Es gilt:
Ø
»
×
½
¤
È
µ
Ä
Í
Á
Í
Á
Í
§
Ä
Ù
¦ÑÚ$¨
Ô
¦ÑÐ$¨
·
¹4Û»GÜ
©
¼Ý½;Á
Ô
ª
Ä
¦
©
¦
Õ
·
¹º»KÜ
©
¼Ý½
Õ
Á
Ã
·
Ä
Í
Á
Ã
·
Í
¤
Ã
ª
Â
Ä
Í
Ü
©
Ö
Ã
Â
Ä
Í
Á
ª4ª
·
Í
ÜÆÁ
Ã
ª
Í
Á
µ
Å
Die Gesamtzahl der zur Berechnung von
×
ben¨otigten Operationen betr¨agt nach (3.3), (3.5),
(3.7), (3.8) und (3.10):
Þ»
×
½
¤
Ã
ª
±
Í
Á
ª
µ
Ä
Í
Á
È
Ã
Í
Á
Í
§
Ä
Ù
¦ÑÚ$¨
Ô
¦ßÐ$¨
·
Ç
Ûà»GÜ
©
¼Ý½;Á
Ô
ª
Ä
¦
©
¦
Õ
·
Ç
º»GÜ
©
¼Ý½
Õ
Á
k· Ä
Í
Á
Í
¤
À
Ã
ª
È
±
Í
©
ªÉÀ
È
Â
Ä
Í
ÜÁ
Ã
Ö
Ã
Â
Ä
Í
©
ª
Ã
À
Í
Ü
©
µ?
ª
ªÉÂ
Í
Á
µ
Å
Wir haben damit gezeigt:
Satz 3.1 Wird zur Numerierung eines
á}âãá
-Gitter mit 5-Punkte-Stern das modifizierte Nested-
Dissection-Verfahren benutzt, so ben¨
otigt man f¨
ur die Berechnung des entsprechenden Choles-
ky-Faktors
À
Ã
ªä
È
¾á
±
Á¶åv»
á
Äæçkè
á
½
Multiplikations- und Additionsoperationen. Der Cholesky-
Faktor enth¨
alt dabei
Ã
ªä4Â
á
Ä/æçkè
á
Áéåv»
á
Ä
½
von null verschiedene Elemente.
Tabelle 3.1 zeigt noch einmal einen Vergleich zwischen Georges Nested-Dissection-Ordering
und dem modifizierten Nested-Dissection-Ordering. Werden die drei quadratischen Gitter mit
Seitenl¨ange
áC¤
ª
È
,
áê¤Ë ÊkÊ
und
á㤠Ê
ªkª
wie von George beschrieben numeriert, so ergeben
sich f¨ur
Ø
»
×
½
und
ÞÆ»
×
½
die in den Spalten 2 und 3 angegebenen Werte. Demgegen¨uber zeigen die
3.2. Ein verbessertes Nested-Dissection-Verfahren f¨ur quadratische Gitter
33
Á
-f¨ormige Separatoren
â
-f¨ormige Separatoren
á
Ø
»
×
½
äª
Ï
±
Þ»
×
½
äª
Ï4ë á
Ø
»
×
½
äª
Ï
±
Þ»
×
½
äª
Ï4ë
127 439 33 129 266 17
255 2235 291 257 1296 139
511 10900 2461 513 6153 1140
Tab. 3.1: Vergleich von
ìíïî¾ð
(in Tsd.) und
ñ{íïîð
(in Mio.) bei
ò
-f¨ormiger und bei
ó
-f¨ormiger Anordnung
der Separatoren. Im ersten Fall betr¨agt die Seitenl¨ange
ô
der Gitter 127, 255 und 511, im zweiten
Fall 129, 257 und 513.
Spalten 5 und 6 die Werte f¨ur
Ø
»
×
½
und
ÞÆ»
×
½
, wenn zur Numerierung der quadratischen Gitter
mit Seitenl¨ange
áI¤
ª
Ö
,
áI¤õ Ê
È
und
ál¤ Ê
ª
Ã
das modifizierte Nested-Dissection-Verfahren
benutzt wird. Die Werte f¨ur
Ø
»
×
½
sind in Tausend und die Werte f¨ur
ÞÆ»
×
½
in Millionen angege-
ben. Obwohl bei
â
-f¨ormiger Anordnung der Separatoren die Dimension der Koeffizientenmatrix
gr¨oßer ist, werden f¨ur die Berechnung von
×
nur etwa halb so viele Operationen ben¨otigt. Auch
die Zahl der von null verschiedenen Subdiagonalelemente in
×
ist nur noch etwa halb so groß.
Tabelle 3.2 zeigt, daß sich bei einer Halbierung von
ÞÆ»
×
½
auch die auf einem Computer
ben¨otigte Zeit zur Berechnung von
×
stark reduziert. Die in den Spalten 3 und 6 angegebene
Gesamtzeit (in Sek.) beinhaltet die Zeit zur Durchf¨uhrung der symbolischen und numerischen
Faktorisierung. F¨ur die numerische Berechnung von
×
wurde ein von uns entwickelter, auf der
Multifrontal-Methode (vgl. Duff und Reid [35, 36] oder Liu [97]) basierender Algorithmus ver-
wendet. Auf die symbolische und numerische Faktorisierung werden wir in Kapitel 5 noch ein-
mal n¨aher eingehen. Die Spalten 2 und 5 zeigen, daß die numerische Faktorisierung den gr¨oßten
Aufwand verursacht. Alle Zeitangaben wurden auf einer SUN Ultra mit 296 MHz UltraSPARC-
II Prozessor und zwei GByte Hauptspeicher ermittelt.
Im folgenden wollen wir untersuchen, wieso es bei einer
â
-f¨ormigen Anordnung der Sepa-
ratoren zu einer Reduzierung von
Ø
»
×
½
und
Þ»
×
½
kommt. Wir betrachten dazu eine Raute
ö
¦
mit Seitenl¨ange
¦
.
ö
¦
besteht aus
¦
¦
ÁË»
¦
©÷ª
½=»
¦
©÷ª
½
Knoten und wird von
µø·?
¦
Knoten
umrandet. Bei
Á
-f¨ormiger Anordnung der Separatoren entsteht analog zu
ö
¦
ein Quadrat
ù
¦
mit Seitenl¨ange
¦©eª
.
ù
¦
wird ebenfalls von
µ!·{
¦
Knoten umrandet, besteht jedoch aus nur
»
¦4©Cª
½=»
¦i©Cª
½
Knoten. Daher gibt es ungef¨ahr doppelt soviele Quadrate
ù
¦
wie Rauten
ö
¦
. Be-
zeichne
úû=ü
»
ù
¦
½
die Menge der Knoten, durch dessen Entnahme
ù
¦
in vier kleinere Quadrate mit
Seitenl¨ange
¦.§/¨©ª
zerf¨allt. Es gilt
¢&úûü
»
ù
¦
½
¢4¤²¢&úû=ü
»
ö
¦
½
¢
. Weiter bezeichne
¹ký¬»K¼Ý½
die Anzahl
der Subdiagonalelemente
þ¤eÏ
in den zu
úûü
»
ù
¦
½
geh¨orenden Spalten des Cholesky-Faktors und
Ç
ý$»K¼Ý½
die Anzahl der zur Faktorisierung dieser Spalten ben¨otigten Operationen. Man ¨uberlegt
sich leicht, daß gilt:
¹ký¬»K¼Ý½
¤
¹iº»K¼½
und
Ç
ý$»K¼Ý½
¤
Ç
º»K¼Ý½
Å
(3.11)
34
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
Á
-f¨ormige Separatoren
â
-f¨ormige Separatoren
á
num. Fakt. total
á
num. Fakt. total
127 0.70 0.86 129 0.44 0.57
255 3.12 3.86 257 1.85 2.28
511 22.95 26.24 513 13.60 16.58
Tab. 3.2: Vergleich der zur Berechnung von
î
ben¨otigten Zeit (in Sek.) bei
ò
-f¨ormiger und bei
ó
-f¨ormi-
ger Anordnung der Separatoren. Die Zeit zur Durchf¨uhrung der numerischen Faktorisierung ist
separat angegeben. Sie betr¨agt mehr als 95% der Gesamtzeit. Alle Zeitangaben wurden auf einer
SUN Ultra mit 296 MHz UltraSPARC-II Prozessor und zwei GByte Hauptspeicher ermittelt.
F¨ur die Berechnung von
Ø
»
×
½
und
ÞÆ»
×
½
bei
Á
-f¨ormiger Anordnung der Separatoren k¨onnen
wegen (3.11) weiterhin die Formeln (3.6) und (3.7) verwendet werden. Sie gehen jetzt jedoch
mit einem zus¨atzlichen Faktor von ungef¨ahr zwei in die Gesamtrechnung ein.
Aus der obigen Beobachtung kann ein allgemeines Kriterium zur Charakterisierung eines
guten Orderings abgeleitet werden. Sei wieder
ÿ
ein Ordering des Graphen
e¤
»
¿
½
,
¢
¢i¤,á
.
Des weiteren sei
eine Zahl mit
ª
²á
und
¯
¤
ÿ
»
½
. Die Menge
¯
enth¨alt also alle bis zu einem Zeitpunkt
eliminierte Knoten.
Eine Menge
¯
heißt Gebiet (domain) bez¨uglich
¯
, falls
»
½
ein zusammenh¨angen-
der Teilgraph von
ist und
»
½
©
¯
. Die Menge
!"
»
½
heißt Rand des Gebietes
. Wegen
»
½
©
¯
werden alle Knoten auf dem Rand von
nach den Knoten
aus
numeriert. Da
»
½
ein zusammenh¨angender Teilgraph von
ist, folgt aus Lemma 2.1
unmittelbar, daß
»
½
eine Clique in dem Eliminationsgraphen
#
und damit auch in dem
aufgef¨ullten Graphen
%$
bildet.
Von besonderem Interesse ist nun das Verh¨altnis von
¢
&
¢
zu
¢
»
½
¢
. Ist der Quotient
¢
&
}¢
ä
¢
»
½
¢
groß, so bedeutet dies, daß trotz Elimination vieler Knoten nur eine kleine Clique
entstanden ist. Der Eliminationsprozeß hat also einen geringen Fill-in verursacht. Daher ist die
G¨ute eines Orderings ganz entscheidend von der Form der im Laufe des Eliminationsprozesses
entstehenden Gebiete abh¨angig (vgl. auch Rothberg und Eisenstat [125]).
Sind in einem quadratischen Gitter mit 5-Punkte-Stern die Separatoren
Á
-f¨ormig angeordnet,
so treten im Verlauf des Eliminationsprozesses ¨uberwiegend Gebiete in Form eines Quadrates
auf. F¨ur ein Quadrat
ù
¦
mit Seitenl¨ange
¦®©ª
gilt:
¢ ù
¦
¢
¢
»
ù
¦
½
¢
¤
»
¦
©ª
½»
¦
©ª
½
µÒ·
¦
'
ª
µ
»
¦
©
½
Å
Demgegen¨uber treten bei einer
â
-f¨ormigen Anordnung der Separatoren ¨uberwiegend Gebiete in
Form einer Raute auf. F¨ur eine Raute
ö
¦
mit Seitenl¨ange
¦
gilt:
¢ ö
¦
¢
¢
»
ö
¦
½
¢
¤
¦
¦
Á+»
¦®©ª
½»
¦/©ª
½
µÒ·
¦
'
ª
»
¦
©ª
½
Å
3.3. Ein verbessertes Bottom-up-Verfahren f¨ur quadratische Gitter
35
Der Quotient ist hier also – bedingt durch die speziellen isoperimetrischen Eigenschaften des
Gitters – in etwa doppelt so groß.
3.3 Ein verbessertes Bottom-up-Verfahren f¨ur quadratische
Gitter
In diesem Abschnitt zeigen wir, daß die rautenf¨ormigen Gebiete auch mit Hilfe eines Bottom-
up-Verfahrens generiert werden k¨onnen. Wir benutzen dazu ein Minimum-Degree-Verfahren mit
einer Minimum-Deficiency-Tie-Breaking-Strategie. Besitzen also mehrere Knoten in einem Eli-
minationsgraphen
#
den gleichen minimalen Grad, so wird derjenige Knoten eliminiert, dessen
Unzul¨anglichkeit am geringsten ist. Um die Form der Gebiete schon w¨ahrend der Berechnung
des Orderings erkennen zu k¨onnen, wird jeder eliminierte Knoten im Gitter markiert. Ein Gebiet
wird dann von einer zusammenh¨angenden Menge markierter Knoten gebildet. Bereits im vor-
herigen Abschnitt haben wir gesehen, daß die Knoten auf dem Rand eines Gebietes eine Clique
bilden. Diese Cliquen entsprechen genau den im Laufe des Eliminationsprozesses entstehenden
Cliquen. Daher ist es m¨oglich, anhand der im Gitter eingezeichneten Gebiete den Grad eines
Knotens
im Eliminationsgraphen zu bestimmen.
Abbildung 3.3 zeigt in vier Schnappsch¨ussen die durch das spezielle Minimum-Degree-Or-
dering geformten Gebiete in einem
ªÉÀ
â
ªÉÀ
-Torus
È
. Die Gebiete werden dabei von den grau
unterlegten und bereits eliminierten Knoten gebildet. Wir haben einen Torus gew¨ahlt, da es in
einem Gitter aufgrund der Randknoten zu kleineren Verwerfungen bei der Bildung der Gebiete
kommt. Diese verursachen zwar nur eine geringe Verschlechterung des Orderings, erschweren
jedoch die Analyse erheblich. Perfekte rautenf¨ormige Gebiete werden in einem
áãâ á
-Torus mit
á ¤ Í
gebildet.
Wir wollen nun untersuchen, wie die Minimum-Deficiency-Tie-Breaking-Strategie die Bil-
dung der Gebiete beeinflußt. Da in einem Torus alle Knoten den Grad vier besitzen, k¨onnen wir
ohne Einschr¨ankung annehmen, daß der in Abbildung 3.3(a) eingezeichnete Knoten
als er-
stes eliminiert wird. Hierdurch entsteht ein Gebiet, das nur
enth¨alt. Abgesehen von den vier
zu
benachbarten Knoten, die eine Clique bilden, besitzen alle restlichen Knoten weiterhin den
Grad vier. Durch die entstandene Clique ist jedoch die Unzul¨anglichkeit der Knoten
(
¨
,
(
Ä
,
(
®±
und
(
/³
um eins geringer. Durch die Tie-Breaking-Strategie wird so erzwungen, daß als n¨achstes
ein Knoten aus
(
¨
¿
ÅQÅQÅ
¿
(
®³
)
eliminiert wird. Nach
á
Ä
ä
Eliminationsschritten entsteht so die
in Abbildung 3.3(a) dargestellte Anordnung der Gebiete. In dieser Anordnung liegen alle noch
nicht eliminierten Knoten auf den R¨andern von vier Gebieten. Jedes Gebiet besteht aus genau
einem (eliminierten) Knoten. Man ¨uberlegt sich leicht, daß nach weiteren
á
Ä
ä4Â
Eliminations-
schritten die in Abbildung 3.3(b) dargestellte Anordnung der Gebiete entsteht. Hier besitzen alle
*
Ein Torus ist ein Gitter mit zus¨atzlichen Wrap-Around-Kanten.
36
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
(b)
(a)
1
4
+
(c) (d)
2
D
1
,
D
v
u2
-
u
u
3
uw
v
u
Dv
Abb. 3.3: Die durch das spezielle Minimum-Degree-Ordering geformten Gebiete in einem
.0/
¾ó
1.0/
-Torus.
Der ¨
Ubersichtlichkeit halber ist die Bildung der Gebiete nur f¨ur den mittleren Teil des Torus
dargestellt. Dar¨uber hinaus wurde auf ein Einzeichnen der Wrap-Around-Kanten verzichtet.
3.3. Ein verbessertes Bottom-up-Verfahren f¨ur quadratische Gitter
37
Nested-Dissection Minimum-Degree mit Approximate-
â
-f¨ormige Separatoren Min.-Def.-Tie-Breaking Minimum-Degree
á
Ø
»
×
½
äª
Ï
±
Þ»
×
½
äª
Ïë
Ø
»
×
½
äª
Ï
±
ÞÆ»
×
½
äª
Ïë
Ø
»
×
½
äª
Ï
±
Þ»
×
½
äª
Ïë
129 266 17 287 18 346 27
257 1296 139 1386 146 1863 269
513 6153 1140 6547 1205 9834 2776
Tab. 3.3: Vergleich zwischen dem verbesserten Nested-Dissection-, dem speziellen Minimum-Degree-
und dem Approximate-Minimum-Degree-Ordering. Die Seitenl¨ange
ô
der Gitter betr¨agt jeweils
129, 257 und 513.
Knoten, die auf den R¨andern von zwei Gebieten liegen, den gleichen minimalen Grad. Dies gilt
insbesondere f¨ur die Knoten
(
,
und
2
. Ohne Einschr¨ankung sei angenommen, daß
als erster
Knoten eliminiert wird. Hierdurch werden die Gebiete
¨
und
Ä
verschmolzen, und es ent-
steht das in Abbildung 3.3(c) dargestellte rechteckige Gebiet
43
. Wegen der Clique
»
43
½
ist jetzt die Unzul¨anglichkeit von
(
geringer als die eines jeden anderen Knotens mit minima-
lem Grad. Insbesondere wird daher nicht
2
, sondern
(
als n¨achstes eliminiert. Durch die Tie-
Breaking-Strategie wird so erzwungen, daß die rechteckigen Gebiete mit ihrer langen Seite ein-
ander gegen¨uberliegen. In den folgenden Eliminationsschritten wird dann aus je zwei rechtecki-
gen Gebieten erneut ein rautenf¨ormiges Gebiet gebildet (vgl. Abbildung 3.3(d)). Mit Hilfe einer
Analyse ¨ahnlich der in Abschnitt 3.2 zeigt man:
Satz 3.2 Wird zur Numerierung eines
á â á
-Torus ein Minimum-Degree-Verfahren mit einer Mi-
nimum-Deficiency-Tie-Breaking-Strategie benutzt, so ben¨
otigt man f¨
ur die Berechnung des Cho-
lesky-Faktors
ª
µÊ
ä4Â
á
±
Á å »
á
Äæçkè
á
½
Multiplikations- und Additionsoperationen. Der Cholesky-
Faktor enth¨
alt dabei
Ã
ªä4Â
á
Äæçkè
á
Áéåv»
á
Ä
½
von null verschiedene Elemente.
Tabelle 3.3 zeigt noch einmal, daß bei dem speziellen Minimum-Degree-Verfahrender Fill-in
bzw. die Zahl der ben¨otigten Operationen etwas h¨oher ist als beim verbesserten Nested-Dissec-
tion-Verfahren. Ursache hierf¨ur sind die kleineren Verwerfungen bei der Bildung der Gebiete
am Rand des Gitters. Mit Hilfe der Minimum-Deficiency-Tie-Breaking-Strategie werden jedoch
im Vergleich zum Approximate-Minimum-Degree-Algorithmus von Amestoy et al. [1] sehr viel
bessere Orderings erzeugt. Der Approximate-Minimum-Degree-Algorithmus von Amestoy et al.
geh¨ort zu den effektivsten Ordering-Verfahren, die derzeit bekannt sind. Mit seiner Hilfe k¨onnen
qualitativ hochwertige Orderings in sehr kurzer Zeit berechnet werden. Der Algorithmus wird in
Abschnitt 4.1.2 kurz beschrieben.
38
Kapitel 3. Ordering-Verfahren f¨ur gitterf¨ormige Graphen
Kapitel 4
Ordering-Verfahren f¨ur beliebige Graphen
Im vorherigen Kapitel haben wir gesehen, daß Knotenseparatoren bei der Numerierung git-
terf¨ormiger Graphen eine wichtige Rolle spielen. Viele der speziell f¨ur diese Graphen entwickel-
ten Ordering-Verfahren benutzen in irgendeiner Form Georges Nested-Dissection-Algorithmus.
Demgegen¨uber werden Ordering-Verfahren, die auf der Bottom-up-Methode basieren, kaum be-
trachtet. Dies ist jedoch nicht verwunderlich, denn aufgrund der homogenen Struktur der Gra-
phen (fast alle Knoten besitzen den gleichen Grad) und der lokalen Struktur eines Bottom-up-
Algorithmus (der als n¨achstes zu eliminierende Knoten wird nach einem lokalen Knotenaus-
wahlverfahren bestimmt) h¨angt die G¨ute der generierten Orderings ganz entscheidend von der
verwendeten Tie-Breaking-Strategie ab. Eine Random-Tie-Breaking-Strategie allein reicht nicht
aus, um mit den speziellen Dissection-Verfahren konkurrieren zu k¨onnen. Im ung¨unstigsten Fall
erh¨alt man sogar ein Ordering, durch das ein asymptotisch h¨oherer Fill-in erzeugt wird (vgl.
Berman und Schnitger [21]).
Die Situation ¨andert sich jedoch v¨ollig, wenn Numerierungen f¨ur beliebige Graphen berech-
net werden m¨ussen. In diesen Graphen sind die ”guten“ Knotenseparatoren nicht a priori be-
kannt, sondern m¨ussen erst mit Hilfe eines geeigneten Verfahrens konstruiert werden. Da die
G¨ute eines Nested-Dissection-Orderings ganz entscheidend von der Gr¨oße der Knotenseparato-
ren abh¨angt, kommt dem Verfahren zur Bestimmung der Separatoren eine herausragende Bedeu-
tung zu. Bis Mitte der neunziger Jahre gab es keinen Nested-Dissection-Algorithmus, der f¨ur die
in der Praxis auftretenden, nicht gitterf¨ormigen Graphen konsistent bessere Orderings produzier-
te als ein Minimum-Degree-Algorithmus. Erst in den letzten Jahren gelang es mit dem Aufkom-
men leistungsf¨ahiger Algorithmen zur Bestimmung von Knotenseparatoren, die Vorherrschaft
der Bottom-up-Verfahren zu brechen.
Im Mittelpunkt dieses Kapitels steht die Entwicklung eines neuen Ordering-Verfahrens f¨ur
beliebige Graphen. Charakteristisch f¨ur das Verfahren ist eine enge Koppelung zwischen Bottom-
up- und Top-down-Methoden. Dabei werden die im Rahmen eines Top-down-Verfahrens kon-
struierten Knotenseparatoren als R¨ander der von einem unvollst¨andigen Bottom-up-Ordering ge-
39
40
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
bildeten Gebiete interpretiert. Im Umkehrschluß k¨onnen also Knotenseparatoren als eine Anein-
anderreihung von Randsegmenten aufgefaßt werden, die zu den Gebieten eines unvollst¨andigen
Eliminationsprozesses geh¨oren. Das neue Ordering-Verfahren zeichnet sich durch die folgenden
Besonderheiten aus:
5
Die Knotenseparatoren werden mit Hilfe eines speziellen Multilevel-Verfahrens konstru-
iert. Dabei wird zur Schrumpfung der Graphen ein Eliminationsprozeß benutzt, der dem
zur Berechnung eines Bottom-up-Orderings sehr ¨ahnlich ist.
5
Basierend auf den Knotenseparatoren wird nicht nur ein Bottom-up-Ordering generiert,
sondern mehrere. Das beste Ordering wird schließlich von dem Algorithmus ausgegeben.
Auf der einen Seite benutzen wir also Bottom-up-Techniken zur Konstruktion der Knotense-
paratoren, auf der anderen Seite dienen die Knotenseparatoren als ein Ger¨ust zur Generierung
mehrerer Bottom-up-Orderings. Es kommt so zu einer wechselseitigen Bereicherung der Metho-
den, wodurch sich die Qualit¨at der Orderings erheblich verbessert.
Dieses Kapitel ist wie folgt aufgebaut: Zun¨achst beschreiben wir in Abschnitt 4.1 die wichtig-
sten, aus der Literatur bekannten Algorithmen zur Numerierung beliebiger Graphen. Anschlie-
ßend stellen wir in Abschnitt 4.2 das neue Ordering-Verfahren vor. Im Vergleich zum Appro-
ximate-Minimum-Degree-Algorithmus von Amestoy et al. reduziert sich bei Verwendung des
neuen Verfahrens die Anzahl der zur Berechnung des Cholesky-Faktors ben¨otigten Operatio-
nen um durchschnittlich 42%. Schließlich stellen wir in Abschnitt 4.3 die Ordering-Bibliothek
PORD [131] vor und zeigen, wie das neue Verfahren in die Bibliothek eingebunden ist. Dar¨uber
hinaus vergleichen wir PORD mit einigen der zur Zeit m¨achtigsten Ordering-Codes. Hierzu
z¨ahlen das an der Universit¨at von Minnesota entwickelte Programm METIS [79] (Karypis und
Kumar), die an der Universit¨at von Bordeaux entwickelte Bibliothek SCOTCH [109] (Pellegri-
ni) sowie das bei Harwell-Boeing Information and Support Services entwickelte Programmpaket
SPOOLES [8] (Ashcraft und Grimes). F¨ur unseren Vergleich benutzen wir einen weit verbreite-
ten und frei verf¨ugbaren Satz von Benchmark-Matrizen. Die meisten dieser Matrizen stammen
aus der bekannten Harwell-Boeing-Collection [34], sowie aus der Sparse-Matrix-Collection [28]
von Tim Davis, Universit¨at von Florida.
4.1 Literatur¨ubersicht
Dieses Unterkapitel ist in f¨unf Teilabschnitte gegliedert. Zuerst stellen wir in 4.1.1 die Klasse der
Quotientengraphen vor. Diese Graphen spielen eine wichtige Rolle in unserem Ordering-Algo-
rithmus. In Abschnitt 4.1.2 beschreiben wir Technikenzur effizienten Implementierung des Mini-
mum-Degree-Algorithmus. Außerdem gehen wir n¨aher auf den Minimum-Deficiency-Algorith-
mus ein und pr¨asentieren einige interessante Knotenauswahlstrategien, die auf einer approxima-
tiven Berechnung der Unzul¨anglichkeit eines Knotens beruhen. In Abschnitt 4.1.3 beschreiben
4.1. Literatur¨ubersicht
41
wir kurz die wichtigsten Techniken zur Konstruktion der Knotenseparatoren in einem Nested-
Dissection-Algorithmus. Schließlich stellen wir in Abschnitt 4.1.4 bereits bekannte Ans¨atze zur
Kombination von Bottom-up- und Top-down-Methoden vor.
4.1.1 Quotientengraphen
Wie bereits in Abschnitt 2.3.2 erw¨ahnt, werden f¨ur die Berechnung eines Bottom-up-Orderings
die Eliminationsgraphen
1
,
7698
¿
ÅQÅQÅ
¿
á
ben¨otigt. Aus Effizienzgr¨unden ist es jedoch nicht
ratsam, die einzelnen Eliminationsgraphen explizit zu bilden. Mit Hilfe sogenannter Quotien-
tengraphen (quotient graphs, generalized element model) (vgl. Duff und Reid [35], Goerge und
Liu [53] oder Speelpenning [136]) k¨onnen die Graphen
1
sehr elegant dargestellt werden. Zur
Bezeichnung der Quotientengraphen verwenden wir kaligraphische Buchstaben.
Es sei angenommen, daß
#6
»
¿
½
aus
durch Elimination der Knoten
¯
:
entstanden ist, d.h.
6
<;
¯
und
<=
¯
>69?
. Der zu
1
geh¨orende Quotientengraph
@
A6
»
CB
¿
"D
½
enth¨alt die Knoten
B
E6GFHI;KJL
mit
FME6N
ist ein Gebiet bez¨uglich
¯
¿
JLE6NOP
Q
Å
(4.1)
In diesem Kontext heißt eine Menge
RFH
Cliquenelement (oder kurz Element) und eine
Menge
PSTJL
Variable. Die Knoten
B
U6VFHW;XJL
des Quotientengraphen
@
liefern eine
Partitionierung der Knoten von
. Dabei enth¨alt
FH
disjunkte Gebiete, die aus bereits eliminier-
ten Knoten bestehen, und
JL
eine Variable f¨ur jeden nicht eliminierten Knoten. Im folgenden
werden wir nicht immer explizit zwischen der Variablen
Y
und dem Knoten
unterscheiden.
Sei
ein Element und seien
(
¿
zwei Variablen des Quotientengraphen. In
@
gibt es zwei
unterschiedliche Kantentypen: Domain-Vertex-Kanten der Form
»
¿
½
, falls
SZ
»
½
gilt,
und Vertex-Vertex-Kanten der Form
»
(
¿
½
, falls
»
(
¿
½
gilt und es kein Element
gibt mit
([T
»
½
und
T
»
½
. In Abschnitt 4.2 betrachten wir Quotientengraphen, in denen
es keine Eins-zu-Eins-Beziehung zwischen den Variablen und den nicht eliminierten Knoten
gibt. Vielmehr repr¨asentiert dort jede Variable eine Menge von nicht eliminierten Knoten. Die
folgende formale Definition von
D
deckt auch diesen allgemeineren Fall ab:
D
E6N
»
¿
P\
ï½
]
^FH
¿
_\
JL
und
_\
=^
»
½
þ
6:?`
;a
»
_\
¿
cb
6½
]d_\
¿
eb
SJL
¿
_\
=K!
»
eb
=½
þ
6f?
und
þ
g_^FH
mit
_\
¿
cb
=h
»
½
þ
6f?`
Å
(4.2)
Es gibt eine enge Beziehung zwischen den Elementen von
@
und den Cliquen in
1
. Die Kan-
tenmenge
des Eliminationsgraphen
1
kann n¨amlich geschrieben werden als
E6
»
=
»
C
â
½½
; i
jk)lm
»
"
»
½
â
Sn
»
½½
Å
(4.3)
42
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
2
o
3
p
1
4
3
p
4
q
5
r
1
2
3
4
5
1
s
D2
o
DDv
1
s
u u 4
u5
u6
t
u1
s
u2
o
u u u u 6
t
u
w
2
w
3
w
w
5
w w
w
w
w
w
v
u
1
z
2
z
1
z
2
z
D3D4D5D3D4D5
Abb. 4.1: Der Quotientengraph
u`)vPw
(links) und der durch Elimination des Knotens
x
entstandene Quo-
tientengraph
u`
(rechts). Jedes Cliquenelement ist durch ein Oval dargestellt. Durch die Elimi-
nation von
x
entsteht in
u`
ein neues Cliqenelement
y3
. Dieses Cliquenelement ersetzt
x
und
die urspr¨unglich zu
x
benachbarten Cliquenelemente
yw
und
y
Ä
. Man beachte, daß die Vertex-
Vertex-Kante
í
{z
Ä
³ð
nicht mehr in
u`
vorhanden ist, da beide Knoten zu
y3
adjazent sind.
Die erste Menge enth¨alt alle Kanten aus
, die zu nicht eliminierten Knoten inzident sind. Die
zweite Menge enth¨alt die Kanten aller Cliquen, die im Laufe des Eliminationsprozesses entstan-
den sind. Diese Kanten sind jedoch nicht explizit in
@
abgespeichert. Vielmehr wird eine Clique
|
durch ein Element
}7FM
repr¨asentiert. Die Clique
|
enth¨alt dabei alle Knoten/Variablen,
die von
¨uber eine Domain-Vertex-Kante erreichbar sind.
In dem Eliminationsgraphen
1
besteht die Menge
m
»
½
aus allen Knoten
(
, die in
@
¨uber eine Vertex-Vertex-Kante
»
¿
(
½
oder ¨uber zwei aufeinanderfolgende Domain-Vertex-Kan-
ten
»
¿
½
und
»
¿
(
½
erreicht werden k¨onnen. Damit wird auch klar, warum eine Vertex-Vertex-
Kante
»
(
¿
½
nur dann in
@
enthalten ist, wenn kein Element
~^FM
existiert mit
(^an
»
½
und
»
½
. Gibt es n¨amlich ein solches
, so geh¨oren
(
¿
zu einer Clique und eine
explizite Speicherung der Kante
»
(
¿
½
ist ¨uberfl¨ussig.
Bereits in Abbildung 3.3 haben wir am Beispiel des Torus gesehen, daß durch die Elimination
eines Knotens
alle Gebiete
mit
US
»
½
zu einem neuen Gebiet
43
verschmolzen wer-
den, das
enth¨alt. Dementsprechend entsteht der Quotientengraph
@
aus
@
)vPw
(
@
ist isomorph
zu
) durch Verschmelzen der zu
benachbarten Cliquenelemente. Abbildung 4.1 verdeutlicht
die Vorgehensweise an einem Beispiel.
Durch die beim ¨
Ubergang von
@
)vPw
nach
@
durchgef¨uhrten Verschmelzungsoperationen
wird ein Baum auf den Knoten von
definiert. Seien dazu
4)
,
¼
6 8
¿
ÅQÅQÅ
¿
"
, die zu
be-
nachbarten Cliquenelemente in
@
)vPw
, wobei wir annehmen, daß
4)
durch die Elimination des
Knotens
(
\
entstanden ist. Beim ¨
Ubergang von
@
]vPw
nach
@
werden die Elemente
4]
von
43
absorbiert. Deswegen definieren wir
als Vater von
(w
¿
ÅQÅQÅ
¿
(P
. F¨ahrt man auf diese Art und Wei-
se fort, so erh¨alt man einen Baum, der alle Knoten aus
enth¨alt. Die Bl¨atter des Baumes werden
dabei von denjenigen Knoten gebildet, die zum Zeitpunkt ihrer Elimination zu keinem Element
4.1. Literatur¨ubersicht
43
benachbart waren. Der Baum heißt Eliminationsbaum (elimination tree) und spielt eine wichti-
ge Rolle bei der direkten L¨osung d¨unn besetzter Gleichungssysteme (vgl. Duff und Reid [35],
Eisenstat et al. [41], Liu [96], Schreiber [127] oder Speelpenning [136]).
4.1.2 Bottom-up-Verfahren
Bottom-up-Verfahren bauen den Eliminationsbaum von den Bl¨attern zur Wurzel auf. In jeder
Iteration wird basierend auf einer lokalen Knotenauswahlstrategie der n¨achste zu eliminierende
Knoten bestimmt. In diesem Abschnitt stellen wir zwei der bekanntesten Bottom-up-Verfahren
genauer vor, den Minimum-Degree- und den Minimum-Deficiency-Algorithmus.
4.1.2.1 Der Minimum-Degree-Algorithmus
Das am weitesten verbreitete Bottom-up-Verfahren ist der Minimum-Degree-Algorithmus(
K
).
Im Laufe der letzten Jahrzehnte wurden verschiedene Techniken entwickelt, die zu einer erhebli-
chen Reduzierung der Laufzeit des Algorithmus f¨uhrten. Hierzu z¨ahlt u.a. die oben beschriebene
Darstellung der Eliminationsgraphen als Quotientengraphen. George und Liu zeigen in [52], daß
bei Verwendung geeigneter Datenstrukturen zur Speicherung eines Quotientengraphen
@
nie
mehr Platz ben¨otigt wird als zur Speicherung des Graphen
@
. Eine dynamische Allokierung
zus¨atzlichen Speichers ist daher nicht n¨otig. Im folgenden wollen wir einige weitere Verbesse-
rungen kurz vorstellen. F¨ur einen vollst¨andigen ¨
Uberblick sei auf Liu [54] verwiesen.
Superknoten Die vielleicht wichtigste Verbesserung des Minimum-Degree-Algorithmus be-
steht darin, die Knoten aus
#
zu sogenannten Superknoten zusammenzufassen.
Zwei Knoten
(
¿
aus
1
geh¨oren zu dem gleichen Superknoten, falls gilt
m
»
(
½
;>(6
m
»
½
;aY
Å
(4.4)
In diesem Fall heißen
(
und
nicht unterscheidbar (indistinguishable). Durch (4.4) wird eine
¨
Aquivalenzrelation auf den Knoten aus
1
definiert. Jede ¨
Aquivalenzklasse bildet dabei einen
Superknoten. In einem Minimum-Degree-Ordering k¨onnen die Knoten eines Superknotens
aufeinanderfolgend numeriert werden. Dies liegt daran, daß alle Knoten aus
den gleichen Grad
besitzen, und daß sich nach Elimination eines Knotens
T
der Grad aller in
verbleiben-
den Knoten um eins verringert. War also der Knotengrad von
minimal, so ist anschließend
der Knotengrad aller verbleibenden Knoten minimal. Dar¨uber hinaus gilt, daß zwei nicht un-
terscheidbare Knoten
(
¿
bis zu ihrer Elimination nicht unterscheidbar bleiben. Innerhalb
des Minimum-Degree-Algorithmus k¨onnen daher alle Knoten eines Superknotens
durch einen
einzigen Knoten aus
repr¨asentiert werden. Hierdurch verringert sich die Anzahl der Knoten in
*
Im Zusammenhang mit Quotientengraphen spricht man auch von Supervariablen.
44
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
1
und damit auch die Anzahl der Iterationen des Minimum-Degree-Algorithmus.Um weiterhin
die Knotengrade exakt berechnen zu k¨onnen, erh¨alt der Repr¨asentant das Gewicht
.
Wir wollen die Bildung der Superknoten an den Quotientengraphen
@
)vPw
und
@
aus Ab-
bildung 4.1 veranschaulichen. In dem durch
@
)vPw
dargestellten Eliminationsgraphen
1)vPw
gilt
m
»
(
Ä
½
;a(
Ä
46
m
»
(
®±
½
;X(
±
)M6
¿
(w
¿
(
Ä
¿
(
®±
¿
(
/³
¿
2
Ä
¿
2
±
¿
2
³
)
. Die Knoten
(
Ä
und
(
®±
sind also nicht unterscheidbar. Sei
(
Ä
Repr¨asentant des Superknotens
(
Ä
¿
(
®±
]
. Dann kann
(
®±
aus
#]vPw
bzw.
@
)vPw
entfernt werden und es gilt
(
Ä
!6
. Man darf
(
®±
jedoch nicht bei der sp¨ate-
ren Numerierung vergessen. Durch die Verschmelzung von
Uw
und
Ä
w¨achst der Superknoten
um
(
®³
. Daher kann auch
(
®³
entfernt werden und es gilt
(
Ä
6
Ã
.
Externer Knotengrad Sehr eng verbunden mit dem Konzept der Superknoten ist das Konzept
des externen Knotengrades [91]. Sei
der Repr¨asentant eines Superknotens
. Zur besseren Ver-
anschaulichung sei angenommen, daß die Knoten aus
P
nicht wie oben beschrieben aus
1
entfernt wurden (
1
ist also ungewichtet). Der externe Knotengrad von
ist dann
û
è
m
»
½
. Die
zu eliminierenden Repr¨asentanten werden jetzt nicht mehr anhand ihres exakten Knotengrades,
sondern anhand ihres externen Knotengrades ausgew¨ahlt. Dies kann wie folgt motiviert werden:
Aus (4.4) folgt unmittelbar, daß jeder Knoten
(SM[P
bereits zu allen Knoten aus
!"
m
»
½
benachbart ist. Daher kann durch die Elimination des Knotens
keine Fill-Kante enstehen, die
inzident zu einem Knoten aus
MP
ist. Vielmehr k¨onnen nur Fill-Kanten zwischen den Kno-
ten aus
m
»
½
erzeugt werden. Durch die Verwendung des externen Knotengrades erh¨alt man
so eine genauere obere Schranke f¨ur die Zahl der einzuf¨ugenden Fill-Kanten, wodurch sich die
Qualit¨at der Orderings leicht verbessert (vgl. George und Liu [54] oder Liu [91]).
Multiple-Minimum-Degree Eine zentrale Eigenschaft des Minimum-Degree-Algorithmus be-
steht darin, daß in jeder Iteration
genau ein Knoten (bzw. Repr¨asentant)
aus
#)vPw
eliminiert
wird. Anschließend wird der Eliminationsgraph
#
konstruiert und der Grad eines jeden Kno-
ten
(77
m
»
½
neu berechnet. Genau dieser Degree-Update-Schritt ist sehr zeitaufwendig.
In Lius Multiple-Minimum-Degree-Algorithmus (
^
) [91] wird deshalb in jeder Iteration eine
maximale unabh¨
angigeMenge von Knoten mit minimalem Grad aus
1)vPw
entfernt. Diese Multi-
ple-Elimination-Technik reduziert die Anzahl der Iterationen und f¨uhrt zu einer signifikanten Be-
schleunigung des Algorithmus. In gewissem Sinne stellt die Multiple-Elimination-Technik eine
Art Tie-Breaking-Strategie dar. Im Vergleich zu einem normalen Minimum-Degree-Algorithmus
mit einer Random-Tie-Breaking-Strategie werden jedoch keine besseren Orderings generiert.
Approximative Berechnung der Knotengrade Eine weitere Reduzierung der Laufzeit l¨aßt sich
dadurch erreichen, daß nach Elimination eines Knotens
der neue Grad aller Knoten
(
m
»
½
nur approximativ berechnet wird (vgl. Amestoy et al. [1] oder Gilbert et al. [59]).
Sei dazu wieder
@
der Quotientengraph von
#
und
43
das neu entstandene Cliquenelement.
In dem Approximate-Minimum-Degree-Algorithmus (
^
) von Amestoy et al. [1] wird f¨ur
(
4.1. Literatur¨ubersicht
45
zun¨achst der Wert
m
»
43
½
Á
Ù
j
Ú
j¡
¢
j£
)¤
k¦¥ m
m
»
½
Z!n
m
»
43
½
(4.5)
berechnet. Dieser Wert wird anschließend um die Zahl der Knoten
(P§
erh¨oht, die mit
(
¨uber eine
Vertex-Vertex-Kante verbunden sind. Man erh¨alt so eine obere Schranke
4üü
_¨
ç
ª©
û
è
m
»
(
½
«
û
è
m
»
(
½
. Dabei kann es durch die Summenbildung in (4.5) zu Mehrfachz¨ahlungen kommen.
In Abbildung 4.1(rechts) ist dies beispielsweise bei der Berechnung von
4üü
_¨
ç
ª©
û
è
m
»
(w
½
der Fall. Der Knoten
(w
ist ¨uber eine Domain-Vertex-Kante mit den Elementen
±
und
³
ver-
bunden. In die Summenbildung gehen daher
m
»
ø±
½
m
»
¬3
½
und
m
»
³
½
m
»
43
½
ein. Beide Mengen sind jedoch nicht disjunkt. Der Knoten
2
Ä
ist in beiden Mengen enthalten.
Daher ist der Wert
4üü
_¨
ç
©
Æû
è
m
»
(w
½
ist um eins h¨oher als der exakte Knotengrad.
Man beachte, daß es durch die Einbeziehung aller Knoten
(§
, die mit
(
¨uber eine Vertex-
Vertex-Kante verbunden sind, nicht zu Mehrfachz¨ahlungen kommen kann. Nach Konstruktion
der Quotientengraphen existiert die Kante
»
(
¿
(§
½
n¨amlich nur dann, wenn eskein Cliquenelement
gibt mit
»
¿
(
½
D
und
»
¿
(Y§
½
D
. Der Knoten
(P§
kann also nicht in (4.5) auftreten.
Unter der Voraussetzung, daß
m
»
½
f¨ur alle Cliquenelemente
bekannt ist, ben¨otigt
man f¨ur den Degree-Update-Schritt insgesamt
å »
C®
k¯±°±²´³
m
¢
j¡
¤
û
è
»
(
½½
Zeiteinheiten. Im Ge-
gensatz dazu kostet die Berechnung der exakten Knotengrade Zeit
å »
®
k¦¯±°±²´³
m
¢
j
¤
û
è
m
»
(
½½
.
In der Regel ist
û
è
»
(
½
sehr viel kleiner als
û
è
m
»
(
½
, so daß die approximative Berechnung
zu einer erheblichen Beschleunigung des Algorithmus f¨uhrt. Die Qualit¨at der Orderings leidet
darunter nicht.
µ
4.1.2.2 Der Minimum-Deficiency-Algorithmus
Im Gegensatz zum Minimum-Degree- wurde dem Minimum-Deficiency- oder Minimum-Local-
Fill-Algorithmus (
^¶
) weit weniger Aufmerksamkeit geschenkt. Dies liegt haupts¨achlich daran,
daß die Berechnung von
Æû
)·
»
½
sehr viel aufwendiger ist als die Berechnung von
û
è
»
½
. Dar¨uber
hinaus beinflußt die Elimination eines Knotens
nicht nur die Unzul¨anglichkeit aller Nachbarn
(
von
, sondern auch die aller Nachbarn
2
von
(
. Nach Elimination von
muß daher die
Unzul¨anglichkeit aller Knoten im Abstand zwei von
neu berechnet werden.
Historisch gesehen wurde der Minimum-Deficiency-Algorithmus untersch¨atzt. Man glaubte
viele Jahre, daß im Vergleich zum Minimum-Degree-Algorithmus die G¨ute eines Orderings nur
marginal verbessert wird (vgl. z.B. Duff et al. [33]). Neuere Untersuchungen belegen jedoch
(siehe Meszaros [103] sowie Rothberg und Eisenstat [125]), daß der Minimum-Deficiency-Al-
¸
Werden die approximativen Knotengrade nach Gilbert et al. berechnet, so verschlechtert sich die Qualit¨at der
Orderings zum Teil erheblich.
46
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
gorithmus f¨ur viele Graphen erheblich bessere Orderings produziert. Aufgrund der extrem hohen
Laufzeit ist der Algorithmus jedoch nicht in der Praxis einsetzbar.
Die Unzul¨anglichkeit eines Knotens kann aber als Tie-Breaker in einem Minimum-Degree-
Algorithmus benutzt werden (vgl. z.B. Cavers [25] oder Meszaros [103]). Dann ist die Berech-
nung von
û
)·
»
½
nur f¨ur Knoten mit minimalem Grad erforderlich. Wie bereits am Beispiel des
Torus gesehen, l¨aßt sich mit Hilfe dieser Tie-Breaking-Strategie die G¨ute eines Minimum-De-
gree-Orderings erheblich verbessern. Leider ist dies eher die Ausnahme als die Regel.
Der Erfolg des Minimum-Deficiency-Verfahrens beruht darauf, daß neu entstehende Gebiete
so positioniert werden, daß sie mit bereits existierenden Gebieten ein großes Randsegment teilen.
Die Gebiete heißen dann wohl positioniert (well aligned). Wohl positionierten Gebiete erm¨ogli-
chen in sp¨ateren Eliminationsschritten die Bildung von Gebieten mit einem großen Verh¨altnis
von Inhalt zu Umfang. In einem Minimum-Degree-Algorithmusmit einer Minimum-Deficiency-
Tie-Breaking-Strategie k¨onnen jedoch nur solche Elemente wohl positioniert werden, die durch
Elimination von Knoten mit minimalem Grad entstehen.
Eine M¨oglichkeit, die Laufzeit des Minimum-Deficiency-Algorithmus zu reduzieren, be-
steht in der approximativen Berechnung der Unzul¨anglichkeit eines Knotens. Sei wieder
der
aus
1)vPw
eliminierte Knoten. Wie beim Minimum-Degree-Algorithmus wird zun¨achst f¨ur je-
den Knoten
(¹º
m
»
½
der neue Knotengrad
Æû
è
m
»
(
½
berechnet. Bezeichne
)
den Su-
perknoten, dessen Repr¨asentant
(
ist. Dann ist
»¼6½
û
è
m
»
)
½
der externe Knotengrad von
(
und
w
Ä
»
»
»8
½
eine obere Schranke f¨ur
û
]·
m
»
(
½
. Da
m
»
½
eine Clique in
1
bildet mit
)[¾!
m
»
½
, kann die obere Schranke reduziert werden auf
w
Ä
»
»
ȼ8
½
w
Ä
¿
»
¿
º8
½
mit
¿
6R!
m!
»
½
À]P
.
Rothberg und Eisenstat [125] benutzen die verbesserte obere Schranke zur Formulierung
einiger sehr effektiver Knotenauswahlstrategien. Jede Auswahlstrategie ist durch eine Funktion
ú
"Á
ç
¨
û
#Â
NÃ
ÅÄ
beschrieben. Beim ¨
Ubergang von
#]vPw
nach
1
wird dann immer ein Knoten
mit minimalem Score-Wert eliminiert. In Abh¨angigkeit von der Auswahlstrategie berechnet sich
der neue Score-Wert eines Knotens
(KS
m
»
½
wie folgt:
1. Approximate-Minimum-Local-Fill (AMF)
ú
"Á
ç
¨
û
)Æ_ÇÉÈ
»
(
½
6
»
»
»#G8
½
¿
»
¿
[8
½
Ê
Å
(4.6)
2. Approximate-Minimum-Mean-Local-Fill (AMMF)
Wird der Knoten
(
zu einem sp¨ateren Zeitpunkt eliminiert, so ist die Unzul¨anglichkeit der
in
)
verbleibenden Knoten gleich null. Im Schnitt verursacht also die Elimination aller
Knoten aus
)
nur
°ÌËÎÍÐÏ
m
¢
)¤
Ñ ÒÐÓÑ
zus¨atzliche Kanten. Dies motiviert die Score-Funktion
ú
"Á
ç
¨
û
¦Æ`ÇÇÉÈ
»
(
½
6
ú
nÁ
ç
¨
û
¦Æ_ÇÉÈ
»
(
½
)_
Å
(4.7)
4.1. Literatur¨ubersicht
47
3. Approximate-Minimum-Increase-in-Neighbor-Degree (AMIND)
Durch die Elimination aller Knoten aus
)
entstehen
Æû
)·
m
»
(
½
neue Kanten, die zu einem
Knoten aus
m
»
]
½
inzident sind. Zugleich werden jedoch auch
»
·
)`
Kanten gel¨oscht,
die zu einem Knoten aus
!
m
»
)
½
inzident sind. Daher kann
ú
"Á
ç
¨
û
)Æ_ÇÉÈ
»
(
½
modifiziert
werden zu
ú
"Á
ç
¨
û
¦Æ`ÇÉÔÖÕ`×
»
(
½
6
+ú
"Á
ç
¨
û
¦Æ`ÇÉÈ
»
(
½
»
¸·
_ ]P
Å
(4.8)
Alle drei Auswahlstrategien beg¨unstigen ein weiteres Anwachsen bereits großer Gebiete. Ver-
gleichbar einem Graph-Growing-Verfahren w¨achst ein Gebiet in mehreren aufeinanderfolgen-
den Eliminationsschritten durch Einverleiben aller benachbarten kleineren Gebiete. Der Prozeß
stoppt, sobald das Gebiet eine gewisse Gr¨oße erreicht hat und wird dann an einer anderen Stelle
des Graphen erneut gestartet.
Sowohl durch einen Minimum-Deficiency-, als auch durch einen auf den Auswahlstrategi-
en
%^¶
,
%^^¶
oder
KØÙ<
beruhenden Algorithmus wird die Entstehung von Gebieten
mit einem großen Verh¨altnis von Inhalt zu Umfang beg¨unstigt. Im ersten Fall geschieht dies
durch Bildung wohl positionierter Gebiete, im zweiten Fall durch kurzfristige Konzentration des
Wachstums auf ein bestimmtes Gebiet.
4.1.3 Top-down-Verfahren
Das am weitesten verbreiteteTop-down-Verfahrenenist der Nested-Dissection-Algorithmus (
ÙA
)
von George und Liu (vgl. George [48] sowie George und Liu [51]). Wie bereits in Abschnitt 2.3.2
beschrieben besteht die grunds¨atzliche Idee des Verfahrens darin, eine Knotenmenge
Ú
zu finden, durch deren Entnahme
in zwei Teilgraphen
»
ÜÛ
½
und
»
Ý
e½
zerf¨allt mit
6
Ú;
Û
;
Ý
und
Û
¿
Ý
Þ
,
Ï
Þ
8
. Im folgenden bezeichnen wir eine solche
Partitionierung von
mit
»
Ú
¿
Û
¿
Ý
e½
. Der Algorithmus wird dann rekursiv f¨ur jeden zusam-
menh¨angenden Teilgraphen von
»
CÛ
½
und
»
Ý
e½
aufgerufen bis ein Teilgraph weniger als
á
Knoten enth¨alt. Da die Knoten in
Ú
vor den Knoten in
Û
;
Ý
numeriert werden, baut der Nested-
Dissection-Algorithmus den Eliminationsbaum von der Wurzel zu den Bl¨attern auf.
Im Gegensatz zum Minimum-Degree- oder Minimum-Deficiency-Algorithmus stellt das Ne-
sted-Dissection-Verfahren mehr ein Ordering-Framework dar als einen exakt spezifizierten Al-
gorithmus (vgl. auch Hendrickson und Rothberg [72]). Vor einer Implementierung m¨ussen eine
Reihe von Fragen beantwortet werden. Insbesondere muß gekl¨art werden, wie die Knotensepa-
ratoren konstruiert werden sollen. Weitere, nicht minder wichtige Fragen sind:
5
Wie groß soll
á
gew¨ahlt werden, d.h. wieviele Knoten muß ein Teilgraph enthalten, damit
f¨ur ihn ein Knotenseparator konstruiert wird?
5
Wie soll
Þ
gew¨ahlt werden, d.h. wie wichtig ist eine balancierte Aufteilung der einzelnen
Teilgraphen.
48
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Im folgenden beschreiben wir kurz die wichtigsten, aus der Literatur bekannten Verfahren zur
Konstruktion und Minimierung von Knotenseparatoren.
4.1.3.1 Konstruktion eines initialen Knotenseparators
Verfahren zur Graph-Partitionierung werden ¨ublicherweise in zwei Klassen eingeteilt: konstruk-
tive Verfahren und iterative Verfahren. Konstruktive Verfahren nehmen den Graphen
als Ein-
gabe und bestimmen einen initialen Knotenseparator ”from scratch“. Dieser Knotenseparator
kann dann mit Hilfe eines iterativen Verfahrens weiter minimiert werden. Bevor wir uns im
n¨achsten Abschnitt mit iterativen Verfahren besch¨aftigen, stellen wir zun¨achst zwei leistungs-
starke Methoden zur Konstruktion von Knotenseparatoren genauer vor. Es handelt sich dabei
um die Multilevel- und die Gebietszerlegungsmethode. Andere, in der Literatur erw¨ahnte, kon-
struktive Verfahren beruhen auf der Spektral- (vgl. Barnard und Simon [17], Hendrickson und
Leland [69] sowie Pothen et al. [113]) oder der Graph-Growing-Methode (vgl. Goehring und
Saad [62]). Wir werden auf diese Methoden jedoch nicht n¨aher eingehen.
Die Multilevel-Methode In den vergangenen Jahren wurden Multilevel-Verfahren sehr erfolg-
reich zur Konstruktion von Kantenseparatoren eingesetzt (vgl. z.B. Bui und Jones [24], Hen-
drickson und Leland [70], Karypis und Kumar [78] oder Monien et al. [104]). Ein Multilevel-
Verfahren besteht aus drei Phasen. In der ersten Phase wird ausgehend von
eine Folge im-
mer kleinerer Graphen konstruiert. Ziel ist dabei, die strukturellen Eigenschaften von
so weit
wie m¨oglich zu erhalten. Ist
beispielsweise ein quadratisches Gitter, so sollten auch die klei-
neren Graphen ein quadratisches Gitter darstellen. ¨
Ublicherweise wird zur Schrumpfung der
Graphen eine Technik angwandt, die auf einer Kontraktion der Kanten beruht. Dabei werden
die zwei zu einer Kante inzidente Knoten zu einem neuen Knoten zusammengefaßt. Der Ver-
gr¨oberungsprozeß stoppt, wenn in einem Graphen nur noch wenige Knoten vorhanden sind. An-
schließend wird in Phase zwei f¨ur den kleinsten Graphen der Folge ein initialer Kantenseparator
bestimmt. Im darauf folgenden Verfeinerungsprozeß (Phase drei) wird der Kantenseparator in
den jeweils gr¨oßeren Graphen ¨ubertragen und mit Hilfe eines iterativen Verfahrens wie z.B. der
Kernighan-Lin- oder der Fiduccia-Mattheyses-Heuristik [42, 81] optimiert. Die Software-Pakete
CHACO [68], METIS [79], PARTY [115] und WGPP [64] stellen eine Reihe unterschiedlicher
Verfahren f¨ur die Schrumpfungs-, initiale Partitionierungs- und die Verfeinerungsphase bereit.
Zur Berechnung eines Nested-Dissection-Orderings ben¨otigen wir jedoch Knoten- und keine
Kantenseparatoren. Viele ¨altere Nested-Dissection-Verfahren bestimmen zun¨achst mit Hilfe der
Multilevel-Methode einen Kantenseparator
§
und leiten dann hieraus einen Knotenseparator
Ú
ab (vgl. z.B. Bui und Jones [24], Karypis und Kumar [78], Raghavan [116] sowie Schulze
et al. [129]).
Ú
besteht dabei aus einer Teilmenge der zu
§
inzidenten Knoten. Da die Gr¨oße
eines Kantenseparators
§
und die Gr¨oße eines aus
§
abgeleiteten Knotenseparators
Ú
in keiner
direkten Beziehung zueinander stehen, produzieren diese Verfahren oftmals sehr viel mehr Fill-
4.1. Literatur¨ubersicht
49
in als ein Minimum-Degree-Algorithmus. Dies liegt auch daran, daß Knoten mit hohem Grad
in der Regel nicht inzident zu einer Kante aus
§
sind. Die Knoten geh¨oren damit auch nicht
zu einem aus
§
abgeleiteten Knotenseparator. Es gibt jedoch keinen Grund, warum Knoten mit
hohem Grad bei der Konstruktion eines Knotenseparators unber¨ucksichtigt bleiben sollten. In
der Tat kann es bei der Berechnung eines Orderings durchaus sinnvoll sein, diese Knoten einem
Separator zuzuordnen, da ihre Elimination eine große Clique erzeugt (vgl. z.B. Ashcraft und
Liu [12] oder Hendrickson und Rothberg [72]).
In neueren Nested-Dissection-Verfahren werden daher die Knotenseparatoren direkt konstru-
iert. Dazu wird ein Multilevel-Ansatz benutzt, der dem zur Konstruktion von Kantenseparato-
ren sehr ¨ahnlich ist (vgl. Gupta [65], Hendrickson und Rothberg [72] sowie Karypis und Ku-
mar [79]). Auch hier wird der Graph mit Hilfe eines Kantenkontraktionsverfahrens geschrumpft.
In dem so verkleinerten Graphen bestimmt man dann jedoch sofort einen Knotenseparator. Die-
ser initiale Knotenseparator wird in den darauf folgenden Verfeinerungsschritten mit Hilfe ei-
ner geeigneten Heuristik optimiert. Ashcraft und Liu [10] schlagen dazu eine leicht modifizierte
Version des Fiduccia-Mattheyses-Algorithmus vor. Der Algorithmus wird im n¨achsten Abschnitt
genauer vorgestellt.
Die Gebietszerlegungsmethode Im Gegensatz zu dem mehrstufigen Multilevel-Verfahren be-
nutzen Ashcraft und Liu [12] einen zweistufigen Ansatz zur Konstruktion der Knotensepara-
toren. In einem ersten Schritt wird die Knotenmenge
des Graphen
partitioniert in
6
ß
;Uwà;
ÅQÅÅ
;74á
mit
»
\
½
ß
f¨ur alle
8
¼
ãâ
. Die Menge
ß
heißt Multisek-
tor. Durch Entnahme der Knoten aus
ß
zerf¨allt
in die zusammenh¨angenden Teilgraphen
»
Uw
½
¿
ÅQÅQÅ
¿
»
4á
½
.
Nachdem eine Gebietszerlegung
»
ß
¿
Qw
¿
ÅQÅQÅ
¿
‡
½
bestimmt wurde, wird in einem zweiten
Schritt jeder Menge
\
eine Farbe aus
ädåLEæàç
¿
"è:é
Øëêíìí
zugeordnet. Hierauf basierend wer-
den die Knoten
ß
des Multisektors wie folgt gef¨arbt:
Á
çkæ.ç
¨
»
½
6
î
ïñð
ädåLEæàç
¿
falls f¨ur alle
mit
Ua!
»
½
gilt
Á
çkæ.ç
¨
»
½
6äàåEæàç
è:é
Øëêíì
¿
falls f¨ur alle
mit
S
»
½
gilt
Á
çkæç
¨
»
½
6
è:é
Øëêíì
ò1ó
ô
¿
sonst.
(4.9)
Sind also alle Mengen
mit
XT
»
½
schwarz (weiß) gef¨arbt, so erh¨alt auch
die Farbe
schwarz (weiß). Gibt es jedoch zwei Mengen
\
¿
b
mit
Nõ
»
\
½
¿
Nö!
»
b
6½
und
Á
ç4æ.ç
¨
»
\
'½
þ
6¹Á
çkæç
¨
»
b
½
, so erh¨alt
die Farbe grau. Auf diese Weise induziert jede F¨arbung von
Uw
¿
ÅQÅÅ
¿
4á
eine Menge
Ú¼
ß
von grau gef¨arbten Knoten.
Um zu garantieren, daß die grau gef¨arbten Knoten einen g¨ultigen Knotenseparator darstel-
len, m¨ussen die Knoten aus
ß
in geeigneter Form zu Segmenten zusammengefaßt werden. Wir
werden auf die Segmentbildung in Abschnitt 4.2.1 noch einmal genauer eingehen und ihre Not-
wendigkeit an einem Beispiel illustrieren. Als Ergebnis erh¨alt man eine Partitionierung
ß
6
50
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
w ;
ÅÅQÅ
;
Y÷
,
P\
=
eb
6R?
,
¼
þ
6Nø
, des Multisektors. Analog zu (4.9) kann nun jedem Segment
_\
ß
die Farbe
Á
ç4æ.ç
¨
»
_\
'½
6
î
ïñð
ädåLEæàç
¿
falls f¨ur alle
mit
P\
=h
»
½
þ
6f?
gilt
Á
çkæ.ç
¨
»
½
6fäàåEæàç
è:é
Øëêíì
¿
falls f¨ur alle
mit
_\
=^
»
½
þ
6f?
gilt
Á
çkæç
¨
»
½
6
è:é
Øëêíì
ò1ó
ô
¿
sonst
(4.10)
zugeordnet werden. Jetzt stellt die Menge
Ú[6R
ß
ù
g
_\
ß
mit
_\
und
Á
çkæ.ç
¨
»
_\
'½
6
ò1ó
ôú
einen g¨ultigen Knotenseparator f¨ur alle F¨arbungen von
Uw
¿
ÅQÅQÅ
¿
4á
dar.
Zur Konstruktion einer Gebietszerlegung
»
ß
¿
Uw
¿
ÅQÅQÅ
¿
‡
½
benutzen Ashcraft und Liu eine
randomisierte, auf Breitensuche basierende Greedy-Methode. Anschließend werden die Mengen
Uw
¿
ÅQÅÅ
¿
4á
mit Hilfe einer speziellen Heuristik gef¨arbt. Ziel ist dabei eine F¨arbung zu finden, die
die Gr¨oße des induzierten Knotenseparators
Ú
minimiert. Zum Schluß wird
Ú
mit Hilfe der weiter
unten beschriebenen Netzwerk-Fluß-Technik gegl¨attet. Dazu werden Netzwerke konstruiert, die
aus bis zu sieben Schichten bestehen (vgl. Ashcraft und Liu [12, 13]).
4.1.3.2 Minimierung eines Knotenseparators
Genaugenommen besteht das Ziel einer iterativen Verbesserungsheuristik nicht in der Minimie-
rung eines Knotenseparators
Ú
, sondern in der Optimierung einer Partitionierung
»
Ú
¿
Û
¿
Ý
˽
.
In die Bewertung einer Partitionierung gehen normalerweise die Gr¨oße des Separators und die
Balance ein. Um zu entscheiden, ob eine Partitionierung
»
Ú
¿
Û
¿
Ý
e½
besser oder schlechter ist
als eine zweite Partitionierung
»
Ú§
¿
Û
§
¿
Ý
§
½
, wird eine Bewertungsfunktion
û
ben¨otigt. Diese
Funktion gewichtet die in der Regel in Konflikt stehenden Zielkriterien ”Minimierung des Kno-
tenseparators“ und ”Maximierung der Balance“. Die Wahl einer geeigneten Bewertungsfunktion
ist nicht einfach und muß im Kontext des ¨ubergeordneten Ordering-Prozesses gesehen werden
(vgl. auch Rothberg [123]).
Die Optimierung einer Partitionierung
»
Ú
¿
Û
¿
Ý
˽
geschieht i.allg. durch die Berechnung ei-
nes neuen Knotenseparators
Ú §
mit der Eigenschaft
ñÚ §Ü
&Ú<
. Man hofft, daß die Minimie-
rung des Knotenseparators
Ú
auch zu einer Verbesserung der Partitionierung
»
Ú
¿
Û
¿
Ý
e½
f¨uhrt.
Grunds¨atzlich unterscheided man zwischen zwei Minimierungstechniken (vgl. Ashcraft [4]):
HeuristischeMethoden, die in mehreren Schritten versuchen durch Verschieben einzelner Knoten
einen besseren Separator
Ú §
zu finden und direkte Methoden, die in einem Schritt durch Verschie-
ben einer ganzer Knotenmenge den besten Separator in der Nachbarschaft von
Ú
bestimmen.
Heuristische Methoden Die Algorithmen von Kernighan, Lin [81] und Fiduccia, Matthey-
ses [42] geh¨oren zu den am h¨aufigsten verwendeten Verfahren zur Minimierung von Kanten-
separatoren. Beide Algorithmen bestehen aus zwei ineinander geschachtelten Schleifen. Der
4.1. Literatur¨ubersicht
51
Kernighan--Lin-Algorithmus w¨ahlt in der inneren Schleife Paare von zu verschiedenen Kompo-
nenten geh¨orenden Knoten aus, vertauscht ihre Position logisch und sperrt sie. Diese logischen
Vertauschungen werden so lange wiederholt bis alle Knoten gesperrt sind. Die Besonderheit
des Algorithmus besteht darin, w¨ahrend der logischen Vertauschungen eine Verschlechterung
der Bisektionsweite zuzulassen, in der Hoffnung zu einem sp¨ateren Zeitpunkt einen viel bes-
seren Kantenseparator zu finden. Nachdem alle Knoten gesperrt sind, wird diejenige Sequenz
von logischen Vertauschungen berechnet, die zu dem kleinsten Kantenseparator f¨uhrt. Ist dieser
Kantenseparator besser als der urspr¨ungliche, so werden die entsprechenden Knoten physisch
vertauscht und die innere Schleife wird erneut gestartet.
Zur Beschleunigung des Algorithmus schlagen Fiduccia und Mattheyses vor, in der inne-
ren Schleife nur Verschiebungen von Knoten statt paarweise Vertauschungen zu betrachten. Die
innere Schleife kann dann in Zeit
å »
Üü
½
ausgef¨uhrt werden, wobei
ü
die Anzahl der Kanten in
bezeichnet. In state-of-the-art Implementierungen werden viele zus¨atzliche ”Tricks“ ange-
wandt, um die Laufzeit und Effektivit¨at des Kernighan-Lin-Algorithmus weiter zu verbessern
(vgl. CHACO [68], METIS [79], PARTY [115] und WGPP [64]).
Die Vorgehensweise des Fiduccia-Mattheyses-Algorithmus kann sehr einfach auf Knotense-
paratoren ¨ubertragen werden. Der Vertex-Fiduccia-Mattheyses-Algorithmus w¨ahlt in jeder Itera-
tion der inneren Schleife einen Knoten
TºÚ
aus, verschiebt ihn nach
Û
oder
Ý
und sperrt
ihn. Bei einer Verschiebung nach
Û
m¨ussen alle Knoten
(¼[
»
½
=
Ý
in den Separator
Ú
eingef¨ugt werden. Daher ¨andert sich das Gewicht des Separators
Ú
um den Wert (wir nehmen
an, daß G gewichtet ist)
è
!ýÿþ
»
½
6R ª
Ù
k¯±°±²
Ï
¢
3n¤
(
Å
Analog berechnet man
è
ý´þ
»
½
, so daß jedem Knoten
X[Ú
zwei Gain-Werte zugeordnet
sind. Basierend auf diesen Werten kann nun eine Sequenz von Knotenverschiebungen bestimmt
werden, die zu einem minimalen Separator f¨uhrt.
Wurde
nach
Û
verschoben, so m¨ussen die Gain-Werte aller Knoten
(õ!
»
½
=
Ý
berechnet werden. Dar¨uber hinaus m¨ussen die Gain-Werte aller Knoten
2½¹Ú
neu berechnet
werden, die zu einem Knoten
(^
»
½
=
Ý
benachbart sind. Da jeder Knoten in der inneren
Schleife nur einmal verschoben wird, verursacht die Berechnung der Gain-Werte insgesamt einen
Aufwand von
å »
Cü
½
(vgl. Hendrickson und Rothberg [72]). Benutzt man zur Sortierung der Gain-
Werte einen Heap, so kann die innere Schleife des Vertex-Fiduccia-Mattheyses-Algorithmus in
Zeit
å »
Üü
æçkè
á
½
ausgef¨uhrt werden. Dabei bezeichnet
á
die Anzahl der Knoten in
. Man beachte,
daß die h¨ohere Laufzeit des Vertex-Fiduccia-Mattheyses-Algorithmus einzig und allein auf die
Knotengewichte zur¨uckzuf¨uhren ist, da in diesem Fall die Gain-Werte nicht wie von Fiduccia
und Mattheyses vorgeschlagen mit Hilfe von Buckets sortiert werden k¨onnen.
52
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Direkte Methoden Ein v¨ollig anderer Ansatz zur Minimierung von Knotenseparatoren wurde
von Liu [94] vorgeschlagen. Zur Beschreibung des Verfahrens ben¨otigen wir einige zus¨atzliche
Definitionen aus der Graphentheorie: Ein ungerichteter Graph
6
»
¿
½
heißt bipartit, falls
es eine Partitionierung
6
w ;
Ä
,
w =
Ä
6õ?
, gibt, so daß f¨ur jede Kante aus
einer der
Knoten in
w
und der andere in
Ä
liegt. Eine Menge
heißt Matching, wenn in dem
Graphen
»
C
¿
½
jeder Knoten h¨ochstens den Grad eins besitzt. Ein maximum Matching ist ein
Matching maximaler Kardinalit¨at. Ein Knoten
^
heißt frei, wenn er nicht inzident zu einer
Kante aus
ist. Ein alternierender Weg ist ein einfacher Weg in
, der an einem freien Knoten
startet und dessen Kanten abwechselnd zu
und zu
geh¨oren. Ein alternierender Weg,
der auch an einem freien Knoten endet, heißt erweiternder Weg. Schließlich heißt eine Menge
¯
¹
Vertex-Cover, falls jede Kante aus
zu mindestens einem Knoten aus
¯
inzident ist. Ein
minimum Vertex-Cover ist ein Vertex-Cover minimaler Kardinalit¨at.
Sei
ein ungewichteter Graph und
»
Ú
¿
Û
¿
Ý
e½
eine Partitionierung von
. Es gelte
Û
«
Ý
. Wir betrachten den durch
Ú
und
Û
§A6¾!
»
Ú
½
=
Û
induzierten bipartiten Graphen
.
Jedes Vertex-Cover in
definiert einen Knotenseparator in
. Ziel des von Liu beschriebenen
Algorithmus ist deshalb, ein minimum Vertex-Cover in
zu finden. Dazu wird ausgehend von
dem Vertex-Cover
Ú
nach einer Menge
:Ú
mit
ùÜ
»
½
jÏ
gesucht. Es gilt n¨amlich:
ÚõÂÅ6
»
Ú¼
½
;À
»
½
ist wieder ein Vertex-Cover und
Ú¾ñÚ<
. Zur Bestimmung einer
solchen Menge
wird ein maximum Matching
in
berechnet. Die Knoten aus
Ú
k¨onnen
dann in drei disjunkte Mengen
Ú
Ò
,
Ú
,
Ú
aufgeteilt werden mit
Ú
Ò
6N
1aÚ
ist ¨uber einen altern. Weg von einem freien Knoten aus
Ú
erreichbar
¿
Ú
76N
1aÚ
ist ¨uber einen altern. Weg von einem freien Knoten aus
Û
§
erreichbar
¿
Ú
6Úa
»
Ú
Ò
;Ú
½
Å
Die Aufteilung
ÚN6 Ú
Ò
;ÀÚ
7;Ú
heißt Dulmage-Mendelsohn-Dekomposition. Nach [39] ist
die Aufteilung unabh¨angig von der Wahl des maximum Matchings. Dar¨uber hinaus gilt (vgl.
Ashcraft und Liu [13] sowie Pothen und Fan [112])
ñÚ
Ò
»
Ú
Ò
½
Ï
¿
falls
Ú
Ò
þ
6?
¿
ñÚ
Ò
»
Ú
Ò
½
6ñÚ
Ò
;^Ú
»
Ú
Ò
;^Ú
½
Å
Falls es also in
Ú
einen freien Knoten gibt (
Ú
Ò
þ
6V?
), so erh¨alt man ein kleineres Vertex-Cover
Ú
, indem
Ú
Ò
durch
»
Ú
Ò
½
oder
Ú
Ò
;Ú
durch
»
Ú
Ò
;Ú
½
ersetzt wird. Abbildung 4.2
verdeutlicht dies an einem Beispiel. Nach der Substitution sind alle Knoten des Vertex-Covers
Ú
zu einer Kante des Matchings inzident. Die Kardinalit¨at von
Ú
entspricht also der Kardinalit¨at
des maximum Matchings. Nach K¨onig [86] ist daher
Ú
bereits ein minimum Vertex-Cover.
Die Idee, Knotenseparatoren mittels eines Vertex-Covers zu bestimmen, geht eigentlich auf
Leiserson und Lewis [88] zur¨uck. Im Gegensatz zu Liu berechnen sie jedoch ein minimales Ver-
tex-Cover in
. Nach Hopcroft und Karp [75] kostet die Berechnung eines maximum Matchings
und damit die Berechnung eines minimum Vertex-Covers nur
å »
Cü
á
½
Zeiteinheiten. Dabei
4.1. Literatur¨ubersicht
53
s1
s2
s3
s4
s5
s6
s7
s8
s9
b1
b2
b3
b4
b5
b6
b7
b8
b9
S B’
s1
s2
s3
s4
s5
s6
s7
s8
s9
b1
b2
b3
b4
b5
b6
b7
b8
b9
S B’
s1
s2
s3
s4
s5
s6
s7
s8
s9
b1
b2
b3
b4
b5
b6
b7
b8
b9
S B’
(a) (b) (c)
Abb. 4.2: Bipartiter Graph
mit maximum Matching und Vertex-Cover. Die Matching-Kanten sind in
Fettdruck dargestellt, und die Knoten des Vertex-Covers sind grau gef¨arbt. (a) zeigt das initiale
Vertex-Cover. Es gilt
Ò
"!$#
±
#$%
#
³
#
ë
'&
,
(!$#
w
#
Ä
#
Ó
#$)
&
und
*!$#$+
&
. (b) und
(c) zeigen das Vertex-Cover
,
nach Substitution von
Ò
mit
-/.'0
í
1
Ò
ð
, bzw. nach Substitution
von
Ò
32
mit
-/.'0
í
1
Ò
42
ð
.
54
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
s1
s2
s3
s4
s5
s6
s7
s8
s9
1
3
4
5
7
8
9
2
6
q t
S
s1
s2
s3
s4
s5
s6
s7
s8
s9
1
3
4
5
7
8
9
2
q t
SB’
b
b
b
b
b
b
b
b
b
B’
b
b
b
b
b
6
b
b
b
b
Abb. 4.3: Zwei Kopien des aus dem bipartiten Graphen
konstruierten Netzwerks
5
. Der Einfachheit
halber sei angenommen, daß die Kanten
í
76
4
#
ð
,
#98
, und
í
;:
=
=<
&ð
,
:
8?>
§
, die Kapazit¨at eins
haben. Alle Kanten ¨uber die der berechnete maximale Fluß fließt sind in Fettdruck dargestellt.
In der linken Kopie sind alle Knoten, die ausgehend von
6
¨uber benutzbare Kanten erreicht
werden k¨onnen, grau gef¨arbt. Zu dem minimal gewichteten Vertex-Cover geh¨oren alle nicht
grau gef¨arbten Knoten aus
und alle grau gef¨arbten Knoten aus
>
§
. Die rechte Kopie zeigt
alle Knoten, die ausgehend von
<
¨uber benutzbare Kanten erreichbar sind. Zu dem minimal
gewichteten Vertex-Cover geh¨oren jetzt alle grau gef¨arbten Knoten aus
und alle nicht grau
gef¨arbten Knoten aus
>
§
.
4.1. Literatur¨ubersicht
55
bezeichnet
@/A
die Anzahl der Kanten und
BCA
die Anzahl der Knoten in
D
. Deswegen wird in
der Praxis Lius Variante der Vorzug gegeben.
Ist
E
gewichtet, so muß ein minimal gewichtetes Vertex-Cover bestimmt werden. Dies ge-
schieht mit Hilfe eines Netzwerk-Fluß-Algorithmus. Dazu wird aus dem bipartiten Graphen
D
wie folgt ein Netzwerk
F
konstruiert:
1. F¨uge zwei ausgezeichnete Knoten
G
(Quelle) und
H
(Senke) mit den Kanten
IJGLKNMPO
,
MRQTS
,
und
IVU/KWHO
,
UXQZY\[
ein. Die Kante
I1GKNMPO
erh¨alt die Kapazit¨
at
]^I1GK_MO\`bacMda
und die Kante
IJUPKHO
die Kapazit¨at
]IVU/KWHOe`fa Uga
.
2. Alle Kanten
IVMgK_UhO
zwischen
S
und
Y\[
erhalten die Kapazit¨at
]IiMgKWjOe`Zk
und alle Kanten
IJUPK_MO
zwischen
Y[
und
S
werden gel¨oscht.
In
F
wird zun¨achst ein maximaler Fluß bestimmt. Anschließend wird mit Hilfe einer Breiten-
suche, die an dem Knoten
G
(oder
H
) startet und ¨uber benutzbare Kanten
l
f¨uhrt, ein minimaler
Schnitt bestimmt. Zu dem optimalen, d.h. minimal gewichteten Vertex-Cover geh¨oren dann alle
Knoten aus
SnmnYo[
, die inzident zu einer ¨uber den Schnitt f¨uhrenden Kante sind. Abbildung 4.3
verdeutlicht die Vorgehensweise an einem Beispiel.
Mit Hilfe des Dinic-Algorithmus kann ein maximaler Fluß und damit ein minimal gewich-
tetes Vertex-Cover in Zeit
p9IV@/AqBCr
A
O
berechnet werden (vgl. Ahuja et al. [16]). Im gewichteten
Fall verursacht die Berechnung eines optimalen Vertex-Covers also sehr viel mehr Aufwand als
im ungewichteten Fall. Die Netzwerk-Fluß-Technik hat jedoch gegen¨uber der Dulmage-Men-
delsohn-Dekomposition einen entscheidenden Vorteil: sie kann auch zur Bestimmung eines op-
timalen Vertex-Covers in einem aus mehr als zwei Schichten bestehenden Netzwerk verwendet
werden (vgl. Ashcraft und Liu [13]). Damit ist es m¨oglich eine gr¨oßere Nachbarschaft von
S
zu
durchsuchen. Die oben vorgestellte Gebietszerlegungsmethode macht hiervon Gebrauch.
Abschließend sei angemerkt, daß mit der Vertex-Cover-Technik auch ein Knotenseparator
S
aus einem Kantenseparator
s[
abgeleitet werden kann. Dazu betrachtet man den durch
s[
induzierten bipartiten Graphen.
4.1.4 Multisection-Verfahren
In einem Bottom-up-Verfahren wie Minimum-Degree wird der als n¨achstes zu eliminierende
Knoten mit Hilfe einer lokalen Knotenauswahlstrategie bestimmt. Der Algorithmus kann nicht
voraussehen, welchen Einfluß die Elimination eines Knotens auf die Bildung zuk¨unftiger Gebiete
hat. Diese Schw¨ache nutzen Berman und Schnittger [21] bei der Konstruktion ihres suboptimalen
Minimum-Degree-Orderings f¨ur quadratische Gitter aus. Ihr Ordering ist so konzipiert, daß Ge-
biete mit einem ”fraktalen“ (also einem sehr großen) Rand entstehen. Demgegen¨uber ist Georges
t
Bezeichne
uvw_x
den Fluß ¨uber die Kante
w
. Dann heißt
wzyTv{|V}~x
benutzbar, falls
w
eine Kante aus
ist mit
v{|V}~xuv{d|J}/x9
, oder falls
v}|V{gx
eine Kante aus
ist mit
uv}|V{gxC
.
56
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
S0
S1S2
S3S4
Abb. 4.4: Die obersten Separatoren in einem rechteckigen Gitter. Zuerst wurde der Separator
konstru-
iert (Ebene
), danach die Separatoren
N
r
(Ebene
) und
1$$
(Ebene
).
Nested-Dissection-Ordering f¨ur
BT?B
-Gitter bis auf einen konstanten Faktor optimal. Werden
die Separatoren entsprechend ihrer Rekursionstiefe eliminiert, so entstehen Gebiete mit einem
”glatten“ Rand.
Die Schw¨ache eines Top-down-Verfahrens wie Nested-Dissection kann am besten anhand
eines
B
-Gitters mit großem Aspekt-Ratio illustriert werden. F¨ur diese Gitter produziert ein
Minimum-Degree-Ordering weniger Fill-in als ein Nested-Dissection-Ordering. Im Extremfall
`
liefert der Minimum-Degree-Algorithmus sogar ein perfektes Ordering, wohingegen Ne-
sted-Dissection einen Fill-in von
pI1B3O
erzeugt. Da auch hier die besten Knotenseparatoren in
die Berechnung des Orderings eingehen (die besten in Bezug auf Gr¨oße des Separators und Ba-
lance der Partitionierung), kann der hohe Fill-in nicht der Qualit¨at der Separatoren angelastet
werden. Vielmehr ist die Numerierung der Separatoren f¨ur den hohen Fill-in verantwortlich. Ab-
bildung 4.4 zeigt die obersten Separatoren eines rechteckigen Gitters. Werden die Separatoren
entsprechend ihrer Rekursionstiefe numeriert, so wird
S
vor
S
und
S
aus dem Gitter ent-
fernt. Dadurch entsteht ein Element, auf dessen Rand
g
Knoten liegen. Werden die Separatoren
jedoch wie bei einem Profil-Ordering von links nach rechts oder wie bei einem Minimum-De-
gree-Ordering von beiden Seiten zur Mitte numeriert, so besitzen alle Elemente einen Rand der
Gr¨oße
.
In Multisection-Verfahren [14] werden die Knotenseparatoren nur noch zur Aufspaltung des
Graphen
E
in mehrere Teilgraphen benutzt. Als Ergebnis dieser Aufspaltung erh¨alt man eine Ge-
bietszerlegung
IiK_ K'~~K_¡¢O
, wobei der Multisektor
alle Knoten enth¨alt, die zu einem Sepa-
rator geh¨oren. Wir benutzen griechische Buchstaben, um die Gebietszerlegung
IiK_ K'~~3K_¡¢O
von der in Abschnitt 4.1.3 vorgestellten Gebietszerlegung
IN£
¤
K_¥ K~~~3K¢¥¦¢O
zu unterscheiden.
Wie von Ashcraft und Liu [12] beschrieben, kann die zweite Gebietszerlegung benutzt werden,
um die Knotenseparatoren der ersten zu konstruieren.
Die fundamentale Eigenschaft eines Multisection-Orderings besteht darin, daß die Knoten
in den Mengen
K~~~CK_¡
vor den Knoten aus
numeriert werden. Die Eliminationssequenz
ist also beschr¨ankt, d.h. einige Knoten m¨ussen vor anderen Knoten eliminiert werden. Zur Nu-
§
An dieser Stelle sei angemerkt, daß der nur aus den vertikalen Separatoren bestehende Eliminationsgraph bereits
chordal ist. Ein Profil- oder ein Minimum-Degree-Algorithmus findet ein perfektes Ordering f¨ur diesen Graphen.
4.1. Literatur¨ubersicht
57
merierung der Knoten aus
betrachtet man den Eliminationsgraphen
Eo¨©`ªIVK_s«¨¬O
mit (vgl.
Formel (4.3))
s¨`®IVs°¯©IV±²zOO³m
´
µ·¶
IJ¸^¹º»qIJ
µ
O¡²¸^¹ºW»¼IV
µ
OOh
F¨ur die Numerierung der Knoten in
K'~~K_¡
und f¨ur die Numerierung der Knoten des Schur-
Komplement Graphen
Eo¨
k¨onnen unterschiedliche Ordering-Verfahren benutzt werden.Ein Mul-
tisection-Ordering ist deswegen durch die folgenden Angaben spezifiziert (vgl. auch Ashcraft
und Liu [14]):
1. Verfahren zur Konstruktion der Gebietszerlegung
IVK_ K~~'K_¡_O
.
2. Knotenauswahlverfahren zur Elimination der Knoten in
K~~~K¢¡
.
3. Knotenauswahlverfahren zur Elimination der Knoten in
.
Ein Multisection-Ordering wird mit
½n¾3IJ¿gÀ¹ K¢¿^ÀW¹
r
O
bezeichnet. Dabei gibt
¿gÀW¹
das Knoten-
auswahlverfahren zur Elimination der Knoten in
K'~~K_¡
an und
¿gÀ¹
r
das Knotenauswahl-
verfahren zur Elimination der Knoten in
. Viele der in der Literatur beschriebenen Ordering-
Verfahren sind Multisection-Verfahren. Beispielsweise ist das in 3.1 beschriebene One-Way-Dis-
section-Verfahren von George [49] ein Multisection-Verfahren vom Typ
½Á¾3IVÂqÀW¿^ÃÄVK_ÂqÀ¿^ÃÄÅO
. Das
ebenfalls in 3.1 beschriebene Local-Nested-Dissection-Verfahren von Bhat et al. [19] ist ein Mul-
tisection-Verfahren vom Typ
½n¾3IJÆÇÈK_ÂqÀ¿^ÃÄÅO
. Weitere wichtige Multisection-Verfahren sind:
É
½n¾CIi½ÁÇÊK_Æ«ÇËO
In den meisten F¨allen ist die Konstruktion der f¨ur ein Nested-Dissection-Ordering ben¨otig-
ten Knotenseparatoren sehr viel aufwendiger als die Berechnung eines Bottom-up-Orde-
rings. In der Praxis wird daher die Konstruktion der Knotenseparatoren bereits nach we-
nigen Rekursionsstufen gestoppt, d.h. der Parameter
B
wird auf einen relativ hohen Wert
gesetzt. Ein solches Ordering bezeichnet man deswegen auch als unvollst¨
andiges (incom-
plete) Nested-Dissection-Ordering (vgl. George et al. [56]). Da in diesem Fall die Teil-
graphen sehr groß sind, werden die Knoten nicht mehr in beliebiger Reihenfolge, sondern
mit Hilfe eines Minimum-Degree-Verfahrens numeriert. Dabei ist das Minimum-Degree-
Verfahren so modifiziert, daß die Knoten aus
zwar in die Berechnung der Knotengra-
de eingehen, so jedoch nicht eliminiert werden (vgl. auch Liu [93]). Man erh¨alt so ein
Multisection-Ordering vom Typ
½Á¾Ii½ÁÇÊK¢ÆÇËO
.
É
½n¾CIi½ÁÇÊKN½ÌÇËO
Wie an dem
RXB
-Gitter aus Abbildung 4.4 gesehen, kann die G¨ute eines unvollst¨andigen
Nested-Dissection-Orderings weiter verbessert werden, wenn die Knotenseparatoren nicht
entsprechend ihrer Rekursionstiefe, sondern mit Hilfe eines Minimum-Degree-Algorith-
mus numeriert werden. Man erh¨alt so ein Multisection-Ordering vom Typ
½n¾3IV½ÁÇÊKN½ÁÇÍO
.
58
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Mit Hilfe eines
½Á¾Ii½ÁÇÊK_½ÁÇËO
-Orderings k¨onnen die Schw¨achen der Bottom-up- und der
Top-down-Methode am besten ausgeglichen werden.
½n¾CIi½ÁÇÊKN½ÌÇÎO
-Orderings gehen zu-
r¨uck auf die unabh¨angigen Arbeiten von Ashcraft und Liu [11] und Rothberg [122].
Einen v¨ollig anderen Multisection-Ansatz beschreiben Bornstein et al. [23]. In ihrem Less-Par-
allel-Nested-Dissection-Algorithmus (
ÏÐÂeÆÇ
) sind die Konstruktion und die Numerierung der
Separatoren nicht mehr klar voneinander getrennt. In jedem Rekursionsschritt wird nach Be-
rechnung eines minimalen Knotenseparators
S
entschieden, in welcher Reihenfolge die durch
Entnahme von
S
entstehenden zusammenh¨angenden Teilgraphen
EK~~~3K_EΦ
abgearbeitet wer-
den. Dazu wird f¨ur jede Komponente
E
µ
berechnet, wieviele Knoten aus bereits konstruierten
Separatoren zu Knoten aus
E
µ
benachbart sind. Gibt es mehrere Komponenten, f¨ur die dieser
Wert maximal ist, so werden
EK~~'3K_E˦
wie bei einem normalen Nested-Dissection-Schritt in
beliebiger Reihenfolge abgearbeitet. Gibt es jedoch genau eine Komponente
E
µÑ
, f¨ur die der Wert
maximal ist, so wird diese als letztes abgearbeitet (die anderen Komponenten kann man wieder
in beliebiger Reihenfolge abarbeiten). Dabei wird
E
µÑ
wie beim Generalized-Nested-Dissection-
Algorithmus vor dem rekursiven Aufruf um die Knotenmenge
S
erweitert. Im Gegensatz zum
Generalized-Nested-Dissection-Algorithmus werden die Knoten aus
S
jedoch erst in den nun
folgenden Rekursionsstufen numeriert. Daher m¨ussen alle Fill-Kanten in
S
eingef¨ugt werden,
die durch Elimination der in den anderen Komponenten enthaltenen Knoten entstehen. Genau
dieser Schritt verursacht einen erheblichen Aufwand, weswegen das Verfahren in der Praxis nur
beschr¨ankt einsetzbar ist. Der
ÏÐÂeÆÇ
-Algorithmus besitzt eine weitere Besonderheit: Die Kno-
ten des in einem normalen Nested-Dissection-Schritt konstruierten Separators
S
werden nicht
in beliebiger Reihenfolge, sondern mit Hilfe eines Minimum-Degree-Algorithmus numeriert.
Hierdurch und durch die Festlegung einer Reihenfolge bei der Abarbeitung der Komponenten
EK~~~3K¢E˦
ist garantiert, daß in einem chordalen Graphen immer eine perfekte Eliminationsse-
quenz gefunden wird (die Minimalit¨at der Separatoren vorausgesetzt).
4.2 Ein verbessertes Multisection-Verfahren
Im letzten Abschnitt haben wir zwei Kombinationsstufen von Minimum-Degree und Nested-
Dissection vorgestellt:
½Á¾3Ii½ÁÇÊK_Æ«ÇÎO
und
½n¾3IV½ÁÇÊKN½ÁÇÎO
. Insbesondere Multisection-Orderings
vom Typ
½n¾3IV½ÁÇÊKN½ÁÇÎO
sind sehr robust und k¨onnen die Schw¨achen der Bottom-up- und der
Top-down-Methode am besten ausgleichen. Unser Ziel ist es, eine noch engere Kopplung zwi-
schen beiden Methoden zu erreichen. Dazu zeigen wir, wie Bottom-up-Techniken zur Konstruk-
tion besserer Knotenseparatoren und wie Knotenseparatoren zur Konstruktion besserer Bottom-
up-Orderings genutzt werden k¨onnen (vgl. auch Schulze [132]).
Widmen wir uns zun¨achst dem ersten Vorhaben. Abbildung 4.5 zeigt einen Multisection-
Algorithmus, der dem urspr¨unglich von Ashcraft und Liu [14] beschriebenen Algorithmus sehr
4.2. Ein verbessertes Multisection-Verfahren
59
MULTISECTION
ÅÒ/ÓÕÔ ¨=Ò/ÓÔN=Ò/ÓÕÔ
r
01: Determine a domain decomposition
1ÖÕ×__Ø_Ø_ØÕ×
of
Ù
by a recursive bisection
process. Use node selection strategy
Ò/ÓÕÔ ¨
to construct the vertex separators.
02: for each set
×
µ
do
03: Eliminate all vertices in
×
µ
using node selection strategy
Ò/ÓÕÔ
.
04: Construct the elimination graph
Ù¨
.
05: Number the vertices in
Ù¨
using node selection strategy
Ò/ÓÔ
r
.
Abb. 4.5: Funktion MULTISECTION.
¨ahnlich ist. Auch hier wird der Multisektor
mit Hilfe eines rekursiven Bisektionsprozesses
konstruiert. Dabei kommt jedoch eine neuartige Multilevel-Methode zum Einsatz. Im Gegensatz
zu herk¨ommlichen Multilevel-Methoden, die auf einem Kantenkontraktionsverfahren basieren,
generiert die neue Methode eine Folge von Quotientengraphen
Ú
K¢Ú K~~~CK_ÚÛ
. Die Knotenaus-
wahlstrategie
¿gÀW¹¨
dient zur Bestimmung der beim ¨
Ubergang von
ÚCÜ$Ý
nach
ÚÜ
,
RÞ®ßÞàH
zu
eliminierenden Variablen. Nachdem so eine Gebietszerlegung
IVK_ K~~~3K¢¡_O
berechnet wurde,
werden die Knoten in den Mengen
K~~~3K_¡
entsprechend der Knotenauswahlstrategie
¿gÀ¹
und die Knoten des Schur-Komplement Graphen
E\¨
entsprechend der Auswahlstrategie
¿gÀ¹
r
eliminiert.
In Anlehnung an das Klassifizierungsschema von Ashcraft und Liu, ist unser Multisection-
Ordering durch die folgenden Angaben spezifiziert:
1. Knotenauswahlverfahren zur Schrumpfung des Graphen
E
.
2. Knotenauswahlverfahren zur Elimination der Knoten in
K~~~K¢¡
.
3. Knotenauswahlverfahren zur Elimination der Knoten in
.
Unsere Multisection-Orderings werden daher mit
½n¾3I1¿gÀW¹¨K¢¿gÀW¹ K¢¿gÀ¹
r
O
bezeichnet.
Zur Realisierung des zweiten Vorhabens verallgemeinern wir das in Abbildung 4.5 pr¨asen-
tierte Multisection-Verfahren. In dem verallgemeinerten Verfahren dienen die Knotenseparatoren
als ein Ger¨ust zur Generierung mehrerer Bottom-up-Orderings. Die Idee ist, einige Separatoren
aus
entsprechend ihrer Rekursionstiefe und einige mit Hilfe eines Bottom-up-Verfahrens zu
numerieren. Das verallgemeinerte Verfahren heißt deswegen dreistufiges Multisection.
Dieser Abschnitt ist wie folgt aufgebaut: In 4.2.1 stellen wir die neue Multilevel-Methodezur
Konstruktion der Knotenseparatoren vor. Des weiteren pr¨asentieren wir einige Knotenauswahl-
strategien zur Schrumpfung eines Graphen. In 4.2.2 beschreiben wir die iterative Verbesserungs-
heuristik, die in der Verfeinerungsphase unserer Multilevel-Methode benutzt wird. Wir zeigen,
daß die Laufzeit der Heuristik asymptotisch der des Vertex-Fiduccia-Mattheyses-Algorithmus
entspricht. Schließlich pr¨asentieren wir in 4.2.3 das dreistufige Multisection-Verfahren.
60
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
4.2.1 Konstruktion der Knotenseparatoren
Betrachten wir noch einmal die in Abschnitt 4.1.3 vorgestellte Gebietszerlegungsmethode. Im
Gegensatz zur Multilevel-Methode handelt es sich um einen zweistufigen Ansatz zur Konstruk-
tion von Knotenseparatoren. Dabei wird in der ersten Stufe die Knotenmenge
¤
des Graphen
E
partitioniert in
¤
`£
¤
mᥠmâ~~ãmá¥Ê¦
. Es gibt einen engen Zusammenhang zwischen
den Mengen
¥K~~'K_¥Ê¦
und den innerhalb eines Bottom-up-Verfahrens gebildeten Gebieten.
Sei
£
ä
` å
¦
µ¶
¥
µ
. Da alle Graphen
ERIV¥
µ
O
zusammenh¨angende Teilgraphen von
E
sind mit
¸^¹º
»
IV¥
µ
OÊæ £
¤
, stellt jede Menge
¥
µ
ein Gebiet bez¨uglich der eliminierten Knoten
£
ä
dar. Der
Multisektor
£
¤
enth¨alt dabei alle nicht eliminierten Knoten, und es gilt
¤
`£
¤
m£
ä
. Eine Ge-
bietszerlegung
I£
¤
K_¥ K'~~3K_¥Ê¦¢O
kann daher durch einen Eliminationsprozeß konstruiert werden,
der dem zur Berechnung eines Bottom-up-Orderings sehr ¨ahnlich ist. In diesem Fall erh¨alt man
eine Folge von Quotientengraphen
Ú
K_Ú K'~~K_ÚãÛ
, wobei der letzte Graph der Folge gerade die
gesuchte Gebietszerlegung repr¨asentiert. Aber auch alle vorherigen Graphen stellen eine Ge-
bietszerlegung dar und k¨onnen deshalb zur Verfeinerung des mit Hilfe von
ÚãÛ
bestimmten Kno-
tenseparators benutzt werden. Man erh¨alt so einen Multilevel-Algorithmus, der im folgenden
genauer beschrieben wird (vgl. auch Schulze [133]).
4.2.1.1 Beschreibung der neuen Multilevel-Methode
Unsere Multilevel-Methode beginnt mit der Konstruktion eines initialen Quotientengraphen
Ú
.
Basierend auf
Ú
wird dann eine Folge von Quotientengraphen
ÚK~'~K_ÚÛ
generiert, wobei
ÚÜ
aus
ÚÜ$Ý
,
çÞèßZÞéH
, durch die Elimination von Variablen entsteht. Alle Quotientengraphen
ÚCÜ«`êIVë¡Ü^KWìdÜ~O
besitzen die folgenden zwei Eigenschaften (dies schließt
Ú
ein, d.h.
íÞßXÞáH
):
(1) Sei
îÐÜ`ðï
¤
K~~~K
¤ãñ_ò
die Menge der Variablen von
ÚCÜ
, und sei
óÐÜËæôî³Ü
eine Menge von
Variablen, durch deren Entnahme
ÚCÜ
in zwei oder mehrere Komponenten zerf¨allt. Falls
óÐÜ
die Variablen
¤õ~ö
K'~~3K
¤÷õNø
enth¨alt, so ist
S©`
¤÷õ~ö
mù~~/m
¤÷õhø
ein Separator in
E
.
(2)
ÚCÜ
ist bipartit, d.h. es gibt nur Domain-Vertex-Kanten.
Die Eigenschaft (1) ist entscheidend f¨ur die Effektivit¨at unserer Multilevel-Methode. Durch sie
wird die Minimierung eines Separators
óÐÜ
f¨ur
ÚCÜ
in Verbindung gebracht zur Minimierung
eines Separators
S
f¨ur
E
. Zur Konstruktion eines Separators
óÐÜ
benutzen wir die von Ash-
craft und Liu vorgestellte F¨arbungstechnik. Dazu erh¨alt jedes Element
¥ QéúÈÜ
eine Farbe
û
¿^ÄÅ¿gÀ'IV¥ OüQàïý¡Ï3þÿ
K
ò
. Hieraus leitet sich analog zu (4.10) eine F¨arbung der Varia-
blen
ï
¤
K~~~3K
¤ãñ¢ò
ab. Wie wir gleich sehen werden garantiert die Eigenschaft (2), daß die grau
gef¨arbten Variablen einen Separator
óÐÜ
f¨ur
ÚCÜ
induzieren. Abbildung 4.6 faßt die Schritte unserer
Multilevel-Methode zusammen. Im folgenden werden wir jeden Schritt genauer beschreiben.
4.2. Ein verbessertes Multisection-Verfahren
61
SEPARATOR
ÅÒ/ÓÔ ¨
01: Construct initial quotient graph
from
Ù
.
02:
©
;
03: while
dÜ
not small enough do
04: Construct coarser quotient graph
dÜ
by eliminating some variables from
Ü
.
The variables are chosen according to node selection strategy
Ò/ÓÕÔ ¨
.
05:
©
;
06: end while
07: Determine a coloring for
dÜ
that induces a small separator
†
.
08: while
ù
do
09: Extend the coloring of
dÜ
to the nodes of
dÜ$Ý
. This induces a separator
¬ÜhÝ
of
dÜ$Ý
.
10: Improve the coloring of
dÜ$Ý
so that
¬Ü$Ý
is minimized.
11:
ù
;
12: end while
13: Extend the coloring of
to the vertices of
Ù
. This induces a separator
of
Ù
.
14: Improve
by applying a vertex cover technique.
Abb. 4.6: Funktion SEPARATOR.
Konstruktion des initialen Quotientengraphen Zun¨achst bestimmen wir in
E
eine maximale
unabh¨angige Menge
ä
von Knoten. Diese Knoten werden dann aus
E
eliminiert. Man erh¨alt so
`
û
¸^ÀW¹3I
ä
O
initiale Gebiete. Anschließend werden alle Knoten, die nur auf dem Rand eines
Gebietes liegen, mit eben diesem Gebiet verschmolzen. Seien
¥K~'~K_¥Ê¦
die so erhaltenen Ge-
biete, und sei
£
¤
die Menge aller nicht eliminierten Knoten. Nach Ashcraft und Liu generiert die
F¨arbungsregel (4.9) nur dann einen g¨ultigen Knotenseparartor f¨ur jede F¨arbung von
¥K~~~CK_¥Ê¦
wenn gilt
K
Q£
¤
"!
I
K
OQ²s
$# %
¥
mit
K
RQ²¸^¹º
»
IJ¥ Oh
(4.11)
Abbildung 4.7(a) zeigt, daß die F¨arbungstechnik versagt, falls (4.11) nicht erf¨ullt ist. Sei dazu
angenommen, daß die drei zu
benachbarten Gebiete schwarz und die zwei zu
benachbarten
Gebiete weiß gef¨arbt sind. Entsprechend der F¨arbungsregel 4.9 erh¨alt
die Farbe Schwarz und
die Farbe Weiß. Da beide Knoten durch eine Kante verbunden sind, kann die F¨arbung nicht zu
einer F¨arbung erweitert werden, die einen Knotenseparator in
E
induziert.
Eine solche Situation tritt nicht auf, falls f¨ur alle Knoten
K
Q £
¤
mit
I
K
OzQs
ein Gebiet
¥
existiert mit
Q²¸^¹º
»
IJ¥ O
und
Q²¸¹º
»
IV¥O
. In der Regel erf¨ullen die Knoten aus
£
¤
nicht die
Bedingung. Sie werden deshalb zu Segmenten
¤
K'~~K
¤¬ñ
zusammengefaßt, so daß gilt
¤
µ
K
¤
'&
æ£
¤
"!
L¤
µ
¯Ì¸^¹ºW»¼I
¤
'&
O
(
`
*)+# %
¥
mit
¤
µ
K
¤
'&
¯Á¸^¹Pº»eIV¥ O
(
`
)
(4.12)
Die Segmente
¤
K~~~K
¤ãñ
sind die kleinsten, die 4.12 erf¨ullen. In Abbildung 4.7 bilden die Kno-
ten
K
ein Segment. Alle anderen Segmente enthalten nur einen Knoten.
62
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
(b)
(c)
(a)
(d)
uv
Abb. 4.7: Die Generierung der Quotientengraphen. In (a) ist jeder Knoten des Graphen
Ù
, der zur un-
abh¨angigen Menge
,
geh¨ort, durch einen Kreis markiert. Jeder dieser Knoten bildet ein Gebiet.
Alle verbleibenden Knoten, die nur zu einem Gebiet benachbart sind, werden mit diesem Gebiet
verschmolzen. Dies ist durch ein Oval angedeutet. Die durch Kreise und Ovale umschlossenen
Knoten bilden jetzt die initialen Gebiete. Anschließend werden alle durch eine Kante miteinan-
der verbundene Knoten, die zu keinem gemeinsamen Gebiet benachbart sind, zu einem Segment
zusammengefaßt. Dies ist durch ein Rechteck angedeutet. Der resultierende initiale Quotienten-
graph
ist in (b) dargestellt. Dabei entspricht jedem schwarzen Kreis eine Variable und jedem
weißen Kreis ein Gebiet. Je mehr Knoten aus
Ù
durch ein Element bzw. durch eine Variable
repr¨asentiert werden, desto gr¨oßer ist der Kreis. (c) zeigt den Quotientengraphen
¬
, der aus
durch die Elimination der in (b) markierten Variablen entsteht. Werden in
ã
alle nicht unter-
scheidbaren Variablen – sie sind in (c) durch eine grau gestrichelte Linie miteinander verbunden
– zu einer Supervariablen zusammengefaßt, so erh¨alt man den in (d) dargestellten Quotienten-
graphen
[
. Durch die fett gestrichelte Linie wird ein Separator dargestellt.
4.2. Ein verbessertes Multisection-Verfahren
63
Wir sind jetzt in der Lage, den initialen Quotientengraphen
Ú
zu definieren. Die Elemente
von
Ú
sind die Gebiete
¥K~~~CK_¥Ê¦
und die Variablen die Segmente
¤
K~'~K
¤¬ñ
. Die Kanten
von
Ú
erh¨alt man durch die Formel (4.2). Offensichtlich besitzt
Ú
die Eigenschaft (1). We-
gen (4.12) gibt es in
Ú
nur Domain-Vertex-Kanten. Daher besitzt
Ú
auch die Eigenschaft (2).
Die Abbildungen 4.7(a) und (b) illustrieren die Konstruktion von
Ú
.
Schrumpfung der Quotientengraphen Sei
ÚCÜ9`ªI;úÈÜmîÐÜ^KWìdÜ~O
ein Quotientengraph, der die
Eigenschaften (1) und (2) besitzt. Zur Konstruktion von
ÚCÜ
wird zun¨achst mit Hilfe der Kno-
tenauswahlstrategie
¿gÀW¹d¨
eine unabh¨angige Menge
-
*æðîÐÜ
von Variablen bestimmt. In diesem
Zusammenhang heißen zwei Variablen
¤
µ
K
¤
.&
unabh¨angig, falls kein Element
¥bQáúÈÜ
existiert
mit
IV¥ÁK
¤
µ
OXQZìdÜ
und
IV¥ÌK
¤
.&
O QZìÜ
. Anschließend wird jede Variable
¤
µ
Q
/-
mit allen adja-
zenten Elementen zu einem neuen Element
¥
102
verschmolzen. Die Verschmelzungsoperationen
entsprechen den Eliminationsschritten eines Bottom-up-Algorithmus. Es gibt eine interessan-
te Analogie zu Lius Multiple-Minimum-Degree-Algorithmus. Auch dort wird in jeder Iteration
eine unabh¨angige Menge von Knoten eliminiert. Allerdings ist die Auswahl der Knoten auf sol-
che mit minimalem Grad beschr¨ankt. Um eine schnelle Schrumpfung der Quotientengraphen zu
erreichen, ist die Auswahl der Variablen in unserem Vergr¨oberungsprozeß nicht so restriktiv.
Schließlich werden alle Variablen, die nur zu einem Element benachbart sind, mit eben die-
sem Element verschmolzen. Man erh¨alt so einen Quotientengraphen
EoÜ
, der wieder bipartit
ist. Wegen
î³Ü
æ°îÐÜ
ist jeder Separator in
ÚCÜ
auch ein Separator in
ÚCÜ
, und da
ÚCÜ
die Eigen-
schaft (1) besitzt, besitzt sie auch
ÚCÜ
.
Es gibt eine weitere Analogie zu einem Bottom-up-Algorithmus: In
ÚCÜ
werden alle Va-
riablen, die zu der gleichen Menge von Elementen benachbart sind, zu einer Supervariablen
zusammengefaßt. Hierdurch reduziert sich nochmals die Anzahl der Knoten in
ÚCÜ
. Die Abbil-
dungen 4.7(b)-(d) illustrieren die Schrumpfung eines Quotientengraphen.
F¨
arbung der Quotientengraphen Sei wieder
ÚCÜù` I1ú\ÜÍm îÐÜKìÜ'O
ein Quotientengraph, der
die Eigenschaften (1) und (2) besitzt. Zur Konstruktion eines Separators
óÐÜ æðîÐÜ
benutzen wir
die F¨arbungstechnik von Ashcraft und Liu [12]. Dabei werden die Variablen nach der folgenden
Regel gef¨arbt:
û
¿gÄÅ¿gÀ'I
¤
µ
Oq`
3
465
ý¡Ï3þÿ
K
falls f¨ur alle
¥"Q²¸¹º
87:9
I
¤
µ
O
gilt
û
¿gÄÅ¿gÀ'IV¥Oq`âý¡Ï3þÿ
;
K
falls f¨ur alle
¥ Qn¸^¹º
87 9
I
¤
µ
O
gilt
û
¿gÄ ¿gÀ~IJ¥ Oe`
/
<>=
þ
@?
K
sonst.
(4.13)
Die Regel (4.13) ist der Regel (4.9) sehr ¨anhlich. Da es jedoch in
ÚÜ
keine Vertex-Vertex Kanten
gibt, ist sichergestellt, daß die Menge
óÐÜ`ðï
¤
µ
QÁî³Ü
BA
û
¿gÄ ¿gÀ~I
¤
µ
Oq`
<C=
þ
@?
ò
f¨ur jede F¨arbung der
Elementein
úÈÜ
einen g¨ultigen Knotenseparator darstellt. Eine weitere Segmentbildung bez¨uglich
der Variablen in
îÐÜ
ist nicht notwendig.
64
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Zur Bestimmung einer F¨arbung, die einen m¨oglichst kleinen Separator
óÐÜ
induziert, benutzen
wir die in Abschnitt 4.2.2 vorgestellte Verbesserungsheuristik. Eingabe der Heuristik ist eine
initiale F¨arbung der Elemente. Im Falle
ß`±H
(d.h.
ÚCÜ
ist der letzte Quotientengraph der Folge)
ist die initiale F¨arbung definiert durch
û
¿gÄÅ¿^À~IJ¥ OR`ªýÏÐþÿ
f¨ur alle
¥ QZú\Ü
. Gilt
ß
D
(H
, so
erh¨alt man die initiale F¨arbung durch eine Erweiterung der F¨arbung von
EoÜ
.
Gl¨
attung des Separators Der Separator
ó
` ï
¤÷õ~ö
K~'~K
¤÷õ øò
induziert in
E
den Separator
S?`
¤õ ö
mÍ~'7m
¤÷õhø
.
S
enth¨alt also nur solche Knoten aus
E
, die zu einem Segment geh¨oren. In der
Regel kann durch Einbeziehung der in den Gebieten von
Ú
enthaltenen Knoten das Gewicht des
Separators weiter reduziert werden. Diese Gl¨attung des Separators geschieht in einem iterativen
Prozeß, der auf der in Abschnitt 4.1.3 beschriebenen Vertex-Cover-Technik beruht. Sei wieder
IiS K¢Y9K
FE
O
die Partitionierung von
E
. Es gelte
acYÌa
HG
a
6E
a
. Mit Hilfe der Dulmage-Mendelsohn-
Dekomposition (
E
ungewichtet) oder der Netzwerk-Fluß-Technik (
E
gewichtet) wird zun¨achst
in dem durch
S
und
Y[`Z¸^¹ºW»qIVS OЯÁY
induzierten bipartiten Graphen
D
ein optimales Vertex-
Cover bestimmt. Wie in den Abbildungen 4.2 und 4.3 gezeigt, werden durch beide Verfahren in
der Regel zwei L¨osungen generiert. In den L¨osungen ist das Gewicht des Vertex-Covers – und
damit das Gewicht des neuen Separators – gleich, die entsprechenden Partitionierungen k¨onnen
sich jedoch erheblich in ihrer Balance unterscheiden. Da in die Bewertung einer Partitionierung
Gewicht und Balance einfließen, wird die besser balancierte L¨osung gew¨ahlt.
Die Balance ist auch der Grund, warum
S
zuerst mit der schwereren Menge
Y
gepaart wurde.
Nur wenn dies zu keiner Verbesserung f¨uhrt, wird ein optimales Vertex-Cover in dem durch
S
und
E
[`¸¹ºW»qIiSeO4¯
IE
induzierten Graphen berechnet. Schl¨agt die Optimierung der Partitio-
nierung auch hier fehl, so terminiert der Gl¨attungsprozeß. Anderenfalls wird der gesamte Prozeß
mit der verbesserten Partitionierung erneut durchlaufen.
4.2.1.2 Knotenauswahlstrategien zur Schrumpfung eines Graphen
In unserem Multilevel-Verfahren besteht der Separator
óÐÜ
eines Quotientengraphen
ÚCÜ«` I;úÈÜ m
îÐÜ^KWìdÜ~O
aus den in
î³Ü
enthaltenen Variablen. Nach Konstruktion entspricht jeder Variablen aus
îÐÜ
ein Segment und jedem Element aus
úÈÜ
ein Gebiet in
E
. Der durch
óÐÜ
induzierte Separator
S
von
E
setzt sich also aus Randsegmenten der in
E
gebildeten Gebiete zusammen. Hier zeigt
sich ein entscheidender Vorteil unseres Multilevel-Verfahrens. Wird n¨amlich
E
mit Hilfe eines
Kantenkontraktionsverfahrens zu einem Graphen
E[
geschrumpft, so induziert jeder Separator
S[
in
E[
einen Separator
S
in
E
, der aus mehreren nebeneinander liegenden Knotenschichten
besteht. Ein großer Teil der in
S
enthaltenen Knoten ist also redundant. Demgegn¨uber ist der
Anteil redundanter Knoten in einem aus Randsegmenten zusammengesetzten Separator
S
sehr
viel geringer.
Es verbleibt die Frage, nach welchen Kriterien die beim ¨
Ubergang von
ÚCÜ
nach
ÚCÜ
zu
eliminierenden Variablen ausgew¨ahlt werden sollen. Unser prim¨ares Ziel ist die Konstruktion
4.2. Ein verbessertes Multisection-Verfahren
65
eines leichten Separators
S
in
E
. Da sich
S
aus Randsegmenten zusammensetzt, sollten bei der
Bildung von
ÚCÜ
die Elemente so verschmolzen werden, daß die R¨ander der neuen Elemente
aus m¨oglichst wenigen, leichten Segmenten bestehen. Dar¨uber hinaus muß ein unbalanciertes
Anwachsen der Elemente vermieden werden. Schwere Elemente entsprechen großen Gebieten in
E
. Ber¨uhrt ein Separator ein großes Gebiet so kann der Fall eintreten, daß er eine weite Strecke
um dieses Gebiet ”herumlaufen“ muß. Der Graph
E
sollte daher durch ungef¨ahr gleich große
Gebiete abgedeckt werden, die einen kleinen Rand besitzen.
Die Generierung von Gebieten mit kleinem Rand entspricht exakt dem Ziel des Minimum-
Degree-Algorithmus. Die Knoten auf dem Rand bilden n¨amlich eine Clique im Eliminationsgra-
phen. Dies motiviert die folgende Knotenauswahlstrategie: Berechne f¨ur jede Variable
¤
µ
QTîÐÜ
ihren Knotengrad
¹
KJ:L
ãI
¤
µ
Oe`
M
0ONFPRQTS
2
a
¤
.&
a
(4.14)
Dabei enth¨alt
UV0F2
alle Variablen, die von
¤
µ
¨uber ein gemeinsames Element
¥
erreichbar sind,
d.h.
¤
'&
Q
WUV02YX %
X¥ªQú\Ü
mit
¤
µ
Q©¸^¹Pº
79
^IV¥ O
und
î
&
Q?¸^¹º
79
^IJ¥ O
. Sortiere anschließend die
Variablen aufsteigend nach ihrem Knotengrad und f¨ulle die unabh¨angige Menge
-
beginnendmit
der ersten Variablen in der Sortierung auf. Die Knotenauswahlstrategie heißt Minimum-Degree-
In-Quotient-Graph (
Z
˽ÁÇ
).
Unsere zweite Knotenauswahlstrategie basiert auf der Heavy-Edge-Matching-Heuristik von
Karypis und Kumar [78] Die Idee ist, beim ¨
Ubergang von
ÚCÜ
nach
ÚCÜ
eine unabh¨angige Men-
ge m¨oglichst schwerer Variablen zu eliminieren. Diese Auswahlstrategie hat jedoch einen ent-
scheidenden Nachteil: Eine schwere Variable in
ÚÜ
entspricht einem großen Randsegment in
E
. Typischerweise trennt ein solches Randsegment zwei große Gebiete. Durch die bevorzugte
Entnahme schwerer Variablen wird so das Wachstum großer Gebiete beg¨unstigt. Um ein sol-
ches unbalanciertes Anwachsen der Gebiete zu vermeiden, wird das Gewicht einer Variablen
¤
µ
in Relation zu dem Gewicht des neu geformten Elementes
¥
102
gesetzt. Man erh¨alt dann eine
Knotenauswahlstrategie, bei der zur Sortierung der Variablen die Werte
[
û
¿gÀ
8J
I
¤
µ
Oe`
a
¤
µ
a
]\
M
^
P:_a`abdc
9fe
02dg
ac¥a
(4.15)
benutzt werden. Die Auswahlstrategie heißt Maximal-Relative-Decrease-Of-Variables-In-Quo-
tient-Graph (
Z
˽
=
Ç
ih
). Man beachte, daß durch (4.15) die Generierung von Elementen mit
kleinem Aspekt-Ratio beg¨unstigt wird. Dazu betrachten wir zwei Variablen
¤
µ
und
¤
'&
. Es sei an-
genommen, daß
¤
µ
vier Knoten enth¨alt und zu zwei Elementen adjazent ist, die jeweils ein
j
1j
-
Gitter darstellen. Dann gilt
[
û
¿gÀ
8J
I
¤
µ
Oe` I
lkm
nk
÷O
opj
\`
*q
. Durch die Elimination von
¤
µ
entsteht
ein
j
Wr
-Gitter. Bez¨uglich
¤
'&
sei angenommen, daß die Variable aus zwei Knoten besteht und
zu zwei
Í
sq
-Gittern adjazent ist. F¨ur
¤
'&
ergibt sich dann ein Score-Wert von
IÕ
nktm
ç
lk
gO
o
gÎ`®
nk
.
66
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
0
10
20
30
40
50
60
70
80
90
0 10 20 30 40 50 60
Anzahl der Knoten (in %)
u
Knotengrad
CFD1 (|V| 70656, |E| 878854)
0
2
4
6
8
10
12
14
16
18
0 10 20 30 40 50 60
Anzahl der Knoten (in %)
u
Knotengrad
BCSSTK25 (|V| 15439, |E| 118401)
Abb. 4.8: Verteilung der Knotengrade f¨ur CFD1 und BCSSTK25.
Wird
¤
'&
eliminiert, so entsteht ein
\
fv
-Gitter. In beiden F¨allen entstehen also ungef¨ahr gleich
große Gitter. Die Elimination von
¤
µ
wird jedoch bevorzugt, so daß ein Gitter mit kleinerem
Aspekt-Ratio entsteht.
Wir wollen die Effektivit¨at der Auswahlstrategien exemplarisch an zwei Matrizen darstellen.
Die erste Matrix (CFD1) wurde aus einem Programm zur Str¨omungssimulation extrahiert. Der
Graph dieser Matrix ist sehr homogen. Abbildung 4.8(links) zeigt, daß 83% der Knoten einen
Grad von 26 besitzen. Die zweite Matrix (BCSSTK25) stammt aus der bekannten Harwell-Boe-
ing-Collection [34] und stellt das Modell eines Hochhauses dar. Im Vergleich zu CFD1 ist der
Graph von BCSSTK25 sehr viel heterogener. Abbildung 4.8(rechts) zeigt, daß 14% der Knoten
einen Grad von zehn und 17% einen Grad von 18 besitzten. Die verbleibenden 69% der Knoten
besitzen einen Grad zwischen eins und 58.
Einfluß der Knotenauswahlstrategie auf die Bildung der Gebiete Wir untersuchen zun¨achst,
welchen Einfluß die Knotenauswahlstrategie auf die Bildung der Gebiete im Vergr¨oberungs-
prozeß hat. Neben den oben vorgestellten Auswahlstrategien
Z
˽ÁÇ
und
Z
˽
=
Ç
h
betrachten
wir eine dritte Strategie, bei der die zu eliminierenden Variablen nach dem Zufallsprinzip aus-
gew¨ahlt werden. Wir nennen diese Strategie
Z
=
þÍÆ«Ç
. Abbildung 4.9 enth¨alt sechs Graphiken,
die f¨ur jede Matrix und f¨ur jede Auswahlstrategie zeigen, wie sich die Gr¨oße der im Laufe des
Vergr¨oberungsprozesses gebildeten Gebiete gegen¨uber der Gr¨oße ihrer R¨ander verh¨alt. Dazu ist
jedes Gebiet
¥
durch einen Punkt mit der x-Koordinate
ac¥a
und der y-Koordinate
aÕ¸^¹º »IJ¥ OPa
dargestellt. Da wir die ”Geometrie“ eines Graphen durch etwa gleich große Gebiete mit einem
glatten Rand ¨uberdecken m¨ochten, sollten die Punkte m¨oglichst nah am Ursprung des Koordina-
tensystems liegen.
Die Graphiken auf der linkenSeite zeigen die ¨
Uberlegenheitvon
Z
˽ÁÇ
und
Z
˽
=
Ç
ih
im Ver-
gleich zu
Z
=
þÆÇ
. Werden die Quotientengraphen f¨ur CFD1 mit Hilfe von
Z
=
þÍÆ«Ç
gebildet,
so entstehen viele Gebiete, die mehr als 1000 Knoten enthalten. Dar¨uber hinaus besitzten viele
4.2. Ein verbessertes Multisection-Verfahren
67
Gebiete
¥
mit
ac¥a
wD
â/ígígí
einen gr¨oßeren Rand als Gebiete, die mit Hilfe der Auswahlstrategien
Z
˽ÁÇ
und
Z
˽
=
Ç
ih
gebildet werden. Man beachte, daß im Falle von
Z
˽ÁÇ
und
Z
˽
=
Ç
h
kein
Gebiet entsteht, das mehr als 1000 Knoten enth¨alt.
Betrachtet man die Graphiken f¨ur BCSSTK25, so scheint die Effektivit¨at der Auswahlstra-
tegien
Z
o½ÌÇ
und
Z
˽
=
Ç
ih
nachzulassen. Approximiert man jedoch die Eintr¨age der Graphiken
durch eine Kurve, so verl¨auft diese Kurve sehr viel flacher, wenn die Quotientengraphen mit
Hilfe der Auswahlstrategien
Z
˽ÁÇ
oder
Z
o½
=
Ç
ih
gebildet werden. Im Vergleich zu
Z
=
þÍÆ«Ç
produzieren also
Z
o½ÌÇ
und
Z
o½
=
Ç
ih
wieder Gebiete mit einem kleineren Rand. Ein Vergleich
zwischen den Graphiken f¨ur
Z
˽ÁÇ
und
Z
˽
=
Ç
ih
zeigt außerdem, daß durch die Minimum-
Degree-Auswahlstrategie ein gleichm¨aßigeres Anwachsen der Gebiete erreicht wird. Wir haben
diese Tendenz f¨ur eine Reihe weiterer heterogener Graphen beobachtet.
Zusammengefaßt l¨aßt sich feststellen, daß bei Verwendung der Auswahlstrategien
Z
˽ÁÇ
und
Z
˽
=
Ç
ih
mehr ”wohlgeformte“ Gebiete entstehen als bei Verwendung einer auf dem Zu-
fallsprinzip beruhenden Strategie. Im Falle eines heterogenen Graphen, ist die Auswahlstrategie
Z
˽ÁÇ
der Auswahlstrategie
Z
˽
=
Ç
ih
¨uberlegen, da durch sie ein gleichm¨aßigeres Anwachsen
der Gebiete erreicht wird.
Einfluß der Knotenauswahlstrategie auf die Konstruktion der Separatoren Wir widmen uns
jetzt der Frage, welchen Einfluß die Knotenauswahlstrategie auf die Konstruktion der Separato-
ren hat. Dazu haben wir f¨ur BCSSTK25 und CFD1 die Quotientengraphen
Ú
K'~~¢Ú
yx
konstruiert.
Die zwei oberen Graphiken in Abbildung 4.10 zeigen die Anzahl der Elemente in
Ú
K~~~WÚ
zx
in Abh¨angigkeit von der verwendeten Knotenauswahlstrategie. Man beachte, daß wir f¨ur die
y-Achse eine logarithmische Skalierung gew¨ahlt haben. Im Falle von CFD1 halbiert sich die An-
zahl der Elemente bei jedem ¨
Ubergang von
EoÜ
nach
ÚCÜ
. Dabei k¨onnen wir keinen Unterschied
zwischen den Auswahlstrategien
Z
˽ÁÇ
,
Z
˽
=
Ç
h
und
Z
=
þÍÆÇ
feststellen. Abbildung 4.9 hat
jedoch gezeigt, daß die Qualit¨at der Elemente sehr viel besser ist, wenn zur Schrumpfung die
Auswahlstrategien
Z
˽ÁÇ
oder
Z
˽
=
Ç
ih
verwendet werden.
Die Graphik f¨ur BCSSTK25 illustriert, daß bei Schrumpfung eines heterogenen Graphen die
Anzahl der Elemente nicht immer linear abnimmt. Bedingt durch den stark variierenden Kno-
tengrad kommt es schon sehr fr¨uh zur Bildung großer Elemente, die zu einer L¨ahmung des Ver-
gr¨oberungsprozesses f¨uhren. Wie in Abbildung 4.9 gesehen, wird ein unbalanciertes Anwachsen
der Gebiete am effektivsten von der Auswahlstrategie
Z
o½ÌÇ
verhindert. Daher ist es nicht ver-
wunderlich, daß die Anzahl der Elemente in
Ú
yx
am geringsten ist, wenn zur Schrumpfung der
Quotientengraphen die Auswahlstrategie
Z
o½ÌÇ
benutzt wird. Man beachte, daß nur im Falle von
Z
˽ÁÇ
das Terminationskriterium (weniger als 200 Elemente im Quotientengraphen) nach sechs
Vergr¨oberungsschritten erf¨ullt ist.
Die beiden Graphiken in der Mitte von Abbildung 4.10 zeigen die Minimierung eines Se-
parators im Laufe des Verfeinerungsprozesses. Dazu haben wir f¨ur jeden Quotientengraphen
Ú
zx
68
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
0
1000
2000
3000
4000
5000
6000
7000
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
CFD1 (|V| 70656, |E| 878854)
QRAND
0
1000
2000
3000
4000
5000
6000
7000
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
CFD1 (|V| 70656, |E| 878854)
QMD
0
1000
2000
3000
4000
5000
6000
7000
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
CFD1 (|V| 70656, |E| 878854)
QMRDV
0
500
1000
1500
2000
2500
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
BCSSTK25 (|V| 15439, |E| 118401)
QRAND
0
500
1000
1500
2000
2500
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
BCSSTK25 (|V| 15439, |E| 118401)
QMD
0
500
1000
1500
2000
2500
0 500 1000 1500 2000 2500 3000 3500
|adj(D)|
{
|D|
BCSSTK25 (|V| 15439, |E| 118401)
QMRDV
Abb. 4.9: Einfluß der Auswahlstrategien
|}~
,
|s
und
|}
auf die Bildung der Gebiete.
4.2. Ein verbessertes Multisection-Verfahren
69
100
1000
10000
0 1 2 3 4 5 6
Anzahl der Elemente
Quotientengraph
CFD1 (|V| 70656, |E| 878854)
QRAND
QMD
QMRDV
500
1000
1500
2000
2500
3000
3500
4000
0123456
|S| (ohne Vertex-Cover-Technik)
Verfeinerungsschritte
CFD1 (|V| 70656, |E| 878854)
QRAND
QMD
QMRDV
500
550
600
650
700
750
800
850
900
0 1 2 3 4 5 6
|S| (mit Vertex-Cover-Technik)
Verfeinerungsschritte
CFD1 (|V| 70656, |E| 878854)
QRAND
QMD
QMRDV
100
1000
10000
0 1 2 3 4 5 6
Anzahl der Elemente
Quotientengraph
BCSSTK25 (|V| 15439, |E| 118401)
QRAND
QMD
QMRDV
250
300
350
400
450
500
550
600
0123456
|S| (ohne Vertex-Cover-Technik)
Verfeinerungsschritte
BCSSTK25 (|V| 15439, |E| 118401)
QRAND
QMD
QMRDV
160
180
200
220
240
0123456
|S| (mit Vertex-Cover-Technik)
Verfeinerungsschritte
BCSSTK25 (|V| 15439, |E| 118401)
QRAND
QMD
QMRDV
Abb. 4.10: Einfluß der Auswahlstrategien
|i}~
,
|
und
|s}
auf die Konstruktion der Sepa-
ratoren.
70
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
mit Hilfe der im n¨achsten Abschnitt vorgestellten Verbesserungsheuristik einen Separator
ó
x
konstruiert und diesen Separator – wieder mit Hilfe der Verbesserungsheuristik – in
Schrit-
ten verfeinert,
\`éíK~~~K
k
, bis wir einen Separator
ó
x
WÝ
µ
f¨ur
Ú
zx
WÝ
µ
erhalten haben. Die beiden
Graphiken zeigen das Gewicht des durch
ó
x
WÝ
µ
induzierten Separators
S
als eine Funktion von
.
Alle Angaben stellen die Durchschnittswerte von elf Ausf¨uhrungen unseres Multilevel-Verfah-
rens dar. Vor jeder Ausf¨uhrung wurden die Adjazenzlisten der Graphen CFD1 und BCSSTK25
zuf¨allig permutiert. Im Falle von
Z
=
þÍÆ«Ç
hat der f¨ur
Ú
zx
konstruierte Knotenseparator ein sehr
hohes Gewicht. Dies liegt daran, daß die mit Hilfe von
Z
=
þÆÇ
produzierten Gebietszerlegun-
gen unsere Anforderung Ӭ
Uberdeckung des Graphen
E
durch ungef¨ahr gleich große Gebiete mit
glattem Rand“ am wenigsten erf¨ullen. Die beiden Graphiken zeigen jedoch auch, daß die negati-
ven Auswirkungen einer schlechten Gebietszerlegung bis zu einem gewissen Grad durch die im
Verfeinerungsprozeß verwendete Heuristik kompensiert werden k¨onnen.
In unserem Experiment haben wir bislang auf den Einsatz der Vertex-Cover-Technik zur
Gl¨attung eines Separators verzichtet. Es stellt sich die Frage, wie wichtig der Einsatz dieser Tech-
nik zur Konstruktion eines guten Knotenseparators ist. Vielleicht ist diese Technik so m¨achtig,
daß auf den gesamten Verfeinerungsprozeß verzichtet werden kann. Dieser Gedanke ist nicht
abwegig, da in dem zweistufigen Ansatz von Ashcraft und Liu [12] die Quotientengraphen
Ú
zx
und
Ú
zx
WÝ
µ
identisch sind. Die letzten beiden Grafiken in Abbildung 4.10 geben eine Antwort
auf diese Frage. Die Graphiken zeigen das Gewicht des durch
ó
x
WÝ
µ
induzierten Separators
S
nach Anwendung der Vertex-Cover-Technik. Die Grafik f¨ur CFD1 verdeutlicht, daß trotz der ho-
hen Effektivit¨at der Vertex-Cover-Technik auf den Verfeinerungsprozeß nicht verzichtet werden
kann. Insbesondere wenn
Ú
zx
eine schlechte Gebietszerlegung darstellt, wie dies bei Verwendung
der Auswahlstrategie
Z
=
þÆÇ
der Fall ist, wird der Verfeinerungsprozeß zur Konstruktion eines
guten Knotenseparators ben¨otigt. Dies erkl¨art, warum Ashcraft und Liu einen sehr viel komple-
xeren Gl¨attungsalgorithmus benutzen.
Die Graphik f¨ur BCSSTK25 scheint auf den ersten Blick anzudeuten, daß eine gute Gebiets-
zerlegung bereits ausreicht, um nur mit Hilfe der Vertex-Cover-Technik einen kleinen Knoten-
separator bestimmen zu k¨onnen. In der Tat sind im Falle von
Z
˽ÁÇ
und
Z
o½
=
Ç
ih
die Verfeine-
rungsschritte vier, f¨unf und sechs ¨uberfl¨ussig. Man muß jedoch bedenken, daß BCSSTK25 das
Modell eines Hochhauses darstellt. Daher enth¨alt BCSSTK25 ein weites Spektrum von vielen
kleinen Separatoren, die sich lediglich hinsichtlich der Balance ihrer Partitionierungen unter-
scheiden. Die Effektivit¨at der Vertex-Cover-Technik ist somit auf die spezielle Geometrie von
BCSSTK25 zur¨uckzuf¨uhren.
4.2.2 Optimierung der Knotenseparatoren
Die Effizienz unserer Multilevel-Methode h¨angt ganz entscheidend von der Laufzeit des in der
Verfeinerungsphase benutzten Optimierungsverfahrens ab. Wie Ashcraft und Liu [12] benutzen
4.2. Ein verbessertes Multisection-Verfahren
71
IMPROVECOLORING
ô
d
C
O
¢Ò
f
Ò/Ó_
01: repeat
02:
¢Ò
f
·Ò/Ó
¢Ò
f
·Ò/Ó
;
03: unmark all
1
;
04: while there are unmarked elements do
05: select an unmarked element
;
06: if
¢Ò
f
Ò/Ó'
~
then
07:
¢Ò
f
Ò/Ó'
YW¡W¢£a¤t¥
;
08: for each variable
¦
µ
¨§
/Ô
:©
7
do
09: UPDATE
ª]«¬
X
¦
µ
O
;
10: else
11:
¢Ò
f
Ò/Ó'
Y~
;
12: for each variable
¦
µ
¨§
/Ô
:© 7
do
13: UPDATE
¬+«ª
¦
µ
O
;
14: end else
15: mark
;
16: let
1
O®
8¯
denote the partition induced by
¢Ò
f
Ò/Ó
8
;
17: let
1C
O®
È
8¯
denote the partition induced by
¢Ò
f
·Ò/Ó
;
18: if
°
\1C
O®
È
8¯
±I°
o1
O®
8¯
then
19:
¢Ò
f
Ò/Ó
¢Ò
f
·Ò/Ó
;
20: end while
21:
¢Ò
f
·Ò/Ó
¢Ò
f
·Ò/Ó
8
;
22: until
¢Ò
f
·Ò/Ó
has not been improved;
Abb. 4.11: Funktion IMPROVECOLORING.
auch wir zur Optimierung einer gegebenen F¨arbung eine Variante des Fiduccia-Mattheyes-Algo-
rithmus. Im Gegensatz zu ihrem Algorithmus ben¨otigt unsere Variante jedoch nur eine Laufzeit,
die asymptotisch der des Vertex-Fiduccia-Mattheyses-Algorithmusentspricht. Im folgenden wer-
den wir zun¨achst alle Funktionen unseres Optimierungsalgorithmus vorstellen und anschließend
seine Laufzeit analysieren.
4.2.2.1 Beschreibung der iterativen Verbesserungsheuristik
Abbildung 4.11 zeigt die Struktur unseres Optimierungsalgorithmus. Eingabeparameter sind ein
Quotientengraph
²
und eine initiale F¨arbung
³:´¶µ·´¶¸
. Der Algorithmus besteht aus zwei inein-
ander geschachtelten Schleifen. In der inneren while-Schleife werden die Farben ausgew¨ahlter
Elemente ge¨andert und die neu entstandenen Partitionierungen bewertet. Vor Eintritt der Schleife
wird die aktuelle, d.h. die beste bislang gefundene F¨arbung in
³:´¶µ·´¶¸¹
gespeichert. Da der Algo-
rithmus die Verschlechterung einer Partitionierung zul¨aßt, muß sichergestellt werden, daß die
72
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
while-Schleife terminiert. Daher darf jedes Element nur einmal seine Farbe wechseln. Nach dem
Farbwechsel wird das Element markiert und kann dann nicht mehr in Zeile 05 gew¨ahlt werden.
Diese Einschr¨ankung motiviert die ¨außere Schleife, die den Optimierungsprozeß so oft startet
bis eine Verbesserung der aktuellen F¨arbung nicht mehr m¨oglich ist.
Die Auswahleines Elementes in Zeile 05 geschieht wie folgt:Aus allen unmarkierten schwar-
zen und aus allen unmarkierten weißen Elementen wird jeweils dasjenige Element ausgew¨ahlt,
durch dessen Farbwechsel das Gewicht des Separators am meisten reduziert bzw. am gering-
sten erh¨oht wird. Seien
º¼»
und
º½
die entsprechenden Elemente. In Abh¨anigigkeit von der
Bewertungsfunktion
¾
setzt man dann
ºÀ¿ÂÁú¼»
oder
ºÄ¿ÂÁź½
. Gibt es von einer Farbe keine
unmarkierten Elemente mehr, so er¨ubrigt sich die Benutzung von
¾
.
Nachdem ein Element
º
bestimmt und dessen Farbe ge¨andert wurde, wird die F¨arbungsre-
gel 4.13 auf jede Variable
ÆHÇÉÈËÊpÌBÍ8ÎÏкÒÑ
angewandt. Dies geschieht durch Aufruf der Funktionen
UPDATE
Ó]ÔÕ
und UPDATE
Õ>ÔÓ
. Falls die neue F¨arbung eine Partitionierung
ÏÐÖ@ר×FÙÚÑ
indu-
ziert, die besser ist als die durch
³:´Ûµd´¶¸8¹
induzierte Partitionierung
ÏÐÖ
¹
ר
¹
×Ù
¹
Ñ
, so wird
³Ü´¶µd´¶¸
nach
³Ü´¶µd´Û¸ ¹
kopiert. Zur Bewertung einer Partitionierung benuzten wir die Funktion
¾ÏÐÖ@ר×FÙÚÑÁÅÝÞÖßÝÜàâá>ãläÊBåzÏçæè×é1ãläsÊBåêÏFÝ ØëÝì×ÛÝÞÙíÝ6ÑÉîä¨ïdðzÏFÝ ØëÝì×pÝ6ÙíÝ6Ñ8Ñ
à
äsÊBåêÏFÝ ØëÝì×ÛÝÞÙíÝ6ÑÉîä¨ïdðzÏFÝ ØëÝì×pÝ6ÙíÝ6Ñ
äsÊBåêÏFÝ ØëÝì×ÛÝÞÙíÝ6Ñ ñ
(4.16)
In
¾
ist das Gewicht des Separators
Ö
die bestimmende Gr¨oße. Erst wenn die Differenz zwischen
dem Gewicht von
Ø
und dem Gewicht von
Ù
einen gewissen Toleranzwert ¨ubersteigt, wird ein
zus¨atzlicher Strafterm aufaddiert. Die Toleranz wird mit Hilfe des Parameters
é
,
æóòôéõò÷ö
,
eingestellt und die H¨ohe des Strafterms mit Hilfe des Parameters
áøùæ
. Der dritte Term fungiert
als Tie-Breaker bei der Wahl zwischen mehreren gleich schweren Separatoren, wenn die Balance
innerhalb des tolerierten Bereichs liegt.
Ein sehr wichtiges Detail bei der Implementierung der Funktion IMPROVECOLORING ist die
effiziente Berechnung der Gewichte
ÝÞÖßÝ
,
ÝÞØëÝ
und
Ý6ÙíÝ
nach einem Farbwechsel. Die Gewichte
werden zur Bewertung der neuen Partitionierung ben¨otigt. Um eine effiziente Berechnung zu
erm¨oglichen, speichern wir in
ú1ûÏкÒÑ
,
ú1ÓÏçºÒÑ
und
ú1ÕëÏçºÒÑ
, um welchen Wert sich die Gewich-
te der Mengen ¨andern, wenn
º
seine Farbe wechselt. Die Werte
ú1ûyÏкÒÑ
,
ú1ÓÏçºÒÑ
und
ú1ÕÏкüÑ
k¨onnen positiv oder negativ sein. Sind sie bekannt, so erh¨alt man die Bewertung der neuen Par-
titionierung durch Einsetzen von
Ý6ÖßÝRàýú1ûÏкüÑ
,
Ý ØëÝÜàóú1ÓÏкÒÑ
und
ÝÞÙþÝÜàâú1ÕÏкÒÑ
in
¾
.
Nachdem die Farbe eines Elementes
º
ge¨andert wurde, m¨ussen die
ú
-Werte aller Elemente
ºsÿ
, die mit
º
¨uber eine Variable verbunden sind, ¨uberpr¨uft und gegebenenfalls neu berechnet
werden. Auch dies geschieht innerhalb der Funktionen UPDATE
Ó]ÔÕ
und UPDATE
Õ>ÔÓ
. In bei-
den Funktionen werden vierF¨alle unterschieden. Die ersten beiden F¨alle beziehen sich aufdie Si-
tuation vor, die letzten beiden auf die Situation nach dem Farbwechsel. Im folgenden betrachten
wir nur die in Abbildung 4.12 dargestellte Funktion UPDATE
Ó]ÔÕ
. Die Funktion UPDATE
Õ+ÔÓ
kann analog formuliert werden.
4.2. Ein verbessertes Multisection-Verfahren
73
UPDATE
Ó]ÔÕ
wÇ
01: /* Case 1: Before flipping
to
¡
there was only one other
¡
element.
02: Search it and update its
Ó
and
û
values. */
03: if there is only one
ÿ
Î
'Ç
,
ÿ
, with
!#"%$&"' (
ÿ
¡
then
04:
û
)(
ÿ
+*
û
,(
ÿ
,-/.0
wÇ
1.
;
05:
Ó
(
ÿ
+*
Ó
(
ÿ
2.0
Ç
.
;
06: end if
07: /* Case 2: Before flipping
to
¡
all elements were colored
3546758
.
08: Move
wÇ
into the separator and update
Ó
and
û
of all
35496758
elements. */
09: if
!#"%$&"' (
ÿ
35496758
for all
ÿ
:
Î
'Ç
;
,
ÿ
<
then
10:
!#"%$&"'
'Ç
=*
?>A@
6<B
;
11: for each
ÿ
CD
Î
Ç
,
ÿ
<
do
12:
û
)(
ÿ
+*
û
,(
ÿ
2.0
'Ç
1.
;
13:
Ó
(
ÿ
+*
Ó
E(
ÿ
,-/.0
'Ç
1.
;
14: end for
15: end if
16: /* Case 3: After flipping
to
¡
there is only one remaining
3+46758
element.
17: Search it and update its
Õ
and
û
values. */
18: if there is only one
ÿ
Î
Ç
,
ÿ
, with
!#"%$&"' (
ÿ
35496758
then
19:
û
)(
ÿ
+*
û
,(
ÿ
2.0
wÇ
1.
;
20:
Õ
(
ÿ
=*
Õ
(
ÿ
9-/.0
wÇ
.
;
21: end if
22: /* Case 4: After flipping
to
¡
all elements are colored
¡
.
23: Remove
'Ç
from the separator and update
Õ
and
û
of all
¡
elements. */
24: if
!#"%$&"' (
ÿ
¡
for all
ÿ
Î
Ç
,
ÿ
then
25:
!#"%$&"'
'Ç
=*
¡
;
26: for each
ÿ
D
Î
)
'Ç
,
ÿ
do
27:
û
)(
ÿ
+*
û
,(
ÿ
,-/.0
'Ç
1.
;
28:
Õ
(
ÿ
=*
Õ
(
ÿ
<2.0
'Ç
.
;
29: end for
30: end if
Abb. 4.12: Funktion UPDATE
Ó]ÔÕ
.
74
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Sei
ÆKÇ
die Variable, f¨ur die die Funktion UPDATE
Ó]ÔÕ
aufgerufen wird. Wir nehmen zun¨achst
an, daß
º
noch immer schwarz gef¨arbt ist. In den Zeilen 01–06 betrachten wir den Fall, daß es in
der Nachbarschaft von
ÆKÇ
nur ein Element
ºsÿ
gibt mit
³Ü´¶µd´Û¸nÏçºsÿ ÑÁ
GFIHKJMLON
. W¨are
ºsÿ
schwarz
gef¨arbt worden, so w¨are
ÆHÇ
nicht l¨anger Teil des Separators. Dadurch h¨atte sich das Gewicht des
Separators um den Wert
Ý6ÆKÇ8Ý
reduziert. In
ú1ûÏкsÿ Ñ
ist deshalb der Wert
î1Ý6ÆKÇ Ý
und in
ú¨ÓÏçºsÿ Ñ
der
Wert
àÝÞÆHÇ Ý
enthalten. Nach dem Farbwechsel von
º
gibt es nun aber zwei weiße Elemente in
der Nachbarschaft von
ÆKÇ
. Erh¨alt jetzt
ºÿ
die Farbe schwarz, so verbleibt
ÆHÇ
im Separator. Daher
m¨ussen
ú1ÓÏкsÿ Ñ
und
ú1ûÏк¨ÿ Ñ
korrigiert werden.
Betrachten wir nun den Fall, daß es kein weiß gef¨arbtes Element
º¨ÿ
in der Nachbarschaft
von
ÆKÇ
gibt (Zeilen 07–15). Dann ist
º
das erste Element in
ÊpÌBÍ8ÎÏ ÆKÇÑ
mit
³:´¶µ·´¶¸nÏçºÒÑÁ
PFIHQJMLON
.
Dadurch wird
ÆKÇ
zu einem Teil des Separators und ein Farbwechsel der anderen schwarzen Ele-
mente in
ÊÛÌBÍ8Î]ÏÐÆHÇÑ
verbilligt sich um den Wert
Ý6ÆKÇ8Ý
.
Sei nun angenommen daß
º
seine Farbe ge¨andert hat und weiß gef¨arbt ist. In den Zeilen 16–
21 betrachten wir den Fall, daß es nur noch ein schwarzes Element
ºsÿ
in der Nachbarschaft
von
ÆHÇ
gibt. Nach einem Farbwechsel von
ºsÿ
w¨urde auch
ÆKÇ
weiß gef¨arbt. Damit w¨are
ÆHÇ
nicht
l¨anger Teil des Separators. Deshalb wird
ú1ûÏк ÿÑ
um den Wert
ÝÞÆHÇ8Ý
reduziert und
ú1ÕëÏçº ÿÑ
um
den gleichen Wert erh¨oht.
Betrachten wir abschließend den Fall, daß alle Elemente in der Nachbarschaft von
ÆKÇ
weiß
gef¨arbt sind (Zeilen 22–30). Dann ist
ÆKÇ
nicht l¨anger Teil des Separators.
ÆKÇ
wird jedoch wieder
Bestandteil des Separators, wenn ein Element
º¨ÿiÈ*ÊpÌBÍ8ÎÏ ÆKÇÑ
schwarz gef¨arbt wird. Der Farb-
wechsel eines solchen Elements verteuert sich daher um den Wert
Ý6ÆKÇ8Ý
.
Man ¨uberlegt sich leicht, daß weitere Fallunterscheidungen nicht notwendig sind. Wie bereits
oben erw¨ahnt kann die Funktion UPDATE
Õ>ÔÓ
analog formuliert werden. Wir sind jetzt in der
Lage, die Laufzeit unserer Verbesserungsheuristik zu analysieren.
4.2.2.2 Aufwandsanalyse
Die Effizienz unseres Optimierungsalgorithmus wird ganz entscheidend von der Ausf¨uhrungs-
zeit der Funktion IMPROVECOLORING bestimmt. Nat¨urlich k¨onnen wir nicht a-priori berechnen
wie oft die ¨außere Schleife durchlaufen wird. Wir k¨onnen jedoch analysieren wie teuer eine
Ausf¨uhrung der inneren while-Schleife ist.
Kritischin IMPROVECOLORING sind die Bestimmung von
º
(Zeile 05)und die for-Schleifen
in den Zeilen 08–09 sowie 12–13. In den Schleifen werden die Funktionen UPDATE
Ó]ÔÕTÏ ÆKÇa׺ÒÑ
und UPDATE
Õ+ÔÓtÏ ÆKÇa× ºÒÑ
aufgerufen. Trifft mindestens einer der vier F¨alle zu, so kostet ein Auf-
ruf
R
ÏçÌ
SUT
ÎÏ ÆKÇÑ8Ñ
Zeiteinheiten. Wir sprechen dann von einem aktiven Aufruf. Man beachte, daß
alle vier if-Abfragen in konstanter Zeit ausgewertet werden k¨onnen. Dies geschieht mit Hilfe
zweier Z¨ahler
V
¼ÓÏ ÆKÇÑ
und
V
¼ÕÏ ÆKÇÑ
, die f¨ur eine Variable
ÆHÇ
angeben, wieviele schwarz und wie-
viele weiß gef¨arbte Elemente in der Nachbarschaft von
ÆKÇ
vorhanden sind. Jeder nicht aktive
4.2. Ein verbessertes Multisection-Verfahren
75
Aufruf kann also in konstanter Zeit abgearbeitet werden. Das folgende Lemma zeigt, daß von
den insgesamt
Ì
SUT
ÎÏ ÆKÇÑ
Aufrufen (jedes benachbarte Element wechselt genau einmal seine Far-
be) nur maximal vier aktiv sein k¨onnen. Daher verursachen alle Aufrufe von UPDATE
Ó]ÔÕ
und
UPDATE
Õ+ÔÓ
zusammen einen Aufwand von
R
üÏFÝ
W
;ÝÞÑ
.
Lemma 4.1 Sei
ÆHÇ
eine Variable des Quotientengraphen
²
. Dann gibt es in IMPROVECOLO-
RING maximal vier aktive Aufrufe von UPDATE
ÓÔÕÏÐÆHÇ ×ºÒÑ
und UPDATE
Õ>ÔÓtÏ ÆKÇa׺üÑ
.
Beweis: Die Aussage ist klar f¨ur alle Variablen vom Grad
ò
YX
. Sei also
Z
ý¿ÂÁ Ì
SUT
.ÎÏÐÆHÇÑ
mit
Z
ø
[X
. Weiter sei
\
die initiale Anzahl von weiß gef¨arbten Elementen in
ÊÛÌBÍOÎÏ ÆKÇÑ
. Es gilt
æIò
\
ò
]Z
. Durch einen Aufruf von UPDATE
Ó]ÔÕÏ ÆKÇa× ºÒÑ
wird
V
¼ÕTÏ ÆKÇÑ
um eins erh¨oht. Dieser Aufruf
ist aktiv, falls vor dem Aufruf
V
¼ÕÏ ÆKÇÑËÈ
_^
Bæè×nö
a`
gilt, oder falls nach dem Aufruf
V
1ÕTÏÐÆHÇÑ È
^%bc
ßî ö¶×
#b9cd`
gilt. Umgekehrt wird durch einen Aufruf UPDATE
Õ>ÔÓÏ ÆKÇa× ºÒÑ
der Wert
V
1ÕTÏÐÆHÇÑ
um eins reduziert. Dieser Aufruf ist aktiv, falls vor dem Aufruf
V
¼ÕÏ ÆKÇÑÈ
^dZ
î ö¶×
eZ`
gilt (F¨alle 1
und 2 in Abbildung 4.12), oder falls nach dem Aufruf
V
1ÕÏÐÆHÇÑsÈ
f^
Bæè×nö
a`
gilt (F¨alle 3 und 4 in
Abbildung 4.12). Im folgenden nennen wir einen Aufruf UPDATE
Ó]ÔÕëÏÐÆHÇ ×ºÒÑ
Aufw¨
arts- und
einen Aufruf UPDATE
Õ>ÔÓÏ ÆKÇa׺üÑ
Abw¨
artsschritt. Da jedes Element in
ÊÛÌBÍ ÎÏÐÆHÇÑ
genau einmal
seine Farbe wechselt, gibt es
Z
üî
g\
Aufw¨arts- und
\
Abw¨artsschritte. In Abh¨angigkeit von
\
k¨onnen f¨unf F¨alle unterschieden werden:
Fall 1:
\
¼Á*æ
Dann gibt es
Z
Aufw¨artsschritte, von denen genau vier aktiv sind.
Fall 2:
\
¼Áö
Dann gibt es
Z
î ö
Aufw¨artsschritte, von denen maximal drei aktiv sind. Zus¨atzlich gibt es
einen Abw¨artsschritt. Auch dieser kann aktiv sein.
Fall 3:
\
¼Á
gZ
(analog zu Fall 1)
Fall 4:
\
¼Á
gZ
>îùö
(analog zu Fall 2)
Fall 5:
h
¼ò
]\
ò
]Z
+î
/h
Wir zeigen im folgenden, daß es maximal zwei aktive Aufw¨artsschritte geben kann. Dabei
bezeichnen wir einen Aufw¨artsschritt durch ein Tupel
Ï
i
×
ji
BàIöfÑ
, wobei
i
dem Wert
V
1ÕTÏÐÆHÇÑ
vor dem Aufw¨artsschritt entspricht. Wir unterscheiden drei F¨alle:
Fall 5.1: Der erste aktive Aufw¨artsschritt ist
Ïçæè×nöfÑ
.
Dann sind alle
\
Abw¨artsschritte bereits ausgef¨uhrt worden und von den verbleiben-
den Aufw¨artsschritten (falls vorhanden) kann nur noch
Ï ö¶×
eh
¶Ñ
aktiv sein.
Fall 5.2: Der erste aktive Aufw¨artsschritt ist
ÏOö¶×
kh
¶Ñ
.
Dann ist von den initial
\
Abw¨artsschritten noch einer ¨ubrig. Dar¨uber hinaus gibt
es noch
ò
lZ
üî
Im
weitere Aufw¨artsschritte. Daher kann es noch einmal einen akti-
ven Aufw¨artsschritt
Ï ö¶×
kh
ÛÑ
, oder einen aktiven Aufw¨artsschritt
Ï
nZ
î
oh
×
eZ
îöfÑ
geben.
76
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Beides zusammen ist jedoch nicht m¨oglich, da hierf¨ur die Anzahl der zur Verf¨ugung
stehenden Aufw¨artsschritte nicht ausreicht.
Fall 5.3: Der erste aktive Aufw¨artsschritt ist
Ï
Z
+î
?h
×
eZ
Cî öfÑ
.
Dann gibt es nur noch einen Aufw¨artsschritt.
Analog zeigt man, daß es f¨ur
h
üò
f\
ò
pZ
î
qh
maximal zwei aktive Abw¨artsschritte geben
kann. Insgesamt folgt damit die Behauptung.
Es verbleibt zu untersuchen, welcher zus¨atzliche Zeitaufwand durch die Auswahl der Ele-
mente in Zeile 05 verursacht wird. Alle unmarkierten schwarzen Elemente sind sortiert nach
ihren
ú¨û
-Werten in einem Heap abgespeichert. Ein zweiter Heap enth¨alt die unmarkierten wei-
ßen Elemente. Zur Auswahl eines Elementes werden daher
R
Ïçµd´
aT
Ý
r
ËÝ6Ñ
Zeiteinheiten ben¨otigt.
Das Heap-Management verursacht einen zus¨atzlichen Aufwand bei jedem aktiven Aufruf von
UPDATE
Ó]ÔÕTÏÐÆHÇ ×ºÒÑ
und UPDATE
Õ+ÔÓtÏ ÆKÇa× ºÒÑ
.¨
Andert sich n¨amlich f¨ur ein zu
ÆKÇ
benachbartes
Element
ºsÿ
der Wert
ú1ûÏкsÿ Ñ
, so muß
ºsÿ
neu in den entsprechenden Heap eingeordnet werden.
Jeder aktive Aufruf kann daher
R
üÏÌ
ST
ÛÎÏ ÆKÇÑèµd´
aT
Ý
r
ËÝ6Ñ
Zeiteinheiten kosten. Da es jedoch nur vier
aktive Aufrufe f¨ur
ÆHÇ
gibt, erh¨alt man:
Satz 4.1 Sei
² ÁÃÏ
ns
Ë×
tW
Ñ
ein Quotientengraph. Ein Durchlauf der inneren while-Schleife in IM-
PROVECOLORING kostet
R
ÏFÝ
W
ÝOµd´
aT
ßÝ
us
WÝ6Ñ
Zeiteinheiten.
Damit besitzt unser Optimierungsalgorithmus die gleiche Effizienz wie der von Ashcraft und
Liu [10] vorgeschlagene Vertex-Fiduccia-Mattheyses-Algorithmus.
4.2.3 Dreistufiges Multisection
Das dreistufige Multisection-Verfahren basiert auf einer Verallgemeinerung des in Abbildung 4.5
pr¨asentierten Algorithmus. Die Idee ist, einige Separatoren aus
v
entsprechend ihrer Rekursions-
tiefe und einige mit Hilfe eines Bottom-up-Verfahrens wie z.B. Minimum-Degree zu numerie-
ren. Das dreistufige Multisection-Verfahren stellt eine Kombination aus unvollst¨andigem Ne-
sted-Dissection
wyx
Ï
w{z
×
#|}z
Ñ
, und Local-Nested-Dissection
wyx
êÏ
|}z
×
e~
¸´
HµÑ
dar. Ersetzt man
in dem Local-Nested-Dissection-Algorithmus das Profil- durch ein Minimum-Degree-Ordering,
so erh¨alt man durch die Kombination beider Algorithmen ein dreistufige Multisection-Verfahren
vom Typ
wyx
Ï
w{z
+×
e|}z
×
kwz
Ñ
. Es verbleibt die Frage, welche Separatoren aus
v
mit Hilfe von
Nested-Dissection und welche mit Hilfe von Minimum-Degree numeriert werden sollen.
4.2.3.1 Das generische dreistufige Multisection-Verfahren
Ein Bottom-up-Algorithmus kann aufgrund seiner lokalen Struktur nicht voraussehen, wie die
Elimination eines Knotens den weiteren Eliminationsprozeß – und damit die Bildung zuk¨unf-
tiger Gebiete – beeinflußt. Um diese Schw¨ache zu ¨uberwinden, zerteilt man den Graphen mit
4.2. Ein verbessertes Multisection-Verfahren
77
Hilfe von Knotenseparatoren in mehrere zusammenh¨angende Teilgraphen. Die Teilgraphen bil-
den dann die Gebiete eines unvollst¨andigen Bottom-up-Orderings. Normalerweise werden die
Separatoren in einem rekursiven Prozesses konstruiert. Ziel ist dabei die Konstruktion m¨oglichst
kleiner Separatoren. Man hofft, daß der rekursive Prozeß die Separatoren so anordnet, daß Ge-
biete mit einem kleinen Rand entstehen. Genau hier zeigt sich die Schw¨ache eines Top-down-
Verfahrens wie Nested-Dissection: Bei der Bestimmung eines Knotenseparators f¨ur einen Gra-
phen
ÿ
bleibt der aus bereits konstruierten Separatoren bestehende Rand von
ÿ
unber¨ucksich-
tigt. Folglich wird der Rand eines Gebietes auch bei der Numerierung der Knoten außer Acht
gelassen. Im Gegensatz dazu, fließt der Rand eines Gebietes auf nat¨urliche Art und Weise in die
Berechnung eines Bottom-up-Orderings ein.
Es gibt eine wichtige Klasse von Graphen, f¨ur die das Nested-Dissection-Verfahren eine
asymptotisch optimale Eliminationssequenz erzeugt, n¨amlich die Klasse der
bb
-Gitter. Hier
werden die Knotenseparatoren so angeordnet, daß immer wieder quadratische Gebiete entste-
hen. Dies motiviert folgende Strategie zur Verbesserung eines Multisection-Orderings: Falls die
Knotenseparatoren des Multisektors
v
derart angeordnet sind, daß durch eine Elimination ent-
sprechend der Rekursionstiefe viele quadratische Gebiete entstehen, so behalte die Nested-Dis-
section-Numerierung bei. Werden jedoch viele Gebiete mit einem großen Aspekt-Ratio erzeugt,
so verwerfe die Nested-Dissection-Numerierung und eliminiere die Separatoren mit Hilfe eines
Bottom-up-Verfahrens wie z.B. Minimum-Degree.
Theoretisch wird diese Vorgehensweise unterst¨utzt durch die Arbeiten von Bhat et al. [19]. In
ihrem Local-Nested-Dissection-Algorithmus, dem erfolgreichsten Ordering-Verfahren f¨ur
b
-
Gitter, werden die quadratischen Gebiete mit Hilfe eines Nested-Dissection- und die Knotense-
paratoren mit Hilfe eines Profil-Verfahrens numeriert. Benutzt man in dem Local-Nested-Dissec-
tion-Algorithmus anstelle eines Profil- ein Minimum-Degree-Verfahren, so ¨andert sich der Grad
der Auff¨ullung kaum.
Um die Vorgehensweise realisieren zu k¨onnen, muß der Aspekt-Ratio der entstehenden Ge-
biete bekannt sein. Aspekt-Ratio ist jedoch nur dann wohldefiniert, wenn f¨ur die Knoten des
Graphen eine Einbettung in die Ebene existiert. Eine einfache L¨osung dieses Problems sieht wie
folgt aus: Da die Knotenseparatoren des Multisektors
v
in einem rekursiven Bisektionsprozeß
berechnet werden, kann man sie als Bin¨arbaum darstellen. Sei
dieser Bin¨arbaum. Berechne
nun f¨ur jeden Teilbaum
êû
von
ein Minimum-Degree-Ordering, und vergleiche es mit dem
gegebenen Nested-Dissection-Ordering. Bestimme anschließend die maximalen Teilb¨aume, f¨ur
die Nested-Dissection besser ist als Minimum-Degree, und eliminiere die Separatoren in diesen
Teilb¨aumen entsprechend ihrer Rekursionstiefe. Bezeichne
v
ÿ
v
den verbleibenden Multi-
sektor. Bilde den Schur-Komplement Graphen
, und eliminiere die Knoten in
mit Hilfe
eines Minimum-Degree-Verfahrens.
Besitzt der Separatorbaum
WÁ
_R
üÏçµ·´
TEb
Ñ
Ebenen, so ben¨otigt man f¨ur die Berechnung des
dreistufigen Multisection-Orderings einen Aufwand, der nach oben begrenzt ist durch den
àö
-
78
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
k k
j
j=k
j=00 0
MD MD
MD
MD
MD
ND ND
Abb. 4.13: Spektrum von Multisection-Orderings.
fachen Aufwand zur Berechnung eines Minimum-Degree-Orderings. Dies sieht man wie folgt:
F¨ur jeden Teilbaum
êû
von
muß ein Minimum-Degree-Ordering berechnet werden. Geht man
in
eine Ebene tiefer, so verdoppelt sich zwar die Anzahl der Teilb¨aume, ihre Gr¨oße halbiert
sich jedoch auch. F¨ur die Berechnung aller Minimum-Degree-Orderings ben¨otigt man deshalb
einen Aufwand, der nach oben begrenzt ist durch den Aufwand zur Berechnung von
Minimum-
Degree-Orderings.Ber¨ucksichtigt man jetzt noch den Aufwand zur Berechnung eines Minimum-
Degree-Orderings f¨ur die Knoten in
Q
R×
ñnñnñ
×
#A
und
v
ÿ
, so erh¨alt man das gew¨unschte Resultat.
4.2.3.2 Das dreistufige Multisection-Verfahren von Ashcraft, Liu und Eisenstat
Eine effizientere Methode zur Berechnung eines dreistufigen Multisection-Verfahrens wurde von
Ashcraft, Liu und Eisenstat vorgestellt [4, 15]. Sei
die tiefste Ebene des Separatorbaumes und
È
^
Bæè×
ñnñnñ
×
k9`
. Ihr dreistufiges Multisection-Verfahren evaluiert alle Orderings, die nach der
folgenden Vorschrift generiert werden k¨onnen:
(1) Eliminiere die Knotenseparatoren in den unteren Ebenen
×
ñnñnñ
×
îö
entsprechend ihrer
Rekursionstiefe.
(2) Eliminiere die Knotenseparatoren in den oberen Ebenen
×
ñnñ:ñ
׿
mit Hilfe eines Mini-
mum-Degree-Algorithmus.
Von diesen
Tà ö
Orderings wird anschließend das Beste ausgew¨ahlt. Abbildung 4.13 zeigt,
daß durch die Vorschrift ein weites Spektrum von Orderings generiert wird. Jedes Ordering
wird durch ein Dreieck und ein darunter liegendes Rechteck symbolisiert. Das Dreieck repr¨asen-
tiert den Separatorbaum und enth¨alt alle Knoten aus
v
. Das Rechteck steht f¨ur die Knoten aus
Q
R×
ñnñ:ñ
×
eA
. Auf der linken Seite des Spektrums werden sowohl die Knoten aus
Q
R×
ñnñnñ
×
eA
als
auch die Separatoren aus
v
mit Hilfe eines Minimum-Degree-Verfahrens numeriert. Man erh¨alt
so ein Multisection-Ordering vom Typ
wyx
Ï
nw{z
×
kw{z
CÑ
. Auf der gegen¨uberliegenden Seite des
Spektrums werden die Separatoren aus
v
entsprechend ihrer Rekursionstiefe eliminiert, und man
erh¨alt ein unvollst¨andiges Nested-Dissection-Ordering, d.h. ein Multisection-Ordering vom Typ
wyx
Ï
nw{z
×
e|Qz
CÑ
.
Die nach der Vorschrift von Ashcraft et al. generierten Orderings ¨uberlappen sich stark. F¨ur
È
^
Bæè×
ñ:ñnñ
×
k9`
bezeichne
v5lv
den Multisektor, der die Separatoren der Ebenen
æè×
ñ:ñnñ
×
4.2. Ein verbessertes Multisection-Verfahren
79
TRISTAGEMULTISECTION
"'
< "'
k "'
01: Determine a domain decomposition
51eeee91Ee
of
by a recursive bisection
process. Use node selection strategy
"'
to construct the vertex separators.
02: for each set
Ç
do
03: Eliminate all vertices in
Ç
using node selection strategy
"'
.
04: Store operation count in
"¡£¢¤
and construct elimination graph
£¥
.
03:
"¡£¢
*
/¦
;
"¡C¢
¹
*
/§
;
04: for
¨*
/©
downto
¦
do
05: if
¨ª
©
then
06: Eliminate from
%«¬
all separators in level
¨-®
to obtain the actual
elimination graph
%«
. Add operation count to
"¡C¢
.
07: end if
08: Order the vertices in
d«
using node selection strategy
"'
£
.
Store operation count in
"¡£¢
.
09: if
"¡C¢¤ -"¡£¢
-"¡C¢
ª¯"¡£¢
¹
then
10:
¨
¹
*
¨
;
11:
"¡C¢
¹
*
"¡£¢¤ -"¡C¢
-"¡£¢
;
12: end if
13: end for
14: Splice together the bottom-up orderings on
A#eee1E
, the nested dissection ordering
on
52{°#±
, and the bottom-up ordering on
°#±
.
Abb. 4.14: Funktion TRISTAGEMULTISECTION.
enth¨alt. (d.h.
v
Á
²v
). Berechnet man die Orderings wie in Abbildung 4.13 angedeutet von
Á
[
bis
Á$æ
, so kann beim ¨
Ubergang von
nach
î/ö
die Nested-Dissection-Numerierung
der Separatoren
v
î
Gv5
zu einer Nested-Dissection-Numerierung der Separatoren
v
$î
fv5e³,
erweitert werden. Man muß dann nur noch ein Minimum-Degree-Ordering f¨ur die Knoten aus
v5
berechnen.
Abbildung 4.14 zeigt die Berechnung und Evaluierung der
1à$ö
Orderings in dem verall-
gemeinerten Multisection-Verfahren. Nach Konstruktion des Multisektors
v
, werden zun¨achst
die Knoten in den Mengen
Q
R×
ñnñnñ
×
eA
eliminiert. Die Variable
´
a´µ
¤
speichert die Anzahl der zur
Faktorisierung der entsprechenden Spalten ben¨otigten Multiplikations- und Additionsoperatio-
nen. Diese l¨aßt sich sehr einfach bestimmen. Wird n¨amlich ein Knoten
¶
im Schritt
eliminiert
(also
·
tÏ
¶
ÑüÁ
¸
), so gilt
¹
zÏ
nº
¹
t»
ÑÁVÌ
SUT¼
¥1½
Ï
¶
Ñ
. Mit
¹
êÏ
º
¹
t»
Ñ
ist nach (2.6) und (2.7) auch die
Anzahl der zur Faktorisierung von
ben¨otigten Operationen bekannt. Als Ergebnis des Elimina-
tionsprozesses erh¨alt man den Schur-Komplement Graphen
¥
. Die Berechnung der verschie-
denen Orderings f¨ur
¥
geschieht in der nun folgenden for-Schleife (Zeilen 04–13).
80
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
In jeder Iteration
¾
der for-Schleife wird als erstes der aktuelle Eliminationsgraph
d«
konstruiert (im Falle
Á
P
entspricht
d«
dem Schur-Komplement Graphen
£¥
). Dazu werden
aus dem Eliminationsgraphen
%«n¬¿
der Iteration
àö
die Knotenseparatoren der Ebene
à ö
eliminiert. Die Variable
´
´µ
speichert die Summe der Multiplikations- und Additionsoperatio-
nen, die durch die Faktorisierung der in diesen Nested-Dissection-Schritten eliminierten Knoten
entstehen. Anschließend wird f¨ur die Knoten des Graphen
d«
ein Bottom-up-Ordering berech-
net. Da
%«
in der n¨achsten Iteration zur Konstruktion von
%«
½
ben¨otigt wird, darf der Graph
bei der Berechnung des Bottom-up-Orderings nicht zerst¨ort werden. Die Numerierung der Kno-
ten in
%«
komplettiert ein neues dreistufiges Multisection-Ordering. Falls es das Beste bisher
gefundene Ordering ist, wird
in
¹
gespeichert.
Nach Durchlauf der for-Schleife steht in
¹
die Ebene, ab der die Separatoren nicht mehr
entsprechend ihrer Rekursionstiefe, sondern mit Hilfe eines Bottom-up-Verfahrens eliminiert
werden sollten. Das beste dreistufige Multisection-Ordering erh¨alt man daher wie in Zeile 14
beschrieben.
Der Aufwand zur Bestimmung des besten dreistufigen Multisection-Orderings ist nach oben
begrenzt durch den Aufwand zur Berechnung von drei Bottom-up-Orderings. Dies sieht man
wie folgt: In jeder Iteration halbiert sich die Anzahl der Knoten im aktuellen Eliminationsgra-
phen. Zeile 08 verursacht daher einen Berechnungsaufwand von h¨ochstens zwei Bottom-up-Or-
derings. Zusammen mit dem Aufwand zur Berechnung der Bottom-up-Orderings f¨ur die Knoten
in
Q
R×
ñ:ñnñ
×
eA
(Zeilen 02–03) und dem Aufwand zur Konstruktion der aktuellen Eliminations-
graphen (Zeile 06) erh¨alt man das gew¨unschte Resultat.
4.3 Die Ordering-Bibliothek PORD
Dieser Abschnitt ist in zwei Teilabschnitte gegliedert. Zun¨achst stellen wir in 4.3.1 die in der Or-
dering-Bibliothek PORD (Paderborn ORDering Tools) enthaltenen Programme pord und mul-
tipord vor. Alle Funktionen, die in diesen Programmen aufgerufen werden, sind Teil der Biblio-
thek und k¨onnen damit auch von jedem anderen Programm benutzt werden. Eine vollst¨andige
Beschreibung der Funktionen und ihrer Parameter findet man in [131]. Den Schwerpunkt dieses
Abschnitts bilden die experimentellen Ergebnissen in 4.3.2. Durch sie wird eindrucksvoll die
Leistungsf¨ahigkeit der in PORD enthaltenen Ordering-Algorithmen demonstriert.
4.3.1 Die Programme pord und multipord
Im wesentlichen realisieren die Programme pord und multipord die in den Abbildungen 4.5
und 4.14 dargestellten Funktionen MULTISECTION und TRISTAGEMULTISECTION. Die Para-
meter
´¶¸Ì
und
´Û¸Ì
k¨onnen dabei die Werte
ÀÁw{z
,
Àw{Â
,
ÀÁwywÂ
,
ÀÁwJ|Qz
und
w{Â
annehmen.
Dabei ist zu beachten, daß der in die Berechnung von
µ
³Ü´¶¸
jSUÃÄ5Å
,
µ
³Ü´¶¸
jSÃ:ÄEÄ5Å
und
µ
8³:´¶¸
tSÃÄ5ÆÈÇCÉ
ein-
4.3. Die Ordering-Bibliothek
PORD 81
gehende externe Knotengrad
Z
nur approximativ berechnet wird. Dies hat jedoch keinen Einfluß
auf die Effektivit¨at der Auswahlstrategien (vgl. auch Rothberg und Eisenstat [125]). Im Pro-
gramm pord ist f¨ur
´¶¸Ì
zus¨atzlich der Wert
|Qz
erlaubt. In diesem Fall werden die Separato-
ren entsprechend ihrer Rekursionstiefe eliminiert. Der Parameter
´¶¸8Ì
,
kann die Werte
Êw{z
,
Êw{ËKzOÌ
und
ÊËOÀ|Qz
annehmen. Dar¨uber hinaus f¨uhren die Programme pord und multipord
ein Preprocessing und ein Postprocessing durch. Innerhalb des Preprocessings wird untersucht,
ob der Graph
nicht unterscheidbare Knoten enth¨alt. Dies erscheint zun¨achst recht unwahr-
scheinlich zu sein. In der numerischen Praxis tauchen jedoch immer wieder Matrizen auf, in de-
nen aufeinanderfolgende Spalten die gleiche Nichtnullstruktur besitzen. Dies gilt insbesondere
f¨ur Matrizen, die bei einer Diskretisierung mittels finiter Differenzen entstehen, wenn an jedem
Punkt des Diskretisierungsgitters mehrere physikalische Gr¨oßen wie z.B. Druck, Temperatur
oder Geschwindigkeit zu berechnen sind. Durch Zusammenfassen der nicht unterscheidbaren
Knoten kann der Graph in der Regel erheblich verkleinert werden.
Sei
"Á Ï Æ×
eÍ
Ñ
mit
ÆÃÁ
^%¶
×
ñnñnñ
×
j¶dΣ`
. Zur Identifizierung der nicht unterscheidbaren Kno-
ten wird zun¨achst f¨ur alle
¶
BÇYÈ Æ
der Wert
Ï
Ê
aµ
Ï
Ï
¶
BÇÑÁ
Ði
à
Ñ
c;«kÒÓÔÕ(ÖרcMÙÛÚ
berechnet. Ein bez¨uglich
¶
fÇ
nicht unterscheidbarer Knoten
¶U
erf¨ullt dann die Bedingungen
¶U
ÈËÊÛÌBÍ
¼
Ï
¶
fÇÑ
und
Ì
SUT
¼
Ï
¶U
RÑÁ/Ì
ST
¼
Ï
¶
BÇÑ
und
Ï
Ê
aµ
Ï
Ï
¶U
:ÑÁ
Ï
Ê
aµ
Ï
Ï
¶
fÇçÑ
ñ
Um alle nicht von
¶
BÇ
unterscheidbaren Knoten zu finden, muß man also nur die Adjazenzliste
von
¶
fÇ
durchlaufen und f¨ur jeden Knoten
¶
mit
Ì
SUT ¼
Ï
¶U
:ÑÁ*Ì
ST ¼
Ï
¶
BÇÑ
und
Ï
Ê
aµ
Ï
Ï
¶
RÑÁ
Ï
Ê
aµ
Ï
Ï
¶
BÇÑ
testen, ob
ÊÛÌBÍ
1¼
Ï
¶
fÇçÑ
Üo^%¶
BÇ
n`
IÁ ÊÛÌBÍ
t¼
Ï
¶U
:Ñ
Üq^%¶Ý`
gilt (vgl. auch Ashcraft [3], Damhaug [27] so-
wie Hendrickson und Rothberg [72]). Alle Knoten
¶U
, die den Test bestehen, werden mit
¶
fÇ
zu
einem Superknoten verschmolzen. Ganz ¨ahnlich werden die Superknoten in den Bottom-Up-
Algorithmen und die Supervariablen in dem neuen Multilevel-Verfahren bestimmt.
Mit Hilfe der Superknoten kann ein komprimierter Graph
Þ
konstruiert werden. Dabei wird
jeder Superknoten
ß
durch einen logischen Knoten mit Gewicht
Ý
ß
Ý
ersetzt. Der komprimierte
Graph
Þ
dient dann als Eingabe f¨ur die Funktionen MULTISECTION und TRISTAGEMULTI-
SECTION. Dies ist problemlos m¨oglich, da sowohl die Bottom-Up-Algorithmen als auch die
Funktion SEPARATOR knotengewichtete Graphen als Eingabe akzeptieren. Man erh¨alt so ein
Ordering
·)Þ
f¨ur die Knoten des komprimierten Graphen
Þ
.
In dem Postprocessing Schritt wird das Ordering
·)Þ
auf die Knotenmenge
Æ
des urspr¨ung-
lichen Graphen
erweitert. Seien dazu
à)Þ
und
¶dÞ
zwei Knoten des komprimierten Graphen mit
·)Þ
RÏ
à)Þ
OÑ
¾
·)Þ
RÏ
¶dÞ
Ñ
. Es sei angenommen, daß
à)Þ
die nicht unterscheidbaren Knoten
^%à°
×
ñnñnñ
×
jà)áâ`ã
Æ
und
¶Þ
die nicht unterscheidbaren Knoten
^%¶¿
R×
ñnñnñ
×
#¶aäe`
íÆ
repr¨asentiert. In dem erweiter-
ten Ordering
·
werden die nicht unterscheidbaren Knoten aufeinanderfolgend numeriert, also
82
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
·
Ï
à
]ÇÑÁ
g·
Ï
à°
ÑÉà
oi
î/ö
,
ö
¾
i
ò
gå
und analog
·
Ï
¶
RÑÁ
g·
Ï
¶
Ñà
îö
,
ö
¾o
ò
pæ
. Des weiteren
gilt in dem erweiterten Ordering
·
Ï
à,á
FÑ
¾
·
Ï
¶
Ñ
.
4.3.2 Experimentelle Ergebnisse
In diesem Abschnitt stellen wir einige experimentelle Ergebnisse vor, die die Leistungsf¨ahig-
keit der in PORD enthaltenen Ordering-Algorithmen unter Beweis stellen. Wir benutzen dazu
einen weit verbreiteten und frei verf¨ugbaren Satz von Benchmark-Matrizen. Alle Experimente
wurden auf einer SUN Ultra mit 296 MHz UltraSPARC-II Prozessor und zwei GByte Haupt-
speicher durchgef¨uhrt. Im folgenden werden wir zur Evaluierung eines Orderings immer die An-
zahl der zur Faktorisierung ben¨otigten Multiplikations- und Additionsoperationen heranziehen.
Wie bereits in Kapitel 3 am Beispiel des quadratischen Gitters gesehen, wird die Laufzeit eines
Faktorisierungsalgorithmus im wesentlichen durch die Anzahl der arithmetischen Operationen
bestimmt.
4.3.2.1 Vorstellung der Testmatrizen
F¨ur unsere Experimente haben wir einen Satz großer, praxisnaher Testmatrizen ausgew¨ahlt. Die
ersten zwei Matrizen wurden von uns selbst generiert. Es handelt sich um die Laplace-Matrix
eines
ö
%haçè
óö
%haç
-Gitters mit 5-Punkte- (GRID127x127) bzw. 9-Punkte-Stern (MESH127x127).
Die 15 BCSSTK-Matrizen stammen aus der bekannten Harwell-Boeing-Collection. Eine detai-
lierte Beschreibung dieser Matrizen findet man in [34]. MAT02HBF und MAT03HBF wurden
uns von einer Consulting-Agentur der deutschen Automobilindustrie zugeschickt. Es handelt
sich hierbei um Matrizen, die aus einem Simulationsprogramm f¨ur Crash-Tests extrahiert wur-
den. Bei den Matrizen BRACK2, WAVE, HERMES, CYL3 und DIME20 handelt es sich um
dreidimensionale FEM-Gitter. Die Matrix CRACK stellt ein zweidimensionales FEM-Gitter dar.
Die Matrizen BRACK2, CRACK, WAVE stammen von der Carnegie-Mellon-University. Die
Matrix HERMES ist von der Michigan-State-University und stellt ein dreidimensionales Modell
des europ¨aischen Raumgleiters dar. Die letzten zwei Matrizen CYL3 und DIME20 wurden uns
von C. Walshaw, Universit¨at von Southampton, zur Verf¨ugung gestellt. Alle restlichen Matrizen
stammen aus der Sparse-Matrix-Collection [28] von Tim Davis. Hierbei handelt es sich um Ma-
trizen, die aus kommerziellen Anwendungen zur L¨osung von Problemen aus den Bereichen der
Struktur- und Str¨omungsmechanik extrahiert wurden.
Tabelle 4.1 zeigt einige wesentliche Eigenschaften der Testmatrizen. Die ersten zwei Spal-
ten geben an, wieviele Knoten und Kanten der aus der Matrix
é
abgeleitete Graph
enth¨alt.
Die n¨achsten zwei Spalten zeigen die Gr¨oße des komprimierten Graphen
Þ
. In Spalte 5 ist an-
gegeben, wieviele von null verschiedene Eintr¨age der Cholesky-Faktor
º
von
é
enth¨alt, wenn
zur Bestimmung des Orderings der Approximate-Minimum-Degree-Algorithmus von Amestoy
et al. [1] benutzt wird. Spalte 6 zeigt wieviele Multiplikations- und Additionsoperationen in die-
4.3. Die Ordering-Bibliothek
PORD 83
Þ
6êèë
Matrix
.0. . ìí. .0Þâ. . ìÞâ. î(ï5Mða®
¦ñ ò
(ï+Mða®
¦ó
GRID127x127 16129 32004 16129 32004 346 27
MESH127x127 16129 63756 16129 63756 527 43
BCSSTK15 3948 56934 3948 56934 624 155
BCSSTK16 4884 142747 1778 18251 763 162
BCSSTK17 10974 208838 5219 40531 985 138
BCSSTK18 11948 68571 10926 61086 625 127
BCSSTK23 3134 42044 2930 17628 428 125
BCSSTK24 3562 78174 892 6378 270 31
BCSSTK25 15439 118401 13183 80982 1464 316
BCSSTK29 13992 302748 10202 156923 1760 467
BCSSTK30 28924 1007284 9289 111442 3786 947
BCSSTK31 35588 572914 17403 144403 5281 2593
BCSSTK32 44609 985046 14821 113487 5002 989
BCSSTK33 8738 291583 4344 82142 2480 1140
BCSSTK35 30237 709963 6611 32967 2725 399
BCSSTK36 23052 560044 4351 18583 2719 616
BCSSTK37 25503 557737 7093 44462 2755 535
BCSSTK38 8032 173714 3456 40656 718 115
MAT02HBF 46949 1117809 6707 19938 5057 1344
MAT03HBF 73752 1761718 10536 31438 10061 4184
STRUCT3 53570 560062 41644 340543 5040 1096
STRUCT4 4350 116724 4350 116724 2357 2004
PWT 36519 144794 36515 144774 1556 173
BRACK2 62631 366559 62631 366559 7275 3085
CRACK 10240 30380 10240 30380 163 8
3DTUBE 45330 1584144 15909 181865 26310 30053
CFD1 70656 878854 70656 878854 37663 44556
CFD2 123440 1482229 123440 1482229 74884 136477
CYL3 232362 457853 232362 457853 77440 208480
DIME20 224843 336024 224843 336024 3430 330
GEARBOX 153746 4463329 56175 693142 46325 41121
NASASRB 54870 1311227 24954 275813 11624 4538
WAVE 156317 1059331 156316 1059325 114930 372458
PWTK 217918 5708253 41531 221130 60305 49086
HERMES 320194 3722641 320194 3722641 323055 1434744
Tab. 4.1: Eigenschaften der Benchmark-Matrizen.
84
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
sem Fall zur Berechnung von
º
notwendig sind. Die Werte in Spalte 5 sind in Tausend und die
Werte in Spalte 6 in Millionen angegeben. Im folgenden werden wir alle unsere Ergebnisse auch
in Relation zu den Werten aus den Spalten 5 und 6 angeben. Da der Algorithmus von Amestoy
et al. zu den effektivsten Bottom-up-Algorithmen geh¨ort, ist so eine leichte Einordnung unserer
Ergebnisse m¨oglich.
4.3.2.2 Ergebnisse f¨ur die Programme pord und multipord
Wie bereits eingangs erw¨ahnt realisieren die Programme pord und multipord im wesentlichen
die Funktionen MULTISECTION und TRISTAGEMULTISECTION. Die algorithmischen Kompo-
nenten dieser Funktionen haben wir in Abschnitt 4.2 vorgestellt. Die folgende Liste faßt die
wichtigsten Parametereinstellungen der Komponenten zusammen.
ô
In allen Tests wurden die Funktionen MULTISECTION und TRISTAGEMULTISECTION mit
´¶¸8Ì
,
Á
õÊw{ËKzOÌ
aufgerufen. Obwohl in heterogenen Graphen mit Hilfe der Auswahl-
strategie
Êw{z
bessere Gebietszerlegungen generiert werden k¨onnen, haben wir
´¶¸8Ì
,
auf
Êw{ËKzOÌ
gesetzt, da f¨ur eine Variable
ÆKÇ
die Berechnung von
µ
³:´Û¸
jSöÄE÷£Éø
Ï ÆKÇÑ
sehr viel
billiger ist als die Berechnung von
Ì
ST
ÏÐÆHÇÑ
.
ô
In den Funktionen MULTISECTION und TRISTAGEMULTISECTION wird die rekursive
Konstruktion der Knotenseparatoren solange fortgesetzt bis alle Teilgraphen weniger als
100 Knoten enthalten. Es werden jedoch h¨ochstens 255 Separatoren berechnet.
ô
In der Funktion SEPARATOR wird der Vergr¨oberungsprozeß abgebrochen sobald ein Quo-
tientengraph weniger als 200 Elemente besitzt. Es werden jedoch h¨ochstens 15 Quotien-
tengraphen berechnet.
ô
In der Funktion IMPROVECOLORING erfolgt ein vorzeitiger Abbruch der inneren while-
Schleife, falls in 100 aufeinanderfolgenden Iterationen die Partitionierung nicht verbessert
werden kann.
ô
In der Bewertungsfunktion
¾
sind die Parameter
é
und
á
auf die Werte
æ
ñ
úù
und
ölæ¶æ
ge-
setzt. Solange also das Gewicht der kleineren Partition mindestens 50% vom Gewicht der
gr¨oßeren Partition ausmacht, geht in die Bewertung einer Partitionierung nur das Gewicht
des Separators ein.
Tabelle 4.2 zeigt die Zahl der zur Berechnung des Cholesky-Faktors ben¨otigten Multiplikations-
und Additionsoperationen f¨ur das Programm pord. Dabei wurde die Funktion MULTISECTION
mit den Parametern
´¶¸8Ì
IÁ ´¶¸8Ì
Á
ÀÁw{z
(Spalte 1),
´¶¸8Ì
IÁ ´¶¸8Ì
Á
ÀÁwyw{Â
(Spalte 2),
´¶¸8Ì
Á
PÀÁwyw{Â
,
´¶¸8Ì
Á
fw{Â
(Spalte 3) und
´¶¸8Ì
Á
PÀÁwyw{Â
,
´¶¸8Ì
Á
p|}z
(Spalte 4) aufgerufen.
Obwohl weitere Kombinationen von Knotenauswahlstrategien m¨oglich sind, haben wir uns auf
diese vier beschr¨ankt. In Klammern ist jeweils der Wert in Relation zumApproximate-Minimum-
Degree-Verfahren angegeben.
4.3. Die Ordering-Bibliothek
PORD 85
Matrix
6êDë 6êDë 6êèêDû 6êèêDû 6êèêDû êèû 6êèêèû ü ë
GRID127x127 16 (0.59) 16 (0.59) 16 (0.59) 17 (0.63)
MESH127x127 36 (0.84) 38 (0.88) 35 (0.81) 39 (0.91)
BCSSTK15 93 (0.60) 79 (0.51) 86 (0.55) 82 (0.53)
BCSSTK16 112 (0.69) 117 (0.72) 115 (0.71) 135 (0.83)
BCSSTK17 124 (0.90) 123 (0.89) 120 (0.87) 172 (1.25)
BCSSTK18 87 (0.68) 85 (0.67) 82 (0.65) 96 (0.76)
BCSSTK23 98 (0.78) 85 (0.68) 98 (0.78) 90 (0.72)
BCSSTK24 30 (0.97) 30 (0.97) 30 (0.97) 31 (1.00)
BCSSTK25 256 (0.81) 207 (0.65) 230 (0.73) 355 (1.12)
BCSSTK29 360 (0.77) 326 (0.70) 277 (0.59) 336 (0.72)
BCSSTK30 722 (0.76) 702 (0.74) 707 (0.74) 982 (1.04)
BCSSTK31 1226 (0.47) 1215 (0.47) 1184 (0.46) 1291 (0.50)
BCSSTK32 827 (0.84) 774 (0.78) 767 (0.77) 969 (0.98)
BCSSTK33 740 (0.65) 626 (0.55) 619 (0.54) 644 (0.56)
BCSSTK35 374 (0.94) 367 (0.92) 369 (0.92) 384 (0.96)
BCSSTK36 461 (0.75) 458 (0.74) 460 (0.75) 500 (0.81)
BCSSTK37 404 (0.75) 403 (0.75) 388 (0.72) 445 (0.83)
BCSSTK38 91 (0.79) 91 (0.79) 89 (0.77) 106 (0.92)
MAT02HBF 1091 (0.81) 1088 (0.80) 1093 (0.81) 1222 (0.91)
MAT03HBF 2654 (0.63) 2723 (0.65) 2473 (0.59) 2666 (0.64)
STRUCT3 717 (0.65) 730 (0.67) 664 (0.61) 731 (0.67)
STRUCT4 574 (0.29) 541 (0.27) 617 (0.31) 504 (0.25)
PWT 108 (0.62) 109 (0.63) 107 (0.62) 110 (0.64)
BRACK2 1923 (0.62) 1610 (0.52) 1661 (0.53) 1982 (0.64)
CRACK 7 (0.87) 7 (0.87) 6 (0.75) 7 (0.87)
3DTUBE 13235 (0.44) 14839 (0.49) 11437 (0.38) 12303 (0.41)
CFD1 9885 (0.22) 8814 (0.20) 8799 (0.20) 11302 (0.25)
CFD2 34421 (0.25) 27978 (0.20) 27902 (0.20) 28636 (0.21)
CYL3 57971 (0.29) 45386 (0.22) 41372 (0.20) 39791 (0.19)
DIME20 175 (0.53) 175 (0.53) 167 (0.51) 191 (0.58)
GEARBOX 18034 (0.44) 17404 (0.42) 17505 (0.43) 17987 (0.44)
NASASRB 2839 (0.63) 2613 (0.58) 2582 (0.56) 3437 (0.76)
WAVE 160843 (0.43) 119694 (0.32) 108804 (0.29) 97480 (0.26)
PWTK 23019 (0.47) 22658 (0.46) 22323 (0.45) 23119 (0.47)
HERMES 326902 (0.23) 266255 (0.19) 268303 (0.19) 265133 (0.18)
Durchschnitt (0.63) (0.60) (0.59) (0.67)
Tab. 4.2: Anzahl der zur Faktorisierung ben¨otigten Multiplikations- und Additionsoperationen (in Mio.)
in Abh¨angigkeit von den verwendeten Knotenauswahlstrategien. Alle Orderings wurden mit
Hilfe des Programms pord bestimmt.
86
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Iteration
¨
Matrix 7 6 5 4 3 2 1 0
GRID127x127 – 16 16 16 16 17 17 17
MESH127x127 – 38 45 42 35 36 39 39
BCSSTK15 – – – 79 78 78 82 82
BCSSTK16 – – – 117 120 130 135 135
BCSSTK17 – – 123 137 156 171 171 172
BCSSTK18 – 85 87 81 86 91 96 96
BCSSTK23 – – – – 85 84 91 90
BCSSTK24 – – – – 30 31 31 31
BCSSTK25 – 207 216 244 309 326 355 355
BCSSTK29 – 326 309 321 330 316 336 336
BCSSTK30 – 702 725 809 913 973 982 986
BCSSTK31 1215 1266 1317 1261 1289 1285 1291 1291
BCSSTK32 774 774 794 833 929 968 969 969
BCSSTK33 – – 626 626 615 644 644 644
BCSSTK35 – 367 376 378 383 385 384 384
BCSSTK36 – – 458 476 475 497 500 500
BCSSTK37 – 403 393 403 413 433 445 445
BCSSTK38 – – 91 93 97 103 106 106
MAT02HBF – 1088 1107 1128 1140 1192 1222 1222
MAT03HBF 2723 2726 2542 2790 2619 2659 2663 2666
STRUCT3 730 691 712 707 725 731 731 731
STRUCT4 – – – 541 542 523 503 504
PWT 109 111 108 108 109 110 110 110
BRACK2 1610 1646 1633 1655 1817 1981 1982 1982
CRACK – 7 7 67 7 7 7
3DTUBE 14839 14953 12907 12366 13392 12303 12303 12303
CFD1 8814 8961 10011 10533 10798 10947 11302 11302
CFD2 27978 26379 27616 26141 26554 28371 28636 28636
CYL3 45386 40806 41324 41525 40623 40190 39791 39791
DIME20 175 174 182 183 187 190 191 191
GEARBOX 17404 17643 17658 17748 17791 17987 17987 17987
NASASRB 2613 2706 2767 2955 3201 3280 3437 3437
WAVE 119694 98274 100509 101306 99559 97463 97472 97480
PWTK 22658 22680 22868 23068 23088 23042 23119 23119
HERMES 266255 260469 260060 250740 252313 255478 265133 265133
Tab. 4.3: Anzahl der Multiplikations- und Additionsoperationen (in Mio.) bez¨uglich aller innerhalb von
TRISTAGEMULTISECTION generierten Orderings. Dabei gilt immer
"'
"'
¿
6êèêDû
.
Die besten Ergebnisse sind in Fettdruck dargestellt.
4.3. Die Ordering-Bibliothek
PORD 87
Bereits ein erster Blick auf die Tabelle 4.2 zeigt, daß das neue Multisection-Verfahren f¨ur al-
le vier Parameterkombinationen sehr gute Orderings generiert. Im Vergleich zum Verfahren von
Amestoy et al. kann die Zahl der zur Berechnung des Cholesky-Faktors ben¨otigten Operationen
im Schnitt um bis zu 41% reduziert werden. Bemerkenswert ist insbesondere, daß alle ”ech-
ten“ Multisection-Orderings (hier gilt
´¶¸Ì
/ý
Á
ND) besser sind als die entsprechenden AMD-
Orderings. Von unserem Algorithmus werden also konsistent bessere Orderings generiert.
Rothberg und Eisenstat [125] haben gezeigt, daß ein Bottom-up-Algorithmus, der auf den
Knotenauswahlstrategien
ÀÁwyw{Â
oder
wÂ
basiert, sehr viel bessere Orderings erzeugt als ein
Minimum-Degree-Algorithmus. Daher liegt es nahe, die Auswahlstrategien auch in unserem
Multisection-Verfahren zu benutzen. In der Tat zeigt ein Vergleich zwischen den Spalten 1 und 2
der Tabelle 4.2, daß durch den ¨
Ubergang von
´¶¸8Ì
Áõ´¶¸8Ì
Á
PÀÁw{z
auf
´¶¸Ì
Á*´Û¸Ì
Á
gÀwyw{Â
die Qualit¨at der generierten Orderings verbessert wird. Eine weitere Verbesserung erreicht man,
wenn zur Elimination der Knotenseparatoren die Auswahlstrategie
w{Â
benutzt wird. In der Re-
gel enth¨alt der Schur-Komplement Graph
nur noch wenige Superknoten. Daher ist die Kom-
bination
´¶¸Ì
9
Á
IÀwyw{Â
,
´Û¸Ì
Á
Pw{Â
auch in der Praxis einsetzbar. Mit Hilfe dieser Kombinati-
on kann die Anzahl der zur Berechnung von
º
ben¨otigten Multiplikations- und Additionsopera-
tionen am st¨arksten reduziert werden.
Interessant ist auch ein Vergleich der Spalten 2 und 4. Werden die Separatoren nicht mit Hilfe
der Auswahlstrategie
ÀÁw{w{Â
, sondern wie bei einem Nested-Dissection-Ordering entsprechend
ihrer Rekursionstiefe numeriert, so verschlechtert sich die Qualit¨at der generierten Orderings
zum Teil erheblich. Auff¨allig sind insbesondere die Ergebnisse f¨ur BCSSTK17, BCSSTK25 und
BCSSTK30. Hier sind zum ersten Mal die von pord berechneten Orderings schlechter als die
entsprechenden AMD-Orderings. Dies kann jedoch sehr einfach erkl¨art werden. In den Graphen
sind die obersten Separator wie bei einem
yb
-Gitter mit
þ b
nebeneinanderliegend ange-
ordnet. Werden dann die Separatoren entsprechend ihrer Rekursionstiefe eliminiert, so entsteht
in dem bereits chordalen Eliminationsgraphen zus¨atzlicher Fill-in (vgl. auch Abbildung 4.4).
Die durch das Nested-Dissection-Ordering vorgegebene Eliminationssequenz kann jedoch
auch zu besseren Ergebnissen f¨uhren. Dies ist beispielsweise bei den Matrizen CYL3 und WAVE
der Fall. ¨
Uberhaupt zeigt ein Vergleich der letzten drei Spalten von Tabelle 4.2, daß die Ordering-
Ergebnisse trotz identischer Separatoren und Auswahlstrategie
´¶¸Ì
stark variieren k¨onnen. Da
die meisten Multiplikations- und Additionsoperationen bei der Faktorisierung der letzten Spalten
einer Matrix anfallen, spielt die Reihenfolge, in der die Knotenseparatoren eliminiert werden
eine wichtige Rolle. Mit Hilfe des Programms multipord ist es m¨oglich, mehrere Varianten
sehr effizient durchzurechnen. Tabelle 4.3 zeigt f¨ur jede Matrix die Anzahl der Multiplikations-
und Additionsoperationen aller innerhalb von TRISTAGEMULTISECTION generierten Orderings.
Dabei gilt immer
´¶¸8Ì
Áõ´¶¸8Ì
Á
PÀÁwywÂ
. Da maximal 255 Separatoren konstruiert werden, hat
die Variable
h¨ochstens den Wert sieben. Daher werden in der for-Schleife (vgl. Zeilen 04–13)
der Funktion TRISTAGEMULTISECTION maximal acht Orderings berechnet und evaluiert. Die
88
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Anzahl der Multiplikations- und Additionsoperationen bez¨uglich des in Iteration
Á
ÿç
×
ñnñnñ
× æ
generierten Orderings findet man in der entsprechenden Spalte der Tabelle. Die Eintr¨age der
letzten Spalte (
Áæ
) entsprechen dabei den Eintr¨agen der Spalte
Ï
ÀÁw{w{Â
×
e|}z
Ñ
von Tabelle 4.2.
Faßt man in jeder Zeile die am weitesten links stehenden Eintr¨age zusammen, so erh¨alt man die
Spalte
Ï
ÀÁwyw{Â
×
#ÀÁwywÂ
tÑ
von Tabelle 4.2.
4.3.2.3 Vergleich mit anderen Ordering-Codes
In diesem Abschnitt vergleichen wir die von pord und multipord generierten Orderings mit de-
nen der Programme, METIS [79], SCOTCH [109] und SPOOLES [8]. Genaugenommen handelt
es sich nicht um Programme, sondern um Programmbibliotheken, die eine Reihe zus¨atzlicher
Funktionen bereitstellen. METIS und SCOTCH enthalten Heuristiken zur Graph-Partitionierung
und SPOOLES Funktionen zur L¨osung d¨unn besetzter Gleichungssysteme. In jeder Bibliothek
sind sogenannte stand-alone Programme enthalten, mit deren Hilfe die in der Tabelle 4.4 ange-
gebenen Werte produziert wurden. Bevor wir auf diese Tabelle eingehen, wollen wir kurz die
charakteristischen Merkmale der stand-alone Programme beschreiben.
METIS Die Bibliothek METIS wurde von Karypis und Kumar an der Universit¨at von Minnesota
entwickelt. Die Quelldateien sind frei verf¨ugbar. METIS enth¨alt zwei stand-alone Program-
me zur Berechnung eines Orderings. In beiden Programmen werden die Knotenseparatoren
mit Hilfe eines Multilevel-Verfahrens bestimmt, das auf einer Matching-Technik basiert.
Im Programm onmetis wird der Knotenseparator direkt, im Programm oemetis anhand
eines Kantenseparators bestimmt. In der Regel liefert onmetis sehr viel bessere Orderings.
Deswegen wird in der Literatur METIS mit dem Programm onmetis gleichgesetzt. Zur Eli-
mination der Knoten in den Teilgraphen benutzt METIS einen Multiple-Minimum-Degree-
Algorithmus. Die Separatorknoten werden entsprechend ihrer Rekursionstiefe eliminiert.
Damit stellt METIS einen state-of-the-art Nested-Dissection-Algorithmus dar.
SCOTCH Die Bibliothek SCOTCH wurde von Pellegrini an der Universit¨at von Bordeaux ent-
wickelt. Auch hier sind die Quelldateien frei verf¨ugbar. Zur Berechnung eines Orderings
enth¨alt SCOTCH das stand-alone Programm ord.¨
Uber eine Vielzahl von Parametern kann
die genaue Vorgehensweise bei der Berechnung des Orderings spezifiziert werden. Die in
der Tabelle 4.4 angegebenen Werte wurden mit Hilfe der von Pellegrini vorgeschlagenen
Einstellungen ermittelt. Wie METIS, so stellt auch SCOTCH einen state-of-the-art Nested-
Dissection-Algorithmus dar. Zur Konstruktion der Knotenseparatoren wird wieder ein auf
einer Matching-Technik basierender Multilevel-Ansatz benutzt. Im Gegensatz zu METIS
werden die Knoten in den Teilgraphen mit Hilfe des Approximate-Minimum-Degree-Al-
gorithmus von Amestoy et al. eliminiert (vg. auch Pellegrini et al. [111]).
SPOOLES Die von Ashcraft und Grimes entwickelte SPOOLES-Bibliothek enth¨alt eine Vielzahl
von Algorithmen zur L¨osung d¨unn besetzter Gleichungssysteme. Die gesamte Bibliothek
4.3. Die Ordering-Bibliothek
PORD 89
basiert auf einem objektorientierten Programmieransatz. Zur Vermeidung von Performanz-
verlusten sind jedoch alle Objekte und Methoden in der Programmiersprache C implemen-
tiert. Die Quelldateien sind frei verf¨ugbar. SPOOLES enth¨alt mehrere stand-alone Program-
me. Die in der Tabelle 4.4 angegebenen Werte wurden mit Hilfe des Programms ddsep er-
mittelt. Dieses Programm wurde bereits in einer fr¨uheren Arbeit von Ashcraft und Liu [14]
separat vorgestellt. In ddsep werden die Knotenseparatoren nach dem in Abschnitt 4.1.3
beschriebenen zweistufigen Verfahren konstruiert. Die Konstruktion der Gebietszerlegung
Ï
ƨ׺
è
F×
ñ:ñnñ
׺
ãá
FÑ
basiert auf einer randomisierten Greedy-Methode. Deshalb haben wir das
Programm f¨ur jeden Graphen elfmal gestartet. Die in den Tabellen 4.4 und 4.5 angegebe-
nen Werte stellen jeweils den Durchschnitt der elf L¨aufe dar. Zur Elimination der Knoten
in den Teilgraphen und in dem Multisektor wird Lius Multiple-Minimum-Degree-Algo-
rithmus benutzt.
Tabelle 4.4 zeigt die ¨
Uberlegenheit unseres Multisection-Verfahrens. Die Werte f¨ur pord ent-
sprechen den Werten in Spalte 2 von Tabelle 4.2 und die Werte f¨ur multipord den hervorge-
hobenen Zahlen in Tabelle 4.3. W¨ahrend die von METIS (Version 4.0), SCOTCH (Version 3.3)
und SPOOLES (Version 2.2) generierten Orderings im Durchschnitt 25%, 28% und 31% weni-
ger Operationen verursachen als der AMD-Algorithmus von Amestoy et al., erzielt multipord
eine Verbesserung von 42%. Insbesondere sei darauf hingewiesen, daß alle von pord und mul-
tipord generierten Orderings besser sind als die entsprechenden AMD-Orderings. Dies ist f¨ur
kein anderes Ordering-Verfahren der Fall.
Interessant ist in diesem Zusammenhang auch ein Vergleich der Nested-Dissection-Varian-
te von pord (Spalte 4 in Tabelle 4.2) mit METIS und SCOTCH. Alle drei k¨onnen als state-of-
the-art Nested-Dissection-Algorithmen bezeichnet werden. W¨ahrend METIS und SCOTCH die
Anzahl der arithmetischen Operationen im Schnitt um 25% bzw. 28% reduzieren, erreicht die
Nested-Dissection-Variante von pord eine Verbesserung um 33%. Lediglich f¨ur drei Matrizen
ist das von pord generierte Nested-Dissection-Ordering schlechter als das entsprechende AMD-
Ordering. Bei METIS ist dies f¨ur acht und bei SCOTCH f¨ur sieben Matrizen der Fall.
Tabelle 4.5 stellt die Laufzeiten der Ordering-Algorithmen einander gegen¨uber. In Klam-
mern ist wieder der Wert in Relation zu dem Approximate-Minimum-Degree-Algorithmus von
Amestoy et al. angegeben. Ein Vergleich zwischen pord und multipord zeigt, daß der durch
die Generierung und Evaluierung von bis zu acht Bottom-Up-Orderings entstehende Mehrauf-
wand sehr gering ist. Insgesamt l¨aßt sich feststellen, daß von den f¨unf Ordering-Algorithmen
METIS die geringste Laufzeit ben¨otigt. Bedingt durch den komplexeren Schrumpfungs- und Op-
timierungsprozeß k¨onnen die Laufzeiten von pord bzw. multipord im Vergleich zu METIS um
den Faktor zwei (z.B. f¨ur BRACK2 und HERMES) oder mehr (z.B. f¨ur CYL3) anwachsen. Im
Durchschnitt liegen die Laufzeiten von pord und multipord jedoch nur leicht ¨uber denen von
METIS und sind deutlich geringer als die von SCOTCH und SPOOLES.
90
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Auffallend ist, daß die Laufzeiten der f¨unf Ordering-Algorithmen um ein vielfaches h¨oher
sind als die des Approximate-Minimum-Degree-Algorithmus. Im Falle von SCOTCH k¨onnen
sich die Laufzeiten um bis zu einem Faktor von 30 erh¨ohen. Es stellt sich die Frage, ob die
Zeitersparnis bei der numerischen Faktorisierung groß genug ist, um den Mehraufwand zur Be-
rechnung eines besseren Orderings zu rechtfertigen. Die Antwort ist ein klares Ja. W¨ahrend sich
die Laufzeiten zur Berechnung eines Orderings im Bereich von Sekunden bewegen, ben¨otigt
die numerische Faktorisierung Laufzeiten im Bereich von mehreren Minuten. Bei sehr großen
Matrizen kann die Laufzeit auf mehr als eine Stunde anwachsen.
Wir wollen das Verh¨altnis der Laufzeiten an der Matrix CFD1 veranschaulichen. Bei Verwen-
dung des von multipord generierten Orderings m¨ussen zur Berechnung des Cholesky-Faktors
ö
X
sãölæ
ó
arithmetische Operationen durchgef¨uhrt werden. Der von uns implementierte Mul-
tifrontal-Algorithmus (vgl. Abschnitt 5.1.3) ben¨otigt dazu
ç
ñ
æ
Sekunden. Zusammen mit dem
Ordering ergibt sich eine Laufzeit von
ölæ
X
ñ
úù
h
Sekunden. Benutzt man das von METIS generierte
Ordering, so ergeben sich die folgenden Werte:
ô
Anzahl der Operationen:
ö
amaX
ù
ãwölæ
ó
ô
numerische Faktorisierung:
ö
X
ñ
Xç
Sek.
ô
numerische Faktorisierung plus Ordering:
ö
¿ç
ñ
h
ù
Sek.
Der Approximate-Minimum-Degree-Algorithmus von Amestoy et al. ben¨otigt zur Berechnung
eines Orderings f¨ur CFD1 nur drei Sekunden. Auf Basis dieses Orderings ergeben sich die Werte:
ô
Anzahl der Operationen:
XX
ùù
ãwölæ
ó
ô
numerische Faktorisierung:
ù
ö
ÝX
ñ
¶æ
Sek.
ô
numerische Faktorisierung plus Ordering:
ù
ö
%ç
ñ
çX
Sek.
Ein Vergleich der Laufzeiten zeigt, daß es sich auf jeden Fall lohnt, mehr Zeit in die Berechnung
eines guten Orderings zu investieren. Dar¨uber hinaus unterstreicht der Vergleich noch einmal die
hohe praktische Relevanz des neuen Ordering-Verfahrens.
4.3. Die Ordering-Bibliothek
PORD 91
Name METIS-4.0 SCOTCH-3.3 SPOOLES-2.2 pord multipord
GRID127x127 22 (0.81) 25 (0.93) 20 (0.74) 16 (0.59) 16 (0.59)
MESH127x127 37 (0.86) 40 (0.93) 43 (1.00) 38 (0.88) 35 (0.81)
BCSSTK15 87 (0.56) 93 (0.60) 95 (0.61) 79 (0.51) 78 (0.50)
BCSSTK16 140 (0.86) 140 (0.86) 129 (0.79) 117 (0.72) 117 (0.72)
BCSSTK17 184 (1.33) 161 (1.16) 135 (0.98) 123 (0.89) 123 (0.89)
BCSSTK18 101 (0.80) 77 (0.60) 84 (0.66) 85 (0.67) 81 (0.64)
BCSSTK23 98 (0.78) 94 (0.75) 91 (0.72) 85 (0.68) 84 (0.67)
BCSSTK24 34 (1.09) 35 (1.13) 38 (1.22) 31 (0.97) 30 (0.97)
BCSSTK25 380 (1.20) 348 (1.10) 235 (0.74) 207 (0.65) 207 (0.65)
BCSSTK29 345 (0.74) 327 (0.70) 341 (0.73) 326 (0.70) 309 (0.66)
BCSSTK30 1203 (1.27) 1114 (1.18) 833 (0.88) 702 (0.74) 702 (0.74)
BCSSTK31 1165 (0.45) 1219 (0.47) 1530 (0.59) 1215 (0.47) 1215 (0.47)
BCSSTK32 1213 (1.23) 1175 (1.19) 866 (0.88) 774 (0.78) 774 (0.78)
BCSSTK33 909 (0.78) 674 (0.59) 739 (0.65) 626 (0.55) 615 (0.54)
BCSSTK35 523 (1.31) 422 (1.06) 393 (0.98) 367 (0.92) 367 (0.92)
BCSSTK36 615 (1.00) 583 (0.95) 496 (0.81) 458 (0.74) 458 (0.74)
BCSSTK37 694 (1.30) 653 (1.22) 433 (0.81) 403 (0.75) 397 (0.74)
BCSSTK38 135 (1.17) 108 (0.94) 103 (0.90) 91 (0.79) 91 (0.79)
MAT02HBF 1192 (0.87) 1099 (0.82) 1156 (0.86) 1088 (0.81) 1088 (0.81)
MAT03HBF 2724 (0.65) 2924 (0.70) 3607 (0.86) 2723 (0.65) 2542 (0.61)
STRUCT3 826 (0.75) 857 (0.78) 773 (0.70) 730 (0.67) 691 (0.63)
STRUCT4 535 (0.27) 541 (0.27) 691 (0.34) 541 (0.27) 503 (0.25)
PWT 110 (0.64) 101 (0.58) 108 (0.62) 109 (0.63) 108 (0.62)
BRACK2 1908 (0.62) 1821 (0.59) 1900 (0.62) 1610 (0.52) 1610 (0.52)
CRACK 7 (0.87) 7 (0.87) 7 (0.87) 7 (0.87) 6 (0.75)
3DTUBE 12071 (0.40) 15834 (0.53) 15523 (0.52) 14839 (0.49) 12303 (0.41)
CFD1 16345 (0.37) 15027 (0.34) 10509 (0.24) 8814 (0.20) 8814 (0.20)
CFD2 31024 (0.23) 35659 (0.26) 35798 (0.26) 27978 (0.20) 26141 (0.19)
CYL3 32164 (0.15) 31670 (0.15) 80818 (0.39) 45386 (0.22) 39791 (0.19)
DIME20 196 (0.59) 181 (0.55) 235 (0.71) 175 (0.53) 175 (0.53)
GEARBOX 20390 (0.50) 24755 (0.60) 21516 (0.52) 17404 (0.42) 17404 (0.42)
NASASRB 3494 (0.77) 3748 (0.83) 2801 (0.62) 2613 (0.58) 2613 (0.58)
WAVE 120180 (0.32) 98547 (0.26) 188316 (0.50) 119694 (0.32) 97463 (0.26)
PWTK 22039 (0.45) 23275 (0.47) 28313 (0.58) 22658 (0.46) 22658 (0.46)
HERMES 258970 (0.18) 368863 (0.26) 518549 (0.36) 266255 (0.19) 250740 (0.17)
Durchschnitt (0.75) (0.72) (0.69) (0.60) (0.58)
Tab. 4.4: Vergleich der zur Faktorisierung ben¨otigten Operationen (in Mio.).
92
Kapitel 4. Ordering-Verfahren f¨ur beliebige Graphen
Matrix METIS-4.0 SCOTCH-3.3 SPOOLES-2.2 pord multipord
GRID127x127 0.81 ( 4.1) 2.22 (11.1) 1.58 ( 7.9) 1.27 ( 6.4) 1.35 ( 6.7)
MESH127x127 1.04 ( 4.7) 2.90 (13.2) 2.36 (10.1) 1.45 ( 6.6) 1.58 ( 7.2)
BCSSTK15 0.52 ( 4.3) 1.96 (16.3) 1.13 ( 9.4) 0.52 ( 4.3) 0.60 ( 5.0)
BCSSTK16 0.21 ( 2.6) 0.52 ( 6.5) 0.48 ( 6.0) 0.19 ( 2.4) 0.25 ( 3.1)
BCSSTK17 0.76 ( 5.1) 1.50 (10.0) 1.13 ( 7.5) 0.61 ( 4.1) 0.71 ( 4.7)
BCSSTK18 1.02 ( 4.1) 3.70 (14.8) 2.84 (11.4) 1.25 ( 5.0) 1.57 ( 6.3)
BCSSTK23 0.25 ( 2.5) 1.23 (12.3) 0.58 ( 5.8) 0.29 ( 2.9) 0.37 ( 3.7)
BCSSTK24 0.09 ( 3.0) 0.20 ( 6.7) 0.16 ( 5.3) 0.07 ( 2.3) 0.11 ( 3.7)
BCSSTK25 1.63 ( 4.9) 5.81 (17.6) 3.71 (11.2) 1.69 ( 5.1) 1.90 ( 5.8)
BCSSTK29 1.65 ( 5.5) 9.09 (30.3) 3.29 (11.0) 1.35 ( 4.5) 1.66 ( 5.5)
BCSSTK30 2.26 ( 4.2) 4.73 ( 8.9) 4.30 ( 8.1) 1.69 ( 3.2) 1.85 ( 3.5)
BCSSTK31 3.35 ( 5.2) 6.61 (10.2) 5.60 ( 8.6) 2.96 ( 4.6) 3.44 ( 5.3)
BCSSTK32 2.86 ( 4.8) 4.95 ( 8.2) 4.30 ( 7.2) 2.28 ( 3.8) 2.90 ( 4.8)
BCSSTK33 0.77 ( 3.7) 2.56 (12.2) 2.61 (12.4) 0.78 ( 3.7) 0.91 ( 4.3)
BCSSTK35 0.91 ( 2.9) 1.57 ( 5.1) 1.70 ( 5.5) 0.81 ( 2.6) 0.95 ( 3.1)
BCSSTK36 0.56 ( 2.4) 0.95 ( 4.1) 1.17 ( 5.1) 0.48 ( 2.1) 0.61 ( 2.7)
BCSSTK37 1.03 ( 3.7) 1.90 ( 6.8) 1.71 ( 6.1) 0.87 ( 3.1) 0.97 ( 3.5)
BCSSTK38 0.85 ( 5.7) 1.63 (10.8) 1.00 ( 6.7) 0.48 ( 3.2) 0.61 ( 4.1)
MAT02HBF 0.90 ( 2.2) 1.37 ( 3.3) 1.73 ( 4.2) 0.87 ( 2.2) 0.97 ( 2.4)
MAT03HBF 1.15 ( 1.9) 2.35 ( 3.9) 2.70 ( 4.4) 1.46 ( 2.4) 1.66 ( 2.7)
STRUCT3 5.18 ( 4.9) 18.40 (17.5) 14.00 (13.3) 7.52 ( 7.2) 8.81 ( 8.4)
STRUCT4 1.37 ( 5.1) 3.58 (13.3) 5.43 (20.1) 1.06 ( 3.9) 1.33 ( 4.9)
PWT 0.96 ( 1.7) 6.30 (11.1) 6.30 (11.1) 3.87 ( 6.8) 4.03 ( 7.1)
BRACK2 7.14 ( 3.5) 23.95 (11.7) 17.32 ( 8.4) 12.48 ( 6.1) 14.11 ( 6.9)
CRACK 0.59 ( 3.3) 1.69 ( 9.4) 1.06 ( 5.9) 0.87 ( 4.8) 0.98 ( 5.4)
3DTUBE 3.73 ( 3.9) 7.57 ( 8.0) 6.70 ( 7.1) 2.81 ( 3.0) 3.40 ( 3.6)
CFD1 12.78 ( 4.3) 37.57 (12.5) 36.73 (12.2) 15.71 ( 5.2) 17.43 ( 5.8)
CFD2 22.34 ( 5.0) 65.29 (14.5) 64.11 (14.2) 27.61 ( 6.1) 31.64 ( 7.0)
CYL3 21.99 ( 1.3) 77.81 ( 4.6) 71.53 ( 4.2) 68.59 ( 4.0) 71.99 ( 4.2)
DIME20 13.70 ( 3.4) 38.00 ( 9.5) 37.50 ( 9.4) 32.78 ( 8.2) 33.07 ( 8.3)
GEARBOX 18.61 ( 6.5) 27.83 ( 9.6) 21.36 ( 7.4) 13.85 ( 4.8) 14.86 ( 5.2)
NASASRB 6.30 ( 6.3) 9.54 ( 9.5) 7.95 ( 7.9) 4.68 ( 4.7) 5.77 ( 5.8)
WAVE 21.32 ( 3.6) 72.51 (12.2) 67.81 (11.4) 35.79 ( 6.0) 38.59 ( 6.5)
PWTK 16.74 ( 7.4) 11.53 ( 5.1) 10.50 ( 4.7) 6.80 ( 3.0) 8.01 ( 3.6)
HERMES 61.78 ( 3.9) 181.79 (11.4) 220.68 (13.9) 104.81 ( 6.6) 110.91 ( 7.0)
Durchschnitt ( 4.0) (10.6) ( 8.7) ( 4.4) ( 5.1)
Tab. 4.5: Vergleich der Laufzeiten (in Sek.).
Kapitel 5
Symbolische und numerische
Faktorisierung
Die numerische Faktorisierung stellt den aufwendigsten Schritt zur L¨osung eines d¨unn besetz-
ten, linearen Gleichungssystems dar. Um die Faktorisierung m¨oglichst effizient durchf¨uhren zu
k¨onnen, wird zun¨achst eine geeignete Datenstruktur zur Speicherung der Faktormatrix
º
be-
stimmt. Dies ist Aufgabeder symbolischen Faktorisierung. Wichtigste Eingabe der symbolischen
Faktorisierung ist der in Abschnitt 4.1.1 beschriebene Eliminationsbaum. Der Eliminationsbaum
spielt auch bei der numerischen Faktorisierung eine entscheidene Rolle.
Fast alle aus der Literatur bekannten Faktorisierungsalgorithmen sind spaltenbasiert, d.h.
der Cholesky-Faktor
º
wird Spalte f¨ur Spalte berechnet. Die bekanntesten spaltenbasierten Ver-
fahren sind die Fan-in- und die Fan-out-Methode. Die Fan-in-Methode [6] realisiert die in Ab-
schnitt 2.1 beschriebene Inner-Product-Form der Cholesky-Zerlegung. Demgegen¨uber basiert
die Fan-out-Methode [50] auf der ebenfalls in 2.1 beschriebenen Outer-Product-Form. Beide
Methoden sind numerisch ¨aquivalent, d.h. sie ben¨otigen die gleiche Anzahl von Multiplikations-
und Additionsoperationen. Sie unterscheiden sich lediglich in der Reihenfolge, in der die Opera-
tionen ausgef¨uhrt werden. Man erh¨alt so zwei unterschiedliche Ans¨atze zur Parallelisierung der
Cholesky-Zerlegung (vgl. z.B. Ashcraft et al. [6, 5], George et al. [50] oder Heath et al. [67]).
Eine Variante der Fan-out-Methode ist die Multifrontal-Methode [35, 36]. Urspr¨unglich wur-
de die Multifrontal-Methode zur Faktorisierung sehr großer Matrizen entwickelt, die nicht voll-
st¨andig in den Hauptspeicher eines Rechners passen (vgl. z.B. Liu [95] oder Reid [117]). Heute
benutzt man die Multifrontal-Methode haupts¨achlich zurFaktorisierung d¨unn besetzter Matrizen.
Mit ihrer Hilfe ist es m¨oglich die Faktorisierung einer d¨unn besetzten Matrix auf die teilweise
Faktorisierung mehrerer kleinerer, voll besetzter Matrizen zur¨uckzuf¨uhren. Zur Faktorisierung
einer d¨unn besetzten Matrix k¨onnen dann Programmiertechniken angewandt werden, die eigent-
lich zur L¨osung voll besetzter Systeme entwickelt wurden. Des weiteren l¨aßt sich die Zerlegung
einer voll besetzten Matrix sehr effizient auf einem Vektor- oder Parallelrechner durchf¨uhren
93
94
Kapitel 5. Symbolische und numerische Faktorisierung
(vgl. Gallivan et al. [45] oder Kumar et al. [84]). Daher basieren viele parallele Algorithmen
zur Faktorisierung d¨unn besetzter Matrizen auf der Multifrontal-Methode (vgl. z.B. Ashcraft et
al. [9], Dongarra und Eisenstat [31], Gilbert und Schreiber [60], Gupta et al. [63, 66], Lucas et
al. [100] oder Schulze [130]).
Dieses Kapitel ist wie folgt aufgebaut. In Abschnitt 5.1 stellen wir einen sequentiellen Algo-
rithmus zur symbolischen und numerischen Faktorisierung vor. Dabei gehen wir nochmals auf
den Eliminationsbaum ein und zeigen, wie dieser Baum die symbolische und numerische Fak-
torisierung steuert. Unser Algorithmus basiert auf der Multifrontal-Methode und dient als Aus-
gangspunkt f¨ur die in 5.2 beschriebene Parallelisierung. Bei der Implementierung des parallelen
Algorithmus sind wir von einem verteilten System ausgegangen dessen Verbindungsnetzwerk
einem Hypercube [87] entspricht.
5.1 Der sequentielle Fall
Entscheidend f¨ur die Effizienz der numerischen Faktorisierung ist ein effektiver Einsatz der
von modernen Computern bereitgestellten Caching-Mechanismen. Dazu muß in kurzen Zeit-
abst¨anden (zeitliche Lokalit¨
at) sehr oft auf einen kleinen, begrenzten Speicherbereich (r¨
aumliche
Lokalit¨
at) zugegriffen werden. Sowohl die Fan-in- als auch die Fan-out-Methode basieren auf der
einfachen BLAS1 [101] Operation daxpy. Daher ist die Anzahl der auf einem Speicherbereich
durchgef¨uhrten Floating-Point-Operationen sehr gering. Wird die Matrix jedoch in quadratische
Bl¨ocke partitioniert, so kann die Operation durch sehr viel effizientere BLAS3 [30] Routinen
wie z.B. dgemm ersetzt werden. Man spricht in diesem Fall von einer blockweisen Faktorisie-
rung (vgl. auch Ashcraft et al. [9], Ng und Peyton [105] oder Rothberg [121]). Bei den BLAS3
Routinen ist die Anzahl der auf einem Speicherbereich durchgef¨uhrten Floating-Point-Operatio-
nen sehr viel h¨oher, so daß der Prozessor-Cache besser ausgelastet wird.
Die Register eines Prozessors bilden den schnellsten Speicher. Um die Verwendung dieses
Speichers zu optimieren (register re-use), benutzt man die Technik des Loop-Unrolling [31].
Hierbei werden nochmals quadratische Bl¨ocke gebildet, die jetzt jedoch so klein sind, daß die
Operationen auf diesen Bl¨ocken ”ausprogrammiert“ werden k¨onnen. Es entstehen also keine
zus¨atzlichen Schleifen.
Ist
d¨unn besetzt, so werden die Bl¨ocke mit Hilfe der bei der Berechnung eines Orderings
entstehenden Superknoten gebildet. Eine besondere Stellung nimmt in diesem Zusammenhang
die Multifrontal-Methode ein. Hier ist mit jedem Superknoten eine voll besetzte untere Drei-
ecksmatrix verbunden. Durch eine teilweise Faktorisierung dieser Matrix erh¨alt man die zu dem
Superknoten geh¨orenden Spalten des Cholesky-Faktors. Der entscheidende Vorteil der Methode
besteht darin, daß die voll besetzte Matrix in der Regel so klein ist, daß sie vollst¨andig in den
Cache paßt. Obwohl die Verwaltung der Matrizen einen gewissen Overhead erzeugt, geh¨ort die
Multifrontal-Methode zu den schnellsten Faktorisierungsverfahren f¨ur d¨unn besetzte Matrizen.
5.1. Der sequentielle Fall
95
Dieser Abschnitt ist wie folgt aufgebaut. Zun¨achst besch¨aftigen wir uns in 5.1.1 und 5.1.2
mit der symbolischen Faktorisierung. Im Mittelpunkt steht dabei der bereits in Abschnitt 4.1.1
vorgestellte Eliminationsbaum. Schließlich stellen wir in 5.1.3 die Multifrontal-Methode genau-
er vor. Dabei gehen wir noch einmal auf die oben beschriebenen Techniken zur Steigerung der
Cache- und Registereffizienz ein. Um die Leistungsf¨ahigkeit unseres sequentiellen Faktorisie-
rungsalgorithmus unter Beweis zu stellen, vergleichen wir ihn in 5.1.4 mit einem Programm aus
der SPOOLES-Bibliothek.
5.1.1 Die symbolische Faktorisierung und der Eliminationsbaum
Ziel der symbolischen Faktorisierung ist die Bestimmung der Nichtnullstruktur des Cholesky-
Faktors
von
. Dazu wird f¨ur jede Spalte
von
die Indexmenge
berechnet
(zur Erinnerung:
! "$#&%('*)+-,/.10243#6587
). Basierend auf den Indexmengen kann dann
eine geeignete Datenstruktur zur Speicherung der von null verschiedenen Subdiagonalelemente
von
aufgebaut werden. F¨ur eine genaue Beschreibung der Datenstruktur sei auf Eisenstat et
al. [40] verwiesen. In diesem Abschnitt konzentrieren wir uns auf die Berechnung der Mengen
! 9
,
:#<;=">">9>?=@
. Dabei spielt der in Abschnitt 4.1.1 vorgestellte Eliminationsbaum
eine entscheidende Rolle.
Betrachten wir noch einmal die bei der Berechnung eines Bottom-up-Orderings entstehenden
Gebiete. Sei wieder
ACB
das Gebiet, das durch die Elimination von
D
entsteht. Es gilt
EGF!HIJKALB9J#
M
EGF!HIN8KD8
und damit (vgl. Formel (2.9))
O6P
EGF(H IACB9RQ S
O
P
!K TVUWBXY >
Ist also
EVF!HIJACB9
bekannt, so kann die Nichtnullstruktur der Spalte
SZKD8
von
sehr einfach
konstruiert werden. Dabei ist jedoch zu beachten, daß zum Zeitpunkt der Elimination von
D
die
Knoten in
EGF!HIRACB9
noch gar nicht numeriert sind. Daher kann die Berechnung eines Orderings
und die Durchf¨uhrung der symbolischen Faktorisierung nicht in einem Schritt erfolgen.
Hier kommt der Eliminationsbaum ins Spiel. Mit Hilfe dieses Baumes kann die Menge
EGF!H IACB9
nach Abschluß des Eliminationsprozesses sehr einfach rekonstruiert werden. Sind
[?\
=">">9>?=
[^]
die S¨ohne von
D
im Eliminationsbaum, so ist
ACB
durch Verschmelzen der Gebiete
AC_ `
,
'a# ;=">">9>?=b
, entstanden. Unter der Annahme, daß die Mengen
EVF!HIAC_ `K
bekannt sind
folgt dann:
EGF!HIRACB9Z#
M
EVF!HIKD8?c
]
d
02e
\
KEGF!HIJKAL_ `KRfg%(D^7V >
(5.1)
Der Rand von
ACB
setzt sich also aus den noch nicht eliminierten Knoten aus
EGF!H IKD8
und den
R¨andern der absorbierten Gebiete (ohne
D
) zusammen. Man beachte, daß wir den Begriff der
96
Kapitel 5. Symbolische und numerische Faktorisierung
SYMBFACELIMTREE
h1i*j
01:
kmlWnpoqsrutwvyx(rutuxqz|{}qh1i*j
;
02: while
k4~npqwxVxt9h1i*j
do
03:
ClWnhkj
;
04:
Gtuqst h "jlWnGtuqsth/$
j
;
05: Let
\}}}
]
denote the children of
k
in
i
.
06: for each vertex
0
do
07:
Gtuqt h jlWnGtuqth jhGtuqst h
TVUW_ `X
j-89j
;
08:
klWn{Gtwvyx(rutuxqsz{}q9h1i
k|j
;
09: end while
Abb. 5.1: Funktion SYMBFACELIMTREE.
monotonen Adjazenz auf die Knoten des urspr¨unglichen Graphen
angewandt haben. Basierend
auf (5.1) berechnet sich die Indexmenge
!KZ 9
,
a#¡SKD8
, zu
! "J#¢
£c
]
d
0¤e
\
Y!K T!U¥_ `1X f¦%V§7V >
(5.2)
Dabei enth¨alt
(
die Zeilenindizes der von null verschiedenen Subdiagonalelemen-
te in Spalte
von
.
Abbildung 5.1 zeigt einen einfachen Algorithmus zur Bestimmung der Nichtnullstruktur von
. Der Aufwand des Algorithmus ist
¨4K©yZ
. Dabei werden die Knoten des Eliminationsbau-
mes in Postorder-Reihenfolge durchlaufen. Die Postorder-Reihenfolge garantiert, daß die in der
for-Schleife (Zeilen 06–07) ben¨otigten Mengen bekannt sind. Die Wurzel
ªªG(¬«
des Eliminati-
onsbaumes nimmt eine besondere Stellung ein. In der numerischen Praxis tauchen immer wieder
Matrizen auf, die einen nicht zusammenh¨angenden Graphen
induzieren. In diesem Fall ist
«
ein aus mehreren B¨aumen bestehender Wald. Der Knoten
ªªG"«
ist ein Hilfsknoten, der die
einzelnen B¨aume zu einem Baum zusammenfaßt.
Der Eliminationsbaum
«
besitzt eine Reihe interessanter Eigenschaften. F¨ur einen ausf¨uhr-
lichen ¨
Uberblick sei auf die Zusammenfassung von Liu [96] verwiesen. F¨ur die Herleitung der
Multifrontal-Methode in Abschnitt 5.1.3 ben¨otigen wir das folgende Lemma:
Lemma 5.1 Gilt
.101 ®¯3#°5
,
±³²´'
, dann ist in dem Eliminationsbaum
«
der Knoten
[
#µS¶
\
±
ein Vorg¨
anger des Knotens
O
#¡S ¶
\
'u
.
In dieser Arbeit gehen wir immer davon aus, daß
«
– quasi als ”Nebenprodukt“ – von einem
Ordering-Algorithmus konstruiert wurde. Der Eliminationsbaum kann jedoch auch nachtr¨aglich
berechnet werden. Liu stellt in [96] einen Union-Find-Algorithmus vor, der auf Eingabe von
und
S
den Eliminationsbaum
«
in Zeit
¨·K¸¹$¸=@?
konstruiert. Dabei bezeichnet
¸
die Anzahl
5.1. Der sequentielle Fall
97
1
1
v
4
3
v5
22
v
25
7
v
15
2
v
5
17
v
23
19
v21
26
v
31
13
v33
31
v35
34
v
29
10
v43
11
v45
14
v47
32
v
8
3
v10
6
v12
24
v
27
14
v
9
2
v
9
8
v
7
16
v
6
30
v
13
29
v
28
20
v
28
42
v
27
41
v
26
40
v
38
15
v40
33
v42
36
v
24
21
v
22
19
v
23
20
v
36
12
v
30
18
v
37
17
v
44
16
v
48
11
v
49
4
v
47
18
v
25
46
v
32
45
v
39
44
v
46
43
v
34
39
v
41
38
v
48
37
v
49
35
v
Abb. 5.2: Frontbaum eines
º»·º
-Gitters mit 9-Punkte-Stern wenn die Knoten in der durch Georges Ne-
sted-Dissection-Ordering beschriebenen Reihenfolge eliminiert werden.
der Kanten und
@
die Anzahl der Knoten in
. Die Funktion
¹
stellt die Inverse der Ackerman-
Funktion dar. Der Aufwand zur Konstruktion des Eliminationsbaumes wird also von der Anzahl
der Kanten in
und nicht von der Anzahl der Kanten im aufgef¨ullten Graphen
¼T
bestimmt.
5.1.2 Vom Eliminationsbaum zum Frontbaum
In der Regel bestehen die h¨oheren Ebenen eines Eliminationsbaumes
«
aus langen Ketten von
Knoten. Viele dieser Ketten sind Teil der im Rahmen des Eliminationsprozesses gebildeten Su-
perknoten. In dem zu
«
geh¨orenden Frontbaum werden solche Ketten durch logische Knoten
ersetzt. Jeder logische Knoten repr¨asentiert eine Menge von aufeinanderfolgend numerierten
Graphknoten, die zum Zeitpunkt ihrer Elimination nicht unterscheidbar sind. Ein solcher lo-
gischer Knoten heißt fundamentaler Superknoten [7] oder kurz Front. Im folgenden bezeichnen
wir den zu
«
geh¨orenden Frontbaum mit dem kaligraphischen Buchstaben
½
.
Abbildung 5.2 zeigt den Frontbaum, der entsteht wenn die Knoten des in Abbildung 2.4
dargestellten
¾¿À¾
-Gitters in der durch Georges Nested-Dissection-Ordering beschriebenen Rei-
henfolge eliminiert werden. Die zu einer Front zusammengefaßten Graphknoten sind durch ein
Oval umrandet. In den untersten zwei Ebenen des Baumes besteht jede Front aus nur einem
Knoten. Der Frontbaum
½
ist hier identisch mit dem Eliminationsbaum
«
.
98
Kapitel 5. Symbolische und numerische Faktorisierung
Die Fronten bzw. fundamentalen Superknoten stimmen nicht zwangsl¨aufig mit den im Rah-
men des Eliminationsprozesses gebildeten Superknoten ¨uberein (vgl. Ashcraft und Grimes [7]).
Betrachten wir dazu noch einmal das
¾4¿p¾
-Gitter. Werden die Gitterknoten in der durch Geor-
ges Nested-Dissection-Ordering beschriebenen Reihenfolge eliminiert, so entsteht zum Schluß
des Eliminationsprozesses der Superknoten
%(D(Á=D
\u\
=D
\KÂ
=D!ÃuÄ=D!ÅuÃ"=D!ÅuÆ=D!ÁwÇ9=DVÃuÇ=DVÃwÈ"=D!Ã
Â
7
. In dem
Frontbaum aus Abbildung 5.2 ist der Superknoten in zwei Ketten – und damit in zwei funda-
mentale Superknoten – aufgespaltet, n¨amlich
%(DVÃuÇ9=DVÃwÈ"=DVÃ
Â
7
und
%(D(Á=D
\u\
=D
\KÂ
=D!ÃuÄ=D!ÅuÃ"=D!ÅuÆ=D!ÁwÇ7
.
Der Frontbaum
½
kann wie der Eliminationsbaum
«
w¨ahrend der Berechnung eines Bottom-
up-Orderings konstruiert werden. Es ist jedoch auch eine nachtr¨agliche Konstruktion m¨oglich.
Dabei ist zu beachten, daß eine Kette in
«
nicht automatisch einen fundamentalen Superknoten
darstellt. Die fundamentalen Superknoten k¨onnen jedoch mit Hilfe des von Liu et al. [98] vor-
geschlagenen Algorithmus nachtr¨aglich in
«
bestimmt werden. Dazu sind lediglich
¨·@ÊÉ¢¸(
Zeiteinheiten notwendig.
Der Frontbaum
½
enth¨alt mehr Informationen als der entsprechende Eliminationsbaum
«
.
Diese zus¨atzlichen Informationen erm¨oglichen eine signifikante Beschleunigung der symboli-
schen Faktorisierung. Betrachten wir dazu die Nichtnullstruktur der zu einer Front
Ë
geh¨orenden
Spalten. Seien
D=D|Ì
P
Ë
mit
SZD#Í
und
SZKD|̤#ÍLÉ¢;
. Da die Knoten
D=D|Ì
zum Zeitpunkt
ihrer Elimination nicht unterscheidbar sind, gilt
M
EVF!HIN8KD
Ì
#
M
EGF(HIN8KD8f¦%(D
Ì
7
und damit
}Î
\
#+!K f¦%VÉÏ;G7>
Man muß also nur die Nichtnullstruktur der ersten Spalte einer Front berechnen. Die Nichtnull-
strukturen der restlichen Spalten ergeben sich durch sukzessives Entfernen des jeweils gr¨oßten
Zeilenindizes. Abbildung 5.3 zeigt den auf einem Frontbaum basierenden Algorithmus zur sym-
bolischen Faktorisierung.
In Zeile 03 wird der erste Knoten der Front
Ë
, d.h. der Knoten mit der kleinsten Nummer, er-
mittelt. Anschließend erfolgt die Initialisierung der Nichtnullstruktur der entsprechenden Spalte.
Da die Knoten aus
Ë
eine Clique bilden, enth¨alt
(K
neben
!Kм
die Indizes
%VÑÉ´;=">9>">?=ÑÉ¢Òf6;G7
. In der for-Schleife (Zeilen 07–10) wird
!KZ "
vervollst¨andigt.
Sei dazu
ÓÔ0
ein Sohn von
Ë
in
½
. Sei weiter
[
0
der Knoten mit der gr¨oßten Nummer in
ÓÔ0
(
[
0
heißt in diesem Fall letzter Knoten in
ÓÔ0
). Dann wird durch die Elimination des Knotens
D
das
Gebiet
AC_`
von
ACB
absorbiert. Daher wird in Zeile 09 die Menge
( T!U¥_ `1XY/fÕ%V§7
der
Menge
( "
hinzugef¨ugt. Nachdem
!K
bekannt ist, k¨onnen die Indexmengen
der restlichen zu
Ë
geh¨orenden Spalten ganz einfach abgeleitet werden (Zeilen 11-12).
Die Fronten spielen auch bei der numerischen Faktorisierung eine entscheidende Rolle. Mit
ihrer Hilfe kann der Cholesky-Faktor in quadratische Bl¨ocke partitioniert werden. Jeder Block
5.1. Der sequentielle Fall
99
SYMBFACFRONTTREE
hÖ¼j
01:
רlWnoqsrutwvyx(rutuxqsz{}qhÖj
;
02: while
×6~n:qsxVxthÖ¼j
do
03: Let
Ù*n¡Ú ×Ú
and let
k
be the first vertex in
×
.
04:
ClWnhkj
;
05:
Gtuqst h "jlWn¦/ÛÜ
}}}-
/Û³ÙÝÜ9JÑGtuqst hÞß
j
;
06: Let
à
\}}}
à
]
denote the children of
×
in
Ö
.
07: for each front
à
0
do
08: Let
0
be the last vertex in
à0
.
09:
Gtuqt h jlWnGtuqth jhGtuqst h
TVUW_ `X
j-89j
;
10: end for
11: for
áÐlWnâ/ÛÜ
to
/Û³ÙÝÜ
do
12:
Gtuqt h ® jlWnGtuqst}h ®
¶
\
jy³á
;
13:
סlWn|{twvyx(rutuxqsz|{}q"hÖ
×j
;
14: end while
Abb. 5.3: Funktion SYMBFACFRONTTREE.
wird dann innerhalb der Fan-in- bzw. Fan-out-Methode wie ein Matrixelement behandelt. Durch
eine solche blockweise Berechnung von
erh¨oht sich die Cache-Effizienz des Faktorisierungs-
algorithmus erheblich.
Insbesondere in den tieferen Ebenen von
½
bestehen die Fronten aus einem oder nur weni-
gen Knoten (vgl. auch Abbildung 5.2), so daß eine blockweise Berechnung nicht m¨oglich ist. Mit
Hilfe des von Ashcraft und Grimes [7] entwickelten Verfahrens k¨onnen die kleineren Fronten zu
einer Front zusammengefaßt werden. Dies geschieht durch kontrolliertes Einf¨ugen von Nullele-
menten in
.¨
Ubertragen auf den Eliminationsprozeß entspricht dies dem Einf¨ugen zus¨atzlicher
Kanten zur Generierung gr¨oßerer Superknoten. Die neuen Fronten heißen deswegen auch rela-
xierte Superknoten. Da das Verfahren sehr technisch ist, verzichten wir an dieser Stelle auf eine
genauere Beschreibung.
5.1.3 Die numerische Faktorisierung nach der Multifrontal-Methode
Die Multifrontal-Methode wurde 1983 von Duff und Reid [35, 36] entwickelt. Die grundlegende
Idee der Methode besteht darin, die Faktorisierung einer d¨unn besetzten Matrix auf die teilweise
Faktorisierung mehrerer voll besetzter Matrizen zur¨uckzuf¨uhren. Durch diese Vorgehensweise
wird die Datenlokalit¨at unddamit die Cache-Effizienz des Faktorisierungsalgorithmussignifikant
erh¨oht. Dar¨uber hinaus k¨onnen Techniken zur L¨osung voll besetzter Systeme angewandt werden
(vgl. z.B. Duff [32]). Hierzu z¨ahlt insbesondere die Technik des Loop-Unrolling, die zu einer
besseren Auslastung der Prozessorregister f¨uhrt.
100
Kapitel 5. Symbolische und numerische Faktorisierung
DENSEFACTOR
h*j
01: Initialize
with the lower triangular part of
;
02: for
álWn¦Ü
to
ã
do
03:
ä
®s ®
lWnØå ä
®s ®
;
æç
è
ä
®Î
\
®
.
.
.
ä¤é ®
ê}ë
ì
lWn
\
í îï îñð
æç
è
ä
®Î
\
®
.
.
.
ä¤é ®
ê}ë
ì
;
04: for
òlWnÝáßÛÜ
to
ã
do
æç
è
ä
0 0
.
.
.
ä¤é 0
ê}ë
ì
lWn
æç
è
ä
0 0
.
.
.
ä¤é 0
ê}ë
ì
óä 0 ®
ð
æç
è
ä
0 ®
.
.
.
ä¤é ®
ê}ë
ì
;
05: end for
06: end for
Abb. 5.4: Funktion DENSEFACTOR.
Zur Beschreibung der Multifrontal-Methode betrachten wir noch einmal die in Abschnitt 2.1
vorgestellte Outer-Product-Variante des Cholesky-Verfahrens. Aus (2.3) l¨aßt sich leicht der in
Abbildung 5.4 dargestellte Fan-out-Algorithmus ableiten. Charakteristisch f¨ur den Fan-out-Al-
gorithmus ist, daß nach Faktorisierung der Spalte
±
(Zeile 03) die Eintr¨age der Spalte zur Aktua-
lisierung der nachfolgenden Spalten verwendet werden (Zeile 04). Bei der Multifrontal-Methode
werden die Aktualisierungen
fô.10 ®ñõ.10 ®Ôõõõ. é ® u
nicht sofort mit den Spalten
'ß#ö±Éö;G=">">">?=@
verrechnet, sondern zun¨achst in einer sogenannten Update-Matrix zwischengespeichert. Die Up-
date-Matrix ist auch im Falle einer d¨unnen Struktur von
immer voll besetzt.
Eng verbunden mit der Multifrontal-Methode ist – wie der Name schon andeutet – der Front-
baum. Zu jeder Front
Ë
des Baumes
½
geh¨ort eine Update-Matrix und eine sogenannte Frontal-
Matrix. Auch bei der Frontal-Matrix handelt es sich um eine voll besetzte untere Dreiecksmatrix.
Im folgenden bezeichnen wir die zu einer Front
Ë
geh¨orende Frontal-Matrix mit
÷Ôø
und die zu
Ë
geh¨orende Update-Matrix mit
ù$ø
. Die Frontal-Matrix
÷Ôø
setzt sich aus den Update-Matrizen
der S¨ohne
Ó
\
=">">">?= Ó
]
von
Ë
und aus Eintr¨agen der Matrix
zusammen. Die Update-Ma-
trix
ù*ø
enth¨alt alle Aktualisierungen, die aus der Faktorisierung von Spalten resultieren, die zu
einer Front im Teilbaum
½ø
geh¨oren (dies schließt die Front
Ë
ein).
Im folgenden zeigen wir, wie aus der Frontal-Matrix
÷Ôø
die Update-Matrix
ù*ø
entsteht. Dazu
sei angenommen, daß bez¨uglich der ersten zu
Ë
geh¨orenden Spalte
gilt
(KZ "/#ú%VmÉ
;=">9>">?=JÉóÒfÊ;='
\
=">">">y='û7
. Unser Ziel ist die Faktorisierung der Spalten
-=JÉ;=">">">-=JÉóÒfÊ;
.
5.1. Der sequentielle Fall
101
Wir konstruieren zun¨achst die Frontal-Matrix
÷ø¯#
üý
ý
ý
ý
ý
ý
ý
ý
ý
ý
þ
ÿ
ÿ
}Î
\
ÿ
}Î
\
Î
\
.
.
..
.
....
ÿ
Î
¶
\
ÿ
}Î
¶
\
Î
\
õõõ
ÿ
}Î
¶
\
}Î
¶
\
ÿ
0
u
ÿ
0
u Î
\
õõõ
ÿ
0
u }Î
¶
\
5
.
.
..
.
..
.
..
.
....
ÿ
0
ÿ
0
Î
\
õõõ
ÿ
0
}Î
¶
\
5 õõõ 5
>
Die ersten
Ò
Spalten entsprechen dabei den Spalten
§=4É&;=9>">">?=aÉ6Òmf ;
von
Ð
. Um
die Spalten faktorisieren zu k¨onnen, ist die Einbeziehung aller Aktualisierungen notwendig, die
aus der Faktorisierung vorangegangener Spalten resultieren. Wie Abbildung 5.4 zeigt, tr¨agt eine
vorangegangene Spalte
±
nur dann zur Aktualisierung einer Spalte
'Þ)ر
bei, wenn
.0 ®3#&5
gilt.
Nach Lemma 5.1 ist in diesem Fall der zu
±
geh¨orende Knoten ein Vorg¨anger des zu
'
geh¨orenden
Knotens im Eliminationsbaum
«
. Daher m¨ussen in
÷Ôø
nur solche Aktualisierungen einbezogen
werden, die aus der Faktorisierung von Spalten resultieren, die zu einer Front in einem Teilbaum
½
(`
,
'ô# ;=">">">y=b
geh¨oren. Nach Voraussetzung werden diese Aktualisierungen in den Update-
Matrizen
ù
!`
gespeichert. Deshalb k¨onnen wir nach Addition der Update-Matrizen
ù
=">">">y= ù
die ersten
Ò
Spalten von
÷ø
faktorisieren. Wir benuzten dazu einen Algorithmus ¨ahnlich dem in
Abbildung 5.4. Sei
÷ÔøÊ#
üý
ý
ý
ý
ý
ý
ý
ý
ý
ý
þ
.1
.1}Î
\
.1}Î
\
}Î
\
.
.
..
.
....
.Î
¶
\
.}Î
¶
\
}Î
\
õõõ .}Î
¶
\
}Î
¶
\
.0
u .0
u }Î
\
õõõ .10
u Î
¶
\ [
0
0
.
.
..
.
..
.
..
.
....
.0
.0
}Î
\
õõõ .10
Î
¶
\ [
0
0
õõõ
[
0
0
die resultierende Frontal-Matrix. Die ersten
Ò
Spalten beinhalten jetzt die von null verschiedenen
Eintr¨age der Spalten
-=}aÉÕ;=">">">y=ÑÉöÒÐf6;
des Cholesky-Faktors
. Die verbleibende Drei-
ecksmatrix enth¨alt alle Aktualisierungen, die aus der Faktorisierung von Spalten resultieren, die
zu einer Front in einem Teilbaum
½
(`
oder zur Front
Ë
geh¨oren. Die Dreiecksmatrix stellt daher
die Update-Matrix
ù*ø
dar.
Bei der Addition einer Update-Matrix
ù
!`
ist zu ber¨ucksichtigen, daß die Elemente aus
ù
!`
bez¨uglich
die Indizes
(=
9
mit
und
(=
P
( T!U¥_ `1XY
besitzen (
[
0
ist wieder
der letzte Knoten in
ÓÔ0
) und die Elemente aus
÷Ôø
die Indizes
(=
9
mit
und
(=
P
! 9£cÝ%V§7
. Es d¨urfen nur Elemente mit ”passenden“ Indizes addiert werden.
102
Kapitel 5. Symbolische und numerische Faktorisierung
Gilt beispielsweise
ù
(`£#
[
Å Å
[
Ä Å
[
È È
und
÷ÔøÊ#
ü
þ
Å Å
Á Å
Á Á
Ä Å
Ä Á
È È
=
so ergibt sich aus der Addition beider Matrizen die Matrix
ü
þ
Å ÅRÉ
[
Å Å
Á Å
Á Á
Ä ÅRÉ
[
Ä Å
Ä Á
È ÈÔÉ
[
È È
>
Diese erweiterte Addition (extended add) wird in der Literatur mit dem Symbol
bezeichnet.
Aus der symbolischen Faktorisierung folgt sofort
!K TVUW_`X
c%V7
(vgl.
Abbildung 5.3). Daher ist jedes Indexpaar
!=
9
aus
ù
(`
auch in
÷Ôø
enthalten. Die erweiterte
Addition ist also wohldefiniert.
Abbildung 5.5 zeigt den vollst¨andigen Multifrontal-Algorithmus. F¨ur eine detailierte Herlei-
tung sei auf das Tutorial von Liu [97] verwiesen. Der Frontbaum
½
wird wieder in Postorder-
Reihenfolge durchlaufen. Hierdurch ist garantiert, daß die zur Bildung von
÷Ôø
ben¨otigten Upda-
te-Matrizen
ù
(`
bekannt sind.
Wir wollen die Vorgehensweise an einem Beispiel veranschaulichen. Dazu bestrachten wir
noch einmal den in Abbildung 5.2 dargestellten Frontbaum. Da der Baum in Postorder-Reihen-
folge durchlaufen wird, werden zuerst die Fronten
%(D
\
7
und
%(D
\
Ä"7
bearbeitet. Die erste (und
einzige) zu
%(D
\
7
bzw.
%(D
\
Ä"7
geh¨orende Spalte ist die Spalte eins bzw. die Spalte zwei. Es gilt
!
\
# %
!
=
"
=
#
87
und
( Ã ·# %
!
=¾8=
"
=";
$#
=
%
G587
. Beide Fronten sind Bl¨atter des
Baumes. Die Frontal-Matrizen
÷
'&
B
(*)
und
÷
'&
B
(+,)
k¨onnen daher sofort faktorisiert werden. Man
erh¨alt die Spalten eins und zwei des Cholesky-Faktors sowie die Update-Matrizen
ù
&
B
(-)
Z#
ü
þ
[
Å Å
[Â
Å
[Â
Â
[
Æ Å
[
Æ
 [
Æ Æ
und
ù
&
B
(+.)
ß#
üý
ý
ý
ý
ý
þ
[
Ì
Å Å
[
Ì
È Å
[
Ì
È È
[
Ì
Â
Å
[
Ì
Â
È
[
Ì
Â
Â
[
Ì
\
Æ Å
[
Ì
\
Æ È
[
Ì
\
Æ
Â
[
Ì
\
Æ
\
Æ
[
Ì
Ã
0/
Å
[
Ì
Ã
0/
È
[
Ì
Ã
0/
Â
[
Ì
Ã
0/
\
Æ
[
Ì
Ã
0/
Ã
0/
>
Als n¨achstes bearbeitet der Algorithmus die Front
%(D
Â
7
. Zu dieser Front geh¨ort die Spalte drei.
Es gilt
! Å#Õ%V¾=
"
=
#
=9;
$#
=
1%
G57
. Nach Initialisierung der Frontal-Matrix
÷
'&
B
02.)
werden die
Update-Matrizen
ù
&
B
)
und
ù
&
B
+ )
aufaddiert. Dann gilt:
÷
&
B
02.)
ß#
üý
ý
ý
ý
ý
ý
ý
þ
ÿ
Å ÅRÉ
[
Å ÅÉ
[
Ì
Å Å
ÿ
È ÅRÉ
[
Ì
È Å
[
Ì
È È
ÿ|Â
ÅRÉ
[Â
ÅÉ
[
Ì
Â
Å
[
Ì
Â
È
[§Â
Â
É
[
Ì
Â
Â
ÿ
Æ ÅRÉ
[
Æ Å 5
[
Æ
 [
Æ Æ
ÿ\
Æ ÅRÉ
[
Ì
\
Æ Å
[
Ì
\
Æ È
[
Ì
\
Æ
Â
5
[
Ì
\
Æ
\
Æ
ÿ
Ã
0/
ÅRÉ
[
Ì
Ã
0/
Å
[
Ì
Ã
0/
È
[
Ì
Ã
0/
Â
5
[
Ì
Ã
0/
\
Æ
[
Ì
Ã
0/
Ã
0/
>
5.1. Der sequentielle Fall
103
MULTIFRONAL
hÖ¼j
01:
×ÏlWnpoqsrwtwv-x(rwtuxqsz|{}qhÖ¼j
;
02: while
× ~n:qwxGxthÖj
do
03: Let
Ù$nÏÚ ×Ú
and let
k
be the first vertex in
×
.
04:
ClWnhk|j
;
05: Let
ÞÛÜ
}}}-
ÞÛÙJpÜ
ò
\ }}}§
òû
be the subscripts in
Gtuqt h j
.
06: Set up frontal matrix
3
øn
æç
ç
ç
ç
ç
ç
ç
ç
ç
ç
ç
è
4
4
}Î
\
4
Î
\
}Î
\
.
.
..
.
....
4
}Î
¶
\
4
}Î
¶
\
}Î
\
ð}ð}ð
4
Î
¶
\
}Î
¶
\
4
0
Y
4
0
u }Î
\
ð}ð}ð
4
0
u }Î
¶
\
5
.
.
..
.
..
.
..
.
....
4
0
s
4
0
}Î
\
ð}ð}ð
4
0
}Î
¶
\
5
ð}ð}ð
5
ê}ë
ë
ë
ë
ë
ë
ë
ë
ë
ë
ë
ì
where the first
Ù
columns correspond to columns
}}}§
ôÛÙpÜ
of
/$
.
07: Let
à
\}}}-
à
]
denote the children of
×
in
Ö
.
08: for each front
à0
do
09:
3
ølWn
3
ø
7698:
(`
.
10: Perform
Ù
steps of elimination on
3
ø
to obtain the columns
ÞÛÜ
}}}-
ÞÛÙZ³Ü
of
and the update matrix
8
ø
.
11:
סlWnâ|{Gtwvyx(rutuxqz|{}q9hÖ
×ôj
;
12: end while
Abb. 5.5: Funktion MULTIFRONTAL.
Die Frontal-Matrix kann jetzt faktorisiert werden. Man erh¨alt so die dritte Spalte von
und die
Update-Matrix
ù
&
B
2)
. Anschließend f¨ahrt der Algorithmus mit der Front
%(DVÅ97
fort.
Um die Vorteile der Multifrontal-Methode voll ausnutzen zu k¨onnen, ist eine sorgf¨alltige Im-
plementierung notwendig. Dabei muß insbesondere auf die folgenden Punkte geachtet werden:
Verwaltung der Update-Matrizen Da der Algorithmus den Frontbaum in Postorder-Reihen-
folge durchl¨auft, k¨onnen die bereits generierten, aber noch nicht mit einer Frontal-Ma-
trix verrechneten Update-Matrizen in einem Stack gespeichert werden. Der Stack w¨achst
dynamisch mit der Gr¨oße der abgelegten Update-Matrizen. Der hierf¨ur bereitzustellende
Speicherplatz stellt einen zus¨atzlichen Overhead dar. Mit Hilfe des von Liu [92] vorge-
stellten Algorithmus kann die maximale Ausdehnung des Stacks minimiert werden. Dazu
werden die Teilb¨aume
½
;
=">">">£=}½
<
unter einer Front
Ë
in aufsteigender Reihenfolge nach
der Gr¨oße ihrer Updaten-Matrizen
ù
;
}=">">">?=Yù
angeordnet. In dem Postorder-Durchlauf
werden dann diejenigen B¨aume zuerst abgearbeitet, die eine kleine Update-Matrix liefern.
104
Kapitel 5. Symbolische und numerische Faktorisierung
Erweiterte Addition Die Addition der Update-Matrizen
ù
;
}=">">">?=Yù
zu
÷Ôø
stellt einen nu-
merischen Overhead dar. Es entstehen zus¨atzliche Operationen, die bei Verwendung eines
Fan-in- oder eines Fan-out-Verfahrens vermeidbar w¨aren. Zur Beschleunigung der erwei-
terten Addition benutzt man lokale Indizes (vgl. auch Schreiber [127]). Dabei erhalten die
Elemente einer Update-Matrix vor der eigentlichen Addition die passenden Indizes relativ
zur Frontal-Matrix. Beipielsweise erh¨alt das Element
[
Æ Å
aus
ù
&
B
)
die Indizes
>=
=";
.
Faktorisierung der Frontal-Matrix In vielen F¨allen paßt die gesamte Frontal-Matrix in den
Prozessor-Cache, so daß die Faktorisierung der ersten
Ò
Spalten sehr effizient durchgef¨uhrt
werden kann. Hierin liegt der eigentliche Vorteil der Multifrontal-Methode. Die Effizi-
enz l¨aßt sich durch Anwendung der Loop-Unrolling-Technik noch einmal signifikant stei-
gern. Dazu wird
÷Ôø
in quadratische Bl¨ocke partitioniert. Die Bl¨ocke sind so klein gew¨ahlt,
daß die Operationen auf ihnen ausprogrammiert werden k¨onnen. Abbildung 5.6 zeigt die
Blockversion des Algorithmus DENSEFACTOR aus Abbildung 5.4. Die Variablen
?
=
@
lau-
fen dabei ¨uber Zeilen und Spalten bestehend aus einzelnen Bl¨ocken. Besitzen die Bl¨ocke
die Gr¨oße
A
m¿
BA
, so gilt
C
#¡@
EDFA
(wir nehmen der Einfachheit halber an, daß
@
ohne Rest
durch
A
teilbar ist). Die Funktion FACTOR (Zeile 03) berechnet dann den Cholesky-Faktor
einer
A
¿
GA
-Matrix. Wir weisen nochmals darauf hin, daß die Funktion FACTOR sowie alle
anderen Operationen auf den
A
L¿
HA
Bl¨ocken ohne zus¨atzliche Schleifen auskommen.
Die Loop-Unrolling-Technik entfaltet ihre volle Wirkung nur dann, wenn die Front
Ë
eine gewis-
se Anzahl von Knoten enth¨alt (
ÒL)&;
). Mit Hilfe des von Ashcraft und Grimes [7] vorgestellten
Verfahrens k¨onnen wieder kleinere Fronten zu relaxierten Superknoten zusammengefaßt wer-
den. Hierdurch entstehen zwar zus¨atzliche Nullelemente in den Frontal- und Update-Matrizen,
es erh¨oht sich jedoch auch die Cache- und Registereffizienz des Faktorisierungsalgorithmus.
5.1.4 Experimentelle Ergebnisse
Wir haben ein sequentielles Programm zur Faktorisierung d¨unn besetzter, positiv definiter Matri-
zen entwickelt, das als Ausgangspunkt der im n¨achsten Abschnitt beschriebenen Parallelisierung
dient. Das Programm tr¨agt den Namen space (SPArse Cholesky Elimination) und stellt eine um
die symbolische und numerische Faktorisierung erweiterte Version des Programms multipord
dar. Die symbolische Faktorisierung orientiert sich an der Funktion SYMBFACFRONTTREE, die
numerische an der Funktion MULTIFRONTAL. Die folgende Liste faßt die wichtigsten Merkmale
unseres Faktorisierungsalgorithmus zusammen.
I
Vor Beginn der symbolischen und numerischen Faktorisierung wird der im Rahmen des
Ordering-Prozesses konstruierte Frontbaum
½
wie folgt modifiziert:
–In einem Postorder-Durchlauf werden die Fronten an den Bl¨attern von
½
mit den
dar¨uberliegenden Fronten zu neuen Blatt-Fronten verschmolzen. Der Prozeß stoppt,
5.1. Der sequentielle Fall
105
DENSEBLOCKFACTOR
hñj
01: Initialize
with the lower triangular part of
;
02: for
J
lWn¦Ü
to
K
do
03:
'L
L
ÐlWn
FACTOR
h
'L
L
j
;
æç
è
ML
Î
\
L
.
.
.
ON
L
ê}ë
ì
lWn
¶
\
L
L
ð
æç
è
'L
Î
\
L
.
.
.
'N
L
ê}ë
ì
;
04: for
P
ÐlWn
QJ
mÛÜ
to
K
do
æç
è
OR
R
.
.
.
ON
R
ê}ë
ì
lWn
æç
è
SR
R
.
.
.
ON
R
ê}ë
ì
ó
R
L
ð
æç
è
OR
L
.
.
.
ON
L
ê}ë
ì
;
05: end for
06: end for
Abb. 5.6: Funktion DENSEBLOCKFACTOR.
sobald eine neue Blatt-Front mehr als 200 zus¨atzliche Nulleintr¨age enth¨alt.
–In einem zweiten Postorder-Durchlauf werden die Teilb¨aume
½
<
=">9>">?=}½
unter ei-
ner Front
Ë
aufsteigend nach der Gr¨oße ihrer Update-Matrizen angeordnet.
I
Zur Faktorisierung der Frontal-Matrizen verwenden wir einen numerischen Kern, der auf
Bl¨ocken der Gr¨oße
!
¿
T!
arbeitet. Gr¨oßere Kerne f¨uhren nur noch zu marginalen Effizi-
enzsteigerungen. Sie erh¨ohen den Programmieraufwand jedoch erheblich.
Um die Leistungsf¨ahigkeit unseres sequentiellen Faktorisierungsalgorithmus unter Beweis zu
stellen, haben wir space mit einem Programm aus der SPOOLES-Bibliothek verglichen. Das Pro-
gramm basiert auf der Fan-in-Methode und benutzt wie space einen numerischen Kern der Gr¨oße
!
·¿
T!
. Eingabe des Programms ist – abgesehen von der Matrix
– der von space konstruierte
Frontbaum. Damit sind die Startbedingungen f¨ur beide Programme gleich.
Tabelle 5.1 zeigtdie Laufzeiten der symbolischen und numerischenFaktorisierung f¨ur 15 Ma-
trizen unserer Benchmark-Suite. Wir haben diejenigen Matrizen ausgew¨ahlt, deren Faktorisie-
rung die meisten Operationen verursacht. Alle Zeitangaben wurden auf einer SUN Ultra mit
296 MHz UltraSPARC-II Prozessor und zwei GByte Hauptspeicher ermittelt. In den Spalten 3
und 5 sind zus¨atzlich die jeweils erzielten Megaflops angegeben. Ihre Berechnung basiert auf
der Zahl der zur Faktorisierung ben¨otigten Multiplikations- und Additionsoperationen. Diese
Zahl ist durch das verwendete Ordering eindeutig bestimmt.
Die von der Multifrontal-Methode
zus¨atzlich durchgef¨uhrten Additionsoperationen (extended add) bleiben also unber¨ucksichtigt.
U
Die Zahlen sind in der letzten Spalte von Tabelle 4.4 angegeben.
106
Kapitel 5. Symbolische und numerische Faktorisierung
SPOOLES-2.2 space
Matrix symb. Fakt. num. Fakt. symb. Fakt. num. Fakt.
BCSSTK30 2.34 8.50 ( 84.57) 1.31 6.64 (106.95)
BCSSTK31 1.35 13.95 ( 89.09) 1.01 10.83 (113.61)
BCSSTk32 2.38 9.75 ( 82.61) 1.43 7.61 (104.01)
MAT02HBF 2.66 12.92 ( 86.18) 1.56 10.19 (107.02)
MAT03HBF 4.36 29.04 ( 89.05) 2.58 22.74 (111.85)
BRACK2 1.11 19.40 ( 86.70) 1.12 15.60 (106.28)
3DTUBE 3.84 159.44 ( 77.41) 3.40 131.09 ( 94.08)
CFD1 2.42 96.56 ( 92.05) 2.86 87.09 (101.66)
CFD2 4.19 333.78 ( 78.64) 5.37 289.59 ( 90.49)
CYL3 2.65 616.94 ( 64.85) 5.14 494.06 ( 81.20)
GEARBOX 11.52 207.41 ( 84.60) 7.97 181.54 ( 96.35)
NASASRB 3.07 29.32 ( 90.37) 2.27 23.30 (113.09)
WAVE 3.59 1638.23 ( 59.66) 8.04 1179.09 ( 82.80)
PWTK 15.09 294.40 ( 77.33) 10.14 279.81 ( 81.10)
HERMES 11.57 4158.60 ( 60.41) 19.64 3273.68 ( 76.68)
Tab. 5.1: Vergleich der Laufzeiten zur Durchf¨uhrung der symbolischen und numerischen Faktorisierung
(in Sek.). In Klammern sind zus¨atzlich die erzielten Megaflops angegeben.
Hierdurch ist sichergestellt, daß sich im Falle von space der numerische Overhead nicht positiv
auf die erzielten Megaflops auswirkt.
Am Beispiel der Matrix CFD1 wollen wir den Einfluß des numerischen Kerns auf die Lauf-
zeit des Faktorisierungsalgorithmus verdeutlichen: Bei Verwendung eines einfachen
;$¿ ;
-Kerns
werden zur Faktorisierung von CFD1 ungef¨ahr 232 Sekunden ben¨otigt. Die Laufzeit reduziert
sich auf 109 Sekunden im Falle eines
%
ñ¿
V%
-Kerns. Bei Verwendung eines
!
Þ¿
W!
-Kerns ergibt sich
eine weitere – diesmal jedoch nicht mehr so starke – Beschleunigung auf 87 Sekunden.
5.2 Der parallele Fall
Interessanterweise besitzt die Faktorisierung d¨unn besetzter Matrizen ein h¨oheres Parallelisie-
rungspotential als die voll besetzter. Trotzdem gab es bis Anfang der neunziger Jahre keinen
parallelen Algorithmus, der die von großen, verteilten Systemen bereitgestellte Rechenleistung
effektiv nutzen konnte. Schon im sequentiellen Fall ist das Design eines Faktorisierungalgorith-
mus sehr viel schwieriger, wenn die Matrizen eine d¨unne Struktur besitzen. Da zur Paralleli-
sierung dieser komplexen Algorithmen relativ einfache Techniken angewandt wurden, entstand
ein gewaltiger Kommunikations-Overhead, der eine schlechte Skalierbarkeit der parallelen Ver-
fahren zur Folge hatte (vgl. Schreiber [128]). Die Skalierbarkeit eines Algorithmus beschreibt
5.2. Der parallele Fall
107
die F¨ahigkeit, eine vorgegebene Effizienz bei gleichzeitiger Erh¨ohung der Prozessorzahl und der
Problemgr¨oße zu halten. Die Isoeffizienzfunktion gibt dabei an, wie stark die Problemgr¨oße in
Abh¨angigkeit von der Prozessorzahl erh¨oht werden muß (vgl. Kumar et al. [84]).
Das h¨ohere Parallelisierungspotential bei der Zerlegung d¨unn besetzter Matrizen resultiert
aus dem Umstand, daß die Spalten des Cholesky-Faktors nicht zwangsl¨aufig nacheinander be-
rechnet werden m¨ussen. Vielmehr erlaubt die durch den Eliminationsbaum beschriebene partiel-
le Ordnung, Spalten in unterschiedlichen Teilb¨aumen gleichzeitig zu faktorisieren. In den ersten
parallelen Algorithmen wurden die Knoten des Eliminationsbaumes mit Hilfe eines sehr einfa-
chen Wrap-Mapping-Verfahrens [50] auf die Prozessoren abgebildet. Das Wrap-Mapping-Ver-
fahren arbeitet wie folgt: Zun¨achst werden die Blatt-Knoten in zyklischer Form auf die Prozes-
soren verteilt. Die Knoten werden dann aus dem Eliminationsbaum entfernt, und das Verfahren
f¨ahrt mit den neuen Blatt-Knoten fort. Auf diese Weise werden die Knoten des Eliminations-
baumes ebenenweise von den Bl¨attern bis zur Wurzel auf die Prozessoren verteilt. Das Wrap-
Mapping-Verfahren hat zwei Vorteile: Zum einen nutzt es das durch den Eliminationsbaum be-
schriebene Parallelisierungspotential voll aus, zum anderen garantiert es eine gleichm¨aßige Ver-
teilung der Rechenlast.
Trotzdem ist diese Verteilung der Spalten nicht praktikabel wie das folgende Beispiel zeigt.
Dazu sei angenommen, daß die Nichtnullstruktur der Matrix
ein
@³¿ @
-Gitter induziert. Dann
sind zur Berechnung des Cholesky-Faktors
¨·@
Å
Multiplikations- und Additionsoperationen
notwendig. Der Cholesky-Faktor enth¨alt dabei
¨·@
Ã
YX
ª
Z
J@?
von null verschiedene Elemente (vgl.
Kapitel 3). Ein paralleler Fan-in- [6] oder Fan-out-Algorithmus [50], der zur Verteilung der Spal-
ten das Wrap-Mapping-Verfahren benutzt, produziert auf
[
Prozessoren ein Kommunikationsvo-
lumen von
¨4K@
Ã
[
X
ª
Z
J@?
[55]. Man beachte, daß das Kommunikationsvolumen, also die Summe
aller verschickten Daten, lediglich eine untere Schranke f¨ur den Kommunikations-Overheaddar-
stellt. Damit steht der Kommunikations-Overhead in keinem akzeptablen Verh¨altnis zur Anzahl
der durchzuf¨uhrenden arithmetischen Operationen.
Historisch gesehen wurden diese ersten parallelen Algorithmen in zwei Richtungen weiter-
entwickelt. Zum einen konnte das Kommunikationsvolumen durch geschicktere Mapping-Stra-
tegien reduziert werden. In dem von Ashcraft et al. [5] sowie Geist und Ng [46] vorgeschlage-
nen Domain-Mapping-Verfahrenwerden ganze Teilb¨aume exklusiveinem Prozessor zugeordnet.
Die restlichen Knoten in den obersten Ebenen des Eliminationsbaumes werden wie beim Wrap-
Mapping-Verfahren ebenenweise auf die Prozessoren verteilt. Ein Fan-out-Algorithmus, der die-
ses Mapping-Verfahren benutzt, produziert ein Kommunikationsvolumen von
¨4K@
Ã
[
X
ª
ZE[
§
(vgl.
Hulbert und Zmijewski [76]). Bei dem von George et al. [55] vorgeschlagenen Subtree-to-Sub-
cube-Mapping werden auch die restlichen Knoten nicht mehr zyklisch auf alle Prozessoren ver-
teilt, sondern auf einzelne Prozessorgruppen (vgl. auch Abschnitt 5.2.1). Mit Hilfe des Subtree-
to-Subcube-Mappings verringert sich das Kommunikationsvolumen eines Fan-in- oder Fan-out-
Algorithmus auf
¨4K@
Ã
[
§
[55]. Auch bei dem von Pothen und Sun [114] vorgeschlagenen Pro-
108
Kapitel 5. Symbolische und numerische Faktorisierung
portinal-Mapping-Verfahrenwerden ganze Teilb¨aume rekursiv auf Prozessorgruppen abgebildet.
Die Anzahl der Prozessoren in einer Gruppe richtet sich dabei nach der Gr¨oße des Teilbaumes.
Nach George et al. [55] ist
¨·K@
Ã
[
§
eine untere Schranke f¨ur das Kommunikationsvolumen
eines jeden parallelen Faktorisierungsalgorithmus, der auf einer spaltenweisen Verteilung von
beruht. In einem zweiten Ansatz wurde daher die d¨unn besetzte Matrix
nicht nur spalten-,
sondern auch zeilenweise auf die Prozessoren verteilt. Aus der Literatur sind mehrere Algorith-
men bekannt, die auf einer solchen zweidimensionalen Mapping-Strategie basieren. Beispiel-
haft seien hier die Arbeiten von Gilbert und Schreiber [60], Rothberg [124], Rothberg und
Gupta [126] sowie Venugopal und Naik [140] genannt. Der beste Algorithmus reduziert das
Kommunikationsvolumen auf
¨·@
Ã
]\
[
X
ª
Z^[
§
[126]. In [2] stellt Ashcraft einen Fan-both-Algo-
rithmus vor (ein Zwitter aus Fan-in- und Fan-out-Verfahren), der ein Kommunikationsvolumen
von
¨·K@
Ã
]\
[
X
ª
Z
J@£
erzeugt.
In den Arbeiten von Gupta et al. [63, 66] werden beide Ans¨atze miteinander kombiniert.
Ihr paralleler Algorithmus beruht auf der Multifrontal-Methode. Die Knoten des Eliminations-
baumes werden mit Hilfe eines Subcube-to-Subtree-Mappings auf die Prozessoren verteilt. Aus
dem Mapping wird dann eine zeilen- und spaltenweise Verteilung der Matrixelemente abgeleitet.
Hierdurch reduziert sich nicht nur das Kommunikationsvolumen, sondern auch der Kommunika-
tions-Overhead auf
¨·@
Ã
\
[
§
[63, 66].
Dieser Abschnitt ist wie folgt aufgebaut. Zun¨achst stellen wir in 5.2.1 unseren Mapping-
Algorithmus vor. Der Algorithmus basiert auf dem Subtree-to-Subcube-Mapping von George
et al. [55]. Anschließend beschreiben wir in 5.2.2 und 5.2.3 Algorithmen zur parallelen sym-
bolischen und parallelen numerischen Faktorisierung. Die parallele numerische Faktorisierung
basiert auf dem von Gupta et al. [63, 66] entwickelten zweidimensionalen Multifrontal-Algo-
rithmus. Schließlich pr¨asentieren wir in 5.2.4 einige experimentelle Ergebnisse. Im Mittelpunkt
steht dabei der Einfluß des Orderings auf die parallele numerische Faktorisierung.
5.2.1 Mapping des Frontbaumes
Urspr¨unglich wurde das Subtree-to-Subcube-Mapping entwickelt, um die Knoten eines
@â¿:@
-
Gitters auf die Prozessoren eines
-dimensionalen Hypercubes zu verteilen. Der
-dimensionale
Hypercube ist ein Graph bestehend aus
%
û
Knoten und
%
û
¶
\
Kanten. Jeder Knoten des Graphen
entspricht einem Prozessor und wirddurch eine bin¨areZeichenkette der L¨ange
dargestellt. Zwei
Knoten sind genau dann durch eine Kante verbunden, wenn sich ihre bin¨aren Zeichenketten in
genau einem Bit unterscheiden. Eine Kante heißt Kante der Dimension
_
,
5
a`b_
p²
c
, falls sie
zwei Knoten
[
=D
P
%!58=";G7
û
verbindet, die sich im
_
-ten Bit unterscheiden.
Werden die Knoten des Gitters in der durch Georges Nested-Dissection-Ordering beschriebe-
nen Reihenfolge eliminiert, so ergibt sich ein balancierter Frontbaum. Aufgrund der rekursiven
Struktur des Hypercubes (siehe [87], Seite 308ff) k¨onnen die Teilb¨aume des Frontbaumes sehr
5.2. Der parallele Fall
109
1
1
v
4
3
v5
22
v
25
7
v
15
2
v
5
17
v
23
19
v21
26
v
31
13
v33
31
v35
34
v
29
10
v43
11
v45
14
v47
32
v
8
3
v10
6
v12
24
v
27
14
v
9
2
v
9
8
v
7
16
v
6
30
v
13
29
v
28
20
v
28
42
v
27
41
v
26
40
v
38
15
v40
33
v42
36
v
24
21
v
22
19
v
23
20
v
36
12
v
30
18
v
37
17
v
44
16
v
48
11
v
49
4
v
47
18
v
25
46
v
32
45
v
39
44
v
46
43
v
34
39
v
41
38
v
48
37
v
49
35
v
groupID: 1
Teilcube: {00, 01, 10, 11}
groupID: 3
Teilcube: {10, 11}
groupID: 2
Teilcube: {00, 01}
groupID: 4
Prozessor: 00 groupID: 5
Prozessor: 01 groupID: 6
Prozessor: 10 groupID: 7
Prozessor: 11
Abb. 5.7: Subtree-to-Subcube-Mapping des Frontbaumes aus Abbildung 5.2.
einfach einzelnen Teilcubes zugeordnet werden. Abbildung 5.7 illustriert das Subtree-to-Subcu-
be-Mapping am Beispiel des
¾ó¿¾
-Gitters und des zweidimensionalen Hypercubes. Der Teil-
baum
½
&
B
,ded
B
,dgf
B
,dgh.)
ist dem Teilcube
%!5G5=}5;G7
zugeordnet. Der Baum teilt sich auf in
½
&
B
,d
B
-i
B
(kj.)
und
½
&
B
0fel
B
0fm
B
-heh.)
. Die B¨aume werden auf die Teilcubes
%!5587
bzw.
%!5;V7
abgebildet. Alle Fronten
in den grau unterlegten Teilb¨aumen sind so exklusiv einem Prozessor zugeordnet. Die Fronten
%(D!ÃuÃ=DVÃuÅ9=DVÃ Á7
und
%(D!ÃuÇ=DVÃwÈ"=DVÃ
Â
7
werden von den zwei Prozessoren
55
und
5;
bzw.
;5
und
;;
bearbeitet und die Wurzel-Front von allen vier Prozessoren gemeinsam.
Im allgemeinen Fall ist der Frontbaum
½
weder bin¨ar noch balanciert. Um die Prozesso-
ren eines
-dimensionalen Hypercubes gleichm¨aßig auszulasten, m¨ussen daher kompliziertere
Algorithmen wie z.B. das Domain-Mapping- [5, 46] oder das Proportional-Mapping-Verfah-
ren [114] angewandt werden. In unserem parallelen Algorithmus benutzen wir eine einfache
Erweiterung des Subtree-to-Subcube-Mappings (vgl. auch Gupta et al. [66]). Die Idee besteht
darin, den Frontbaum
½
von ”oben nach unten“ zu durchsuchen bis
½
in zwei Gruppen von
Teilb¨aumen aufgeteilt werden kann, deren Faktorisierung in etwa den gleichen Aufwand erfor-
dert. Hat man eine solche Aufteilung gefunden, so m¨ussen die zwei Teilbaumgruppen einem
>
ßf:;(
-dimensionalen Hypercube zugeordnet werden. Man erh¨alt so einen rekursiven Mapping-
Algorithmus wie er in Abbildung 5.8 beschrieben ist.
Eingabe des Algorithmus ist eine Menge
n
von Teilb¨aumen, die einem Hypercube der Di-
mension
_
zugeordnet werden soll. Genaugenommen besteht das Ziel des Mapping-Algorithmus
nicht in einer Verteilung der Teilb¨aume, sondern in einer Verteilung der in den Teilb¨aumen ent-
110
Kapitel 5. Symbolische und numerische Faktorisierung
SPLIT
ogprq,stq0u$v,wyx;z|{-}~
01: if
s
then
02:
v,wT
;
03: while
v.,w
do
04:
pp
;
05:
pr
;
w$ztogpr(~'T
;
06:
p
;
w$ztogp~'T
;
07: while
p
do
08: Find
;¡£¢7p
with
w$zt]og;¡^~
maximal. Set
pTp ¤H¥ ;¡O¦
;
09: if
w$zt]ogp ~Ow$ztogp ~
then
10:
pTp §9¥ ¦
;
w$zogp ~OTw$ztogp ~Y¨£w$zog ¡~
;
11: else
12:
pTp §9¥ ¦
;
w$zogp~OTw$ztogp1~Y¨£w$zog;¡^~
;
13: end if
14: end while
15:
v.,w©ªYow$ztogpr(~q0w$zt]ogp~0~0«©¬ow$ztogpr(~q0w$zt]ogp~0~
;
16: if
v.,w
then
17: Find
;¡£¢7p
with
w$ztog;¡E~
maximal. Set
p Tp ¤a¥ ;¡S¦
;
18:
®v,wyªF0u$v,wyx;z¯og°±~M²u$v,wyx|z|{*}
;
19: Let
³Oq´´´¯q ³µ
denote the children of
°
.
20:
p p §9¥ t¶· q´´´¯q,t¶¸0¦
;
21: end if
22: end while
23: SPLIT
ogp¹1q,s ¤º q.»¼u$v,wyx;z|{-}~
;
24: SPLIT
ogpq,s ¤º q.»¼u$v,wyx;z|{-}½¨ º~
;
25: else
26: for each front tree
;¡
in
p
do
27: for each front
³
in
;¡
do
28:
®v,wyªF0u$v,wyx;z¯o¾³~'Tu$v.wyx;z|{-}
;
29: end if
Abb. 5.8: Funktion SPLIT.
5.2. Der parallele Fall
111
haltenen Fronten auf die Prozessoren. Dazu erhalten die Fronten eine sogenannte Gruppenidenti-
fikationsnummer, kurz
¿ÀÁÂ<Ã<Ä,Å
. Abbildung 5.7 zeigt die Verteilung der Identifikationsnummern
am Beispiel des
ÆÈÇÆ
-Gitters und des zweidimensionalen Hypercubes. Initial gilt
É ÊÌËÍ9Î
,
Ï
ÊÑÐ
und
¿ÒÀ(ÁÂ<ÃÓÄ,ÅÔÊcÕ
.
Der Algorithmus arbeitet wie folgt: Gilt
ÏÖØ×
, so wird mittels einer einfachen Bin-Packing-
Heuristik versucht, die in
É
enthaltenen Teilb¨aume in zwei m¨oglichst gleich schwere Mengen
É1Ù É
aufzuteilen (Zeilen 04–14). Um das Gewicht der Mengen
ÉÙ É
genauer zu spezi-
fizieren, ben¨otigen wir einige zus¨atzliche Definitionen: Sei wieder
Ú
eine Front mit
Û Ú½Û'ÊÜ
.
Weiter sei
Ý
der erste Knoten in
Ú
. Es gelte
Þ:ß>ÝàÊá
. Dann bezeichnet
ÁÃ<â$ß>ÚWà
die Anzahl der
durchzuf¨uhrenden Multiplikations- und Additionsoperationen, um aus der Frontal-Matrix
ã¡
die
Update-Matrix
ä¡
und die Spalten
áÙáæåÔÕ Ùççç^Ù áæåèܱéØÕ
des Cholesky-Faktors
ê
zu erhalten
(vgl. Funktion MULTIFRONTAL aus Abbildung 5.5). Der Wert
ÁÒÃ<â$ß>ÚWà
kann wieder mit Hilfe
der Formeln (2.6) und (2.7) berechnet werden. Dazu muß bei der Berechnung des Orderings nur
ë<ì
¿íî,ï
·
ßÝà
gespeichert werden. Wir erweitern die Funktion
ÁÃ<â
auf Frontb¨aume und auf Mengen
von Frontb¨aumen. Dazu setzen wir
ÁÃ<â$ß¾ÍVàÊ ð
¡
ist Front in
ñ
ÁÃ<â$ß¾Úæà
und
ÁÃÓâ$ß>ÉòàóÊ ð
ñEôõ
ÁÃ<âß¾Í7à ç
Zwei Mengen
É1Ù É
von Frontb¨aumen heißen dann gleich schwer oder balanciert, wenn gilt
ö÷ø
ß>ÁÃÓâ$ß>É àÙÁÃÓâ$ß>É à(à
ö9ùú
ß>ÁÒÃ<â$ßÉ àÙÁÒÃ<âyß>É à(àWûýü
Ù
×Vþ
ü
þ
Õç
Gelingt die Aufteilung in zwei balancierte Mengen nicht, so wird der schwerste Teilbaum
Í¡
aus
É
extrahiert und durch die Teilb¨aume
Ͷ;·ÙçççE٠Ͷ¸
unter der Wurzel
Ú
von
Í¡
ersetzt.
Die Wurzel
Ú
erh¨alt dabei die aktuelle
¿ÀÁÂ<Ã<Ä,Å
. Diese wird in
ÿÀ(Á
ø
¿À(ÁÂÓÃ ß¾Úæà
gespeichert (Zei-
len 16–21). Anschließend wird der gesamte Prozeß mit der erweiterten Menge
É
wiederholt.
Nach erfolgreicher Aufspaltung m¨ussen die Teilb¨aume in den Mengen
É
und
É
einem
Hypercube der Dimension
Ï
éÈÕ
zugeordnet werden. Dies geschieht durch die rekursiven Aufrufe
in den Zeilen 23 und 24.
Gilt
Ï
Ê
×
, so ist ein weiteres Aufspalten der Menge
É
nicht erforderlich. Alle Fronten, die
zu einem Teilbaum in
É
geh¨oren, k¨onnen exklusiv einem Prozessor zugeordnet werden. Dies
geschieht wieder ¨uber die aktuelle
¿À(ÁÒÂ<Ã<Ä,Å
(Zeilen 26–28).
Nach Termination der Funktion SPLIT ist jeder Front eine Gruppenidentifikationsnummer
zugeordnet. Anhand dieser Nummer kann ein Prozessor entscheiden, ob er an der Faktorisierung
der Front beteiligt ist oder nicht. Bezeichne
ö
Ã<À(Á
Ä,Å
Ë
×
ÙçççÙ
é ÕÒÎ
die Nummer eines
Prozessors im Dezimalsystem. Jeder Prozessor berechnet
ö
¿À(ÁÂÓÃ<Ä,Å
Ê
å
ö
Ã<ÀÁ
]Ä,Å
. Der
Prozessor
ö
Ã<À(Á
Ä,Å
ist dann an der Faktorisierung einer Front
Ú
beteiligt, wenn gilt
ÿÀ(Á
ø
¿À(ÁÒÂ<Ã ß¾Úæà
²Ë
ö
¿ÀÁÂ<Ã<Ä,Å Ù
ö
¿À(ÁÒÂ<Ã<Ä,Å
;Ù
ö
¿ÀÁÂ<Ã<Ä,Å
;Ùççç^Ù ÕÒÎ ç
112
Kapitel 5. Symbolische und numerische Faktorisierung
Beispielsweise ist in Abbildung 5.7 der Prozessor
Õ
×
an der Faktorisierung einer Front
Ú
betei-
ligt, wenn gilt
ÿÀ(Á
ø
¿À(ÁÂÓÃ ß¾Úæà
²Ë
Ù
Ù ÕÒÎ
.
Je kleiner die Gruppenidentifikationsnummer ist, desto mehr Prozessoren sind an der Faktori-
sierung einer Front beteiligt. Um den hierbei entstehenden Kommunikations-Overheadm¨oglichst
gering zu halten, sollte insbesondere in den obersten Rekursionsstufen der Funktion SPLIT die
¨außere while-Schleife (Zeilen 03–22) nur wenige Male durchlaufen werden. Zwar erreicht man
dies ganz einfach durch Wahl eines kleineren Wertes f¨ur
ü
, dabei ist jedoch zu beachten, daß auf-
grund von h¨oheren Lastunterschieden die Idle-Zeiten der Prozessoren stark anwachsen k¨onnen.
Strenggenommen muß bereits bei der Berechnung des Orderings auf die Balance des Front-
baumes geachtet werden. Dies kann z.B. dadurch geschehen, daß in einem Nested-Dissection-
Verfahren das Gewicht der Teilgraphen st¨arker in die Bewertung einer Partitionierung eingeht.
Hierdurch kann sich jedoch das Gewicht der Separatoren und damit der Grad der Auff¨ullung von
stark erh¨ohen. Wir werden auf diesen Zielkonflikt in Abschnitt 5.2.4 n¨aher eingehen.
5.2.2 Die parallele symbolische Faktorisierung
Im Vordergrund der parallelen symbolischen Faktorisierung steht weniger der Speedup, als viel-
mehr die effektive Nutzung des gesamten verteilten Speichers. Nur wenn der Cholesky-Faktor
ê
von Anfang an verteilt gespeichert wird, ist die Faktorisierung von großen Matrizen m¨oglich.
In unserem parallelen Algorithmus geschieht die symbolische Faktorisierung in zwei Schrit-
ten. Der Prozessor
ö
Ã<À(Á
Ä,Å
berechnet zun¨achst f¨ur jede Front
Ú
, an deren Faktorisierung er
beteiligt ist, die Nichtnullstruktur der ersten zu
Ú
geh¨orenden Spalte. Die entsprechende Index-
menge wird in
Ä
ø
ë
÷
ì
âß¾Úæà
abgelegt. Ist also wieder
Ý
der erste Knoten der Front
Ú
mit
Þ:ßÝàóÊ á
,
so gilt
Ä
ø
ë
÷
ì
âyß¾ÚæàÊ
À(Â
ß¾ê
!
$à
. In einem zweiten Schritt bestimmt er, welche Spalten der
Front
Ú
in seinem Speicher abgelegt werden und – mit Hilfe von
Ä
ø
ë
÷
ì
âyß¾Úæà
– die Nichtnull-
struktur dieser Spalten.
Um den zweistufigen Prozeß vollst¨andig verstehen zu k¨onnen, m¨ussen wir auf die parallele
numerische Faktorisierung vorgreifen. Die grunds¨atzliche Idee des Faktorisierungsalgorithmus
von Gupta et al. [63, 66] besteht darin, die zu der Front
Ú
geh¨orende Frontal-Matrix
ã¡
spalten-
und zeilenweise auf die Prozessoren zu verteilen. ImVergleich zu einer spaltenweisen Aufteilung
reduziert sich so der Kommunikations-Overhead bei der Faktorisierung der ersten
Ü
Spalten von
ã¡
um den Faktor
"
ß
$# %
à
[84]. Dabei bezeichnet
%
die Anzahl der beteiligten Prozessoren. Die
ersten
Ü
Spalten von
ã¡
, und damit auch die Spalten
áÙççç^Ù áæåèܱéØÕ
des Cholesky-Faktors
ê
,
sind also verteilt auf
%
Prozessoren abgelegt. Wie diese Verteilung genau aussieht wird sp¨ater
gezeigt. Wir widmen uns zun¨achst der Berechnung der Indexmengen.
Abbildung 5.9 zeigt das parallele Programm zur Berechnung der Mengen
Ä
ø
ë
÷
ì
âyß¾Úæà
. Als
erstes berechnet jeder Prozessor die Gruppenidentifikationsnummer
ö
¿ÀÁÂ<Ã<Ä,Å
. Wie bereits
oben gesehen, dient die Nummer zur Ermittlung derjenigen Fronten, an deren Faktorisierung der
5.2. Der parallele Fall
113
SETUPINDICESPAR
og©
'&
Fztv,w
)(
{-}±q, ~
01:
©
'&
Òu$v,wyx;z|{-} »
¨H©
*&
Òz|v,w
+(
{-}
;
,
;
02: for
sT
to
-
do
03:
°ý
/.
v.0
10
wy00w$v
324
vog ~
;
04: while
°
²v.wFw$og~
do
05: if
®v,wyªF0u$v,wyx;zog° ~ST©
*&
Òu$v,wyx;zt{*}
then
06: Let
³Sq´´´q ³µ
denote the children of
°
in
.
07: Determine
{-ª
2
|
5(64
11og° ~
using
7*897;:
and
{*ª
2
|
<(64
11o¾³S(~q´´´q0{*ª
2
|
<(64
11o¾³µ¾~
.
08:
,
ýo
=,
§9¥ ° ¦~ ¤¥ ³S1q´´´Yq ³µ0¦
;
09: end if
10:
°ýTª
4
¬
10
wy00w$v
324
vogq,° ~
;
11: end while
12: if
s
>-
then
13: Send all
{-ª
2
|
<(64
11og°±~
,
°ý¢
?,
, to processor
©
*&
Òz|v,w
+(
{-} ogs~
and receive from
©
*&
Òz|v,w
+(
{*}ogs~
all
{-ª
2
|
<(64
11o¾³~
. Add each
³
to
,
.
14:
©
'&
Fu$v,wyx|z|{*}
A@
©
'&
Òu$v,wyx;z|{-} «»
CB
;
15: end for
Abb. 5.9: Funktion SETUPINDICESPAR.
Prozessor
ö
Ã<ÀÁ
]Ä,Å
beteiligt ist. In einer for-Schleife, die ¨uber alle Dimensionen des Hyper-
cubes l¨auft, werden die Fronten nach abfallenden Gruppenidentifikationsnummern abgearbeitet.
In der ersten Iteration der for-Schleife (
Ï
Ê
×
) erfolgt die Berechnung von
Ä
ø
ë
÷
ì
â$ß¾Úæà
f¨ur alle
Fronten
Ú
, die exklusiv dem Prozessor
ö
Ã<À(Á
Ä,Å
zugeordnet sind. Die eigentliche Berechnung
von
Ä
ø
ë
÷
ì
â$ß¾Úæà
geschieht in der Zeile 07. Dazu m¨ussen die Mengen
Ä
ø
ë
÷
ì
âyß
$DFE
à
,
Õ
GIHJGLK
,
der S¨ohne
DFE
von
Ú
bekannt sein. Zeile 07 faßt die Anweisungen 05–10 der Funktion SYMB-
FACFRONTTREE zusammen. Dabei ist jedoch zu beachten, daß
Ä
ø
ë
÷
ì
âyß
MDFE
>à
nicht die Struktur der
letzten zu
DFE
geh¨orenden Spalte enth¨alt, sondern die Struktur der ersten. Dies stellt kein Problem
dar, weil die Struktur der letzten Spalte ganz einfach aus der Struktur der ersten Spalte abgeleitet
werden kann (vgl. wieder Funktion SYMBFACFRONTTREE).
Ist die Front
Ú
exklusiv dem Prozessor
ö
Ã<ÀÁ
]Ä,Å
zugeordnet, so sind es auch die S¨ohne
D
ÙçççÙ
D
µ
von
Ú
. Da der Frontbaum in Postorder-Reihenfolge durchlaufen wird, ist sicherge-
stellt, daß die Mengen
Ä
ø
ë
÷
ì
âß
$D
àÙççç^Ù Ä
ø
ë
÷
ì
âyß
$D
µà
bekannt sind. Die Situation ¨andert sich,
wenn die Front
Ú
zwei oder mehr Prozessoren zugordnet ist. In diesem Fall kennt der Prozessor
ö
Ã<ÀÁ
]Ä,Å
nicht immer alle Indexmengen der S¨ohne. Vor Beginn einer neuen Iteration der for-
Schleife erh¨alt
ö
Ã<À(Á
Ä,Å
alle ben¨otigten Indexmengen von dem in Dimension
Ï
benachbarten
Prozessor
ö
N
ÃÓÀ(Á
Ä,Å7ß
Ï
à
. Im Gegenzug verschickt
ö
Ã<ÀÁ
]Ä,Å
alle Indexmengen, die der Prozes-
sor
ö
N
ÃÓÀ(Á
Ä,Å7ß
Ï
à
ben¨otigt. Die Fronten, deren Indexmengen verschickt werden m¨ussen, sind in
O
gespeichert.
O
enh¨alt alle Fronten, die noch nicht mit ihrer Vater-Front verrechnet wurden.
114
Kapitel 5. Symbolische und numerische Faktorisierung
C
D1
B1
B2
2
A
A3A4
D2
1
A
1
1
425
54
4 4
3
6 7
groupID 1: Teilcube {00, 01, 10, 11}
groupID 2: Teilcube {00, 01}
groupID 3: Teilcube {10, 11}
groupID 4: Prozessor 00
groupID 5: Prozessor 01
groupID 6: Prozessor 10
groupID 7: Prozessor 11
Abb. 5.10: Mapping eines unbalancierten Frontbaumes auf einen zweidimensionalen Hypercube. Die
Fronten sind mit ihrer Gruppenidentifikationsnummer beschriftet.
Wir wollen den Datenaustausch an dem Frontbaum aus Abbildung 5.10 veranschaulichen.
Die Fronten des Baumes sind mit Hilfe der Funktion SPLIT den Prozessoren eines zweidimen-
sionalen Hypercubes zugeordnet worden. Jede Front ist mit ihrer Gruppenidentifikationsnummer
beschriftet. Wir betrachten den Prozessor
×Ò×
. F¨ur den Prozessor
××
gilt initial
ö
¿ÀÁÂ<Ã<Ä,ÅòÊ
å
×
Ê
LP
. Die Fronten
E
,
H
Ê Õ Ùççç^Ù
P
sind exklusiv dem Prozessor
×Ò×
zugeordnet. In der
ersten Iteration der for-Schleife berechnet Prozessor
×Ò×
die Mengen
Ä
ø
ë
÷
ì
âyß
E
à
. Da die Fronten
und
in dieser Iteration nicht mit ihrer Vater-Front verrechnet werden, verbleiben sie in
O
.
Durch den Datenaustausch in Zeile 13 erh¨alt Prozessor
×
Õ
die Mengen
Ä
ø
ë
÷
ì
âyß
àÙÄ
ø
ë
÷
ì
â$ß
à
und Prozessor
××
die Mengen
Ä
ø
ë
÷
ì
â$ß
RQ
àÙÄ
ø
ë
÷
ì
âyß
RQ
à
. Damit gilt f¨ur beide Prozessoren
O
Ê
Ë
Ù
$Ù
Q
1Ù
Q
Î
Wir befinden uns jetzt in der zweiten Iteration der for-Schleife (
Ï
Ê Õ
). F¨ur die Prozesso-
ren
×Ò×
und
×
Õ
gilt
ö
¿À(ÁÒÂ<Ã<Ä,Å Ê
. Beide Prozessoren berechnen
Ä
ø
ë
÷
ì
â$ß
RS
æà
und f¨ugen
S
in
ihre Menge
O
ein. Dar¨uber hinaus entfernen beide Prozessoren die Fronten
und
Q
aus ihrer
Menge
O
. F¨ur beide Prozessoren gilt jetzt
O
Ê Ë
Ù
Q
Ù
S
VÎ
. Prozessor
××
verschickt die entspre-
chenden Indexmengen zu Prozessor
Õ
×
und Prozessor
×
Õ
zu Prozessor
ÕÒÕ
. Damit sind alle vier
Prozessoren in der Lage, in Iteration
Ï
Ê
die Indexmenge
Ä
ø
ë
÷
ì
âyß
UT
à
zu berechnen.
Wir zeigen jetzt, wie die zu einer Front
Ú
geh¨orenden Spalten auf die Prozessoren eines
Ð
-dimensionalen Hypercubes verteilt werden. Dazu ben¨otigen wir die folgenden Funktionen:
Sei
VW
bË
×
Ùççç^Ù
é ÕÒÎ
und
×
G
Ï
G
ÌÐ
. Die Funktion
X
ù
â
ZY
ß
UV
;à
extrahiert die letzten
Ï
Bits
aus der Bin¨ardarstellung von
V
. Enth¨alt die Bin¨ardarstellung von
V
weniger als
Ï
Bits, so wird
mit Nullen aufgef¨ullt. Per Definition gilt
X
ù
â
Z[
ß
RV
àÊ
I\
f¨ur alle
V]
cË
×
Ùççç^Ù
éÕÒÎ
. Beispiel:
X
ù
â
3^
ß
`_
àóÊ
aX
ù
â
3^
ßß.Õ
×
Õ$à àóÊ
×
Õ
×
Õ
,
X
ù
â
b
ß
Rc
àóÊ
aX
ù
â
Zb
ß(ß.Õ
××
Õyà àóÊ
××
Õ
.
Die Funktionen
ì
ed
ì
ø
fY
ß
RV
;à
und
Á
ë<ë
Y
ß
RV
;à
extrahieren aus den letzten
Ï
Bits der Bin¨ardarstellung
von
V
die Bits an gerader bzw. ungerader Position. Wir nehmen an, daß das niederwertigste Bit
5.2. Der parallele Fall
115
SETUPSTRUCTUREPAR
g
g©
*&)hi1j+(6kMlnm
,
om$k
-ª
2
|
<(64
1
3p
01:
©
*&)qri1jtshkMl
»
¨H©
'&uhi3j)(6kMl
;
02: Set
v
$i3s(
g=wx !rp
'
for all
y
º
m
´´´
zm${
;
03: for
|
to
-
do
04:
°ý
}.i
.0
10~j
y0
$jri324ieg
g
np
;
05: while
°
i1juj
$
g
g
p
do
06: if
®
i1j
yªF
$qri1jtshg
g°
p
T©
'&uqri1jtshk`l
then
07: Let
°
N
and let
be the first vertex in
°
.
08:
y
V
g+p
;
09: for each
¢ ¥
ym
´´´
m3y
¨
¤º ¦
with
$0
Y3
`
gup
S
4r4
1ª
Y
g
g©
'&uhi3j)(6kMlp
do
10:
v
Ò
$i3s(
g=w
p
O ¥
¢
Jk
-ª
2
|
5(64
1
g
g°
'p
and
k$0
Y3
`
gp
S
/j+22
Y
g
g©
'&uhi3j)(6kMlp
.¦
;
11: end if
12:
°ýª
4
¬Ò
10~j
y0
$jri324ieg
g
om
,°
p
;
13: end while
14:
©
'&uqri3jtshkMl
Q
@
©
*&)qri1jtshkMl
«»
CB
;
15: end for
Abb. 5.11: Funktion SETUPSTRUCTUREPAR.
an der Position null steht. Daher hat die von
ì
ed
Òì
ø
Y
ß
RV
à
zur¨uckgegebene bin¨are Zeichenkette die
L¨ange
Ï
und die von
Á
ë<ë
Y
ß
RV
;à
zur¨uckgegebene Zeichenkette die L¨ange
Ï
. Per Definition
gilt
ì
ed
Òì
ø
[
ß
RV
àÊ
I\
und
Á
ë<ë
[
ß
RV
àÊ Á
ëÓë
ß
RV
àÊ
I\
. Beispiel:
ì
ed
Òì
ø
b
ß
Rc
àVÊ
ì
ed
Òì
ø
fb
ßß.Õ
r
ààVÊ
×
Õ
,
Á
ë<ë
^
ß
R_
àÊÑÁ
ë<ë
^
ßß
R
à àóÊ
××
.
Abbildung 5.11 zeigt, wie die zu einer Front geh¨orenden Spalten auf die Prozessoren des
Ð
-
dimensionalen Hypercubes verteilt werden. Die Verteilung wird von der bin¨aren Zeichenkette
des Prozessors bestimmt. Die Bits in
ì
d
ì
ø
zY
ß
ö
Ã<À(Á
Ä,Åà
entscheiden welche Spalten und die
Bits in
Á
ë<ë
Y
ß
ö
Ã<À(Á
Ä,Åà
welche Elemente einer Spalte dem Prozessor
ö
Ã<À(Á
Ä,Å
zugeordnet
werden. Von besonderem Interesse ist die for-Schleife in den Zeilen 09–10. Sei
Ú
eine dem
Prozessor
ö
Ã<ÀÁ
]Ä,Å
zugeordnete Front. Eine Spalte
¡
der Front
Ú
ist genau dann dem Prozessor
ö
Ã<ÀÁ
]Ä,Å
zugeteilt, wenn gilt
X
ù
â
Y3
`
ß
¢¡
tà7Ê
ì
ed
Òì
ø
fY
ß
ö
Ã<ÀÁ
]Ä,Åà
. Ist die Bedingung erf¨ullt, so
sind alle Elemente in Zeile
H
mit
X
ù
â
Y3
`
ß
£H
0àÊÑÁ
ë<ë
Y
ß
ö
Ã<À(Á
Ä,Åà
auf dem Prozessor gespeichert.
Bei der Aufteilung der Spalten einer Front spielt also die Dimension
Ï
, in der die Front bearbeitet
wird, eine entscheidende Rolle.
Gilt
Ï
Ê
×
, so ist jede Front
Ú
mit
ÿÀ(Á
ø
¿À(ÁÒÂ<Ã ß¾ÚæàÊ
ö
¿À(ÁÒÂ<Ã<Ä,Å
exklusiv dem Prozessor
ö
Ã<ÀÁ
]Ä,Å
zugeordnet. Wegen
X
ù
â
Y3
`
ß
¢¡
tàÊ
ì
ed
Òì
ø
fY
ß
ö
Ã<ÀÁ
]Ä,ÅàæÊ
¤\
f¨ur alle
¡
ËFá ÙçççEÙ áVå
Ü éÔÕÒÎ
und
X
ù
â
Y3
`
ß
UH
0à ÊbÁ
ë<ë
Y
ß
ö
Ã<À(Á
Ä,Åà Ê
¥\
f¨ur alle
Hn
Ä
ø
ë
÷
ì
â$ß¾Úæà
sind die
Ü
Spalten der
Front
Ú
vollst¨andig auf dem Prozessor
ö
Ã<À(Á
Ä,Å
gespeichert. Im Falle
Ï
Ê Õ
ist jede Front
Ú
mit
ÿÀ(Á
ø
¿À(ÁÒÂ<Ã ß¾ÚæàÊ
ö
¿ÀÁÂ<Ã<Ä,Å
den Prozessoren
ö
Ã<ÀÁ
]Ä,Å
und
ö
Ã<À(Á
Ä,Å7ß
×
à
zugeordnet
(
ö
N
ÃÓÀ(Á
Ä,Å7ß
×
à
bezeichnet wieder den zu
ö
Ã<ÀÁ
]Ä,Å
benachbarten Prozessor in Dimension
×
).
116
Kapitel 5. Symbolische und numerische Faktorisierung
Durch die for-Schleife werden die geraden Spalten von
Ú
auf den Prozessor mit der geraden
Nummer und die ungeraden Spalten auf den Prozessor mit der ungeraden Nummer abgebildet.
Auch hier gilt
X
ù
â
Y3
`
ß
UH
-à Ê
L\
f¨ur alle
H
Ä
ø
ë
÷
ì
âyß¾Úæà
. Da die Funktion
Á
ë<ë
Y
im Falle
Ï
ÊÕ
immer den Wert
\
zur¨uckliefert, erfolgt keine zeilenweise Aufteilung der Spalten von
Ú
.
Dies ¨andert sich in Iteration
Ï
Ê
. Die Spalten der Front
Ú
werden jetzt auf die Prozessoren
ö
Ã<ÀÁ
]Ä,Å
und
ö
Ã<À(Á
Ä,Å7ß
×
à
sowie auf die beiden zu
ö
Ã<ÀÁ
]Ä,Å
und
ö
Ã<ÀÁ
]Ä,Å7ß
×
à
benach-
barten Prozessoren in Dimension eins verteilt. Seien
¦
×Ò×
,
¦
×
Õ
,
¦
Õ
×
und
¦
:ÕÕ
,
¦L
Ë
×
ÙÕÒÎ
§
die bin¨aren Zeichenketten der vier Prozessoren. Alle geraden Spalten der Front
Ú
werden auf
die Prozessoren
¦
×Ò×
,
¦
Õ
×
und alle ungeraden Spalten auf die Prozessoren
¦
×
Õ
,
¦
ÕÕ
abgebil-
det. In Zeile 10 erfolgt dar¨uber hinaus eine zeilenweise Aufteilung. Wegen
Á
ë<ë
ß
U¦
××
à Ê
×
und
Á
ë<ë
ß
U¦
Õ
×
à±Ê Õ
werden die Elemente einer geraden Spalte mit geradem Zeilenindex Prozessor
¦
×Ò×
und die mit einem ungeraden Zeilenindex Prozessor
¦
Õ
×
zugeordnet. Gleiches gilt f¨ur die
ungeraden Spalten und die Prozessoren
¦
×
Õ
und
¦
ÕÕ
. Man erh¨alt so auch f¨ur h¨ohere Dimensio-
nen eine gleichm¨aßige, zweidimensionale Aufteilung der zu einer Front geh¨orenden Spalten auf
die beteiligten Prozessoren.
Abschließend sei angemerkt, daß innerhalb der Funktion SETUPINDICESPAR kein Daten-
austausch unter den Prozessoren stattfindet.
5.2.3 Die parallele numerische Faktorisierung
Bei der parallelen numerischen Faktorisierung wird die zweidimensionale Aufteilung der Spalten
einer Front
Ú
auf die Spalten der Frontal-Matrix
ã¡
erweitert. Wird also
ã¡
in Iteration
Ï
fakto-
risiert, so speichert der Prozessor
ö
Ã<ÀÁ
]Ä,Å
die Eintr¨age
¨rE
mit
H
Ù
¡
Ä
ø
ë
÷
ì
âyß>ÚWà
,
H
û
¡
und
X
ù
â
Y3
`
ß
UH
-à Ê Á
ë<ë
Y
ß
ö
Ã<À(Á
Ä,Åà
,
X
ù
â
Y3
`
ß
5¡
àWÊ
ì
d
ì
ø
Y
ß
ö
Ã<À(Á
Ä,Åà
. Der parallele Multifrontal-
Algorithmus basiert auf dieser zweidimensionalen Verteilung der Frontal-Matrizen. Als Ergebnis
erh¨alt man die in Abbildung 5.12 beschriebene Funktion MULTIFRONTALPAR.
DieFunktion MULTIFRONTALPAR setzt sich aus Elementen derFunktionen SETUPINDICES-
PAR und MULTIFRONTAL zusammen. Die Elemente der Funktion SETUPINDICESPAR bilden
dabei den Rahmen des parallelen Multifrontal-Algorithmus. Wir konzentrieren uns zun¨achst auf
diesen Rahmen. Dazu blenden wir in Abbildung 5.12 die Zeilen 06–12 aus.
Wie in SETUPINDICESPAR so berechnet auch hier jeder Prozessor als erstes die Gruppen-
identifikationsnummer
ö
¿ÀÁÂ<Ã<Ä,Å
. In einer for-Schleife, die ¨uber alle Dimensionen des Hy-
percubes l¨auft, werden zuerst die Frontal-Matrizen betrachtet, die exklusiv einem Prozessor zu-
geordnet sind. Danach die Frontal-Matrizen, die auf
Ù
P
ÙçççÙ
Prozessoren verteilt sind. Die
Menge
O
enth¨alt alle Fronten, deren Update-Matrix noch nicht mit einer Frontal-Matrix verrech-
net wurde. Die Menge
O
dient wieder dem Datenaustausch. Vor Beginn einer neuen Iteration der
for-Schleife sendet der Prozessor
ö
Ã<ÀÁ
]Ä,Å
die Update-Matrizen
ä¡
,
Ú
©
O
, zu dem in Di-
mension
Ï
benachbarten Prozessor
ö
Ã<À(Á
Ä,Å7ß
Ï
à
. Im Gegenzug erh¨alt er die von
ö
Ã<À(Á
Ä,ÅVß
Ï
à
5.2. Der parallele Fall
117
MULTIFRONTALPAR
g
g©
*&)hi1j+(6k`lm
,
m$k
-ª
2
|
<(64
1
3p
01:
©
*&)qri1jtshk`l
»
¨H©
'&uhi1j)(6kMl
;
,
;
02: for
|
æT
to
-
do
03:
°Ø
}.i
.,
10j
y,
$jri324ig
g
p
;
04: while
°
}i1j)j
$
eg
g
p
do
05: if
®
¢i1j
yªF
$qri1jtsh~g
g°
'p
T©
'&uqri3jtshkMl
then
06: Set up (distributed) frontal matrix
ª
¡
using
k
*ª
2
t
<(64
1
g
g°
'p
.
07: Let
y
;
m
´´´
zm3yu«=¬
be the columns that are associated with
°
and mapped to
©
*&)hi1j+(6k`l
.
08: Fill columns
y
m
´´´
zm3y «¬
with columns
y
m
´´´
m3y «¬
of
787;:
.
09: Let
³
m
´´´
fm
³ µ
denote the children of
°
in
.
10: for each front
³
E
do
11:
ª
¡£
/ª~!®°¯
:¶
±
.
12: Perform
²
°
N
steps of parallel elimination on
ª
¡
to obtain the (distributed)
columns
y
m
´´´
m3y«³¬
of
w
and the (distributed) update matrix
¯
ó¡
.
13:
,
´g=,
§¥ ° ¦
Cp
¤a¥ ³S
m
´´´
m
³µ-¦
;
14: end if
15:
°ýª
4
¬Ò
10~j
y0
$jri 24ieg
g
Nm
,°
'p
;
16: end while
17: if
|
æ
>-
then
18: Send all
¯
M¡
,
°ý¢
µ,
, to processor
©
'&uhi1j)(6kMlg=|)p
and receive from
©
'&uhi3j)(6kMlg=|)p
all
¯
:¶
. Add each
³
to
,
.
19: if
|
S©
j+2
:»T
then
20: Split each update matrix
¯
ó¡
,
°ý¢
?,
, column-wise.
21: if
|
S©
j+2
:» º
then
22: Split each update matrix
¯
ó¡
,
°ý¢
?,
, row-wise.
23: end if
24:
©
'&)qri1jtshkMl
A@
©
*&)qri1jtshk`l
«»
CB
;
25: end for
Abb. 5.12: Funktion MULTIFRONTALPAR.
118
Kapitel 5. Symbolische und numerische Faktorisierung
noch nicht verrechneten Update-Matrizen
ä¶
. Beide Prozessoren sind jetzt in der Lage, die in
Iteration
Ï
åÑÕ
zugeordneten Frontal-Matrizen zu faktorisieren.
Da sich die Bin¨ardarstellungen der Prozessoren
ö
Ã<ÀÁ
]Ä,Å
und
ö
Ã<ÀÁ
]Ä,Å7ß
Ï
à
in den ersten
Ï
Bits (also in den Bits an den Positionen
×
Ùççç^Ù
Ï
é Õ
) nicht unterscheiden, ist die zweidi-
mensionale Aufteilung der verschickten und erhaltenen Update-Matrizen gleich. Hierdurch ist
garantiert, daß nach Addition einer auf Prozessor
ö
Ã<ÀÁ
]Ä,Å
gespeicherten Update-Matrix
ä¡
,
Ú
¶
O
, mit einer von
ö
Ã<ÀÁ
]Ä,Å7ß
Ï
à
erhaltenen Update-Matrix
ä¶
die neue Matrix
ä¡
¸·
ä¶
nur
solche Spalten und Zeilen enth¨alt, die auch
ö
N
ÃÓÀ(Á
Ä,Å
zugeordnet sind.
In der Iteration
Ï
åÕ
tritt zum ersten Mal der Fall ein, daß die Prozessoren
ö
Ã<ÀÁ
]Ä,Å
und
ö
Ã<ÀÁ
]Ä,Å7ß
Ï
à
gemeinsam an der Faktorisierung einer Frontal-Matrix arbeiten. Bislang war die
zweidimensionale Aufteilung der Frontal- und Update-Matrizen auf beiden Prozessoren gleich.
Dies gilt jedoch nicht mehr in Iteration
Ï
åGÕ
.Ist
Ï
beispielsweise gerade, so erh¨oht sich die L¨ange
der Zeichenkette
ì
d
ì
ø
Y3¹
ß
ö
Ã<À(Á
Ä,Åà
im Vergleich zu
ì
ed
Òì
ø
fY
ß
ö
Ã<ÀÁ
]Ä,Åà
um eins. Die Zeichen-
ketten
ì
ed
ì
ø
fY ¹
ß
ö
Ã<À(Á
Ä,Å à
und
ì
d
ì
ø
fY3¹
ß
ö
Ã<À(Á
Ä,Å7ß
Ï
àà
unterscheiden sich genau in dem zus¨atz-
lichen Bit an Position
Ï
. Dies f¨uhrt dazu, daß die von
ö
Ã<À(Á
Ä,Å
und
ö
Ã<À(Á
Ä,Å7ß
Ï
à
gemeinsam
bearbeiteten Frontal-Matrizen noch einmal spaltenweise unter den beiden Prozessoren aufgeteilt
werden. Dementsprechend ist eine spaltenweise Aufteilung der Update-Matrizen in
O
notwen-
dig. Analog m¨ussen im Falle
Ï
ungerade die Update-Matrizen zeilenweise aufgeteilt werden.
Wenden wir uns nun dem Inneren der while-Schleife zu (Zeilen 06–12). Im Falle
Ï
Ê
×
ist die
Frontal-Matrix
ã¡
exklusiv dem Prozessor
ö
N
ÃÓÀ(Á
Ä,Å
zugeordnet. Daher gilt
ËFá 1ÙçççEÙ á
«¬
ÎBÊ
ËFá ÙáWåÕ Ùççç^Ù á åØÜé ÕÒÎ
. Die Anweisungen in den Zeilen 06–12 entsprechen den Anweisun-
gen des sequentiellen Multifrontal-Algorithmus (vgl. Abbildung 5.5). Im Falle
ÏÖr×
sind die
Eintr¨age der Frontal-Matrix
ã¡
auf mehrere Prozessoren verteilt. Es gilt jetzt
ËFá 1ÙçççEÙ á
«³¬
Î
º
ËFá ÙáåcÕ ÙçççEÙ áå Üæé ÕÒÎ
. Ist
Ï Ö
Õ
, so muß bei der Auff¨ullung der Spalten
á1Ùççç^Ù á
«¬
mit
Elementen aus
»
»
:
beachtet werden, daß die Spalten nicht vollst¨andig auf
ö
Ã<ÀÁ
]Ä,Å
ab-
gelegt sind. Nach Addition der Update-Mtrizen
ä¶;·1Ùççç^٠䶸
kann die verteilte Frontal-Matrix
faktorisiert werden. Wir verwenden dazu eine parallele Version des Algorithmus DENSEBLOCK-
FACTOR aus Abbildung 5.6. Bevor wir genauer auf diesen Algorithmus eingehen, wollen wir die
generelle Vorgehensweise der Funktion MULTIFRONTALPAR an einem Beispiel illustrieren.
Dazu betrachten wir noch einmal den in Abbildung 5.7 dargestellten Frontbaum. Nach Ab-
schluß der while-Schleife in Iteration
Ï
Ê
×
speichert Prozessor
×Ò×
die Update-Matrix
ä
¼R½$¾ ½M¿ ½
·
5À3Á
und Prozessor
×
Õ
die Update-Matrix
ä
¼R½$³à ½$壀 ½$ųÅ
Á
. Die Update-Matrizen sind jeweils exklusivden
Prozessoren zugeordnet. In Zeile 18 kommt es zum Austausch der Update-Matrizen. Beide Pro-
zessoren speichern jetzt
ä
¼R½1¾ ½$¿ ½
·
5À3Á
und
ä
¼R½$³à ½$壀 ½$ųÅ
Á
.
5.2. Der parallele Fall
119
Es gilt
ä
¼R½ ¾
½¿
½
·
5À Á
Ê
ÆÇ
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
È
É
UÊ
UÊ
É
[
UÊÌËxÍÎ ÍÎ
É
(
UÊÌËxÍCÏ ÍÎ
É
(
(
É^1Ð
UÊÌËÑÒ ÍÎ
É^1Ð
(
ÓËÑÒ ÑÒ
É^3Ô
UÊÌËÑeÕ ÍÎ
É^3Ô
(
ÓËÑeÕ ÑÒ
É^3Ô
^3Ô
É^1Ö
UÊÌËÑ× ÍÎ
É^1Ö
(
ÓËÑ× ÑÒ
É^1Ö
^3Ô
ËÑ× Ñ×
É^
Ê
UÊÌËÑØ ÍÎ
É^
Ê
(
ÓËÑØ ÑÒ
É^
Ê
^3Ô
ËÑØ Ñ×
É^
Ê
^
Ê
ÙCÚ
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Û
und
ä
¼R½$³à ½$壀 ½MųÅ
Á
Ê
ÆÇ
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
È
É
UÊ
UÊ
É
[
UÊ
Ë
ÍÎ ÍÎ
É
(
UÊ
Ë
ÍÏ ÍÎ
É
(
(
É
^1b
UÊ
Ë
ÑeÜ ÍÎ
É
^1b
(
É
^1b
^1b
É
^$^
UÊ
Ë
ÑÑ ÍÎ
É
^$^
(
É
^$^
^1b
Ë
ÑÑ ÑÑ
É
^1Ý
UÊ
Ë
ÑCÞ ÍÎ
É
^1Ý
(
É
^1Ý
^1b
Ë
ÑeÞ ÑÑ
É
^1Ý
^1Ý
É
^1Ð
UÊ
Ë
ÑeÒ ÍÎ
É
^1Ð
(
É
^1Ð
^1b
Ë
ÑÒ ÑÑ
É
^1Ð
^1Ý
Ë
ÑÒ ÑÒ
ÙÚ
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Û
ç
Nach der spaltenweisen Aufteilung der Update-Matrizen in Zeile 20 speichert Prozessor
××
nur
noch die in Fettdruck dargestellten geraden Spalten und Prozessor
×
Õ
die in normaler Schrift dar-
gestellten ungeraden Spalten. Beide Prozessoren bilden die verteilte Frontal-Matrix
ã
¼R½$¾³¾ ½$¾=Â ½1¾=Å
Á
.
Bez¨uglich Prozessor
××
gilt
ã
¼R½1¾³¾ ½1¾=Â ½1¾=Å
Á
Ê
ÆÇ
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
Ç
È
ß
[
[
å
É
[
[
å
É
[
[
ß
(
[
å
É
(
[
å
É
(
[
ß+^1b
[
å
É
^1b
[
ß+^$^
[
å
É
^$^
[
É
^$^
^$^
ß+^1Ý
[
å
É
^1Ý
[
É
^1Ý
^$^
ß+^1Ð
[
å
É^1Ð
[
å
É
^1Ð
[
É
^1Ð
^$^
Éf^1Ð
^1Ð
å
É
^1Ð
^1Ð
ß+^3Ô
[
å
É^3Ô
[
×
É^3Ô
^1Ð
ß+^1Ö
[
å
É^1Ö
[
×
É^1Ö
^1Ð É^1Ö
^1Ö
ß+^
Ê
[
å
É^
Ê
[
×
É^
Ê
^1Ð É^
Ê
^1Ö
ÙCÚ
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Û
ç
Bezeichne
ä
¼R½$¾³¾ ½$¾=Â ½1¾=Å
Á
Ê
ÆÇ
Ç
Ç
Ç
Ç
Ç
Ç
È
Ë
ÑÑ ÑÑ
É
^1Ý
^$^
Ë
ÑeÒ ÑÑ
Ë
ÑÒ ÑÒ
É
^3Ô
^$^
É
^3Ô
^1Ð
Ë
Ñe× ÑÑ
Ë
Ñ× ÑÒ
Ë
Ñ× Ñ×
É
^
Ê
^$^
É
^
Ê
^1Ð
É
^
Ê
^1Ö
ÙCÚ
Ú
Ú
Ú
Ú
Ú
Ú
Û
120
Kapitel 5. Symbolische und numerische Faktorisierung
à á â ã ä å æ ç è é¥áZà>áeá
à à
á â ã
â è éáZâ
ã á à/ááá3ä/áZå
ä à á©ä å à
å â ã æ ç â ã
æ è éáZâ>á ã¶è é¤áZâ
ç á à/ááá3ä/áZåáZà>áeáêá3ä}áZå
è à á©ä å à áëä å à
é â ã æ ç â ã æ ç â ã
á à è éáZâ>á ã¶è é¤áZâá ãìè é¥á6â
áá á à/ááá3ä/áZåáZà>áeáêá3ä}áZå>á àááêá äá6å
à á â ã ä å æ çèéá à/áá
à à
á à à
â â â ã
ã â â ã ã
ä è è é é¤á6â
å è è é é¤á6âá6â
æ á àá àááêáeáá äá äáZå
ç á àá àááêáeáá äá äáZå>áZå
è à à á áíä ä å åìà
é à à á áíä ä å åìàà
á à â â ã ã æ æ ç çìââìã
áá â â ã ã æ æ ç çìââìã ã
Abb. 5.13: Verteilung der Frontal-Matrix
ª
¡
mit
k
*ª
2î<(64
1
g
g°
'pðï
¥
ñ m
º
m
´´´
òm
º$º ¦
auf 16 Prozessoren. Die
linke Abbildung zeigt eine einfache zyklische, die rechte eine
»
~ó
»
block-zyklische Verteilung.
die nach der Faktorisierung von
ã
¼R½ ¾³¾
½¾=Â
½¾=Å
Á
auf Prozessor
××
gespeicherte Update-Matrix. Pro-
zessor
××
schickt die Update-Matrix zu dem in Dimension eins benachbarten Prozessor
Õ
×
.
Auch Prozessor
Õ
×
sind die geraden Spalten einer Update-Matrix zugeordnet. Anschließend wird
ä
¼R½1¾³¾ ½1¾=Â ½$¾=Å
Á
zeilenweise aufgeteilt (vgl. Zeile 22). Prozessor
××
beh¨alt die in Fettdruck darge-
stellten geraden Zeilen von
ä
¼R½ ¾³¾
½¾=Â
½¾=Å
Á
und Prozessor
Õ
×
die in normaler Schrift dargestellten
ungeraden Zeilen.
Wie bereits oben erw¨ahnt, basiert der parallele numerische Kern zur Faktorisierung der Fron-
tal-Matrizen auf der in Abbildung 5.6 dargestellten Funktion DENSEBLOCKFACTOR. Wir ver-
zichten an dieser Stelle auf die explizite Angabe eines Algorithmus, da dieser sehr technisch ist.
Vielmehr beschreiben wir die parallele Faktorisierung der Frontal-Matrizen an einem Beispiel.
Dazu betrachten wir eine Frontal-Matrix
ã¡
mit
Ä
ø
ë
÷
ì
âyß>ÚWàÈÊ Ë
×
ÙÕÙççç^Ù ÕÕFÎ
. Es sei an-
genommen, daß
^
Ê Õ
r
Prozessoren an der Faktorisierung der Frontal-Matrix beteiligt sind.
Wir befinden uns also in Iteration
Ï
Ê
P
der Funktion MULTIFRONTALPAR. Die Elemente
¨tE¢
der Frontal-Matrix sind wie in Abbildung 5.13(links) angegeben auf die 16 Prozessoren
verteilt. Dabei bezeichnet die in Zeile
H
und Spalte
¡
stehende Zahl den Prozessor, auf dem
¨tE¢
abgebildet ist. Zum Beispiel ist
¨
dem Prozessor
ö
Ã<À(Á
Ä,Å Ê
Ìc
zugeordnet. Die Ver-
teilung der Elemente auf die Prozessoren entspricht genau dem oben vorgestellten Schema.
F¨ur den Prozessor
ö
Ã<ÀÁ
]Ä,Å Ê
c
gilt beispielsweise
ì
ed
Òì
ø
^
ß
Uc
;àGÊ
ì
d
ì
ø
f^
ß(ß.Õ
× ×
Õ à àÈÊ
×
Õ
und
Á
ë<ë
^
ß
Uc
;àÊ Á
ë<ë
^
ß(ß,Õ
××
Õ$à àÊÌÕ
×
. Damit speichert der Prozessor
ö
Ã<ÀÁ
]Ä,Å Ê
ôc
alle Elemente
¨tE¢
mit
X
ù
â
ß
£H
0àóÊcÕ
×
und
X
ù
â
ß
¢¡
tàóÊ
×
Õ
. Der Prozessor ”sieht“ also die Frontal-Matrix
Æ
È
¨
¨
Ð
¨
Ð
Ý
¨
[
¨
[
Ý
¨
[
Ê
Ù
Û
ç
5.2. Der parallele Fall
121
15
10
23
4 5
6 7
8 9
10 11
12 13
14
(a)
00 0 0011
000
2 3
6 7
11
1
1
1
1
(b)
3 1
11 9
0011001
010 11
0
1 1 0
(c)
Abb. 5.14: Kommunikationsschema des parallelen numerischen Kerns f¨ur 16 Prozessoren. (a) zeigt die
horizontale und vertikale Verteilung der auf den Prozessoren
©
'&uhi1j)(6kMlï ñm
.»
)m3õ)m
º
ñ
fakto-
risierten Spalte. Die Diagonalprozessoren sind grau gef¨arbt. (b) zeigt wie die von Prozessor
©
'&uhi3j)(6kMlöï
»
initiierte horizontale Verteilung als Broadcast implementiert werden kann. Die
geraden Bits sind in Fettdruck dargestellt. (c) zeigt den Broadcast f¨ur die vertikale Verteilung
am Diagonalprozessor
©
*&)hi1j+(6k`löïø÷
.
Wir nehmen an, daß die erste Spalte von
ã¡
faktorisiert wurde. Prozessor
ö
Ã<ÀÁ
]Ä,Å Ê
c
ben¨otigt zur Aktualisierung seines Teils der Frontal-Matrix
ã¡
den Vektor
ß
Uù
[
Ù
ù
Ð
[
Ù
ù
[
[
à
:
und
die Skalare
ù
[
Ù
ù
Ý
[
Ù
ùÊ
[
(vgl. auch Funktion DENSEFACTOR aus Abbildung 5.4). Der Vektor
ß
Rù
[
Ù
ù
Ð
[
Ù
ù
[
[
à
:
ist auf dem Prozessor
ö
Ã<À(Á
Ä,Å Ê
ú
gespeichert. Man ¨uberlegt sich leicht,
daß auch die Prozessoren
ö
N
ÃÓÀ(Á
Ä,Å¹Ê Õ
und
ö
Ã<ÀÁ
]Ä,Å¹Ê Õ
den Vektor zur Durchf¨uhrung
ihrer Aktualisierungen ben¨otigen. Alle diese vier Prozessoren liegen in Abbildung 5.13(links)
auf einer horizontalen Linie. Die Skalare
ù
[
Ù
ù
Ý
[
Ù
ùÊ
[
sind auf Prozessor
ö
Ã<ÀÁ
]Ä,Å Ê Õ
gespei-
chert. Die Skalare werden außerdem von den Prozessoren
ö
N
ÃÓÀ(Á
Ä,Å Ê
und
ö
Ã<À(Á
Ä,ÅcÊ ÕÕ
ben¨otigt. Die vier Prozessoren liegen in Abbildung 5.13(links) auf einer vertikalen Linie.
Es ergibt sich so ein Kommunikationsschema wie es in Abbildung 5.14(a) dargestellt ist.
Nachdem die Prozessoren
ö
Ã<ÀÁ
]Ä,Å Ê
×
Ù
Ù
ú
ÙÕ
×
die erste Spalte faktorisiert haben, werden die
Elemente der Faktorspalte horizontal an die anderen Prozessoren verteilt. Jeder Diagonalprozes-
sor – d.h. jeder Prozessor mit
ì
d
ì
ø
fY
ß
ö
Ã<À(Á
Ä,ÅàÊcÁ
ë<ë
Y
ß
ö
Ã<À(Á
Ä,Åà
– initiiert dar¨uber hinaus
ein vertikales Verschicken der erhaltenen Elemente. In unserem Beispiel mit 16 Prozessoren gibt
es
#
Õ
7Ê
AP
Diagonalprozessoren. Dabei handelt es sich um die Prozessoren
×
×
,
×
EÕ
,
×
Õ
r
und
Õ
+
YÕ
+
(um zu verdeutlichen, daß die bin¨aren Zeichenketten aus geraden bzw. ungeraden Bits
gleich sind, haben wir die geraden Bits hervorgehoben). Der Prozessor
ö
Ã<À(Á
Ä,ÅÔÊ
ac
erh¨alt al-
so den Vektor
ß
Uù
[
Ù
ù
Ð
[
Ù
ù
[
[
à
:
direkt von Prozessor
ö
Ã<À(Á
Ä,Å Ê
ú
und die Skalare
ù
[
Ù
ù
Ý
[
Ù
ùÊ
[
von Prozessor
ö
Ã<ÀÁ
]Ä,ÅÔÊcÕ
¨uber den Diagonalprozessor
ö
Ã<ÀÁ
]Ä,ÅÔÊ
.
122
Kapitel 5. Symbolische und numerische Faktorisierung
In unserem parallelen numerischen Kern ist das horizontale und das vertikale Verschicken
als Broadcast-Operation implementiert. Der horizontale Broadcast wird initiiert von den an der
Faktorisierung der Spalte beteiligten Prozessoren, der vertikale Broadcast von den Diagonalpro-
zessoren. Dies ist m¨oglich, da die geraden Bits der horizontal auf einer Linie liegenden Prozesso-
ren einen Teilcube des
Ð
-dimensionalen Hypercubes bilden. Gleiches gilt f¨ur die ungeraden Bits
der vertikal auf einer Linie liegenden Prozessoren. Abbildung 5.14(b) zeigt den von Prozessor
ö
Ã<ÀÁ
]Ä,ÅÔÊ
initiierten horizontalen Broadcast. Es werden ausschließlich Kanten benutzt, die
in einer geraden Dimension verlaufen. Der von dem Diagonalprozessor
ö
Ã<ÀÁ
]Ä,Å Ê
initi-
ierte vertikale Broadcast ist in Abbildung 5.14(c) dargestellt. Der vertikale Broadcast benutzt
ausschließlich Kanten, die in einer ungeraden Dimension verlaufen.
Auch die Faktorisierung der ersten Spalte erfordert einen vertikalen Broadcast. Dieser wird
von dem Pivotprozessor
ö
Ã<ÀÁ
]Ä,ÅÊ
×
initiiert. Der Broadcast dient zur Verteilung des Diago-
nalelementes
ù
[
[
an die Prozessoren
ö
Ã<ÀÁ
]Ä,Å Ê
tÙ
ú
ÙÕ
×
.
Ist
Ï
ungerade, so ergibt sich ein ¨ahnliches Kommunikationsschema. In diesem Fall bilden die
Y
Prozessoren kein Quadrat wie in Abbildung 5.14(a) dargestellt, sondern ein Rechteck. Eine
horizontale Linie des Rechtecks enth¨alt
Y
`
Prozessoren, eine vertikale
Y3
`
. Da die horizon-
tale Linie doppelt so viele Prozessoren enth¨alt wie die vertikale, gibt es in ihr zwei Diagonalpro-
zessoren. F¨ur einen Diagonalprozessor gilt jetzt
ì
d
ì
ø
zY
§
ß
ö
Ã<À(Á
Ä,ÅàÊØÁ
ë<ë
Y
ß
ö
Ã<ÀÁ
]Ä,Åà
.
Abschließend sei angemerkt, daß zur Reduzierung des Kommunikationsvolumens die Ele-
mente der Frontal-Matrix
ã¡
nicht wie in Abbildung 5.13(links) angegeben in einfacher zy-
klischer From, sondern in block-zyklischer Form auf die Prozessoren verteilt werden (vgl. auch
Gupta et al. [63, 66]). Um Bl¨ocke der Gr¨oße
uû
Ç
uû
zu erhalten, speichert Prozessor
ö
N
ÃÓÀ(Á
Ä,Å
al-
leElemente
¨tE
mit
X
ù
â
Y3
`
ß
UHM û
àóÊ Á
ë<ë
Y
ß
ö
N
ÃÓÀ(Á
Ä,Åà
und
X
ù
â
Y3
`
ß
¢¡ û
àóÊ
ì
d
ì
ø
zY
ß
ö
Ã<À(Á
Ä,Åà
.
Abbildung 5.13(rechts) zeigt eine
Ç
block-zyklische Verteilung der Frontal-Matrix.
5.2.4 Experimentelle Ergebnisse
Bei dem von unsimplementierten parallelen Faktorisierungsalgorithmus pspace(Parallel SPArse
Cholesky Elimination) handelt es sich um eine Weiterentwicklung des sequentiellen Programms
space. Wie in space wird zun¨achst der Frontbaum
Í
modifiziert. Diese Aufgabe ¨ubernimmt der
Prozessor
ö
Ã<ÀÁ
]Ä,ÅÊ
×
. Anschließend berechnet der Prozessor mit Hilfe der Funktion SPLIT
eine Verteilung der Fronten auf die Prozessoren des Hypercubes. Der Aufwand f¨ur dieses se-
quentielle Preprocessing betr¨agt selbst f¨ur sehr große Matrizen lediglich ein bis zwei Sekunden.
Schließlich wird der modifizierte Frontbaum sowie das in
ÿÀ(Á
ø
¿À(ÁÒÂ<Ã
gespeicherte Mapping an
die restlichen Prozessoren des Hypercubes geschickt. Danach k¨onnen alle Prozessoren gemein-
sam die symbolische und numerische Faktorisierung durchf¨uhren. Die Prozessoren rufen dazu
die Funktionen SETUPINDICESPAR, SETUPSTRUCTUREPAR und MULTIFRONTALPAR auf.
Die folgende Liste faßt die wichtigsten Merkmale unseres parallelen Algorithmus zusammen.
5.2. Der parallele Fall
123
Hypercube der
Dimension r−1
Hypercube der
Dimension r−1
n
hHypercube der
Dimension r−1 Hypercube der
Dimension r−1
h
n
Abb. 5.15: Einbettung des
-
-dimensionalen Hypercubes in ein
üJó{
-Gitter,
ü{µï
»
. Gilt
üï{
(links),
so wird das quadratische Gitter horizontal in zwei rechteckige Gitter aufgespalten. In jedes
rechteckige Gitter wird ein
-
¤ º
-dimensionaler Hypercube eingebettet. Im Falle
ü?ý>{
(rechts)
wird das Gitter vertikal entlang der l¨angeren Seite aufgespalten.
þ
In der Funktion SPLIT ist der Parameter
ü
auf den Wert
×
ç
c_
gesetzt. Durch den Austausch
der Update-Matrizen in MULTIFRONTALPAR (Zeile 18) synchronisieren sich die Prozes-
soren
ö
N
ÃÓÀ(Á
Ä,Å
und
ö
Ã<À(Á
Ä,Å7ß
Ï
à
. Um hierbei gr¨oßere Idle-Zeiten zu vermeiden, sollte
ü
immer auf einen Wert nahe eins gesetzt werden.
þ
Zur Reduzierung desKommunikations-Overheadsbenutzen wir ein
û
.Ç
û
block-zyklisches
Mapping (vgl. auch Abbildung 5.13). Die optimale Wahl des Parameters
ù
h¨angt von der
Latenzzeit des parallelen Systems ab. In unseren Experimenten haben wir
ù
auf den Wert
drei gesetzt.
þ
Zur Faktorisierung der exklusiv einem Prozessor zugewiesenen Frontal-Matrizen benutz-
ten wir wieder einen numerischen Kern, der auf Bl¨ocken der Gr¨oße
Ç
arbeitet. Der Kern
”vertr¨agt“ sich jedoch nicht mit dem block-zyklischen Mapping. Daher benutzen wir zur
Faktorisierung der auf mehrere Prozessoren verteilten Frontal-Matrizen einen einfachen
ÕDzÕ
-Kern.
Alle unsere experimentellen Ergebnisse wurden auf einem Parsytec CC (Cognitive Computing)
System mit 16 Knoten ermittelt. Jeder Knoten des Parallelrechners besteht aus einem 133 MHz
Motorola PowerPC 604 Prozessor und 64 MByte Hauptspeicher. Die Knoten sind zu einem qua-
dratischen Gitter vernetzt. Der von unserem Faktorisierungsalgorithmus ben¨otigte Hypercube ist
wie in Abbildung 5.15 gezeigt in das Gitter eingebettet. Die einfache rekursive Einbettung hat
den Vorteil, daß Teilcubes auf disjunkte Teilgitter abgebildet werden. Hierdurch wird vermieden,
daß sich die Kommunikation innerhalb einer Prozessorgruppe mit der Kommunikation innerhalb
einer anderen ¨uberlagert. Zum Nachrichtenaustausch benutzen wir die von dem Betriebssystem
PARIX
ÿ
bereitgestellten synchronen Kommunikationsroutinen. Die Latenzzeit betr¨agt in diesem
Fall lediglich 90 Mikrosekunden.
PARIX (PARallel Extensions to UnIX) ist ein kommerzielles Produkt der Firma Parsytec.
124
Kapitel 5. Symbolische und numerische Faktorisierung
å
-f¨ormige Separatoren Anzahl Prozessoren
ß¾ê:à
Z
Õ
×
b
ß>ê:à
Z
Õ
×
Ð
2 4 8 16
255 2235 291 5.48 3.14 (1.75) 1.95 (1.61) 1.24 (1.57)
400 6230 1161 22.27 12.27 (1.82) 7.20 (1.70) 4.40 (1.63)
511 10900 2461 —– 26.57 —– 15.05 (1.76) 8.86 (1.70)
Tab. 5.2: Faktorisierung eines quadratischen Gitters mit Seitenl¨ange
{µï
»
)m
ñrñ m
º$º
auf
ï
»
)m
m3õ)m
º
Prozessoren. Zur Numerierung der Gitterknoten wurde Georges Nested-Dissection-Verfahren
benutzt.
Tabelle 5.2 zeigt die Laufzeiten zur Berechnung des Cholesky-Faktors dreier Laplace-Matri-
zen, die ein quadratisches Gitter mit Seitenl¨ange
Ê
_+_
,
Ê
P
×Ò×
und
Ê
_
ÕÕ
induzieren.
Diese Matrizen stellen einen Idealfall dar, weil das asymptotisch optimale Nested-Dissection-
Ordering zugleich einen balancierten Frontbaum erzeugt. Dar¨uber hinaus entsteht bei der Fakto-
risierung dieser Matrizen lediglich ein Kommunikations-Overhead von
"
Gß
#
%
Yà
[63, 66]. Der
linke Teil der Tabelle 5.2 zeigt die Anzahl der subdiagonalen Nichtnullelemente in
ê
(in Tsd.)
und die Anzahl der zur Berechnung von
ê
ben¨otigten Operationen (in Mio.). Der rechte Teil
zeigt die Laufzeiten auf
%
Ê
Ù
P
Ù
ú
ÙÕ
Prozessoren. In Klammern ist jeweils der Speedup ange-
geben, der sich beim ¨
Ubergang zu einem h¨oherdimensionalen Hypercube ergibt. Im optimalen
Fall betr¨agt der Speedup zwei.
Der Speedup ist am geringsten bei der Faktorisierung des
_+_
Ç
_+_
-Gitters. Dies ist nicht
verwunderlich, da bereits auf acht Prozessoren zur Berechnung des Cholesky-Faktors weniger
als zwei Sekunden ben¨otigt werden. Da jeder Knoten des CC Systems ¨uber lediglich 64 MByte
Speicher verf¨ugt, ist im Falle
Ê
_
ÕÕ
eine Faktorisierung auf zwei Prozessoren nicht m¨oglich.
Wenden wir uns nun der Faktorisierung beliebiger Matrizen zu. In Abschnitt 4.3 haben wir
gesehen, daß sich bei Verwendung des von uns entwickelten Ordering-Verfahrens der Aufwand
zur Berechnung des Cholesky-Faktors erheblich reduzieren l¨aßt. Charakteristisch f¨ur unser Ver-
fahren ist, daß Knotenseparatoren als R¨ander der von einem unvollst¨andigen Bottom-up-Orde-
ring gebildeten Gebiete interpretiert werden. Deshalb spielt die Balance der Teilgraphen bei der
Bewertung einer Partitionierung nur eine untergeordnete Rolle. Dies hat unmittelbar zur Fol-
ge, daß der durch das Ordering induzierte Frontbaum unbalanciert ist. Im Vergleich zu einem
Nested-Dissection-Ordering kann sich so die Anzahl der Fronten, die einer großen Prozessor-
gruppe zugeteilt werden, drastisch erh¨ohen. Dies legt die Vermutung nahe, daß die von unserem
Verfahren generierten Orderings nicht f¨ur die parallele Faktorisierung geeignet sind.
Die folgenden Tabellen zeigen anhand zweier Beispiele, daß diese Annahme nicht zutrifft.
Dazu betrachten wir die Matrizen BCSSTK30 und MAT02HBF. Die Matrix BCSSTK30 besitzt
wie die in Abschnitt 4.2.1 n¨aher betrachtete Matrix BCSSTK25 einen großen Aspekt-Ratio. Da-
her ist das von pord generierte Ordering vom Typ
ß
Ù
óà
sehr viel besser als das
5.2. Der parallele Fall
125
Nested-Dissection-Ordering vom Typ
ß
Ù
Å à
(vgl. Tabelle 4.2). Im Gegensatz dazu sind
die Unterschiede bei der Matrix MAT02HBF nicht so groß. Es stellt sich nun die Frage, wie die
Orderings die Effizienz der parallelen numerischen Faktorisierung beeinflussen.
Betrachten wir zun¨achst die Faktorisierung der Matrix BCSSTK30. Wir haben die Faktorisie-
rung nacheinander auf
%
GÊ
tÙ
P
Ù
ú
ÙÕ
r
Prozessoren durchgef¨uhrt. Die Tabellen 5.3 und 5.4 zeigen
f¨ur jeden der vier L¨aufe wie die arithmetischen Operationen in Abh¨angigkeit von dem gew¨ahlten
Ordering auf die Prozessoren des Hypercubes verteilt sind. Dazu ist jede Tabelle in vier hori-
zontale Abschnitte unterteilt. Jeder Abschnitt enth¨alt einen vollst¨andigen Bin¨arbaum ¨uber die an
der Faktorisierung beteiligten Prozessoren. Die Zahlen an den Bl¨attern des Bin¨arbaumes geben
an, wieviele arithmetische Operationen exklusiv einem Prozessor zugeordnet sind. Die Zahlen
darunter zeigen die Anzahl der arithmetischen Operationen, die von einer Prozessorgruppe der
Gr¨oße zwei ausgef¨uhrt werden usw.
Die Verteilungen in Tabelle 5.3 basieren auf dem Frontbaum des Orderings
ß
Ù
Å à
und die in Tabelle 5.4 auf dem Frontbaum des Orderings
ß
Ù
óà
. Um im Falle von
ß
Ù
Åà
einen m¨oglichst gut balancierten Frontbaum zu erhalten, wurde der Parameter
in der Zielfunktion (4.16) von
×
ç
_
×
auf
×
ç
×
_
abgesenkt. Damit wird das Gewicht eines Separators
bereits dann durch einen Strafterm erh¨oht, wenn die Gewichte der Teilgraphen um mehr als f¨unf
Prozent differieren. Bei Verwendung des Orderings
ß
Ù
Åà
sind zur Berechnung des Cho-
lesky-Faktors von BCSSTK30
ÕÕ
rú
Õ
×
Ð
arithmetische Operationen notwendig, bei Verwendung
des Orderings
ß
Ù
óà
lediglich
Æ
×
Õ
×
Ð
.
Betrachten wir zun¨achst die Faktorisierung der Matrix BCSSTK30 auf einem Hypercube der
Dimension eins. Ein Vergleich des ersten Abschnitts der Tabelle 5.3 mit dem ersten Abschnitt
der Tabelle 5.4 zeigt, daß bei Verwendung des Orderings
ß
Ù
Mà
wesentlich mehr
Operationen den Prozessoren
ö
Ã<À(Á
Ä,Å Ê
×
und
ö
Ã<ÀÁ
]Ä,Å Ê Õ
zur gemeinsamen Bearbei-
tung zugeordnet werden als bei Verwendung des Nested-Dissection-Orderings
ß
Ù
Å à
.
W¨ahrend im Falle von
ß
Ù
Åà
lediglich
+
Õ
×
Ð
Operationen von beiden Prozessoren ge-
meinsam ausgef¨uhrt werden m¨ussen, sind es im Falle von
ß
Ù
óà Æ
)c
Õ
×
Ð
. Bei der
Faktorisierung der Matrix auf einem h¨oherdimensionalen Hypercube m¨ussen die
Æ
)c
Õ
×
Ð
Ope-
rationen auf mehr Prozessoren verteilt werden, wodurch sich der Kommunikations-Overhead
st¨arker erh¨oht als im Falle von
ß
Ù
Åà
.
Die n¨achsten Abschnitte der Tabellen 5.3 und 5.4 zeigen jedoch, daß hierf¨ur ein hoher Preis
gezahlt werden muß. Bereits an dem Beispiel des
Ç
-Gitter aus Abbildung 4.4 haben wir
gesehen, daß in einem Graphen mit großem Aspekt-Ratio Elemente mit einem großen Rand ent-
stehen, wenn die Separatoren entsprechend ihrer Rekursionstiefe eliminiert werden. Jedes dieser
Elemente stellt eine große Clique dar, deren Faktorisierung sehr aufwendig ist. Bei der Fakto-
risierung der Matrix BCSSTK30 auf einem zweidimensionalen Hypercube kommt es daher zu
einer starken Belastung der zweielementigen Prozessorgruppen. Ein Vergleich des zweiten Ab-
schnitts der Tabellen 5.3 und 5.4 zeigt, daß im Falle von
ß
Ù
Åà
die zweielementigen Pro-
126
Kapitel 5. Symbolische und numerische Faktorisierung
zessorgruppen
Õ
ú
Õ
×
Ð
bzw.
Õ
P_
Õ
×
Ð
arithmetische Operationen durchf¨uhren m¨ussen, w¨ahrend
bei Verwendung des Orderings
ß
Ù
Mà
den Prozessorgruppen nur
ÕÕ
Õ
×
Ð
bzw.
+ú
Õ
×
Ð
Operationen zugewiesen werden. Auch in den n¨achsten Abschnitten ist die einer zweiele-
mentigen Prozessorgruppe zugewiesene Anzahl arithmetischer Operationen immer h¨oher, wenn
das Ordering
ß
Ù
Åà
benutzt wird. Man beachte, daß es im Falle von
ß
Ù
Mà
sogar Prozessorgruppen gibt, denen gar keine Operationen zugewiesen werden. In diesem Fall
erh¨oht sich die Anzahl der einer kleineren Prozessorgruppe zugewiesenen Operation, was zu
einer Reduzierung des Kommunikations-Overheads f¨uhrt.
Insgesamt l¨aßt sich also feststellen, daß bei der Faktorisierung von Graphen mit großem
Aspekt-Ratio die Verwendung eines Nested-Dissection-Orderings allein aus Balancegr¨unden
nicht ratsam ist. Zwar kann der Frontbaum an der Wurzel leichter aufgespalten werden, be-
dingt durch die Numerierung der Separatoren erh¨oht sich jedoch der Aufwand zur Berechnung
von
ê
erheblich. Dies verdeutlichen noch einmal die Tabellen 5.5(a) und 5.5(b). Die Tabellen
zeigen die Laufzeiten zur Durchf¨uhrung der numerischen Faktorisierung in Abh¨angigkeit von
dem gew¨ahlten Ordering. Jede Tabelle ist wieder in vier Abschnitte unterteilt. Die Bin¨arb¨aume
in den Abschnitten zeigen die von den Prozessorgruppen ben¨otigte Zeit zur Durchf¨uhrung der
zugeteilten arithmetischen Operationen. In Klammern ist jeweils der von einer Prozessorgruppe
produzierte Kommunikations-Overhead angegeben. Die letzte Spalte einer Tabelle zeigt die ins-
gesamt zur Berechnung des Cholesky-Faktors ben¨otigte Zeit. Die Gesamtzeit erh¨alt man durch
Aufsummieren der auf dem kritischen Pfad liegenden Zeiten. In den Bin¨arb¨aumen sind die Zeit-
angaben auf den kritischen Pfaden durch Unterstreichen hervorgehoben.
Ein Vergleich der Gesamtzeiten zeigt, daß bei Verwendung des Orderings
ß
Ù
Mà
trotz eines unbalancierten Frontbaumes auf einem
ÐWé Õ
-dimensionalen Hypercube die gleiche
Performanz erzielt werden kann wie im Falle von
ß
Ù
Å à
auf einem
Ð
-dimensionalen
Hypercube.
Betrachten wir nun die Faktorisierung der Matrix MAT02HBF. Wir haben diese Matrix aus-
gew¨ahlt, um auf eine weitere Unzul¨anglichkeit im Zusammenspiel zwischen Ordering- und Map-
ping-Verfahren hinzuweisen. Auch hier wurde im Falle von
ß
Ù
Åà
der Parameter
von
×
ç
_
×
auf
×
ç
×
_
abgesenkt. Ein Vergleich des ersten Abschnitts der Tabellen 5.6 und 5.7 zeigt je-
doch, daß bei Verwendung des Nested-Dissection-Orderings
ß
Ù
Åà
die Aufspaltung des
Frontbaumes
Í
an der Wurzel sehr viel schwieriger ist als im Falle von
ß
Ù
à
. Dies
liegt daran, daß die Balance einer Partitionierung anhand der Gewichte der Teilgraphen bewertet
wird. Das Gewicht eines Teilgraphen sagt jedoch gar nichts dar¨uber aus, wieviele Operationen
zur Faktorisierung der Knoten notwendig sind, und genau diese Zahl ist entscheidend f¨ur die
Aufspaltung des Frontbaumes. Zum Zeitpunkt der Konstruktion eines Knotenseparators existiert
noch kein Ordering f¨ur die Knoten in den Teilgraphen. Daher ist auch die zur Faktorisierung ei-
nes Teilgraphen ben¨otigte Anzahl an arithmetischen Operationen nicht bekannt. Die Benutzung
der Knotengewichte stellt also nur eine heuristische Sch¨atzung dar, die nicht sehr genau ist.
5.2. Der parallele Fall
127
Ein wesentlich besseres Zusammenspiel zwischen Ordering- und Mapping-Verfahren erm¨og-
licht das in Abschnitt 4.2.3 vorgestellte dreistufige Multisection-Verfahren. Innerhalb der for-
Schleife in Funktion TRISTAGEMULTISECTION (Zeilen 04–13 in Abbildung 4.14) werden je-
weils vollst¨andige Orderings generiert. Als Nebenprodukt liefert jedes dieser Orderings einen
Frontbaum
Í
. Da der Aufwand zur Berechnung eines Mappings sehr gering ist, kann auf jeden
Frontbaum
Í
die Funktion SPLIT angewandt werden. Innerhalb der Funktion TRISTAGEMUL-
TISEKTION kann dann dasjenige Ordering ausgew¨ahlt werden, das sowohl die Auff¨ullung von
als auch den bei der parallelen Faktorisierung entstehenden Kommunikations-Overhead mini-
miert. Hierzu ist lediglich die Formulierung einer geeigneten Zielfunktion notwendig.
Die Tabellen 5.8(a) und 5.8(b) zeigen die Laufzeiten zur Berechnung des Cholesky-Faktors
von MAT02HBF in Abh¨angigkeit von dem gew¨ahlten Ordering. Bedingt durch einen gr¨oßeren
Fill-in und durch die Schwierigkeiten beim Aufspalten des Frontbaumes an der Wurzel, sind die
Laufzeiten bei Verwendung des Nested-Dissection-Orderings in allen vier F¨allen h¨oher als die
Laufzeiten bei Verwendung des
ß
Ù
óà
-Orderings.
Abschließend wollen wir auf eine Schw¨ache unseres parallelen Faktorisierungsalgorithmus
hinweisen. Dazu betrachten wir den ersten Abschnitt der Tabelle 5.6 und den ersten Abschnitt
der Tabelle 5.8(a). Bei der Faktorisierung von MAT02HBF auf einem Hypercube der Dimension
eins werden im Falle von
ß
Ù
Å à
den Prozessoren
ö
N
ÃÓÀ(Á
Ä,Å Ê
×
und
ö
Ã<À(Á
Ä,Å ÊÌÕ
zur gemeinsamen Abarbeitung
P
Õ
×
Ð
Operationen zugewiesen. Exklusiv werden den Prozes-
soren ungef¨ahr
_
××
Õ
×
Ð
Operationen zugewiesen. Zur Ausf¨uhrung der exklusiv zugewiesenen
Operationen ben¨otigen die Prozessoren ca.
ÕyÆ
Sekunden. F¨ur die gemeinsame Abarbeitung der
P
Õ
×
Ð
Operationen sollten daher ungef¨ahr
ú
ç
_
Sekunden und nicht
Õ
P
çÕ
Sekunden ben¨otigt
werden. Dieser ”Slowdown“ kann nicht dem Kommunikations-Overhead angelastet werden. Er
betr¨agt lediglich
×
ç
c
×
Sekunden. Vielmehr ist hierf¨ur der Umstand verantwortlich, daß aufgrund
von Kommunikationsoperationen und aufgrund des einfachen
Õ±ÇHÕ
-Kerns die Cache- und Regi-
stereffizienz im parallelen Fall nicht so hoch ist wie in sequentiellen.
In einer zuk¨unftigen Implementierung sollte daher der
Õ7ÇQÕ
-Kern durch einen
Ç
-Kern
ersetzt werden. Dieser Kern ist auch mit dem block-zyklischen Mapping vertr¨aglich. Dar¨uber
hinaus haben wir in Abschnitt 5.1.4 am Beispiel der Matrix CFD1 gesehen, daß sich die gr¨oßte
Beschleunigung beim ¨
Ubergang von einem
ÕæÇTÕ
-Kern zu einem
Ç
-Kern ergibt.
128
Kapitel 5. Symbolische und numerische Faktorisierung
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
588 573
22
229 231 215 213
128 145
22
90 90 70 66 70 74 80 83
49 95 71 49
128 145
22
22 22 26 26 15 15 24 23 19 20 28 29 27 27 18 18
46 38 39 19 32 17 26 48
49 95 71 49
128 145
22
Tab. 5.3: Verteilung der zur Faktorisierung von BCSSTK30 durchzuf¨uhrenden Operationen (in Mio.) auf
die Prozessoren des Hypercubes. Die Verteilung basiert auf dem Ordering
g
"!#!%$
m
'&
l*p
. Ins-
gesamt m¨ussen
((
õr÷
*)+(
ñ
Ð
Operationen verteilt werden.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
311 312
79
99 99 122 122
113 68
79
30 29 49 50 44 44 61 61
40 0 34 0
113 68
79
11 11 15 14 17 17 25 25 18 18 15 14 23 22 31 30
7 0 14 0 8 15 16 0
40 0 34 0
113 68
79
Tab. 5.4: Verteilung der zur Faktorisierung von BCSSTK30 durchzuf¨uhrenden Operationen (in Mio.) auf
die Prozessoren des Hypercubes. Die Verteilung basiert auf dem Ordering
g
"!#!%$
m
',!#!%$
xp
.
Insgesamt m¨ussen
-
ñ
/. )+(
ñ
Ð
Operationen verteilt werden.
5.2. Der parallele Fall
129
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 total
20.00 19.47
0.76 (0.10) 20.76
7.61 7.70 7.50 7.35
4.38 (0.23) 4.90 (0.33)
0.43 (0.11) 12.83
2.99 3.01 2.38 2.32 2.55 2.60 2.85 2.80
1.61 (0.14) 2.69 (0.19) 2.31 (0.15) 1.63 (0.13)
2.29 (0.19) 2.50 (0.28)
0.29 (0.12) 7.7
0.83 0.82 0.90 0.93 0.55 0.57 0.78 0.76 0.74 0.75 1.01 1.05 0.99 0.96 0.69 0.69
1.57 (0.21) 1.25 (0.10) 1.25 (0.10) 0.63 (0.06) 1.04 (0.07) 0.56 (0.05) 0.83 (0.07) 1.58 (0.16)
0.87 (0.12) 1.50 (0.16) 1.21 (0.15) 0.86 (0.13)
1.30 (0.31) 1.50 (0.34)
0.18 (0.15) 4.8
Ordering: (AMMF,ND),
0
1 2
3
4
5
56
7 8
59
:
.
(a)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 total
9.89 10.03
2.63 (0.15) 12.66
3.14 3.18 3.84 3.87
3.08 (0.29) 2.20 (0.18)
1.44 (0.16) 7.7
1.11 1.14 1.80 1.88 1.69 1.69 2.27 2.25
1.04 (0.10) 0.00 (0.00) 0.88 (0.13) 0.00 (0.00)
1.77 (0.25) 1.22 (0.19)
0.80 (0.20) 4.75
0.40 0.39 0.56 0.58 0.63 0.62 0.92 0.96 0.70 0.73 0.57 0.56 0.75 0.74 1.26 1.21
0.22 (0.05) 0.00 (0.00) 0.48 (0.04) 0.00 (0.00) 0.26 (0.04) 0.50 (0.04) 0.52 (0.05) 0.00 (0.00)
0.55 (0.10) 0.00 (0.00) 0.48 (0.11) 0.00 (0.00)
1.09 (0.36) 0.79 (0.25)
0.49 (0.20) 2.75
Ordering: (AMMF,AMMF),
0
1 2
3
4
;
9
< 8
59
:
.
(b)
Tab. 5.5: Laufzeiten (in Sek.) zur Berechnung des Cholesky-Faktors von BCSSTK30 in Abh¨angigkeit
von dem gew¨ahlten Ordering.
130
Kapitel 5. Symbolische und numerische Faktorisierung
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
497 506
426
253 244 258 248
0 0
426
61 63 95 97 100 102 67 68
129 52 56 113
0 0
426
31 30 28 27 23 22 36 37 38 38 30 31 20 20 34 34
0 8 50 23 24 41 27 0
129 52 56 113
0 0
426
Tab. 5.6: Verteilung der zur Faktorisierung von MAT02HBF durchzuf¨uhrenden Operationen (in Mio.)
auf die Prozessoren des Hypercubes. Die Verteilung basiert auf dem Ordering
= "!#!#$?>'@"ACB
.
Insgesamt m¨ussen
(D .E )/(FG
Operationen verteilt werden.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
439 446
203
180 180 172 173
79 100
203
78 78 82 82 71 69 74 74
24 16 32 25
79 100
203
22 22 26 27 25 24 32 33 22 22 34 35 26 26 15 15
34 25 32 17 27 0 22 44
24 16 32 25
79 100
203
Tab. 5.7: Verteilung der zur Faktorisierung von MAT02HBF durchzuf¨uhrenden Operationen (in Mio.) auf
die Prozessoren des Hypercubes. Die Verteilung basiert auf dem Ordering
= "!#!%$H>',!#!%$IB
.
Insgesamt m¨ussen
(F/JJ)/(FG
Operationen verteilt werden.
5.2. Der parallele Fall
131
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 total
17.12 17.14
14.13 (0.90) 31.27
8.91 8.21 8.98 8.17
0.00 (0.00) 0.00 (0.00)
7.24 (0.76) 16.22
2.25 2.30 3.17 3.20 3.45 3.50 2.35 2.40
4.28 (0.23) 1.70 (0.11) 1.94 (0.14) 3.70 (0.30)
0.00 (0.00) 0.00 (0.00)
3.95 (0.95) 10.53
1.25 1.25 0.98 0.96 0.75 0.74 1.35 1.37 1.40 1.41 1.23 1.21 0.76 0.74 1.33 1.35
0.00 (0.00) 0.27 (0.03) 1.63 (0.14) 0.75 (0.05) 0.78 (0.06) 1.27 (0.12) 0.89 (0.06) 0.00 (0.00)
2.20 (0.25) 0.87 (0.11) 0.93 (0.11) 1.92 (0.28)
0.00 (0.00) 0.00 (0.00)
2.29 (0.74) 5.86
Ordering: (AMMF,ND),
0
1 2
3
4
5
K
<L
8
59
:
.
(a)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 total
14.92 14.83
7.02 (0.49) 21.94
6.12 6.15 5.71 5.81
2.59 (0.20) 3.28 (0.26)
3.51 (0.44) 12.60
2.62 2.68 2.85 2.80 2.42 2.37 2.50 2.55
0.78 (0.07) 0.54 (0.04) 1.06 (0.09) 0.82 (0.07)
1.35 (0.20) 1.64 (0.22)
1.90 (0.58) 7.02
0.78 0.75 1.00 1.00 1.00 0.98 1.32 1.30 0.78 0.73 1.37 1.40 0.94 0.97 0.52 0.51
1.13 (0.09) 0.85 (0.11) 1.07 (0.09) 0.55 (0.04) 0.89 (0.07) 0.00 (0.00) 0.72 (0.06) 1.46 (0.13)
0.42 (0.08) 0.29 (0.05) 0.57 (0.08) 0.44 (0.05)
0.82 (0.23) 0.94 (0.30)
1.17 (0.41) 4.53
Ordering: (AMMF,AMMF),
0
1 2
3
4
59
6
6
8
59
:
.
(b)
Tab. 5.8: Laufzeiten (in Sek.) zur Berechnung des Cholesky-Faktors von MAT02HBF in Abh¨angigkeit
von dem gew¨ahlten Ordering.
132
Kapitel 5. Symbolische und numerische Faktorisierung
Kapitel 6
Zusammenfassung und Ausblick
In dieser Arbeit wurden Algorithmen zur schnellen Faktorisierung großer, d¨unn besetzter, positiv
definiter Matrizen vorgestellt. Dabei haben wir uns zun¨achst auf die Berechnung einer guten
Pivotreihenfolge konzentriert. Wir entwickelten ein Ordering-Verfahren, in dem die klassischen
Bottom-up- und Top-down-Methoden auf eine neue Art und Weise miteinander verkn¨upft sind.
Anschließend wurde ein effizienter Algorithmus zur numerischen Faktorisierung vorgestellt. Der
Algorithmus basiert auf der Multifrontal-Methode und benutzt einen numerischen Kern, der auf
Bl¨ocken der Gr¨oße
M%NOM
arbeitet. Bei der Parallelisierung des Algorithmus sind wir von einem
verteilten System ausgegangen, dessen Verbindungsnetzwerk einem Hypercube entspricht.
Zusammenfassung In Kapitel 3 haben wir am Beispiel des
PQNRP
-Gitters gezeigt, daß die
G¨ute eines Orderings ganz entscheidend von der Form der Gebiete abh¨angt, die im Rahmen
des Eliminationsprozesses entstehen. Der Aufwand zur Faktorisierung einer Laplace-Matrix mit
5-Punkte-Operator kann im Vergleich zu Georges Nested-Dissection-Ordering durch eine ein-
fache 45 Grad Drehung der Gitterseparatoren um fast die H¨alfte reduziert werden. Die exakte
Analyse des verbesserten Nested-Dissection-Verfahrens hat gezeigt, daß hierf¨ur die speziellen
isoperimetrischen Eigenschaften des Gitters verantwortlich sind. Werden n¨amlich die Separato-
ren um 45 Grad gedreht, so entstehen im Laufe des Eliminationsprozesses keine quadratischen,
sondern rautenf¨ormige Gebiete. In einem Gitter mit 5-Punkte-Stern ist das Verh¨altnis von Inhalt
zu Umfang f¨ur rautenf¨ormige Gebiete etwa doppelt so groß wie f¨ur quadratische Gebiete. Inter-
essanterweise entstehen die rautenf¨ormigen Gebiete auch bei einem Minimum-Degree-Ordering
mit Minimum-Deficiency-Tie-Breaking-Strategie.
Im Mittelpunkt des Kapitels 4 stand die Entwickelung eines verbesserten Ordering-Verfah-
rens f¨ur beliebige Graphen. Characteristisch f¨ur das Verfahren ist, daß Knotenseparatoren als
R¨ander eines unvollst¨andigen Bottom-up-Orderings interpretiert werden. Im Umkehrschluß set-
zen sich also Knotenseparatoren aus Randsegmenten einzelner Gebiete zusammen. Diese Beob-
achtung motivierte die Entwicklung eines neuartigen Multilevel-Verfahrens. In dem neuen Ver-
fahren wird der urspr¨ungliche Graph durch eine Folge von Quotientengraphen approximiert. Die
133
134
Kapitel 6. Zusammenfassung und Ausblick
Quotientengraphen entstehen durch einen Eliminationsprozeß, der dem zur Berechnung eines
Bottom-up-Orderings sehr ¨ahnlich ist. Jeder Quotientengraph stellt eine Gebietszerlegung dar.
Ziel ist es, eine ¨
Uberdeckung des Graphen mit ungef¨ahr gleich großen Gebieten zu finden, deren
Aspekt-Ratio klein ist. Wir haben gezeigt, daß sich dieses Ziel am besten erreichen l¨aßt, wenn zur
Bildung der Quotientengraphen eine Minimum-Degree-Heuristik benutzt wird. Jeder Separator
eines Quotientengraphen induziert einen Separator des urspr¨unglichen Graphen. Zur Minimie-
rung der Separatoren benutzen wir die von Ashcraft und Liu vorgestellte F¨arbungstechnik. Im
Gegensatz zum Vertex-Fiduccia-Mattheyses-Algorithmus k¨onnen mit Hilfe der F¨arbungstechnik
ganze Knotenmengen in einem Austauschschritt verschoben werden. Die F¨arbungstechnik ist
damit sehr viel m¨achtiger als der Vertex-Fiduccia-Mattheyses-Algorithmus. Trotzdem besitzt die
von uns entwickelte iterative Verbesserungsheuristik die gleiche niedrige Laufzeit. Eine zwei-
te Besonderheit unseres Ordering-Verfahrens besteht darin, daß die Knotenseparatoren als ein
Ger¨ust zur Bestimmung mehrerer Bottom-up-Orderings benutzt werden. Diese Vorgehenswei-
se ist motiviert durch den Umstand, daß die Elimination der Knotenseparatoren entsprechend
ihrer Rekursionstiefe genau dann vorteilhaft ist, wenn durch die Anordnung der Separatoren Ge-
biete mit einem kleinen Aspekt-Ratio entstehen. Experimentelle Ergebnisse haben gezeigt, daß
mit Hilfe des neuen Ordering-Verfahrens der Aufwand zur Berechnung des Cholesky-Faktors im
Vergleich zum besten derzeit bekannten Bottom-up-Algorithmus um durchschnittlich 42% redu-
ziert werden kann. Eine derartige Verbesserung ist mit state-of-the-art Algorithmen wie METIS,
SCOTCH oder SPOOLES nicht zu erreichen.
In Kapitel 5 besch¨aftigten wir uns mit der symbolischen und numerischen Faktorisierung.
Bei dem Design des sequentiellen Algorithmus standen Techniken zur Steigerung der Cache-
und Registereffizienz im Vordergrund. Wir haben gezeigt, daß durch die Multifrontal-Methode
und die Verwendung eines numerischen Kerns der Gr¨oße
MNSM
die von modernen Computern
bereitgestellte Floating-Point-Leistung sehr effektiv genutzt werden kann. Die Parallelisierung
des sequentiellen Faktorisierungsalgorithmus basiert auf dem 2-dimensionalen Mapping-Sche-
ma von Gupta et al. [63, 66]. Wir haben exemplarisch an zwei Beispielen gezeigt, daß die von
unserem Verfahren berechneten Orderings auch im parallelen Fall zu einer signifikanten Be-
schleunigung der numerischen Faktorisierung f¨uhren.
Ausblick Aufgrund ihrer enormen Bedeutung f¨ur die Faktorisierung d¨unn besetzter, positiv
definiter Matrizen steht die Entwicklung verbesserter Ordering-Verfahren im Vordergrund zahl-
reicher Forschungsaktivit¨aten. Wir wollen abschließend auf drei offene Fragen n¨aher eingehen:
T
Anordnung der Knotenseparatoren
Wie bereits in Abschnitt 4.2.3 dargelegt, besteht die wesentliche Schw¨ache eines Top-
down-Verfahrens wie Nested-Dissection darin, daß bei der Bestimmung eines Knotense-
parators
U
f¨ur einen Graphen
VXW
der aus bereits konstruierten Separatoren bestehende Rand
von
V
W
unber¨ucksichtigt bleibt. Am Beispiel des
PYNZP
-Gitters mit 5-Punkte-Stern haben
wir gesehen, daß die ”Geometrie“ eines Graphen durch Gebiete mit kleinem Aspekt-Ratio
135
¨uberdeckt werden sollte. Ein Nested-Dissection-Ordering erreicht dieses Ziel – wenn ¨uber-
haupt – nur indirekt ¨uber eine Minimierung der Separatoren. Die L¨osung des Problems
scheint auf den ersten Blick recht einfach zu sein: man muß nur den Rand der Teilgraphen
V%[]\_^
und
V#[\_^
in die Bewertung einer Partitionierung
[`Uba\%acd^
mit einfließen lassen.
Wie dieses effektiv geschehen kann, ist jedoch bis heute ein offenes Problem [4].
T
Zusammenspiel zwischen Ordering- und Mapping-Verfahren
Die parallele Faktorisierung stellt eine weitere Anforderung an den Ordering-Prozeß: Die
Struktur eines Frontbaumes sollte so beschaffen sein, daß eine effiziente Verteilung der
Fronten auf die Prozessoren m¨oglich ist. Die parallele Ausf¨uhrungszeit kann mit Hilfe ei-
nes geeignet definierten Task-Graphen abgesch¨atzt werden. Ein gutes Ordering sollte dann
zus¨atzlich die Eigenschaft besitzen, daß der aus dem Frontbaum abgeleitete Task-Graph
einen m¨oglichst kurzen kritischen Pfad besitzt. Die Frage ist nun, wie diese Anforde-
rung bereits bei der Berechnung eines Orderings ber¨ucksichtigt werden kann. Einen ersten
L¨osungsansatz liefert des dreistufige Multisection-Verfahren. Es besitzt die Eigenschaft,
ein Ordering aus mehreren Ordering-Modulen zusammenzusetzen. Bei diesem Zusam-
mensetzen k¨onnen die spezifischen Anforderungen einer parallelen Faktorisierung ber¨uck-
sichtigt werden. Eine Arbeit zu diesem Thema ist in Vorbereitung. Sie wird im Rahmen
eines Minisymposiums auf der zehnten SIAM Konferenz Parallel Processing for Scientific
Computing vorgestellt.
T
Parallele Berechnung eines Orderings
Eine der gr¨oßten Herausforderungen im Bereich der direkten L¨osungsverfahren besteht
in der Fromulierung eines skalierbaren, parallelen Algorithmus, der alle vier Schritte zur
L¨osung d¨unn besetzter Gleichungssysteme umfaßt. An dieser Stelle sei insbesondere auf
die Arbeiten an den Universit¨aten von Bordeaux [73] und Minnesota [77] hingewiesen.
W¨ahrend das Programm PASTIX von Henon et al. [73] einen sequentiellen Ordering-
Algorithmus benutzt, ist in dem Programm PSPACES von Joshi et al. [77] ein paralleles
Nested-Dissection-Verfahren integriert. Kern des Verfahrens ist ein paralleler Multilevel-
Algorithmus zur Bestimmung von Kantenseparatoren (vgl. Karypis und Kumar [80]). Ty-
pischerweise generieren Nested-Dissection-Verfahren, deren Knotenseparatoren aus Kan-
tenseparatoren abgeleitet werden, einen h¨oheren Fill-in als moderne Bottom-up-Verfahren.
Es stellt sich hier die Frage, ob zur effizienten parallelen Berechnung eines Orderings nicht
ganz neue Ans¨atze entwickelt werden m¨ussen.
Alle diese Fragestellungen zeigen, daß die Entwicklung von neuen Ordering-Verfahren auch
zuk¨unftig ein interessantes Forschungsgebiet darstellt. In dieser Arbeit haben wir gezeigt, wie
bestehende Verfahren durch eine engere Koppelung von Bottom-up und Top-down-Methoden
verbessert werden k¨onnen. Dies gilt sowohl hinsichtlich der sequentiellen als auch hinsichtlich
der parallelen Faktorisierung.
Literaturverzeichnis
[1] P.R. Amestoy, T.A. Davis, I.S. Duff, An approximate minimum degree ordering algorithm, SIAM
J. Matrix Anal. Appl., Vol. 17, 886–905, 1996.
[2] C. Ashcraft, The fan-both family of column-based distributed Cholesky factorization algorithms in
Graph Theory and Sparse Matrix Computations, A. George, J.R. Gilbert, J.W.H. Liu (Eds.), The
IMA Volumes in Mathematics and its Applications, Vol. 56, 1993.
[3] C. Ashcraft, Compressed graphs and the minimum degree algorithm, SIAM J. Sci. Comput., Vol.
16, No. 6, 1404–1411, 1995.
[4] C. Ashcraft, Sparse Direct Methods, Volume 1: Orderings for Matrices with Symmetric Structure,
Preprint, February, 2000.
[5] C. Ashcraft, S.C. Eisenstat, J.W.H. Liu, A. Sherman, A comparison of three column based dis-
tributed sparse factorization schemes, Proc. 5th SIAM Conf. on Parallel Processing for Scientific
Computing, 1991.
[6] C. Ashcraft, S.C. Eisenstat, J.W.H. Liu, A fan-in algorithm for distributed sparse numerical facto-
rization, SIAM J. Sci. Stat. Comput., Vol. 11, No. 3, 593–599, 1990.
[7] C. Ashcraft, R. Grimes, The influence of relaxed supernode partitions on the multifrontal method,
ACM Trans. Math. Software, Vol. 15, No. 4, 291–309, 1989.
[8] C. Ashcraft, R. Grimes, SPOOLES: an object-oriented sparse matrix library, 9th SIAM Confe-
rence on Parallel Processing for Scientific Computing, March 1999, San Antonio, Texas.
[9] C. Ashcraft, R. Grimes, J.G. Lewis, B.W. Peyton, H.D. Simon, Progress in sparse matrix methods
for large linear systems on vector supercomputers, Internat. J. Supercomputer Appl., Vol. 1, 10–
29, 1987.
[10] C. Ashcraft, J.W.H. Liu, A partition improvement algorithm for generalized nested dissection,
Tech. Rep. BCSTECH-94-020, Boeing Computer Services, Seattle, 1994.
[11] C. Ashcraft, J.W.H. Liu, Generalized nested dissection: Some recent progress, Mini Symposium
5th SIAM Conference on Applied Linear Algebra, Snowbird, Utah, 1994.
[12] C. Ashcraft, J.W.H. Liu, Using domain decomposition to find graph bisectors, BIT J. of Numerical
Mathematics 37, 506–534, 1997.
[13] C. Ashcraft, J.W.H. Liu, Applications of the Dulmage-Mendelsohn decomposition and network
flow to graph bisection improvement, SIAM J. Matrix Anal. Appl., Vol. 19, 325–354, 1998.
[14] C. Ashcraft, J.W.H. Liu, Robust ordering of sparse matrices using multisection, SIAM. J. Matrix
Anal. Appl., Vol. 19, No. 3, 816–832, 1998.
137
138
Literaturverzeichnis
[15] C. Ashcraft, J.W.H. Liu, S.C. Eisenstat, Practical extensions of the multisection ordering for sparse
matrices, 6th SIAM Conference on Applied Linear Algebra, Snowbird, Utah, October 29, 1997.
[16] R.K. Ahuja, T.L. Magnanti, J.B. Orlin, Network Flows: Theory, Algorithms, and Applications,
Prentice Hall, Upper Saddle River, NJ, 1993.
[17] S.T. Barnard, H.D. Simon, A fast multilevel implementation of recursive spectral bisection, Proc.
of 6th SIAM Conf. Parallel Processing for Scientific Computing, 711–718, 1993.
[18] S.T. Barnard, A. Pothen, H.D. Simon, A spectral algorithm for envelope reduction of sparse ma-
trices, Num. Lin. Algebra Appl., Vol 2, No. 4, 317–334, 1995.
[19] M.V. Bhat, W.G. Habashi, J.W.H. Liu, V.N. Nguyen, M.F. Peeters, A note on nested dissection for
rectangular grids, SIAM J. Matrix Anal. Appl., Vol. 14, No. 1, 253–258, 1993.
[20] Benoit, Note sur une m´
ethode de r´
esolution des ´
equations normales etc. (Proc´
ed´
e du commandant
Cholesky), Bull. g´eod´esique 3, 67–77, 1924.
[21] P. Berman, G. Schnitger, On the performance of the minimum degree ordering for Gaussian elimi-
nation, SIAM J. Matrix Anal. Appl., Vol. 11, No. 1, 83–88, 1990.
[22] E.G. Boman, B. Hendrickson, A multilevel algorithm for reducing the envelope of sparse matrices,
Tech. Rep. SCCM-96-14, Stanford University, 1996.
[23] C.F. Bornstein, B.M. Maggs, G.L. Miller, Tradeoffs between parallelism and fill in nested dis-
section, Proc. of 11th ACM Symposium on Parallel Algorithms and Architectures (SPAA), 191–
200, 1999.
[24] T. Bui, C. Jones, A heuristic for reducing fill-in in sparse matrix factorization, Proc. 6th SIAM
Conference on Parallel Processing for Scientific Computing, 445–452, 1993.
[25] I.A. Cavers, Using deficiency measure for tiebreaking the minimum degree algorithm, Tech. Rep.
89-2, Dept. of Computer Science, Univ. of British Columbia, Vancouver, 1989.
[26] E. Cuthill, J. McKee, Reducing the bandwidth of sparse symmetric matrices, Proc. of 24th Nat.
Conf. of the ACM, 157–172, 1969.
[27] A.C. Damhaug, Sparse solution of finite element equations, PhD Thesis, Department of Structual
Engeneering, The Norwegian Institute of Technology, Trondheim, Norway, 1992.
[28] T. Davis, University of Florida Sparse Matrix Collection, http://www.cise.ufl.edu/˜davis/sparse/,
ftp://ftp.cise.ufl.edu/pub/faculty/davis/matrices, NA Digest, Vol. 92, No. 42, October 16, 1994, NA
Digest, Vol. 96, No. 28, July 23, 1996, and NA Digest, Vol. 97, No. 23, June 7, 1997.
[29] G.A. Dirac, On rigid circuit graphs, Abh. Math. Sem. Univ. Hamburg, 25, 71–76, 1961.
[30] J.J. Dongarra, J. Du Croz, S. Hammarling, I.S. Duff, A set of level 3 basic linear algebra subpro-
grams, ACM Trans. Math. Software, Vol. 16, No. 1, 1–17, 1990.
[31] J.J. Dongarra, S.C. Eisenstat, Squeezing the most out of an algorithm in Cray Fortran, ACM Trans.
Math. Software, Vol. 10, 219–230, 1984.
[32] I.S. Duff, Full matrix techniques in sparse Gaussian elimination in Lecture Notes in Math. (912)
G.A. Watson (Ed.), Springer Verlag, New York, 71–84, 1982.
[33] I.S. Duff, A.M. Erisman, J.K. Reid, Direct Methods for Sparse Matrices, Oxford University Press,
Oxford, 1987.
Literaturverzeichnis
139
[34] I.S. Duff, R.G. Grimes, J.G. Lewis, Users’ guide for the Harwell-Boeing sparse matrix collection,
Tech. Rep. TR/PA/92/86, Res. and Techn. Division, Boeing Computer Services, Seattle, 1992.
[35] I.S. Duff, J.K. Reid, The multifrontal solution of indefinite sparse symmetric linear equations,
ACM Trans. Math. Software, Vol. 9, 302–325, 1983.
[36] I.S. Duff, J.K. Reid, The multifrontal solution of unsymmetric sets of linear equations, SIAM J.
Sci. Statist. Comput., Vol. 5, 633–641, 1984.
[37] I.S. Duff, J.K. Reid, Exploiting zeros on the diagonal in the direct solution of indefinite sparse
symmetric linear systems, ACM Trans. Math. Softw., 22, 227–257, 1996.
[38] I.S. Duff, J.K. Reid, J.A. Scott, The use of profile reduction algorithms with a frontal code, Int. J.
Numer. Meth. Engin., Vol. 28, 2555–2568, 1989.
[39] A. Dulmage, N. Mendelsohn, Coverings of bipartite graphs, Can. J. Math., Vol. 10, 517–534, 1958.
[40] S.C. Eisenstat, M.H. Schultz, A.H. Sherman, Algorithms and data structures for sparse symmetric
Gaussian elimination, SIAM J. Sci. Stat. Comput., Vol. 2, No. 2, 225–237, 1981.
[41] S.C. Eisenstat, M.H. Schultz, A.H. Sherman, Applications of an element model for Gaussian eli-
mination, in Sparse Matrix Computations, J. Bunch, D. Rose (Eds), Academic Press, New York,
85–96, 1976.
[42] C.M. Fiduccia, R.M. Mattheyses, A linear-time heuristic for improving network partitions, 19th
IEEE Design Automation Conference, 175–181, 1982.
[43] A. Frommer, L¨
osung linearer Gleichungssysteme auf Parallelrechnern, Vieweg Verlag, 1990.
[44] D. Fulkerson, O. Gross, Incidence matrices and interval graphs, Pacific J. Math., 15, 835–
855, 1965.
[45] K.A. Gallivan, R.J. Plemmons, A.H. Sameh, Parallel algorithms for dense linear algebra compu-
tations, SIAM Review Vol. 32, No. 1, 54–135, 1990.
[46] G.A. Geist, E. Ng, Task scheduling for parallel sparse Cholesky factorization, International Journal
of Parallel Programming, Vol. 18, No. 4, 291–314, 1989.
[47] A. George, Computer implementation of the finite element method, Tech. Rep. STAN-CS-71-208,
Dept. of Computer Science, Stanford University, 1971.
[48] A. George, Nested dissection of a regular finite element mesh, SIAM J. Numer. Anal., Vol. 10, No.
2, 345–363, 1973.
[49] A. George, An automaticone-way dissectionalgorithm for irregular finite element problems, SIAM
J. Numer. Anal., Vol. 17, No. 6, 740–751, 1980.
[50] A. George, M.T. Heath, J.W.H. Liu, E. Ng, Sparse Cholesky factorization on a local-memory mul-
tiprocessor, SIAM J. Sci. Stat. Comput., Vol. 9, No. 2, 327–340, 1988.
[51] A. George, J.W.H. Liu, An automatic nested dissection algorithm for irregular finite element pro-
blems, SIAM J. Numer. Anal., Vol. 15, No. 5, 1053–1069, 1978.
[52] A. George, J.W.H. Liu, A fast implementation of the minimum degree algorithm using quotient
graphs, ACM Trans. Math. Software, Vol. 6, 337–358, 1980.
[53] A. George, J.W.H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-
Hall, Englewood Cliffs, NJ, 1981.
140
Literaturverzeichnis
[54] A. George, J.W.H. Liu, The evolution of the minimum degree ordering algorithm, SIAM Review,
Vol. 31, No. 1, 1–19, 1989.
[55] A. George, J.W.H. Liu, E. Ng, Communication results for parallel sparse Cholesky factorization
on a hypercube, Parallel Computing 10, 287–298, 1989.
[56] A. George, J.W. Poole, R. Voigt, Incomplete nested dissection for solving
e
by
e
grid problems,
SIAM J. Numer. Anal., Vol. 15, 663–673, 1978.
[57] N.E. Gibbs, Algorithm 509: A hybrid profile reduction algorithm, ACM Trans. Math. Software,
Vol. 2, 378–387, 1976.
[58] N.E. Gibbs, W.G. Poole, P.K. Stockmeyer, An algorithm for reducing the bandwidth and profile of
a sparse matrix, SIAM J. Numer. Anal., Vol. 13, No. 2, 236–250, 1976.
[59] J.R. Gilbert, C. Moler, R. Schreiber, Sparse matrices in MATLAB: design and implementation,
SIAM J. Matrix Anal. Appl., Vol. 13, 333–356, 1992.
[60] J.R. Gilbert, R. Schreiber, Highly parallel sparse Cholesky factorization, SIAM J. Sci. Stat. Com-
put., Vol. 13, No. 5, 1151–1172, 1992.
[61] J.R. Gilbert, R.E. Tarjan, The analysis of a nested dissection algorithm, Numerische Mathematik,
Vol. 50, 377–404, 1987.
[62] T. Goehring, Y. Saad, Heuristic algorithms for automatic graph partitioning, Tech. Rep., Dept. of
Computer Science, Univ. of Minnesota, 1994.
[63] A. Gupta, Analysis and design of scalable parallel algorithms for scientific computing, Ph.D. The-
sis, Dept. of Computer Science, Univ. of Minnesota, 1995.
[64] A. Gupta, WGPP: Watson graph partitioning (and sparse matrix ordering) package, users manual,
IBM T.J. Watson Research Center, Research Report RC 20453, New York, 1996.
[65] A. Gupta, Fast and effective algorithms for graph partitioning and sparse matrix ordering, IBM
T.J. Watson Research Center, Research Report RC 20496, New York, 1996.
[66] A. Gupta, G. Karypis, V. Kumar, Highly scalable parallel algorithms for sparse matrix factoriza-
tion, IEEE Trans. on Parallel and Distributed Systems, Vol. 8, No. 5, 502–520, 1997,
[67] M.T. Heath, E. Ng, B.W. Peyton, Parallel algorithms for sparse linear systems, SIAM Review, Vol.
33, No. 3, 420–460, 1991.
[68] B. Hendrickson, R. Leland, The CHACO user’s guide, Tech. Rep. SAND94-2692, Sandia Nat.
Lab., 1994.
[69] B. Hendrickson, R. Leland, An improved spectral graph partitioning algorithm for mapping par-
allel computations, SIAM J. Sci. Comput., Vol. 16, 1995.
[70] B. Hendrickson, R. Leland, A multilevel algorithm for partitioning graphs, Proc. of 7th Supercom-
puting Conf., 1995.
[71] B. Hendrickson, E. Rothberg, Effective sparse matrix ordering: just around the BEND, Proc. of
8th SIAM Conf. Parallel Processing for Scientific Computing, 1997.
[72] B. Hendrickson, E. Rothberg, Improving the runtime and quality of nested dissection ordering,
SIAM J. Sci. Comput., Vol. 20, No. 2, 468–489, 1998.
Literaturverzeichnis
141
[73] P. Henon, P. Ramet, J. Roman, PaStiX: A parallel sparse direct solver based on a static scheduling
for mixed (1D/2D) block distributions, Proc. Irregular 2000, LNCS 1800, 519–525, 2000.
[74] A.J. Hoffman, M.S. Martin, D.J. Rose, Complexity bounds for regular finite difference and finite
element grids, SIAM J. Numer. Anal., Vol. 10, No. 2, 364–369, 1973.
[75] J.E. Hopcroft, R.M. Karp, An
egf'hji
algorithm for maximum matchings in bipartite graphs, SIAM
J. Comp., Vol. 2, 225–231, 1973.
[76] L. Hulbert, E. Zmijewski, Limiting communication in parallel sparse Cholesky factorization,
SIAM J. Sci. Stat. Comput., Vol. 12, No. 5, 1184–1197, 1991.
[77] M. Joshi, G. Karypis, V. Kumar, A. Gupta, F. Gustavson, PSPACES: Scalable parallel direct sol-
ver library for sparse symmetric positive definite linear systems, Technical Report, University of
Minnesota and IBM Thomas J. Watson Research Center, 1999.
[78] G. Karypis, V. Kumar, A fast and high quality multilevel scheme for partitioning irregular graphs,
SIAM J. Sci. Comput., Vol. 20, No. 1, 1999.
[79] G. Karypis, V. Kumar, METIS: a software package for partitioning unstructured graphs, partitio-
ning meshes, and computing fill-reducing orderings of sparse matrices (Version 4.0), Tech. Rep.,
Dept. of Computer Science, Univ. of Minnesota, 1998.
[80] G. Karypis, V. Kumar, A parallel algorithm for multilevel graph partitioning and sparse matrix
ordering, J. of Parallel and Distributed Computing, Vol. 48, 71–95, 1998.
[81] B.W. Kernighan, S. Lin, An effective heuristic procedure for partitioning graphs, The Bell Systems
Technical Journal, 291–308, 1970.
[82] I.P. King, An automatic reordering scheme for simultaneous equations derived from network pro-
blems, Int. J. Numer. Meth. Engin., Vol. 2, 523–533, 1970.
[83] D.E. Knuth, The Art of Computer Programming: Fundamental Algorithms, Addison Wesley, 1973.
[84] V. Kumar, A. Grama, A. Gupta, G. Karypis, Introduction to Parallel Computing: Design and Ana-
lysis of Algorithms, Benjamin Cummings Publishing Company, Redwood City, CA, 1994.
[85] G. Kumfert, A. Pothen, Two improved algorithms for envelope and wavefront reduction, to appear
in the BIT J. of Numerical Mathematics, 1996.
[86] D. K¨onig, ¨
Uber Graphen und ihre Anwendung auf Determinantentheorie und Mengenlehre, Math.
Ann., 77, 453–465, 1916.
[87] F.T. Leighton, Einf¨
uhrung in Parallele Algorithmen und Architekturen: Gitter, B¨
aume und Hy-
percubes,¨
Ubers. aus dem Amerikan. von B. Monien, M. R¨ottger und U.-P. Schroeder, Internat.
Thomson Publ., 1997.
[88] C.E. Leiserson, J.G. Lewis, Ordering for parallel sparse symmetric factorization, in Parallel Pro-
cessing for Scientific Computing, SIAM, Philadelphia, 27–31, 1989.
[89] R.J. Lipton, R.E. Tarjan, A separator theorem for planar graphs, SIAM J. Appl. Math., Vol. 36,
177–189, 1979.
[90] R.J. Lipton, D.J. Rose, R.E. Tarjan, Generalized nested dissection, SIAM J. Numer. Anal., Vol. 16,
No. 2, 346–358, 1979.
142
Literaturverzeichnis
[91] J.W.H. Liu, Modification of the minimum-degree algorithm by multiple elimination, ACM Trans.
Math. Software, Vol. 11, No. 2, 141–153, 1985.
[92] J.W.H. Liu, On the storage requirement in the out-of-core multifrontal method for sparse factori-
zation, ACM Trans. Math. Software, Vol. 12, 249–264, 1986.
[93] J.W.H. Liu, The minimum degree ordering with constraints, SIAM J. Sci. Stat. Comput., Vol. 10,
No. 6, 1136–1145, 1989.
[94] J.W.H. Liu, A graph partitioning algorithm by node separators, ACM Trans. Math. Software, Vol.
15, No. 3, 198–219, 1989.
[95] J.W.H. Liu, The multifrontal method and paging in sparse Cholesky factorization, ACM Trans.
Math. Software, Vol. 15, 310–325, 1989.
[96] J.W.H. Liu, The role of elimination trees in sparse factorization, SIAM J. Matrix Anal. Appl., Vol.
11, No. 1, 134–172, 1990.
[97] J.W.H. Liu, The multifrontal method for sparse matrix solutions: theory and practice, SIAM Re-
view, Vol. 34, No. 1, 82–109, 1992.
[98] J.W.H. Liu, E.G. Ng, B.W. Peyton, On finding supernodes for sparse matrix computations, SIAM
J. Matrix Anal. Appl., Vol. 14, No. 1, 242–252, 1993.
[99] J.W.H. Liu, A.H. Sherman, Comparative analysis of the Cuthill-McKee and the reverse Cuthill-
McKee ordering algorithms for sparse matrices, SIAM J. Numer. Anal., Vol. 13, 198–213, 1976.
[100] R. Lucas, T. Blank, J. Tiemann, A parallel solution method for large sparse systems of equations,
IEEE Trans. Computer-Aided Design, CAD-6, 981–991, 1987.
[101] C.L. Lawson, R.J. Hanson, D.R. Kincaid, F.T. Krogh, Basic linear algebra subprograms for FORT-
RAN usage, ACM Trans. Math. Software, Vol. 5, No. 3, 308–323, 1979.
[102] H.M. Markowitz, The elimination form of the inverse and its application to linear programming,
Management Science, Vol. 3, 255–269, 1957.
[103] C. Meszaros, The inexact minimum local fill-in ordering algorithm, Tech. Rep. WP 95 7, Computer
and Automation Research Institute, Hungarian Academy of Sciences, Budapest, 1995.
[104] B. Monien, R. Preis, R. Diekmann, Quality matching and local improvement for multilevel graph-
partitioning, to appear in Special Issue of ‘Parallel Computing’, 2000.
[105] E. Ng, B.W. Peyton, Block sparse Cholesky algorithms on advanced uniprocessor computers,
SIAM J. Sci. Comput., Vol. 14, 1034–1056, 1993.
[106] G.H. Paulino, I.F.M. Menezes, M. Gattass, S. Mukherjee, Node and element resequencing using
the laplacian of a finite element graph, Int. J. Num. Meth. Engin., Vol. 37, 1511–1530, 1994.
[107] C.H. Papadimitriou, The NP-completeness of the bandwidth minimization problem, Computing 16,
263–270, 1976.
[108] S.V. Parter, The use of linear graphs in Gauss elimination, SIAM Review, Vol. 3, 119–130, 1961.
[109] F. Pellegrini, SCOTCH and LibSCOTCH 3.3 User’s Guide, Tech. Rep., LaBRI, UMR CNRS 5800,
Universite Bordeaux I, 1999.
Literaturverzeichnis
143
[110] F. Pellegrini, J. Roman, SCOTCH: A software package for static mapping by dual recursive bi-
partitioning of process and architecture graphs, Proc. of HPCN’96, Brussels, LNCS 1067, 493–
498, 1996.
[111] F. Pellegrini, J. Roman, P. Amestoy, Hybridizing nested dissection and halo approximate minimum
degree for efficient sparse matrix ordering, Proc. Irregular’99, LNCS 1586, 986–995, 1999.
[112] A. Pothen, C.-J. Fan, Computing the block triangular form of a sparse matrix, ACM Trans. Math.
Software, Vol. 16, No. 4, 303–324, 1990.
[113] A. Pothen, H.D. Simon, K.-P. Liou, Partitioning sparse matrices with eigenvectors of graphs,
SIAM J. Matrix Anal. Appl., Vol. 11, No. 3, 430–452, 1990.
[114] A. Pothen, C. Sun, A mapping algorithm for parallel sparse Cholesky factorization, SIAM J. Sci.
Comput., Vol. 14, No. 5, 1253–1257, 1993.
[115] R. Preis, R. Diekmann, The PARTY partitioning library user guide – version 1.1, Tech. Rep., Dept.
of Computer Science, Univ. of Paderborn, 1996.
[116] P. Raghavan, Parallel ordering using edge contraction, Tech. Rep. CS-95-293, Dept. of Computer
Science, Univ. of Tennessee, 1995.
[117] J.K. Reid, TREESOLVE, a Fortran package for solving large sets of linear finite element equations,
Tech. Rep. CSS 155, Computer Science and Systems Division, AFRE Harwell, 1984
[118] D.J. Rose, A graph-theoretic study of the numerical solution of sparse positive definite systems
of linear equations, in Graph-Teory and Computing, R. Read (Ed.), Academic Press, New York,
183–217, 1972.
[119] D.J. Rose, R.E. Tarjan, G.S. Luecker, Algorithmic aspects of vertex elimination on graphs, SIAM
J. Comput., Vol. 5, No. 2, 266–283, 1976.
[120] D.J. Rose, G.F. Whitten, A recursive analysis of dissection strategies, in Sparse Matrix Computa-
tions, J. Bunch, D. Rose (Eds.), Academic Press, New York, 59–84, 1976.
[121] E. Rothberg, Exploiting the memory hierarchy in sequential and parallel sparse Cholesky factori-
zation, Ph.D. thesis, Stanford University, 1993.
[122] E. Rothberg, Robust ordering of sparse matrices: a minimum degree, nested dissection hybrid,
Silicon Graphics manuscript, 1995.
[123] E. Rothberg, Exploring the tradeoff between imbalance and separator size in nested dissection
ordering, Silicon Graphics manuscript, 1996.
[124] E. Rothberg, Performance of panel and block approaches to sparse Cholesky factorization on the
iPSC/860 and PARAGON multicomputers, SIAM J. Sci. Comput., Vol. 17, No. 3, 699–713, 1996.
[125] E. Rothberg, S.C. Eisenstat, Node selection strategies for bottom-up sparse matrix ordering, SIAM
J. Matrix Anal. Appl., Vol. 19, No. 3, 682–695, 1998.
[126] E. Rothberg, A. Gupta, An efficient block-oriented approach to parallel sparse Cholesky factoriza-
tion, SIAM J. Sci. Comput., Vol. 15, No. 6, 1413–1439, 1994.
[127] R. Schreiber, A new implementation of sparse Gaussian elimination, ACM Trans. Math. Software,
Vol. 8, 256–276, 1982.
144
Literaturverzeichnis
[128] R. Schreiber, Scalability of sparse direct solvers, in Sparse Matrix Computations: Graph Theory
Issues and Algorithms, J.R. Gilbert, J.W.H. Liu (Eds.), Springer Verlag, 1992.
[129] J. Schulze, R. Diekmann, R. Preis, Comparing nested dissection orderings for parallel sparse ma-
trix factorization, Int. Conf. on Par. and Distr. Processing Techn. and Appl. (PDPTA’95), H.R. Ar-
abnia (ed.), CSREA-Press, 280-289, 1995.
[130] J. Schulze, Parallel sparse Cholesky factorization, in Multiscale Phenomena and Their Simulation,
F. Karsch, B. Monien, H. Satz (Eds.), World Scientific, 1997.
[131] J. Schulze, PORD: A software library for computing fill-reducing orderings of sparse positive de-
finite matrices (Version 1.2), User’s manual, Dep. of Computer Science, Univ. of Paderborn, 1999.
[132] J. Schulze, Towards a tighter coupling of bottom-up and top-down sparse matrix ordering schemes,
to appear in the BIT J. of Numerical Mathematics, 2000.
[133] J. Schulze, A new multilevel scheme for the construction of vertex separators, Mini Symposium
7th SIAM Conference on Applied Linear Algebra, Raleigh, North Carolina, 2000.
[134] H.R. Schwarz, Numerische Mathematik, Teubner Verlag, 4. Aufl., 1997.
[135] S.W. Sloan, An algorithm for profile and wavefront reduction of sparse matrices, Intl. J. Num.
Meth. Eng., Vol. 23, 239–251, 1986.
[136] B. Speelpenning, The generalized element model, Tech. Rep. UIUCDCS-R-78-946, Dept. of Com-
puter Science, Univ. of Illinois, 1978.
[137] J. Stoer, Numerische Mathematik 1, Springer Verlag, 7. Aufl., 1994.
[138] J. Stoer, R. Bulirsch, Numerische Mathematik 2, Springer Verlag, 3. Aufl., 1990.
[139] W.F. Tinney, J.W. Walker, Direct solutions of sparse network equations by optimally ordered tri-
angular factorization, Proc. of the IEEE, Vol. 55, 1801–1809, 1967.
[140] S. Venugopal, V.K. Naik, Effects of partitioning and scheduling sparse matrix factorization on
communication and load balance, Proc. of 3rd Supercomputing Conf., 866–875, 1991.
[141] J.H. Wilkinson, The algebraic eigenvalue problem, Monographs on Numerical Analysis, Oxford,
Clarendon Press, 1965.
[142] M. Yannakakis, Computing the minimum fill-in is NP-complete, SIAM J. Alg. Disc. Meth., Vol. 2,
No. 1, 77–79, 1981.
[143] E. Zeidler (Hrsg.), Teubner-Taschenbuch der Mathematik, begr. von I.N. Bronstein und K.A. Se-
mendjajew. Weitergef¨uhrt von G. Grosche, V. Ziegler und D. Ziegler, Teubner, 1996.