Performanz der CG und Jacobi-Davidson Methoden auf einer CPU- und einer Grafikkarte. Durch die Verwendung von Blockalgorithmen kann das Verhältnis von Gleitkommaoperationen zu Datentransfer, sprich die Berechnungsintensität, verbessert werden. Hierdurch ergibt sich eine höhere Gesamteffizienz. Bild: DLR SC-HPC.
Das Pipelined Hybrid-parallel Iterative Solver Toolkit (PHIST) wurde als Framework zur Entwicklung von Lösern für dünnbesetzte Matrizen innerhalb des ESSEX-Projektes ins Leben gerufen. Ziel von PHIST ist es, ein Umfeld für die Entwicklung von linearen Gleichungssystemen und Eigenwertlösern zu schaffen, das den Anforderungen der zunehmend komplexen Hardware von CPUs und Beschleunigern gerecht wird und gleichzeitig die Produktivität der Anwender und Entwickler gewährleistet. Über das reine Integrations-Framework hinaus bietet PHIST eine Vielzahl von linearen Lösern sowie die effektive Block Jacobi-Davidson QR Methode zur Lösung von Eigenwertproblemen.
Pipelined bedeutet im weitesten Sinne, dass Algorithmen für Prozessoren mit "breiten Vektoreinheiten" optimiert sind (SIMD/SIMT auf CPUs bzw. GPUs). Standardverfahren bieten im Allgemeinen nicht ausreichende parallele Skalierbarkeit, um die gleiche Operation auf 4, 8 oder 32 Elemente unabhängig auszuführen. So kann PHIST z.B. mehrere Systeme mit unterschiedlichen Shifts und rechten Seiten lösen. Pipelining von Operationen während der Block-Orthogonalisierung ermöglicht die Verwendung schnellerer fusionierter Operationen.
Hybrid-Parallel bedeutet, dass wir ein „MPI+X“ Programmiermodell einsetzen, bei dem MPI-Kommunikation zwischen den Knoten eines Clusters angenommen wird, und ‚X‘ ein beliebiges zusätzliches Beschleuniger-, CPU- oder Core-Level-Programmiermodell sein kann. ‚X‘ ist abhängig von der Kernel-Bibliothek, GHOST beispielsweise verwendet OpenMP, SIMD intrinsics und CUDA.
Offizielle Projekthomepage