|
|
Konzeption und Umsetzung eines CORBA-basierten, parallelen VR-Systems |
Motivation
Ein wesentliches Merkmal von Anwendungen, die auf Virtual Reality (VR) basieren, ist die Echtzeit-Interaktion. Um diese Echtzeit-Anforderung auch bei aufwändigen Anwendungen zu gewährleisten, werden nicht nur für die Visualisierung, sondern auch für Berechnungen verstärkt Parallelrechner eingesetzt. Dabei beziehen sich Parallelisierungsbemühungen fast immer nur auf einzelne Algorithmen. Zum Einsatz kommen hierbei zum einen einfache und damit fehleranfällige Kontrollstrukturen (PThreads, Semaphore, etc.) und zum anderen prozedural orientierte Message-Passing-Konzepte (z. B. MPI oder OpenMP).
VR-Toolkits sind heutzutage vorwiegend mit C++ entwickelte komplexe Klassenbibliotheken. Nicht nur verteilte Virtuelle Umgebungen für kooperatives Arbeiten, sondern auch verteilte Hardwareressourcen erzwingen die Integration parallel verlaufender Prozesse. Aus der Auslagerung paralleler Berechnungen auf hierfür optimierte Hochleistungsrechner resultiert letztendlich die Frage nach leicht zu integrierenden objektorientierten Parallelisierungskonzepten. Die zur Zeit populären Konzepte sind jedoch stark Fortran-lastig und wenig objektorientiert. Eine Verteilung und Parallelisierung auf Klassenebene erfordert daher andere Wege.
Proprietäre Eigenentwicklungen haben auch in der VR-Welt keine allzu große Zukunft. Demgegenüber scheint sich CORBA als Standard für verteilte Applikationen einen sicheren Platz erobert zu haben und könnte daher die Lösung für die oben genannten Probleme darstellen; allerdings kommt dieser Standard nicht aus der Welt des Hochleistungsrechnens. Diese Studienarbeit versucht zu klären, in wie weit CORBA bzw. exemplarische CORBA-Implementationen den Leistungsanforderungen verteilter VR-Anwendugen gerecht werden kann.
Die konkrete Anwendung
Im zweiten Arbeitspaket soll beispielhaft der MPI-Ansatz aus dem Softwarepaket ViSTA des VRCA erläutert werden. Das Programm verteilt die Vorberechnung großer Datenmengen an Strömungsdaten auf mehrere Rechenknoten eines Hochleistungsrechners (SUN-Cluster, Linux-Cluster, etc.), um anschließend auf einer SGI Onyx die eigentliche Visualisierung vorzunehmen. Die für den CORBA-Ansatz zu verändernde MPI-Konzepte werden auszugsweise vorgestellt. In einer anschließenden Bewertung soll vor allem gezeigt werden, wie der Einsatz von CORBA den Quellcode übersichtlicher machen kann. Außerdem werden kurz die Vorteile der objektorientierten Variante erläutert.
Benchmarking
Von besonderem Interesse ist die Performance der unterschiedlichen Implementierungen. Daher sollen detaillierte Benchmarks mit verschiedenen ORBs (z. B. MICO (verbreiteter Open Source ORB), ROFES (Open Source RealTime ORB des LfBS), ggf. auch TAO ( althergebrachter Open Source RealTime ORB)) und mit dem ursprünglichen MPI-Konzept durchgeführt und miteinander verglichen werden. Es soll aus den Benchmarks geschlossen werden, in wie fern CORBA oder RealTime-CORBA die im oben genannten Anforderungen erfüllen.
Voraussetzungen
- Abgeschlossenes Vordiplom der Elektro- und Informationstechnik
- Grundlagen in der objekt-orientierten Programmierung
- Selbständiges und kreatives Arbeiten
Betreuer
- Dipl.-Inform. Stefan Lankes (Lehrstuhl für Betriebssysteme, RWTH Aachen)
- Dipl.-Inform. Andreas Gerndt (Virtual Reality Center Aachen, RWTH Aachen)
Kontakt
Stefan Lankes
Lehrstuhl für Betriebssysteme (LfBS), RWTH Aachen
Kopernikusstraße 16, D-52056 Aachen
Tel.: +49-241-80-25162, Fax: +49-241-80-22339
e-mail: stefan@lfbs.rwth-aachen.de
|
|
|