Parallele Programmierung, Algorithmen und Methoden
Das ZIH beteiligt sich aktiv an der Forschung zu parallelen Programmiermodellen für das Hochleistungsrechnen (High Performance Computing, HPC), an deren Standardisierung und an deren Implementierung und trägt damit zu einer wesentlichen Grundlage für die Nutzung von Hochleistungsrechnern für wissenschaftliche und ingenieurtechnische Anwendungsbereiche bei. Gleichzeitig arbeitet das ZIH mit Nutzern aus verschiedensten Disziplinen des Hochleistungsrechnens zusammen, um parallele Algorithmen für konkrete Anwendungsszenarien zu entwickeln und in skalierbarer Weise mit den passenden Programmiersprachen und Parallelisierungsmodellen umzusetzen.
Die parallele Programmierung in HPC ist seit vielen Jahren dominiert vom Message Passing Interface (MPI). Daneben gibt es eine Reihe etablierter sowie neuer Parallelisierungsmodelle, die in Kombination mit MPI genutzt werden können oder sich als Alternaitve zu MPI sehen. Eine wichtige Gruppe von Modellen zielt auf die Shared-Memory (SMP) Parallelisierung mittels Multi-Threading und Tasking, z.B. OpenMP, OpenACC aber auch PThreads. Eine andere vielversprechende Gruppe folgt dem Partitionend Global Address Space (PGAS) Ansatz, um die unterschiedlichen Ansätze für SMP-Programmierung und verteilter Programmierung zu vereinigen, z.B. CoArray-Fortran (CoF), OpenShmem oder GASPI. Schließlich gibt es spezielle Programmiermodelle für die Nutzung von Beschleunigern, um deren eingebaute Parallelität zu nutzen, z.B. für GPGPUs (General Purpose Graphics Processing Units) mittels Nvidia CUDA oder OpenCL.
Das Hochleistungsrechnen bietet für eine Vielzahl wissenschaftlicher und ingenieurtechnischer Disziplinen ein großes Potential, das jedoch nur ausgeschöpft werden kann, wenn die Kenntnisse aus den Anwendungsbereichen mit geeigneten Algorithmen sowie passenden Parallelisieruns- und Implementierungs-Methoden kombiniert werden. Um dies zu erreichen, arbeitet das ZIH mit Anwendungswissenschaftlern in gemeinsamen Projekten an der effizienten und skalierbaren Umsetzung paralleler Anwendungen für Hochleistungsrechner.
Aktuelle Schwerpunkte und Projekte
- DASH: Hierarchical Arrays for Efficient and Productive Data-Intensive Exascale Computing
- High Performance Deep Learning Framework
- Standardisierung von OpenMP und OpenACC
-
cfAED: Center For Advancing Electronics Dresden
- CRESTA: Collaborative Research into Exascale Systemware, Tools and Applications
- EXPLOIDS: Erkennung und Aufklärung von IT-Sicherheitsvorfällen mit einem neuartigen Angriffserkennungssystem
- GASPI: Global Address Space Programming Interface
- GCOE: Dresden GPU Center of Excellence
- GlioMathDD: Identification of new biomarkers and therapeutical targets for secondary glioblastoma with the help of innovative methods from Systems Biology
- H4H: Optimierung von HPC-Anwendungen auf hybriden Architekturen
- HPC-Flis: HPC framework for the solution of inverse scattering problems on structured grids and its application for 3D imaging
- HPC-OM: HPC-OpenModelica für Multiskalen-Simulationen technischer Systeme
- IPCC: Intel® Parallel Computing Center TU Dresden
- MEPHISTO - Metaprogrammierung für heterogene verteilte Systeme
- NGSgoesHPC: Scalable HPC solutions for efficient genome analysis
- PARADOM - Parallele Algorithmische Differentiation in OpenModelica für energietechnische Simulationen und Optimierungen
- ScaFES: Scalable Framework for Explicit Solvers
- SFB 609: Elektromagnetische Strömungsbeeinflussung in Metallurgie, Kristallzüchtung und Elektrochemie
- Parallel coupling framework and advanced time integration methods for detailed cloud processes in atmospheric models
- VEKTRA: Virtual Development of Ceramic and Composite Materials with Tailored Transport Properties