• IT-Karriere:
  • Services:

Open ACC: Code für CPUs und GPUs automatisch parallelisieren

Die Hardwarehersteller Cray und Nvidia sowie die Softwareentwickler PGI und Caps haben OpenACC vorgestellt. Damit soll ein offener Standard für die automatische Parallelisierung von Programmen auf CPUs wie GPUs entstehen.

Artikel veröffentlicht am ,
Der Compiler schlägt Parallelisierung auf der GPU vor.
Der Compiler schlägt Parallelisierung auf der GPU vor. (Bild: Nvidia)

Wer bisher parallelisierte Anwendungen für CPUs und GPUs schreiben musste, hatte dabei mit verschiedenen Entwicklungswerkzeugen zu tun. So stellte beispielsweise Intel viele Tools für CPUs zur Verfügung, die sich in IDEs einklinkten, die CUDA-Werkzeuge von Nvidia waren aber ebenfalls noch nötig.

Stellenmarkt
  1. Schaeffler Technologies AG & Co. KG, Herzogenaurach
  2. noris network AG, Nürnberg, München, Aschheim, Berlin

Wo der Code dann genau landete, ob auf der CPU oder der GPU, war ebenfalls Sache des Entwicklers - das soll sich nun ändern. Mit OpenACC, das allgemein für "Beschleuniger" steht, und keine Abkürzung ist, soll der Compiler selbst vorschlagen, wo sich Code durch Einsatz von GPUs optimieren lässt.

  • Das Konzept - der Compiler gibt Hinweise (Bilder: Nvidia)
  •  
  •  
  •  
  • Das Angebot gilt ab Erscheinen der PGI-Compiler im ersten Quartal 2012
  •  
  •  
  •  
Das Angebot gilt ab Erscheinen der PGI-Compiler im ersten Quartal 2012

Die Compiler dafür, die die Portland Group (PGI) und Cray im ersten Quartal 2012 vorstellen wollen, sollen dabei in den Code nach einer ersten Komplierung "Hints" einfügen. Werden sie vom Programmierer bestätigt, soll der Compiler selbsttätig die Parallelisierung vornehmen.

Das klingt ein bisschen wie Zauberei, ist aber nur das Ergebnis der Integration von Schnittstellen wie Nvidias CUDA und dessen Performance-Primitives in die Compiler. Viele Standardaufgaben wie eine FFT beherrschen die CUDA-Bibliotheken schon lange - nur mussten diese Funktionen bisher von Hand und als für die GPU gedacht gekennzeichnet in Programme eingebaut werden.

Der GPU-Hersteller ist auch die treibende Kraft hinter OpenACC. Wie Nvidias CUDA, das sich in C oder Fortran programmieren lässt, sollen die OpenACC-Compiler diese beiden Sprachen unterstützen. Eine Koexistenz mit OpenCL, das als etablierter Standard ebenfalls CPUs und GPUs unterstützt, ist laut der FAQ des Gremiums möglich, aber noch nicht umgesetzt.

Doppelt so schnell oder Geld zurück

Die Performance-Versprechen sind gegenüber den zigfachen Beschleunigungen, die Nvidia gerne für den Einsatz von GPUs angibt, bisher noch moderat. Die ersten 1000 Entwickler sollen das Geld für die OpenACC-Compiler zurückerhalten, wenn sie die Geschwindigkeit ihrer Anwendungen nicht in vier Wochen verdoppeln können.

Da Ziel von OpenACC ist über die vereinfachte Programmierung hinaus auch portabler Code, der einmal erstellt wird und dann je nach System CPUs oder GPUs nutzt. Spannend bleibt bei diesem Ansatz, ob sich auch die anderen Hersteller geeigneter Hardware an der Initiative beteiligen - AMD und Intel haben sich dazu bisher noch nicht geäußert.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. (u. a. Doom Eternal für 26,99€, Prey für 6,99€, Rage 2 für 17,99€, Wolfenstein...
  2. 6,99€
  3. 3,43€

SSD 16. Nov 2011

omg, ist doch klar: nur bei OpenACC ist das automatische "Optimieren" möglich (bei...

dEnigma 16. Nov 2011

Vielleicht meinte der Redakteur, dass es kein Akronym ist?


Folgen Sie uns
       


Wo steige ich in Star Citizen ein? - Tutorialvideo

Der Start in Star Citizen ist nicht für jeden Menschen einfach: Golem.de erklärt im Video, wo Neulinge anfangen können, was diese bereits erwartet und verrät ein paar Tipps zur Weltraumsimulation.

Wo steige ich in Star Citizen ein? - Tutorialvideo Video aufrufen
    •  /