Graphics Processing Unit (GPU)

Eine GPU ist ein Grafik-Prozessor, der auf grafische Berechnungen und Kalkulationen spezialisiert ist.

General Purpose Computation on Graphics Processing Unit (GPGPU)

GPGPU ist eine Programmier-Schnittstelle mit der Berechnungen, wie sie bspw. bei numerischen Simulationen vorkommen, vom Grafikprozessor (GPU) auf der Grafikkarte ausgeführt werden können. GPUs besitzen eine massiv parallele Architektur, d.h. tausende von Kernen werden insbesondere für SIMD-Operationen (Single-Instruction Multiple-Data) genutzt. Viele Teilschritte einer CAE-Simulation verwenden wiederum SIMD-Operationen, z.B. wenn lineare Gleichungssysteme gelöst werden müssen.

Durch die Auslagerung solcher Schritte auf GPUs können erhebliche Leistungssteigerungen erzielt werden. Eine aktuelle NVIDIA Tesla GPU K40 kann beispielsweise eine Spitzenleistung von 1,43 TFlops (doppelte Genauigkeit) bzw. 4,29 TFlops (einfache Genauigkeit) erzielen. Während ein einzelner CPU-Kern immer schneller als ein GPU-Kern ist, sorgt die deutlich höhere Anzahl an GPU-Kernen für die zusätzliche Beschleunigung der Laufzeit. Eine NVIDIA Tesla GPU K40 besitzt vergleichsweise insgesamt 2880 Kerne

Diese Performance-Steigerung wird besonders deutlich, wenn die Werte für die theoretische Leistung einer CPU mit denen einer GPU verglichen werden: eine Intel Xeon E-2690 v2 CPU verfügt über 0,024 TFlops pro Core, während eine NVIDIA Tesla K40 GPU mit 1,43 TFlops eine 60-fache Leistungsfähigkeit besitzt.

Grid Computing

Bei sehr resourcenintensiven numerischen Berechnungen kommt es oft vor, dass die eigenen Kapazitäten schnell erschöpft sind. Unter Grid Computing versteht man die zusätzliche Nutzung von verteilten Rechenressourcen, die gebündelt in einem Netzwerk einen Supercomputer sozusagen ersetzen. Je nach Bedarf können also Rechenleistungen und Speicherkapazitäten aus anderen Ressourcen über das Internet oder unter Errichtung einer VPN bezogen werden.