Thorsten Pawletta, Hochschule Wismar - University of Technology, Business &
Design
Diplomarbeit
Thema:
|
Möglichkeiten der Parallelisierung einer transaktionsorientierten Simulationsmethode durch Message Passing in einer interaktiven Softwareumgebung
|
Problemstellung:
Ein wichtiges Einsatzgebiet für Computer ist die Simulation. Sie erlaubt
es, Aussagen über das dynamische Verhalten von wirklichen oder gedachten
Systemen zu machen. Die wachsende Komplexität heutiger Simulationen
führt aber auch auf modernen Computersystemen zu langen Laufzeiten.
Eine kostengünstige Lösung dieses Problems ist die Verteilung
der Simulation in einem Netzwerk-Cluster. Für die parallele Programmierung
in Netzwerk-Clustern werden Message-Passing-Systeme, wie z.B. PVM eingesetzt.
Die interaktive Softwareumgebung Matlab eignet sich zum schnellen Prototyping.
Unter Nutzung einer vorhandenen Message-Passing-Toolbox lassen sich Konzepte
der verteilten Simulation hervorragend mit Matlab umsetzen und für
komplexere Experimente und Optimierungen nutzen.
In dieser Arbeit werden Aspekte der parallelen Programmierung angeschnitten
und Möglichkeiten der Parallelisierung von Simulationen beschrieben.
Die daraus resultierenden Erkenntnisse werden auf die transaktionsorientierte
Simulationen angewendet und ein ausgewählter Lösungsweg in dem
Prototyp eines verteilten Simulators umgesetzt.
Möglichkeiten der Parallelisierung von Simulationen
|
Parallelisierung auf Experimentebene: Hier werden verschiedene
unabhängige Simulationsläufe parallel auf mehreren Prozessoren
oder Rechnern ausgeführt. |
|
Parallelisierung von Hilfsfunktionen: Bei dieser Möglichkeit
werden Hilfsfunktionen des Simulators, wie z.B. die Zufallszahlengenerierung
parallel auf anderen Prozessoren ausgeführt. |
|
Parallelisierung auf Modellebene: Dieser Ansatz ermöglicht
die Beschleunigung einzelner Simulationsläufe durch die Einteilung
des Modells in Teilmodelle und deren parallele Bearbeitung. Voraussetzung
für diesen Ansatz ist die geeignete Partitionierung des Modells, das
richtige Synchronisationsverfahren sowie das Mapping. |
Synchronisationsverfahren
Die Synchronisationsverfahren lassen sich in die drei grundlegenden Klassen
der konservativen, der optimistischen und der hybriden Verfahren einteilen.
Konservative Verfahren halten bei der Abarbeitung der Ereignisse die Kausalordnung
strikt ein, indem nur garantierte Ereignisse ausgeführt werden. Optimistische
Verfahren lassen eine Verletzung der Kausalordnung erst einmal zu, um sie
gegebenenfalls durch Zurücksetzen auf einen früheren Zustand
und erneutes Ausführen der Ereignisse zu korrigieren. Hybride Verfahren
vereinigen konservative und optimistische Konzepte, um Vorteile von beiden
zu nutzen.
Anforderungen an das Synchronisationsverfahren
Die Aufgabenstellung führt zu folgenden Anforderungen an ein mögliches
Synchronisationsverfahren:
-
Anwendbarkeit auf transaktionsorientierte Simulationen
-
relativ geringer Kommunikationsbedarf im Vergleich zum Rechenbedarf
-
möglichst einfacher Kommunikationsablauf
Lösungsansatz
Die Parallelisierung auf Experimentebene wurde bereits ausführlich
untersucht und läßt sich nicht zur Beschleunigung einzelner
Simulationsläufe einsetzen. Bei der Parallelisierung von Hilfsfunktionen
ist bei heutigen Simulationsalgorithmen und hinsichtlich von Netzwerk-Clustern
als Zielsystem mit keiner signifikanten Beschleunigung zu rechnen. Aus
diesem Grund wurde die Parallelisierung auf Modellebene als vielversprechender
Ansatz untersucht.
Als Synchronisationsverfahren wurde das SPEEDES-Verfahren ausgewählt,
da es als hybrides Verfahren Vorteile von konservativen und optimistischen
Verfahren vereint und einen geringen Kommunikationsaufwand und einen einfachen
Kommunikationsablauf besitzt.
Das SPEEDES-Verfahren
Analog zu optimistischen Verfahren, führt das SPEEDES-Verfahren Ereignisse
in der lokalen Ereignisliste in chronologischer Reihenfolge sofort aus.
Allerdings werden nur garantierte Ereignisse an einen anderen LP verschickt,
indem für andere LPs bestimmte Ereignisse zuvor in einer lokalen Liste
gespeichert werden und erst nach Empfang einer entsprechenden GVT-Approximation
von der zentralen Instanz an den jeweiligen LP gesendet werden. Zur Bestimmung
der GVT-Approximation sendet jeder LP eine bestimmte Nachricht an die zentrale
Instanz, sobald seine lokale Simulationszeit die minimale Ereigniszeit
der in der Ausgangsliste vorhandenen Ereignisse erreicht oder überschreitet.
Nach dem Empfang von Ereignissen werden diese in die lokale Ereignisliste
eingefügt und gegebenenfalls ein Rollback durchgeführt.
Umsetzung
Folgende Punkte waren hinsichtlich der Implementation eines auf dem SPEEDES-Verfahren
basierenden, verteilten Simulators zu betrachten:
-
Analyse der GPSS-Sprachdefinition
-
Anpassung des SPEEDES-Verfahrens an die transaktionsorientierte Simulation
-
Spezifikation der Partitionierung in der Modelldatei
-
Generierung und Terminierung von Transaktionen im verteilten Simulator
-
Organisation des Transaktionsaustausches
-
Umsetzung und Optimierung der Zustandsverwaltung
Den Betrachtungen zur Anpassung des SPEEDES-Verfahrens an die transaktionsorientierte
Simulation folgend, ist es bei der Umsetzung notwendig, die Prioritäten
in die GVT-Approximation einzubeziehen. Dazu wurde ein Tupel bestehend
aus einer Zeit- und einer Prioritätsinformation genutzt. Die GVT-Approximation
ergibt sich so aus der minimalen Ereigniszeit aller Nachrichten und der
maximalen Priorität der Nachrichten, mit der minimalen Ereigniszeit.
Die folgende Darstellung zeigt ein Beispiel:
Da das SPEEDES-Verfahren eine zentrale Instanz zur Bestimmung der GVT-Approximation
benötigt, wurde für die Umsetzung das Master/Slave-Paradigma
gewählt. Die LP-Instanzen arbeiten demnach als Slave-Instanzen und
werden durch die zentrale Instanz als Master-Instanz gestartet, gesteuert
und beendet. Gut zu erkennen ist diese Funktionsweise in der Darstellung
des Kommunikationsablaufes des verteilten Simulators.
Zusammenfassung
Im Rahmen der vorliegenden Arbeit wurden Möglichkeiten der Parallelisierung
einer transaktionsorientierten Simulationsmethode unter Nutzung von Message-Passing-Systemen
in einer interaktiven Softwareumgebung untersucht und die Umsetzung einer
dieser Möglichkeiten anhand des Prototyps eines verteilten Simulators
demonstriert. Für die Umsetzung wurde das SPEEDES-Verfahren genutzt,
welches jedoch zuvor an die transaktionsorientierte Simulation angepaßt
werden mußte. Die Implementation und die Validierung an Beispielmodellen
führte zu der Erkenntnis, daß das SPEEDES-Verfahren zwar gut
für die Umsetzung der transaktionsorientierten Simulation auf verteilten
Systemen geeignet ist, es aber nicht seine volle Leistungsfähigkeit
entfalten kann, da Transaktionen während ihrer Bewegung keine Simulationszeit
verbrauchen und so je Transaktionsaustausch oft nur eine Transaktion übertragen
werden kann.
Komplette Diplomarbeit
Die komplette Diplomarbeit (mit Ausnahme von einigen Teilen des Anhangs) kann hier als
PDF-Datei heruntergeladen werden.
Download der kompletten Diplomarbeit (PDF, 536 KB)
Weiterführende Arbeit
Eine weiterführende Arbeit zu einem ähnlichen Thema ist unter folgendem Link zu finden:
M.Sc. thesis - Transaction-Oriented Simulation In Ad Hoc Grids
oder alternativ in arXiv.org unter der Dokument-ID 0704.1827