Die Implementationen des Programms MINIMOS
auf den Supercomputern Fujitsu VP200 und Cray-2
sind identisch und basieren auf
MICCG(0) für die Poissongleichung
(Modifikationsfaktor ) [37]
und auf ILU-CGS(
) bzw. ILU-CGS(
)
für die beiden Kontinuitätsgleichungen.
Die vorgenommene Vektorisierung der Gleichungslöser
erfolgt nach der Hyperebenen-Methode [5][117][118].
Diese beruht auf der Beobachtung, daß sich im Fall
der ILU-Faktorisierung alle Unbekannten,
die sich in den Hyperebenen
(,,computational wavefronts``)
des dreidimensionalen Simulationswürfels befinden
parallel faktorisiert, bzw. bei den Rücksubstitutionen
der - und
-Faktoren parallel
berechnet werden können.
Der Parameter
notiert den Füllgrad,
,
und
notieren die laufenden Indizes in x-, y- und z-Richtung
mit Maximalwerten von NX, NY und NZ.
Der pro Hyperebene konstante Parameter
variiert
von 2 bis NX+NY+NZ
2.
Die Berechnungen in den -Hyperebenen sind für
nur von den Unbekannten in
,
für
nur von den Unbekannten in
abhängig.
Die Anzahl von Variablen in den
ist eine von
und von
abhängige Funktion, die anfangs bis
zu einem Maximalwert von
wächst und dann wieder abnimmt.
Für die Realisierung der Hyperebenen-Methode
auf einem Vektor- oder Parallelrechner benutzt
man am einfachsten ein Verfahren, wie es
Traar vorschlägt [112].
In den Listenvektor schreibt man sequentiell
die Adressen der abzuarbeitenden Punkte in aufeinanderfolgenden
Hyperebenen. In einen zweiten, kleineren Listenvektor
schreibt
man die Anfangsadressen der ersten Punkte aller Hyperebenen.
Um die Adressierung nichtexistierender Punkte auf
der Vorder- und Rückseite des Simulationswürfels
zu vermeiden, weitet man das Feld der Unbekannten
mit zwei zusätzlichen Ebenen (Vorder- und Rückseite) auf
und füllt diese beiden Ebenen mit Nullen.
Das folgende FORTRAN-Codesegment gibt die resultierende
Schleife der Rücksubstitution des
-Faktors
(bei
=
) wieder:
0.3 cm
DO 1 L=2,NX+NY+NZ-2 DO 1 M=LPTR(L-1)+1,LPTR(L) I=LIST(M) 1 X(I)=R(I)-B(I)*X(I-1)-D(I)*X(I-NX)-F(I)*X(I-NX*NY)0.3 cm Die Zahlenvektoren bedeuten hierin:
Tabelle: Rücksubstitution bei Hyperplane-ILU(). Zeiten
für eine Rücksubstitution (BA) in
,
Vektorisierungsgewinn gegenüber Code ohne Vektorisierung
(SP-UP) und Megaflop-Rate (MF) auf einem
-Gitter.
Mittelwerte über
Messungen.
Laufzeitexperimente wurden auf einem Fujitsu VP200-Computer,
einer Cray-2, auf einem Alliant-FX40-Superminicomputer
und einer VAX 6260 vorgenommen.
In der Tabelle 6.1 sind die Resultate (ohne VAX)
von Zeitmessungen bei der Rücksubstitution
zusammengefaßt. Die Rücksubstitution mit =
erreicht
auf der VP200 etwa
Megaflops.
Tabelle: Notwendige Konvergenzbeschleunigung gegenüber
ILU() durch zusätzlichen Fill-In für
=
,
,
um einen Geschwindigkeitsvorteil zu erbringen.
Eine praktische Frage ist jene nach der Wahl des Parameters ,
wobei Werte größer als
aufgrund des Aufwands bei der
Faktorisierung nicht ratsam sind. In der Tabelle 6.2
wurden Konvergenzbeschleunigungen berechnet, die notwendig
sind, um höheren Fill-In vorteilhaft zu machen.
Da bei vielen Simulationen ILU(
) ca. doppelt so schnell
konvergiert wie ILU(
), ist ILU(
) mit einem
deutlichen Stabilitätsbonus bevorzugt.
Bei niederen Iterationszahlen wirkt sich jedoch der
höhere Faktorisierungsaufwand für ILU(
) deutlich aus, weiters
ist der erhöhte Speicheraufwand für ILU(
) im
dreidimensionalen Fall nicht unerheblich.
Tabelle: Hyperplane-ILU() auf der VAX 6260.
Beschleunigung (SP-UP) bei Erhöhung der Prozessorzahl von
bis
,
und Megaflop-Rate (MF).
Für ein Multiprozessorsystem (VAX 6260) wurde die
Beschleunigung durch Erhöhung paralleler Prozessoren
von auf
gemessen. (Selbes Testbeispiel wie zuvor).
Das Ergebnis in Tabelle 6.3
demonstriert die gute Parallelisierbarkeit der
Hyperebenen-Methode auf einem Multiprozessorsystem.