Ajouter un commentaire

Les spécifications d'OpenMP 5.0 sont terminées

Par:
fredericmazue

lun, 12/11/2018 - 11:15

OpenMP (Open Multi-Processing) est une interface de programmation API pour le calcul parallèle sur architecture à mémoire partagée. Cette API portable est prise en charge par de nombreuses plateformes, dont Windows, Linux et macos, pour les langages de programmation C, C++ et Fortran. Le développement de la spécification 5.0 de l'API vient d'être terminée par le OpenMP ARB, un groupe de constructeurs de matériel informatique et d'éditeurs de logiciels.

Cette nouvelle spécifications 5.0 apporte des avancées majeures, comme le souligne Bronis R. de Supinski, président du comité OpenMP : "OpenMP 5.0 ajoute des fonctionnalités critiques dans plusieurs domaines. Par exemple, il réduit considérablement les efforts pour utiliser efficacement les accélérateurs (GPU) grâce à la prise en charge de la mémoire partagée unifiée via la directive require et aux directives implicite de déclaration cible".

Les principaux ajouts d'OpenMP 5.0 sont les suivants :

  • Prise en charge complète pour accélérateur périphériques . OpenMP prend désormais totalement en charge les accélérateurs (GPU), 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, un meilleur contrôle des mappages de données implicites et la possibilité de remplacer le déchargement de périphérique au moment de l'exécution. En outre, il prend en charge le déchargement inversé, la génération de fonctions implicites et la possibilité de copier facilement des structures de données orientées objet.
  • Amélioration du débogage et de l'analyse des performances. Deux nouvelles interfaces d’outil permettent le développement d’outils tiers pour prendre en charge le débogage intuitif et l’analyse approfondie des performances.
  • Prise en charge des dernières versions de C, C ++ et Fortran. OpenMP prend désormais en charge des fonctionnalités importantes de Fortran 2008, C11 et C ++ 17.
  • Prise en charge d'une construction de boucle entièrement descriptive. La construction de boucle permet au compilateur d’optimiser une boucle sans forcer une implémentation spécifique. Cette construction permet au compilateur de choisir une bonne implémentation pour une cible spécifique par rapport aux autres directives OpenMP.
  • Systèmes de mémoire multi-niveaux. Il existe des mécanismes d'allocation de mémoire qui placent les données dans différents types de mémoire, tels que la mémoire à bande passante élevée. Les nouvelles fonctionnalités OpenMP facilitent également la gestion de la numérotation des systèmes HPC modernes.
  • Portabilité améliorée . La directive declare variante et une nouvelle méta-directive permettent aux programmeurs d'améliorer la portabilité des performances en adaptant les pragmas OpenMP et le code utilisateur lors de la compilation.

 Il ne reste plus qu'à attendre les implémentations :-) GCC 9, qui proposera par ailleurs un frontal pour le langage D, proposera une implémentation partielle d'OpenMP 5.0.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 BBBB   EEEE  W     W  N   N  M   M 
B B E W W NN N MM MM
BBBB EEE W W W N N N M M M
B B E W W W N NN M M
BBBB EEEE W W N N M M