Motivation
Feldprogrammierbare Gate Arrays (FPGA) als Beispiel für Rekonfigurierbare Technologien sind integrierte Schaltkreise, in welchen logische Schaltungen flexibel geladen und damit erstellt werden können. Damit entsteht eine veränderliche Systemarchitektur mit geringem Stromverbrauch. Dabei lassen sich mit FPGAs auch herkömmliche Prozessoren konfigurieren und nachbilden, allerdings zu lasten der Komplexität und Geschwindigkeit im Vergleich zu vorproduzierter Hardware. Künftige HPC-Systeme müssen nicht nur wegen ihrer Rechenstärke immer größere Datenmengen bewältigen, sondern auch zunehmend datengetriebene Analyse-Anwendungen (Data Analytics, Big Data) bedienen – oft bezeichnet als das Zusammenwachsen von HPC und High Performance Data Analytics. Gerade in diesen Bereichen wird daher zunehmend auf HPC-Systeme mit heterogenen Architekturen auch unter Einsatz von FPGA-Beschleunigern gesetzt. Aller-dings ist die Programmierung von FPGAs bisher vorwiegend Spezialisten vorbehalten und sehr zeitaufwendig, wodurch deren Verwendung in Bereichen des wissenschaftlichen Hoch- und Höchstleistungsrechnens derzeit noch selten ist.
Ziele und Vorgehen
Im HPC-Umfeld gibt es verschiedenste Ansätze für Programmiermodelle von heterogenen Rechnersystemen mit Beschleunigern (wie z.B. OpenCL, OpenACC oder OpenMP). Eine produktive Verwendbarkeit dieser Standards für FPGAs ist heute jedoch noch nicht gegeben. Bisherige OpenMP-Implementierungsversuche konzentrieren sich auf die Umsetzung einzelner Teilaspekte und adressieren insbesondere nicht die für HPC notwendigen Geschwindigkeitsaspekte der Simulationen. Für den ganzheitlichen Ansatz sind daher auch weitere Forschungsarbeiten nötig. Genau dieser ganzheitliche Ansatz wird im Projekt ORKA-HPC verfolgt. Übergreifendes Ziel ist es dabei auch, eine Programmierumgebung zur Verfügung zu stellen, die auch Nicht-FPGA-Spezialisten bedienen können. Der Programmierer sollte nicht mehr merken, ob er einen normalen Prozessor oder einen FPGA programmiert. In einem Zwischenschritt wird daher das Programm des Nicht-FPGA-Spezialisten in ein neues, FPGA-spezifisches Programm verwandelt (oder compiliert, siehe Bild). Oft gibt es mehrere Lösungen dieser Aufgabe. Im Projekt ist daher eine Optimierung der Umwandlung nach strom-sparenden Aspekten geplant.
Innovationen und Perspektiven
Zur Demonstration der Ergebnisse werden bis zu sechs Anwendungsfälle, von der genetischen Analyse über eine Zeitreihenanalyse bis zum Maschinellen Lernen, implementiert. Dieses Projekt leistet einen wichtigen Beitrag zum stromsparenden Höchstleistungsrechnen so wie es unabdingbar für die Entwicklung zukünftiger (Pre)-Exascale Systeme ist. Auch international wird damit Neuland beschritten.