Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

OpenMP 3.1 implémenté dans le compilateur C et C++ Clang
Une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée

Le , par dourouc05

0PARTAGES

0  0 
GCC et Clang sont deux compilateurs C et C++ reconnus pour leur qualité d'implémentation. Ils sont très similaires à bien des points de vue, sauf en ce qui concerne OpenMP, un standard pour faciliter la parallélisation de code C, C++ et Fortran : la version 4 d'OpenMP est déjà implémentée dans GCC depuis presque un an, mais rien n'avait été finalisé côté Clang.

Intel travaille sur ce point depuis bien longtemps — depuis août 2013 en public. L'objectif premier est d'implémenter la dernière version d'OpenMP à ce moment dans Clang, c'est-à-dire la version 3.1… et cet objectif est maintenant atteint. Cette implémentation ne fonctionne que sous Linux et OS X pour le moment et utilise le moteur développé par Intel et disponible librement. OpenMP 3.1 sera donc disponible dans la prochaine version de Clang, numérotée 3.7.

Le travail continue à présent sur la version 4.0, sortie en juillet 2013, pour amener Clang au même niveau que GCC. Elle offre principalement des fonctionnalités pour les accélérateurs (comme Xeon Phi), mais aussi la gestion des opérations atomiques, des erreurs, de l'affinité des fils d'exécution, des réductions avec des opérateurs définis par l'utilisateur ou encore des opérations SIMD.

Au niveau des performances, les derniers tests publiés par Phoronix en mai 2014 montraient que l'implémentation d'OpenMP laissait encore à désirer pour Clang sur un certain nombre de points, avec des améliorations de performance moindres que celles permises par l'implémentation de GCC. Depuis lors, Clang a connu plusieurs versions mineures (la 3.5 et la 3.6) et l'implémentation d'OpenMP a également bien évolué, l'écart s'est probablement réduit.

Source : liste de diffusion de Clang (OpenMP 3.1 Implementation Complete et Option to control level of OpenMP support).

Une erreur dans cette actualité ? Signalez-le nous !