OpenMP est un ensemble de directives de compilateur et d'API pour les programmes écrits en C, C++ ou FORTRAN qui prennent en charge la programmation parallèle dans un environnement de mémoire partagée. OpenMP reconnaît les régions parallèles comme des blocs de code pouvant s'exécuter en parallèle. Les développeurs d'applications insèrent des directives du compilateur dans le code d'une région parallèle qui demandent à la bibliothèque d'exécution OpenMP d'exécuter la région en parallèle. Le programme C suivant illustre la directive du compilateur au-dessus d'une région parallèle contenant une instruction printf() -
#include <omp.h> #include <stdio.h> int main(int argc, char *argv[]){ /* sequential code */ #pragma omp parallel{ printf("I am a parallel region."); } /* sequential code */ return 0; }
Lorsqu'OpenMP rencontre cette directive
#pragma omp parallel
, il crée autant de threads qu'il y a de cœurs de traitement dans le système. Ainsi, pour un système dual-core, deux threads sont créés, pour un système quad-core, quatre threads sont créés et ainsi de suite. Tous les threads exécutent ensuite la région parallèle simultanément. Chaque thread se termine lorsqu'il quitte la région parallèle. OpenMP fournit plusieurs directives supplémentaires pour exécuter des régions de code en parallèle, y compris la parallélisation des boucles.
En plus de fournir des directives de parallélisation, OpenMP permet également aux développeurs de choisir entre plusieurs niveaux de parallélisme. Par exemple, ils peuvent définir manuellement le nombre de threads. Il permet également aux développeurs d'identifier si les données sont partagées entre les threads ou si elles sont privées. OpenMP est disponible sur plusieurs compilateurs open source et commerciaux pour les systèmes Linux, Windows et Mac OS X.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!