Login
Newsletter
Werbung

Mo, 30. November 2015, 17:24

Software::Entwicklung

OpenMP-Spezifikation 4.5 veröffentlicht

Der Standard für parallele Programmierung OpenMP wurde in Version 4.5 fertiggestellt. Freie Compiler, die OpenMP unterstützen, sind unter anderem GCC und Clang. Beide werden in kommenden Ausgaben auch die neueste OpenMP-Spezifikation beherrschen.

Mirko Lindner

OpenMP wird vom OpenMP Architecture Review Board (ARB) entwickelt, das sich aus Vertretern diverser Hardware- und Compiler-Hersteller zusammensetzt. Es ist ein Industriestandard zur parallelen Programmierung mittels gemeinsamem Speicher, also im Wesentlichen auf einem einzelnen Rechner mit mehreren Prozessoren und UMA- oder NUMA-Architektur. Ziel von OpenMP ist es, eine sprachunabhängige Parallelisierung der Ausführung von Programmen zu spezifizieren, die hohe Leistung erbringt sowie produktiv und portabel ist.

Orthogonal zu OpenMP und teilweise mit diesem kombinierbar sind Protokolle wie Message Passing Interface (MPI) und MVP, die Programme auf zahlreiche Rechner verteilen und parallel ausführen.

Die neue Version 4.5 der Spezifikation ist nach Angaben der Autoren eine wichtige Überarbeitung. Sie verbessert die Unterstützung von Beschleuniger-Hardware und Grafikprozessoren und ermöglicht nun auch die Parallelisierung von Schleifen, die wohldefinierte strukturierte Abhängigkeiten aufweisen.

OpenMP stellt jetzt Mechanismen für die Einbindung unstrukturierter Daten und asynchrone Ausführung sowie für die Speicherverwaltung in Geräten bereit. Das neue taskloop-Konstrukt ermöglicht es, Schleifen in Tasks aufzuteilen, so dass nicht alle Threads die Schleife ausführen müssen. Die weiteren Neuerungen lassen sich in der Ankündigung nachlesen. Die Spezifikation ist als PDF-Datei frei verfügbar.

Die Implementation von OpenMP 4.5 wird nach Angaben der Autoren in GCC 6.0 erscheinen, wo sie bereits jetzt fast vollständig ist. In Clang wurde die Implementation ebenfalls begonnen. In C wird OpenMP mittels Pragmas spezifiziert. Compiler, die OpenMP nicht kennen, können den Code daher trotzdem compilieren, wobei dann allerdings auf die Parallelisierung verzichtet werden muss.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung