KONWIHR

Kompetenznetzwerk für wissenschaftliches Höchstleistungsrechnen in Bayern

Inhalt

CFS++MPI: Erweiterung von CFS++ um MPI parallelisierte Löser

Antragssteller

Dr. Fabian Wein
Zentralinstitut Scientific Computing
FAU Erlangen-Nürnberg

Projektübersicht

CFS++ (Coupled Field Simulation with C++) wurde 2002 durch die Arbeitsgruppe von Prof. Manfred Kaltenbacher (damals FAU, jetzt TU Wien) als akademischer Forschungscode fur multiphysikalische Finite-Elemente-Simulation initiiert, siehe Kaltenbacher [2010]. Seit ca. 2006 wird CFS++ durch die Arbeitsgruppe von Prof. Michael Stingl (ZISC, FAU) um Methoden der Strukturoptimierung ergänzt. Der akkumulierte Entwicklungsaufwand fur CFS++ sind ca. 60 Personenjahre.

CFS++ basiert auf C++ und ist historisch bedingt nicht als parallele Software konzipiert. Ein wesentlicher Anteil der Rechenzeit von CFS++ nimmt jedoch das Lösen von linearen Gleichungssystemen ein, wobei auch OpenMP basierte direkte Löser (MKLPARDISO, Cholmod, UMFPACK, . . . ) bzw. iterative Löser (ILUPACK, nur OpenMPBLAS) verwendet werden.

Mit den KONWIHR Projekten OptiLBM und OptiLBM3D wurde CFS++ um LBM (Lattice-Botzmann-Method) basierte Strukturoptimierung ergänzt, wobei durch das RRZE ein wichtiger Know-how-Transfer bezüglich OpenMP-Parallelisierung erfolgte. OptiLBM3D befindet sich gerade im Abschluss. Aktuell werden in gemeinsamen Bemühungen durch die TU Wien und der FAU Teile von CFS++ mit OpenMP parallelisiert. Ziel ist es, fur bestimmte Probleme den Laufzeitanteil von CFS++ ohne das Lösen des Gleichungssystems fur z.B. 4 Kerne auf deutlich unter 5% zu drücken. Daraus ergibt sich jedoch die Motivation für hochgradig parallelisierte Gleichungssystemlöser, insbesondere auch iterative Löser, wie sie zum Beispiel fur verteilte Systeme im Rahmen des freien PETSc Toolkits zur Verfugung stehen. PETSs (Portable, Extensible Toolkit for Scientific Computation) stellt eine zusätzliche Schicht auf Basis von MPI dar und bietet neben verteilten Matrix- und Vektorobjekten insbesondere eine Schnittstelle fur eine Vielzahl von Lösern für lineare Gleichungssysteme.

Für die effiziente Kopplung des seriellen bzw. OpenMP parallelisierten CFS++ mit MPI-Bibliotheken benötigen wir jedoch Unterstützung, die wir uns durch das beantragte KONWIHR-Projekt erhoffen.

Eine wesentliche Motivation für die Anstrengungen CFS++ mittels MPI für massiv paralleles HPC zu erweitern ist die Veröffentlichung eines basalen MPI basierten Strukturoptimierungscodes durch die Arbeitsgruppe von Ole Sigmnd an der DTU (Danish Technical University). Damit ist die Messlatte innerhalb der Strukturoptimierung signifikant verschoben worden.