10.1 Grobstruktur
Next: 10.2 Feinstruktur von Pass
Up: 10 Struktur von JANAP
Previous: 10 Struktur von JANAP
Ganz grob dargestellt werden bei einem JANAP-Lauf folgende Schritte
durchgeführt (siehe auch Abbildung 10.1)
- Syntax und Semantik Analyse der JANAP-Eingabe
- Erstellen der Netzwerkgleichungen und erzeugen von Fortran Programmen,
die die Netzwerkgleichungen beschreiben.
- Übersetzen der generierten Fortran Programme mit dem zur Verfügung
gestellten Compiler des Betriebssystems.
- Laden und Binden der erzeugten Objektmodule mit den Laufzeitsystemen
von JANAP und des Fortran Compilers.
- Durchführen der Simulation. Die Ergebnisse werden auf eine
Zwischendatei geschrieben.
- Ausdrucken oder Zeichnen der Ergebnisse.
Abbildung 10.1: Grobstruktur von JANAP
Wie oben dargestellt, erstellt JANAP im ersten Teil Fortran-Programme, die
dann vom Übersetzer des jeweiligen Systems umgewandelt werden und mit dem
Laufzeitsystem von JANAP geladen und ausgeführt werden.
Verglichen mit anderen Netzwerkanalyseprogrammen ist dies eine selten
verwendete Vorgangsweise.
Die Motivationen für diese Teilung sind:
- JANAP ermöglicht die Verwendung vom Benutzer selbst in Fortran
geschriebener Funktionen in Ausdrücken. Dies erfordert bei der Simulation
das Dazuladen dieser Programme. Obwohl die meisten modernen Betriebssysteme
die Möglichkeit des dynamischen Ladens von Programmen während der
Ausführung vorsehen, ist dies in Fortran nicht vorgesehen,
da derartige Aktionen systemspezifisch sind. Daher ist eine Programmierung
für diese Möglichkeit in Standard Fortran nicht gegeben.
- Der Teil eines Netzwerkanalyseprogramms zur Analyse der Eingabe
und dem Aufbau der Netzwerkgleichungen ist vergleichsweise
kompliziert und erfordert eine Reihe von Tabellen.
Dafür benötigt dieser Teil relativ wenig Rechenzeit.
Im Gegensatz dazu ist der Simulationsteil sehr kompakt und benötigt relativ
viel Rechenzeit. An Speicherbedarf fällt ``nur'' das Gleichungssystem
an.
Um die Resourcen eines Rechners optimal auszunutzen scheint infolge dieses
sehr unterschiedlichen Programmprofils eine Zweiteilung sinnvoll.
- Da a priori das Aussehen der Netzwerkgleichungen nicht bekannt ist,
wären bei einem monolitischen Programm sehr komplizierte Datenstrukturen
erforderlich. Die Anpassung dieser Datenstrukturen an das tatsächliche
Aussehen der Netzwerkgleichungen (insbesondere die Größe) ist in
Standard Fortran nicht möglich. Wenn nun für die Simulationsphase die
Fortran Programme erst erzeugt werden, kann das tatsächliche Aussehen
der Netzwerkgleichungen beim Generieren dieser Programme voll berücksichtigt
werden.
- Die heutigen Fortran-Compiler verwenden in der Regel sehr ausgefeilte
Methoden zur Optimierung der Fortran-Programme für die Möglichkeiten der
jeweiligen Rechenanlage. Bedeutende Optimierungen werden bei der
Berechnung von Ausdrücken erzielt (z.B. optimale Ausnutzung der
schnellen Hardware-Register der Rechenanlage). Diese Optimierungen könnten
nicht ausgenutzt werden, wenn das Gleichungssystem in symbolischer
Form gespeichert ist, und bei jeder Lösung des Gleichungssystems
interpretiert wird.
Diese Zweiteilung von JANAP ist für den Anwender normalerweise nicht
sichtbar, da der Benutzer eine Kommando-Prozedur aufruft, die
die beiden Teile und den Fortran-Compiler automatisch ausführt.
Next: 10.2 Feinstruktur von Pass
Up: 10 Struktur von JANAP
Previous: 10 Struktur von JANAP
Martin Stiftinger
Fri Jun 9 19:49:39 MET DST 1995