Skip to content
OpenMP
EntityQ496579· pop 26· linked from 260 articles

Also known as Open Multi-Processing

OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, Windows and OpenHarmony. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.

In the Vinony graph

Vinony's link graph records 260 inbound references to OpenMP, and connects out to Fortran, application programming interface and parallel computing.

It sits within the topics Application programming interfaces, C programming language family and Fortran.

Vinony links it to 22 Wikipedia language editions.

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
Show 5 more facts
software version identifier
6.0
operating system
cross-platform
programmed in
C
Commons category
OpenMP
Sources (2)

via Wikidata · CC0

Article · Nederlands

OpenMP is een interface voor het programmeren van toepassingen (API) die het programmeren voor meerdere processoren makkelijker maakt. De MP in OpenMP staat voor Multi Processing, Open betekent dat het een open standaard is, wat zoveel betekent dat iedereen er een implementatie van mag maken, zonder dat je daar een of andere instantie voor zou moeten betalen. OpenMP is gespecificeerd voor de talen C/C++ en Fortran. Om een programma goed gebruik te laten maken van meerdere processoren is het essentieel dat er delen van het programma parallel uitgevoerd kunnen worden. Dit wordt meestal gedaan door meerdere threads aan te maken, en deze threads dan een bepaald deel van het programma uit te laten voeren. Als dit goed wordt gedaan kan er extreem goed parallellisme mee behaald worden. Het is echter ook een vrij pittige manier, omdat veel programma's normaal gesproken erg serieel van opzet zijn. Er zijn vaak maar erg weinig taken die volkomen los staan van eerdere taken. OpenMP pakt het op een heel andere manier aan. In plaats van verschillende taken los van elkaar te laten lopen probeert het (delen van) één taak, die parallel zou kunnen worden uitgevoerd, tijdens runtime over verschillende threads te verdelen. Deze groep van threads heet een . De programmeur van een programma dat OpenMP gebruikt moet door middel van compiler directives aangeven welke delen parallel uitgevoerd zouden kunnen worden. OpenMP bepaalt dan tijdens runtime welke threads welk deel van welke taak uit moeten voeren. Een voorbeeld: #pragma omp parallel forfor(int i = 0;i < 100000;i++){ array[i] = array[i] * array[i];} In dit voorbeeld geeft de expressie #pragma omp parallel for aan dat de inhoud van deze programmalus in principe parallel uitgevoerd kan worden. Het is bij deze lus namelijk niet belangrijk dat een eerdere iteratie al afgehandeld is. Of het dan uiteindelijk ook in parallel uitgevoerd gaat worden, en door hoeveel threads dat dan gedaan gaat worden mag OpenMP normaal gesproken zelf bepalen.

Abstract from DBpedia / Wikipedia · CC BY-SA

Gallery (6)

Connections

Categories