next up previous contents
Next: Simulation polykristalliner Festkörper auf Up: Zentrale Systeme Previous: Visualisierung auf der Hydra

Feldberechnung mit CONCEPT auf der Hydra

Der Arbeitsbereich Theoretische Elektrotechnik beschäftigt sich u.a. mit der Entwicklung eines Programms zur numerischen Behandlung von Streu- und Strahlungsproblemen. Das Programm wird hauptsächlich im Bereich der elektromagnetischen Verträglichkeitsuntersuchungen (EMVU) verwendet. Was ist darunter zu verstehen? Viele elektrische Geräte senden elektromagnetische Wellen aus, die andere Geräte wiederum beeinflussen können. So stellt sich dann im Fahrzeugbau z.B. die Frage, ob der Betrieb einer CB-Funk-Anlage in einem Auto Auswirkungen auf die Fahrzeugelektrik hat. Bei Schiffen stören die Aufbauten die Charakteristik von Sende- und Empfangsantennen. Es interessiert dabei, inwiefern sie das tun. Solche u.ä. Fragen sind typisch für EMV-Analysen. Man kann sie mit Hilfe der Meßtechnik beantworten oder durch numerische Simulation mit Hilfe eines Feldberechnungsprogramms.

Hinsichtlich der Numerik können die Probleme auf zwei Arten gelöst werden. Die eine führt auf die Lösung von Differentialgleichungen (Finite Elemente- oder Differenzenmethoden), die andere auf die Lösung von Integralgleichungen (Integralmethoden). Beide haben Vor- und Nachteile. So sind Integralmethoden besonders geeignet, wenn große flächenmäßige Anordnungen behandelt werden sollen, FE/FD-Methoden dagegen, wenn z.B. inhomogene Materialien berücksichtigt werden müssen. Das im AB Theoretische Elektrotechnik entwickelte Programmm CONCEPT gehört zur Klasse der Integralverfahren und basiert auf der Lösung der sog. Electric Field Integral Equation (EFIE) mit Hilfe der Momentenmethode und führt auf die Lösung eines linearen Gleichungssystems. Im Gegensatz zu den FE/FD-Verfahren, die dünnbesetzte Matrizen liefern, führt dieser Ansatz auf dichte Matrizen. Die Größe der Matrix, d.h. die Zahl n der Unbekannten, ergibt sich dabei aus der Dimension der zu untersuchenden Struktur und der zu betrachtenden Wellenlänge. Für die heutigen Fragestellungen sind tex2html_wrap_inline1544 und mehr Unbekannte keine Seltenheit. Da die Matrix vollbesetzt (und von der übelsten Sorte, nämlich extrem schlecht konditioniert und nicht-hermitesch) ist, bleibt zur Lösung meist nur eine LU-Zerlegung, deren numerischer Aufwand mit der Ordnung tex2html_wrap_inline1548 steigt. Selbst auf modernen Workstations führt dies schnell zu unakzeptablen Rechenzeiten.

CONCEPT ist daher zum einen ein sehr rechenintensives Programm. Zum anderen benötigt es auch viel Speicher, denn es muß möglichst die ganze Systemmatrix im Speicher gehalten werden, um langsames Auslagern auf die Festpatte zu vermeiden. Da mit COMPLEX*16 gerechnet wird, kommt da schnell einiges an Speicher zusammen. CONCEPT bietet aber von seinem inneren Aufbau die Möglichkeit zur Parallelisierung und ist damit (auch was die Speicheranforderungen angeht) sehr gut für die Hydra geeignet. Für eine Parallelversion mußte als erstes das skalare CONCEPT auf der Hydra zum Laufen gebracht werden. Nach Beseitigung einiger Schwierigkeiten (an dieser Stelle noch einmal herzlichen Dank an Peter Junglas für die freundliche Unterstützung), konnte ich mich an die eigentliche Parallelisierung des rechenintensiven Teils des Programms, nämlich der LU-Zerlegung machen. Die Parallelität ergibt sich dabei hauptsächlich durch Aufrufe von Routinen aus der Convex VECLIB. Dies ist eine Sammlung von Routinen, die grundlegende mathematische Operationen zur Verfügung stellt, so u.a. auch eine parallele LU-Zerlegung. Um diese nutzen zu können, mußte im wesentlichen nur eine Routine von CONCEPT leicht modifiziert werden. Danach konnte ich mich daran machen, einige Beispiele laufen zu lassen, um Timings zu nehmen.

Getestet wurde zunächst an kleineren (etwa 1000 Unbekannte) bis mittleren (etwa 3500 Unbekannte) Beispielen. Unter anderem auch das Beispiel eines Fahrzeuges mit CB-Funk-Antenne (siehe Abbildungen).

Modell eines VW Golf mit CB-Funk-Antenne (links) und logarithmischer Feldstärkeverteilung (Maximum der Polarisationsellipse) in der Symmetrieebene des Fahrzeuges (rechts). Blau bedeutet niedrige Feldstärke, rot hohe. Man sieht, daß der Motorinnenraum weitgehend feldfrei ist. Jedoch ergeben sich im Fahrzeuginneren im Kopfbereich hohe Feldstärkewerte.
Es zeigt sich, daß die User-Zeiten, d.h. die Zeiten, die die CPUs zum Abarbeiten des Problems brauchen, sich sehen lassen konnten. Anders sah es da mit den Real-Zeiten aus. Man wartete zum Teil ziemlich lange auf ein Ergebnis, obwohl es nur wenig zu rechnen gab. Der Grund dafür war schnell gefunden: Obwohl genügend Speicher vorhanden ist, schreibt CONCEPT die Systemmatrix einmal auf die Festplatte, um sie dann beim Lösen wieder einzulesen. Liegt eine hohe Auslastung des Festplattensystems vor, kann das Schreiben selbst eines Megabytes einige Minuten dauern -- die CPUs machen dann nichts anderes als auf das Ende des I/O-Requests zu warten! Damit war klar, daß CONCEPT von dieser Unzulänglichkeit befreit werden mußte. Der Aufwand dazu war ziemlich gering. Nach einer etwa einstündigen Analyse des Quelltextes und nach dem Editieren von 30 Zeilen war der Flaschenhals beseitigt.

Diese Version sollte dann auch gleich an einem größeren Beispiel getestet werden. Es handelte sich dabei um eine Parameterstudie eines Hohlleiterproblems. Insgesamt sollten 11 Läufe gemacht werden, wobei jeder Lauf auf die Lösung eines COMPLEX*16 Gleichungssystems mit ca. 6050 Unbekannten führt. Die Zeiten begeisterten mich: Die Läufe waren nach 9h 10min durch. Jeder Lauf brauchte nur 50 Minuten Real-Zeit. Die Real-Zeiten teilten sich dabei folgendermaßen auf: 35min zum Erzeugen der Daten (skalar) und 15min (!) für die LU-Zerlegung (parallel mit sechs Prozessoren). Zum Vergleich: Unsere IBM RS6000-580 im AB braucht allein für einen Lauf 14h 30min, wobei die reine Rechenzeit nur 7h 30min beträgt. Der Rest geht auf Swapping, da das System nur 96 MB Hauptspeicher besitzt. Hätte ich die Parameterstudie auf der Workstation gemacht, wäre sie sechs Tage und 16 Stunden damit beschäftigt gewesen!

Der rechenintensive Teil (der Solver) von CONCEPT konnte mit Hilfe der Convex VECLIB schnell parallelisiert werden. Der Aufwand dafür war eher gering, der gewonnene Nutzen dafür umso größer: Durch nur einen Call auf die richtige VECLIB-Routine ergibt sich beim Lösen ein Faktor bis zu 4.5 (bei sechs Prozessoren) gegenüber der skalaren Version. Zusammen mit der übrigen Ausstattung der Hydra (Speicher und Prozessorenstärke) sind jetzt Probleme in Minuten lösbar, die bislang Stunden gebraucht haben. Dabei sind die Möglichkeiten von CONCEPT auf der Hydra noch nicht erschöpft, denn das Aufstellen der Matrix erfolgt nach wie vor skalar und ist nunmehr, zumindest bis zu einer gewissen Problemgröße, der zeitaufwendigste Teil. Aber auch dieser eignet sich hervorragend für eine Parallelisierung, wenn auch dafür wesentlich mehr Quellcode umgeschrieben werden muß. Der Aufwand lohnt sich bestimmt, und ich hoffe, in einer der nächsten RZ-Infos darüber berichten zu können.

Guido Bürger
Theoretische Elektrotechnik,
Tel.: 2826


next up previous contents
Next: Simulation polykristalliner Festkörper auf Up: Zentrale Systeme Previous: Visualisierung auf der Hydra

Marco Budde
Fri Apr 12 18:53:17 MESZ 1996