OpenACC: neuer Standard zur Parallelprogrammierung mit C, C++ und Fortran

Nvidia, Cray, PGI und CAPS haben mit OpenACC einen neuen Standard für Parallelprogrammierung entwickelt. Hinweise in Form von Direktiven an den Compiler sollen zu beschleunigende Teile des Codes identifizieren.

In Pocket speichern vorlesen Druckansicht 12 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Alexander Neumann

Einen offenen Standard zur Parallelprogrammierung haben Nvidia, Cray, die Portland Group (PGI) und CAPS entwickelt. Mit OpenACC sollen Programmierer die Rechenleistung unterschiedlicher CPU-/GPU-Rechnersysteme nutzen können. Der jetzt in Version 1.0 veröffentlichte Standard erlaubt es Entwicklern paralleler Programme, Hinweise in Form von Direktiven an den Compiler zu geben, die die zu beschleunigenden Teile des Codes identifizieren. Dadurch sollen Programmierer keine Veränderung oder Anpassung ihres Codes vornehmen müssen, darüber hinaus die Steuerelemente dem Compiler die Verteilung der Rechenarbeit an den Beschleuniger erlauben.

OpenACC basiert zum großen Teil auf den Programmiermodellen von PGI und Cray. Die Compiler von Cray, PGI und CAPS werden den OpenACC-Standard voraussichtlich ab dem ersten Quartal 2012 unterstützen. Der Standard ist offenbar kompatibel mit Nvidias Compute Unified Device Architecture (CUDA), mit der sich zahlreiche Prozessorkerne in modernen Grafikchips für massiv parallele Datenverarbeitung nutzen lassen.

Geplant ist es, OpenACC in die hinter der Spezifizierung des OpenMP-Standards (Open Multi-Processing) stehende Organisation einzubringen, bei der auch Nvidia, Cray, PGI und CAPS involviert sind. So soll es schließlich eine Erweiterung von OpenMP zur Unterstützung von Beschleunigern geben. OpenMP hilft bei der Shared-Memory-Programmierung in C/C++/Fortran auf Multiprozessor-Rechnern und bietet bislang kein Programmiermodell für den durch OpenACC adressierten Aufgabenbereich an. (ane)