MegaMol™

megamol_logo

MegaMol™ (http://megamol.org) ist eine System-Software für Visualisierungsforschung mit partikelbasierten Datensätzen. Die Software entstand ursprünglich ein einem gemeinsamen Forschungsprojekt zwischen Biologen, Physikern, Materialwissenschaftlern und Visualisierungsexperten, welche alle mit großen, partikelbasierten Datensätzen arbeiteten.

Einerseits erlauben die flexiblen Datenstrukturen und das modulares Design der funktionalen Komponenten von MegaMol eine einfache Anpassung an sich ändernde Forschungsfragestellungen. Daher ist diese Software nicht als Visualisierungssystem zu sehen, sondern als Visualisierungs-Prototyp-Entwicklungs-System, welches Entwicklern erlaubt möglichst nahe an der Hardware zu arbeiten, z.B. um einfach alle Fähigkeiten die über neue GPUs verfügen ausreizen zu können.

Andererseits sind gemeinsame Funktionen und auch fortgeschrittene Darstellungsimplementierungen für alle Anwendungen von Vorteil. Dies erlaubt zentralen Komponenten der Software sich gut und weit zu entwickeln und einen stabilen Zustand zu erreichen. Diese Entwicklung erlaubt auch die Nutzung der Software durch Endbenutzer aus Anwendungsdomänen.

MegaMol ist in C++ geschrieben, läuft auf Windows und Linux-Betriebssystemen, und nutzt hauptsächlich OpenGL und CUDA. Das Software-System ist direkt auf schnelle Bilderzeugung ausgelegt, und bietet daher nur eine dünne Schicht oberhalb der OpenGL-API. Der für höchst-optimierte Implementierungen notwendige Zugriff auf Low-Level-Funktionen bleibt daher einfach und direkt. Das zentrale Entwurfs-Paradigma MegaMols ist daher eine Datenverwaltung und -strukturierung auf der CPU-Seite, welche direkt den Anforderungen moderner GPU-Programmierung entspricht, und damit dem konsequenten Vermeiden von Datenkopien.

Alle Funktionalität von MegaMol ist in sogenannten Modulen organisiert. Module können als allgemeine Graphen zusammengestellt werden, in welchen sowohl der Kontrollfluss als auch der Datenfluss dem Pull-Paradigma folgen. Module kommunizieren untereinander durch streng typisierte Verbindungen, die Calls genannt werden. Die Graphen aus Modulen, welche schlussendlich die konkrete Funktionalität von MegaMol erst definieren, können in einem graphischen Editor erzeugt werden, dem sogenannten MegaMol Configurator.

Heute wird MegaMol aktiv von Doktoranden und habilitierten Wissenschaftlern entwickelt, als Basis ihrer Forschung genutzt, und erlaubt uns viele unterschiedliche, komplexe Visualisierungen zu erzeugen. Alle beteiligten Institutionen und Wissenschaftler ist höchst zufrieden mit den Ergebnissen, sowohl der Software selbst als auch den wissenschaftlichen Publikationen.

Weitere Informationen: