OpenMP (Open Multi-Processing) est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée. Cette API est prise en charge par de nombreuses plateformes, incluant GNU/Linux, OS X et Windows, pour les langages de programmation C, C++ et Fortran. Il se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement.

OpenMP
Description de l'image OpenMP logo.png.

Informations
Dernière version 6.0 ()[1]Voir et modifier les données sur Wikidata
Écrit en C++ et CVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Type Standard techniqueVoir et modifier les données sur Wikidata
Site web www.openmp.orgVoir et modifier les données sur Wikidata

OpenMP est portable et dimensionnable. Il permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel.

La programmation parallèle hybride peut être réalisée par exemple en utilisant à la fois OpenMP et MPI.

Le développement de la spécification OpenMP est géré par le consortium OpenMP Architecture Review Board.

Historique

modifier

OpenMP 1.0 pour Fortran a été publié en octobre 1997. En octobre 1998, la spécification pour le C/C++ a été publiée.

La version 2.0 pour Fortran a été disponible en 2000. La version 2.0 pour C/C++ en 2002.

La version 2.5 a été publiée en 2005, pour C/C++ et Fortran.

En mai 2008, la version 3.0 a été publiée[2], puis, le 9 juillet 2011, la version 3.1[3].

La version 4.0 date de juillet 2013[4].

La version 4.5 date de novembre 2015[5].

Particularités de chaque version

modifier

Implémentations

modifier
  • Version 3.0
    • GCC 4.3.1
    • Compilateur Mercurium
    • Intel Fortran and C/C++ versions 11.0 and 11.1 compilers, Intel C/C++ and Fortran Composer XE 2011 and Intel Parallel Studio.
    • IBM XL C/C++ compiler[6]
    • Sun Studio 12 update 1 has a full implementation of OpenMP 3.0[7]
    • Multi-Processor Computing (« MPC »)
  • Version 3.1
  • Version 4.0
    • GCC 4.9.0 pour C/C++, GCC 4.9.1 pour Fortran[8],[11]
    • Compilateurs Intel Fortran et C/C++ 15.0[12]
    • LLVM/Clang 3.7 (partiel)[10]

Voir aussi

modifier

Références

modifier
  1. (en) James Riordon, « OpenMP® ARB Releases OpenMP 6.0 for Easier Programming », (consulté le )
  2. « OpenMP Application Program Interface, Version 3.0 », openmp.org, (consulté le ).
  3. « OpenMP Application Program Interface, Version 3.1 », openmp.org, (consulté le ).
  4. « OpenMP 4.0 API Released », OpenMP.org, (consulté le ).
  5. « OpenMP 4.5 Specs Released », OpenMP.org, (consulté le ).
  6. (en) « XL C/C++ for Linux Features » (consulté le 9 juin 2009).
  7. « Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle », Developers.sun.com (consulté le ).
  8. a et b « openmp - GCC Wiki », Gcc.gnu.org, (consulté le ).
  9. Submitted by Patrick Kennedy... on Fri, 09/02/2011 - 11:28, « Intel® C++ and Fortran Compilers now support the OpenMP* 3.1 Specification | Intel® Developer Zone », Software.intel.com, (consulté le ).
  10. a et b « Clang 3.7 Release Notes », llvm.org (consulté le ).
  11. « GCC 4.9 Release Series - Changes », www.gnu.org.
  12. « OpenMP* 4.0 Features in Intel Compiler 15.0 », Software.intel.com.

Liens externes

modifier