Visualisierung in der Kosmologie - ParaView

 

In den letzten zwei Jahrzehnten hat sich die Kosmologie entscheidend gewandelt. Während sie vorher lediglich Abschätzungen und rein qualitative Resultate lieferte (beispielsweise war der Hubble-Parameter wie viele andere kosmologischen Größen lediglich bis auf den berühmten Faktor 2 bekannt), reichen die heute erzielbaren Genauigkeiten bis in den Bereich unter 10% hinab. Einige Wissenschaftler sprechen bereits - zugegebenermaßen etwas euphorisch - vom Beginn des Zeitalters der Präzisionskosmologie.

Bereits laufende und geplante Projekte wie die Sloan Digital Sky Survey, Euclid oder die Joint Dark Energy Mission werden in den kommenden Jahren die Datenbasis und die Genauigkeit noch weiter verbessern. Entscheidende Bedeutung kommt aber nicht nur den Beobachtungskampagnen zu, sondern auch den nachgelagerten Auswerteverfahren. Der Abgleich von Beobachtungsdaten mit Ergebnissen von Computersimulationen gehört zum Standard in der Kosmologie. Die heutigen Simulationen ermöglichen das systematische Durchrechnen kosmologischer Modelle mit variierenden Parametersätzen zur Untersuchung der Strukturbildung im (frühen) Universum. Die beteiligten Teilchenzahlen liegen bei einigen zehn Milliarden bis Billionen.

Der Erfolg von Simulationen wird durch visuelle Inspektion des gerechneten Weltmodells durch Wissenschaftler untermauert. Auch für die Visualisierung der 3-D-Modelle kommt geballte Rechnerleistung zum Einsatz.

Eines der aktuellen Projekte ist ParaView. Der Name impliziert schon, daß diese Software von parallelisierter Ausführung des Programmcodes Gebraucht macht, also massiv Rechenleistung beansprucht. Der Quelltext (C++, Qt) ist frei verfügbar und kann unter Windows, UNIX und Linux zum Laufen gebracht werden. Typischerweise läuft das Programm auf einem Server mit mehreren Dutzend Prozessoren.

Die eigentlichen Simulationsprogramme exportieren die Teilchenensembles in Dateien eines wohldefinierten binären Formats (GADGET). ParaView liest diese Dateien ein und verteilt die Teilchen in räumlich zusammenhängenden Blöcken auf die Prozessoren, die das eigentliche Rendern der Darstellung übernehmen. Die Teilchen sind in diesem Format mit mehreren Eigenschaften behaftet: natürlich die Position im Raum, vektorielle Geschwindigkeiten, Massen sowie einen frei konfigurierbaren Parameter. Diese Teilcheneigenschaften können in die Art der Darstellung einfließen oder als Grundlage fürs Filtern von Daten dienen.

ParaView hat von der Softwarearchitektur Merkmale einer Pipeline (s.u.): mehrere Komponenten (z.B. Filter oder einzelne Arbeitsgänge) mit eigenständigen Aufgabenbereichen werden mehr oder weniger frei in Linie (Pipeline) hintereinandergeschaltet.

Einer der wichtigsten Arbeitsgänge ist eine Komponente zur Haloerkennung. Wann auch immer die Probeteilchen zum Verklumpen neigen, versucht die Halokomponente, diese Strukturen im Datenbestand zu erkennen.

Quelle: astro-ph, http://arxiv.org/abs/1010.6128

Pipelining

 

Softwarepipelines werden bevorzugt verwandt, wenn eine Anwendung sich aus mehreren Arbeitsgängen (in der Grafik als Komponenten dargestellt) zusammensetzt, die in einer Kettenstruktur hintereinander ausgeführt wird. Die Komponenten einer Pipeline können teilweise frei miteinander verbunden oder umgestellt werden. Pipelines haben eine recht hohe Verbreitung in der Astrophysik gefunden. Man versucht großenteils, auf bestehende Lösungen zurückzugreifen und diese in der Pipeline miteinander neu zu verknüpfen, um eine neue Aufgabenstellung zu bearbeiten. Pipelines kommen dem Ideal der UNIX-Betriebssysteme nahe: auch dort wird versucht, den Funktionsumfang von Programmen möglichst auf elementare Aufgaben zu beschränken und komplexe Aufgaben durch Kombination einfacher Tools zu beherrschen (das Pipe-Zeichen "|" zum Verknüpfen des Outputs eines Tools mit dem Input des nächsten Tools unter UNIX ist die offensichtlichste Konsequenz daraus).

Literatur: Starke, Effektive Softwarearchitekturen


Beispiel für Pipelining: