Programmiermodelle und High-Performance Computing für Many-Core Architekturen in der numerischen Simulation
Final Report Abstract
Dieses Grundlagenprojekt ist interdisziplinär zwischen Numerischer Mathematik, Wissenschaftlichem Rechnen und Computergrafik angesiedelt, wobei Methoden, Techniken und Algorithmen aus allen Forschungsgebieten kombiniert, wechselseitig umformuliert und erweitert werden sollten. Ziel der beantragten Projektarbeiten war die Entwicklung, Analyse und Realisierung von neuen Simulationstechniken, die auf modernen mathematischen Methoden basieren (Finite Elemente/Differenzen Diskretisierungen, Mehrgitterlöser/Gebietszerlegung, adaptive Gitteranpassung) und die gleichzeitig die sehr hohe Rechenleistung von datenstrombasierten Architekturen (Grafikkarten/GPU, PPU, Cell Prozessoren) ausnutzen können. Basierend auf den Entwicklungsarbeiten zum (parallelen) FEM-Programmpaket FEAST - unserer Eigenentwicklung in Dortmund, siehe http://www.feast.tu-dortmund.de - mit speziellen hierarchischen Daten- und Matrixstrukturen sollten datenstrombasierte Architekturen zur effizienten Lösung von Teilproblemen verwendet werden. Während FEAST für die hierarchische Aufteilung der globalen Probleme in lokale Teilprobleme und das Zusammenführen der Teilgebietslösungen zu einer hochgenauen globalen Lösung verantwortlich ist und dabei alle Vorteile von aktuellen Programmiersprachen, parallelen Softwarekonzepten und modernen Prozessoren (CPU) ausnutzt, sollten datenstrombasierte Prozessoren als spezielle "numerische Co-Prozessoren“ verwendet werden. Ähnlich zu bereits erfolgreichen GPGPU-Aktivitäten ("general purpose computation using graphics hardware“) sollten Basiskomponenten der Numerischen Linearen Algebra, insbesondere hocheffiziente Mehrgitterlöser für Partielle Differentialgleichungen, entwickelt und in Bibliotheken realisiert werden, die entsprechende Teilprobleme mit sehr hoher numerischer Effizienz und gleichzeitig einer Rechenleistung von mehreren GFLOP/s lösen können. Unsere Forschungsarbeiten haben sich dabei vor allem auf die Aspekte Genauigkeit, Effizienz, Flexibilität und Robustheit konzentriert und erforderten sowohl mathematische wie auch softwaretechnische Grundlagenarbeiten auf allgemeinen datenstrombasierten Architekturen. Die Projektarbeiten führten zu einer Vielzahl neuer methodischer und algorithmischer Resultate, die in zahlreichen Publikationen dokumentiert wurden. Der Mitarbeiter, Dr. Dominik Göddeke, konnte sich im Rahmen der Projektarbeiten promovieren und hat mittlerweile eine Juniorprofessur in dem Bereich "Hardware-orientierte Numerik für große Systeme“ an der TU Dortmund inne. Außerdem haben die Arbeiten die internationale Sichtbarkeit der Arbeitsgruppe überdurchschnittlich erhöht, da im Verlauf des Vorhabens die Hardwareplattform (GPUs) und die assoziierten Grundlagenarbeiten den Nischenstatus überwinden konnten. Die algorithmischen Arbeiten wurden prototypisch in der FEAST Software realisiert und stellen die Basis für das Nachfolgeprojekt FEAST2, das augenblicklich in der Arbeitsgruppe des Antragstellers weiterentwickelt wird.
Publications
-
Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters, Dissertation, Fakultät für Mathematik, 2010, TU Dortmund
Dominik Göddeke
-
FEAST - Realisation of Hardware-oriented Numerics for HPC Simulations with Finite Elements. Concurrency and Computation: Practice and Experience 22(6):2247-2265, Mai 2010
Stefan Turek, Dominik Göddeke, Christian Becker, Sven H.M. Buijssen und Hilmar Wobker
-
Hardware-Oriented Multigrid Finite Element Solvers on GPU-Accelerated Clusters. Kapitel 6 in: Jakub Kurzak, David A. Bader und Jack J. Dongarra (eds.): Scientific Computing with Multicore and Accelerators, CRC Press, Dezember 2010
Stefan Turek, Dominik Göddeke, Sven H.M. Buijssen und Hilmar Wobker
-
Mixed Precision GPU-Multigrid Solvers with Strong Smoothers. Kapitel 7 in: Jakub Kurzak, David A. Bader und Jack J. Dongarra (eds.): Scientific Computing with Multicore and Accelerators, CRC Press, Dezember 2010
Dominik Göddeke und Robert Strzodka