Einleitung
Die Simulation ist heute ein taugliches Mittel, um reale Vorgänge nachzubilden und zu analysieren. Der Grad der Übereinstimmung zwischen Simulation und Realität hängt dabei von den berücksichtigten Parametern und der verlangten Rechengenauigkeit ab. Leider steigt mit der gewünschten Übereinstimmung aber auch der Rechenaufwand und die Rechenzeit. Um letztere zu verringern, wurden Parallelisierungsansätze entworfen, bei welchen die Rechenlast auf
mehrere Prozessoren verteilt wird. Eine Möglichkeit ist es, das Modell in mehrere Teilmodelle zu zerlegen. Diese können dann unterschiedlichen Prozessoren zugeordnet werden. Die
Teilmodelle werden durch einzelne Komponenten repräsentiert, die über ein geeignetes Medium miteinander kommunizieren. Ein weiterer Aspekt, der sich durch das Bilden dieser Komponenten ergeben kann, ist ein Steigern der Übersichtlichkeit und Wartbarkeit. Aus der
notwendigen eindeutigen Festsetzung der Aufgaben jeder einzelnen Komponente ergeben sich überschaubare Einzelprogramme und klar definierte Schnittstellen zur Kommunikation untereinander.
Ziel dieser Arbeit soll es sein, eine verteilte Simulation zu erstellen, deren Vorteile gegenüber einer monolithischen Simulation aufgezeigt werden. Es wurde dafür bewußt ein einfaches Beispiel gewählt, um das Augenmerk auf die verwendeten Verteilungsstrategien und nicht auf die Erklärung des Modells als mechanisches System zu lenken.
In dieser Arbeit werden zwei unterschiedliche Parallelisierungs-konzepte vorgestellt. Ein wesentlicher Unterschied zwischen den beiden liegt darin, ob die Kausalordnung verletzt werden darf oder nicht. Das erste Konzepte verletzt die Kausalordnung nicht und entspricht der Definition eines konservativen Verfahrens. Das zweite Konzept entspricht der Definition eines optimistischen Verfahrens. Dafür muß die Möglichkeit einer kurzzeitigen Verletzung der
Kausalordnung berücksichtigt werden, was einen gewissen Mehraufwand bedeutet. Zu beiden Konzepten ist ein Monitor implementiert worden. Die erzielten Ergebnisse in Bezug auf Rechenzeit,
Prozessorauslastung und verbundenen Aufwand wurden anschließend miteinander verglichen. Das gesamte Modell wurde als CORBA-Anwendung implementiert, wobei C++ als Programmiersprache genutzt wurde.
[...]
Inhaltsverzeichnis
1 EINLEITUNG
2 VERTEILTE SIMULATION
2.1 Anwendungsmöglichkeiten der Simulation
2.2 Parallelisierung und Verteilung
2.2.1 Verteilung
2.2.2 Parallelisierung
2.2.3 Multitasking und Multithreading
2.3 Vorgehensweise
2.4 Festlegung wichtiger Begriffe
2.4.1 Die Begriffe Simulationszeit und Rechenzeit
2.4.2 Die Begriffe Zustand und Ereignis
2.5 Zeitdiskrete Simulationen
2.5.1 Zeitgesteuerte Datenausgabe
2.5.2 Zustandsgesteuerte Datenausgabe
2.6 Zeitkontinuierliche Simulationen
2.6.1 Berücksichtigung von Unstetigkeitsstellen
2.6.2 Datenausgabe
2.7 Unterschiedliche Simulationsverfahren
2.7.1 Die Begriffe Kausalität, Kausalordnung und Konservativ
2.7.2 Zeitdiskrete konservative Simulationen
2.7.3 Kontinuierliche konservative Simulationen
2.7.4 Optimistische Simulationsverfahren
2.8 Vergleich der Verfahren anhand eines Beispiels
2.8.1 Aufgabenstellung
2.8.2 Aufteilung in Komponenten
2.8.3 Zustandsänderungen
1.1.4 Konservatives Verfahren
1.1.5 Optimistisches Verfahren
1.1.6 Vergleich der Rechenzeiten
3 DAS UNTERSUCHTE MODELL
3.1 Das gewählte Beispiel
3.2 Kriterien
3.2.1 Entkoppelbarkeit
3.2.2 Berücksichtigung von Ereignissen
3.2.3 Integrationsverfahren nach Euler
3.2.4 Konservatives und optimistisches Verfahren
3.3 Wählbare Größen
3.4 Vereinfachende Annahmen
4 SIMULATIONSKONZEPT
4.1 Umwandlung der Bewegungsgleichungen
4.2 Allgemeines Simulationskonzept
4.2.1 System
4.2.2 Integrator
4.2.3 Zusammenwirken von Integrator und System
4.2.4 Berücksichtigung von Unstetigkeitsstellen
4.3 Umsetzung für die gewählte Simulationsaufgabe
4.3.1 Simulationskonzept für das konservative Verfahren
4.3.2 Simulationskonzept für das optimistische Verfahren
4.3.3 Stoßerkennung
5 EINFÜHRUNG IN CORBA
5.1 Die Object Mangment Group OMG
5.2 Das OMA-Referenzmodell
5.3 Middleware CORBA
5.4 Der Sortwarebus ORB
5.5 Die Schnittstellensprache IDL
5.6 Server-Aufruf
5.7 Implementierung eines einfachen Beispiels
5.7.1 Aufgabenstellung
5.7.2 Schnittstellendefinition
5.7.3 Von IDL nach C++
5.7.4 Der Server
5.7.5 Der Client
6 UMSETZUNG ALS CORBA-ANWENDUNG
6.1 Komponenten der CORBA-Anwendung
6.1.1 Schnittstelle Integrator
6.1.2 Schnittstelle System
6.1.3 Schnittstelle Animation
6.2 Zusammenwirken von Monitor, Integrator und System
7 SIMULATIONSVERSUCH
7.1 Aufgabenstellung
7.2 Die verwendete Soft- und Hardware
7.3 Versuchsdurchführung
7.3.1 Vergleich der Rechenzeiten und Anzahl der Aufrufe von Calc
7.3.2 Vergleich der Prozessorauslastung
8 ZUSAMMENFASSUNG UND AUSBLICK
A SCHNITTSTELLENDEFINITIONEN
B DIE METHODEN DER KOMPONENTEN
C VORGEHENSWEISE BEI DER SIMULATION
Zielsetzung & Themen
Die Arbeit verfolgt das Ziel, eine verteilte Simulation zu erstellen, um deren Vorteile gegenüber einer monolithischen Umsetzung aufzuzeigen. Dabei wird ein mechanisches Pendelsystem als Modell verwendet, um verschiedene Parallelisierungsstrategien unter Verwendung von CORBA zu implementieren und deren Performance zu bewerten.
- Vergleich zwischen konservativen und optimistischen Simulationsverfahren
- Einsatz von CORBA als Middleware für verteilte Systeme
- Analyse der Rechenzeit und Prozessorauslastung
- Implementierung in C++ mit komponentenbasiertem Konzept
Auszug aus dem Buch
Optimistisches Verfahren
Da es sich um eine kontinuierliche Simulation mit Ereignissen handelt, soll es mittels Zustandslisten ermöglicht werden, die beim optimistischen Verfahren auftretenden Verletzungen in der Kausalordnung zu korrigieren. Dafür wird für die Komponente K2 die Liste ZL2 und für die Komponente K3 die Liste ZL3 angelegt. In diesen Listen werden die Zustandswerte der Komponenten gemeinsam mit dem zugehörigen Simulationszeitpunkt abgelegt. Dadurch ist es möglich, nach Erkennung einer Verletzung in der Kausalordnung zum letzten Simulationszeitpunkt vor der Kausalordnungsverletzung zurückzugehen.
Ein optimistisches Verfahren für das obige Beispiel kann folgendermaßen umgesetzt werden:
1. Die Komponenten K2 und K3 integrieren ohne zu warten, so schnell sie können, und tragen ihre Ergebnisse in ihre Zustandsliste ein. Dabei wird die Komponente K3, der ein schnellerer Rechner zugeteilt ist, ihre Zustandsliste schneller beschreiben als K2.
2. Die Komponente K1 kann nun ZL2 und ZL3 auslesen und prüfen, ob sich Kollisionen ergeben haben. Ist dies der Fall, werden die Stöße von K1 erkannt und berechnet. Bei dieser Berechnung werden aus den beiden Werten z2,2[u](t-) und z2,3[u](t-) die beiden Werte z2,2[u](t+) und z2,3[u](t+) berechnet. K1 generiert für K2 und K3 je ein Ereignis.
3. Die Auswertung dieser Ereignisse bewirkt, dass die Integration mit den Werten z2,2[u](t+) und z2,3[u](t+), als Startwerte, von jenem Simulationszeitpunkt wo der Stoß erkannt wurde, fortgesetzt wird. Die beiden Komponenten werden dazu gebracht, ihre Zustandslisten ab diesem Simulationszeitpunkt zu löschen und neu zu beschreiben.
Zusammenfassung der Kapitel
1 EINLEITUNG: Einführung in die Thematik der verteilten Simulation und Vorstellung der Zielsetzung sowie der verwendeten Technologien.
2 VERTEILTE SIMULATION: Detaillierte Betrachtung der theoretischen Grundlagen der verteilten und parallelen Simulation sowie der verschiedenen Verfahren.
3 DAS UNTERSUCHTE MODELL: Beschreibung der Simulationsaufgabe, der gewählten Pendel-Anordnung und der getroffenen Vereinfachungen.
4 SIMULATIONSKONZEPT: Erläuterung der Umsetzung des Simulationskonzepts für die unterschiedlichen Verfahren und die Einbindung des Monitors.
5 EINFÜHRUNG IN CORBA: Einführung in die Middleware CORBA und deren Architektur, die als Basis für die verteilte Anwendung dient.
6 UMSETZUNG ALS CORBA-ANWENDUNG: Beschreibung der konkreten Realisierung des Simulationskonzepts in eine lauffähige CORBA-Anwendung.
7 SIMULATIONSVERSUCH: Auswertung der durchgeführten Experimente und Vergleich der Verfahren anhand von Rechenzeiten und Prozessorauslastung.
8 ZUSAMMENFASSUNG UND AUSBLICK: Abschluss der Arbeit mit einer Bewertung der Ergebnisse und Vorschlägen für zukünftige Entwicklungen.
Schlüsselwörter
Verteilte Simulation, CORBA, Parallelisierung, Konservatives Verfahren, Optimistisches Verfahren, Kausalordnung, Mechanisches System, Middleware, Echtzeitsimulation, Zustandslisten, Prozessorauslastung, Rechenzeit.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Diplomarbeit befasst sich mit der Entwicklung und dem Vergleich von Verfahren zur verteilten Simulation von mechanischen Systemen unter Verwendung der Middleware CORBA.
Was sind die zentralen Themenfelder?
Die zentralen Themen sind die Parallelisierung von Simulationsprozessen, die Anwendung von konservativen sowie optimistischen Verfahren und die technische Umsetzung mittels einer Client-Server-Architektur.
Was ist das primäre Ziel oder die Forschungsfrage?
Das Ziel ist die Erstellung einer verteilten Simulation, um deren Vorteile, wie eine potenzielle Reduktion der Rechenzeit, gegenüber einer klassischen monolithischen Simulation zu evaluieren.
Welche wissenschaftliche Methode wird verwendet?
Es werden zwei spezifische Parallelisierungskonzepte (konservativ vs. optimistisch) entworfen und anhand eines Modells aus in Reihe geschalteten Pendeln implementiert und vermessen.
Was wird im Hauptteil behandelt?
Der Hauptteil behandelt die theoretischen Hintergründe zur verteilten Simulation, das spezifische Simulationskonzept der Pendel sowie die praktische Umsetzung der CORBA-Middleware und die anschließende Versuchsreihe.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit wird primär durch Begriffe wie Verteilte Simulation, CORBA, Parallelisierung, Kausalordnung und Prozessorauslastung charakterisiert.
Wie unterscheidet sich das konservative vom optimistischen Verfahren?
Beim konservativen Verfahren wird die Kausalordnung strikt eingehalten, was häufige Synchronisationspunkte erfordert. Das optimistische Verfahren erlaubt kurzzeitige Verletzungen der Ordnung, die durch ein Rücksetz-Verfahren korrigiert werden.
Welchen Einfluss hat die Feldlänge B auf die Performance?
Die Ergebnisse zeigen, dass bei längeren Datenfeldern (größeres B) die Gesamtrechenzeit sinkt, da die Komponenten effizienter arbeiten können und der Monitor seltener den Prozess durch Synchronisation blockiert.
- Quote paper
- Gunter Maierhofer (Author), 1999, Vergleich konservativer und optimistischer Verfahren bei der verteilten Simulation mechanischer Systeme mittels CORBA, Munich, GRIN Verlag, https://www.grin.com/document/170