
Key facts
- Software.name
- OpenMP
- Software.logo
- OpenMP logo|180px
- Software.author
- OpenMP Architecture Review Board
- Software.developer
- OpenMP Architecture Review Board
- Software.latest_release_version
- 6.0
- Software.operating_system
- Cross-platform
- Software.platform
- Cross-platform
- Software.genre
- Extension to C, C++, and Fortran; API
- Software.license
- Various
via Wikipedia infobox
Wikidata facts
- Instance of
- software
- Official website
- www.openmp.org
- Has use
- parallel programming
Show 5 more facts
- Stack Exchange tag
- stackoverflow.com/tags/openmp
- software version identifier
- 6.0
- operating system
- cross-platform
- programmed in
- Q15777
- Commons category
- OpenMP
Sources (2)
via Wikidata · CC0
Article · Deutsch
OpenMP (Open Multi-Processing) ist eine seit 1997 gemeinschaftlich von mehreren Hardware- und Compilerherstellern entwickelte Programmierschnittstelle (API) für die Shared-Memory-Programmierung in C++, C und Fortran auf Multiprozessor-Computern. OpenMP parallelisiert Programme auf der Ebene von Schleifen, die in Threads ausgeführt werden, und unterscheidet sich dadurch von anderen Ansätzen (z. B. MPI), bei denen ganze Prozesse parallel laufen und durch Nachrichtenaustausch zusammenwirken. Der OpenMP-Standard definiert dazu spezielle Compiler-Direktiven, die diesen dann anweisen z. B. die Abarbeitung einer for-Schleife auf mehrere Threads oder Prozessoren zu verteilen. Alternativ gibt es Bibliotheksfunktionen und Umgebungsvariablen für die OpenMP-Programmierung. OpenMP ist zum Einsatz auf Systemen mit gemeinsamem Hauptspeicher („Shared-Memory“-Maschinen) gedacht (sogenannte UMA- und NUMA-Systeme), während andere Ansätze wie Message Passing Interface, PVM eher auf Multicomputern („Distributed-Memory“-Maschinen) aufsetzen. Bei modernen Supercomputern werden OpenMP und MPI (Message Passing Interface) oftmals zusammen eingesetzt. Dabei laufen auf einzelnen Shared-Memory-Clients OpenMP-Prozesse, die sich mittels MPI austauschen. Eine Eigenschaft von OpenMP ist, dass (bis auf Ausnahmen) die Programme auch korrekt laufen, wenn der Compiler die OpenMP-Anweisungen (siehe unten im Beispiel) nicht kennt und als Kommentar bewertet (also ignoriert). Der Grund dafür ist, dass eine mit OpenMP für mehrere Threads aufgeteilte for-Schleife auch mit einem einzelnen Thread sequentiell abgearbeitet werden kann.
Abstract from DBpedia / Wikipedia · CC BY-SA