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).
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
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
Une erreur dans cette actualité ? Signalez-nous-la !