Le but d'un programme est d'exécuter une tâche, et pour cela, on donne à l'ordinateur une liste d'instructions qu'il va effectuer en général les unes après les autres. Lorsque l'ordinateur a fini de traiter une instruction, il exécute la suivante. Mais il y a aussi une autre manière de le faire. On peut, pour gagner du temps, découper la tâche en un ensemble de petites tâches qui seront exécutées en même temps : on peut donc parler de programmation parallèle. Elle tire parti du fait que les processeurs récents sont dotés de plusieurs cœurs. Cette augmentation du nombre de cœurs nécessite de nouvelles habitudes de programmation pour profiter de ces ressources, sachant qu'un programme non adapté n'utilise qu'un seul des cœurs.
Ce besoin d'exploiter la puissance de calcul offerte par plusieurs cœurs a donc propulsé la programmation parallèle. Et quand on parle de programmation parallèle aujourd'hui, on pense de plus en plus à OpenMP. Il s’agit d’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, macOS et Windows, pour les langages de programmation C, C++ et Fortran. OpenMP se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement. Précisons également que l'API OpenMP est utilisée dans un grand nombre de domaines, y compris la physique, les simulations automobiles et aéronautiques, la biotechnologie, l'automatisation et la robotique, l'analyse financière, etc.
La dernière version stable en date de l'API est la 4.5. Mais comme on s'y attendait, l'OpenMP Architecture Review Board (ARB) a annoncé hier la version 5.0 d'OpenMP, une mise à niveau majeure de la spécification. La communauté OpenMP a fait de nombreuses requêtes depuis l’introduction de la version 4.5 en 2015, ce qui permet à OpenMP 5.0 d'ajouter de nombreuses nouvelles fonctionnalités qui seront utiles pour les applications hautement parallèles et complexes.
En résumé, OpenMP 5.0 offre un support complet des accélérateurs, y compris les mécanismes exigeant une mémoire partagée unifiée entre le système hôte et les coprocesseurs, la possibilité d'utiliser des implémentations de fonctions spécifiques à chaque périphérique et un meilleur contrôle des mappages de données implicites, entre autres.
Cette version améliore également le débogage et de l'analyse des performances, grâce à deux nouvelles interfaces d’outil. On notera en outre la prise en charge des dernières versions de C, C++ et Fortran. OpenMP 5.0 supporte en effet des fonctionnalités importantes de Fortran 2008, C11 et C++17. Entre autres nouveautés, la nouvelle version de l'API pour la programmation parallèle améliore aussi la portabilité et la convivialité.
La version 5.0 de la spécification OpenMP a été développée conjointement par OpenMP ARB - qui réunit des fournisseurs majeurs de matériel informatique et de logiciels - ainsi que par des utilisateurs de la communauté OpenMP. Les principaux fournisseurs ont implémenté des parties de la spécification OpenMP 5.0 dans leurs produits. Le projet GNU est le plus avancé dans la mise en œuvre de GCC et prévoit d’avoir plusieurs fonctionnalités dans la prochaine version de GCC, à savoir GCC 9. Bon nombre outils de débogage et de performance des fournisseurs seraient également étendus avec les fonctionnalités d'OpenMP 5.0.
Source : OpenMP
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
OpenMP 5.0 est prévu pour novembre 2018, avec l'ajout d'interfaces pour le débogage et l'analyse poussée de la performance
La bibliothèque de déchargement d'exécution OpenMP de LLVM ne sera plus développée, liboffload sera remplacée par libomptarget
Sortie de GCC 7.1, le compilateur libre peut décharger du code OpenMP sur la plateforme AMD HSA et sur les cartes graphiques NVIDIA
DawnCC parallélise automatiquement des programmes avec OpenMP et OpenACC, en limitant les quantités de données transférées
Sortie de GCC 6.1 : cette version du système de compilation libre arrive avec C++14 activé par défaut et l'implémentation complète de OpenMP 4.5
OpenMP 5.0 est disponible, l'API pour la programmation parallèle
Améliore le support des accélérateurs, le débogage et l'analyse des performances
OpenMP 5.0 est disponible, l'API pour la programmation parallèle
Améliore le support des accélérateurs, le débogage et l'analyse des performances
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !