Basé sur des directives de programmation et de tuning, HMPP propose un modèle de programmation incrémental qui permet aux développeurs de différents niveaux d’expertise d’exploiter pleinement les accélérateurs matériels dans leur application source.
La dernière génération de GPU permet dorénavant d’exécuter plusieurs noyaux sur un même GPU, avec des gains de performances significatifs. La version 2.4 de HMPP tire donc partie de cette opportunité en intégrant la possibilité d’allouer différents groupes ou codelets au niveau du code source sur le même GPU, ouvrant ainsi la porte à de nouvelles opportunités avec les dernières architectures matérielles.
Cette nouvelle version offre également une plus grande facilité d’utilisation au développeur. Avant la version 2.4, les programmeurs HMPP devaient déclarer explicitement les statuts d’entrée/sortie (in, inout ou out) de chaque variable utilisée dans une région HMPP. HMPP 2.4 ajoute une simplification de programmation des régions en fournissant une détection automatique de ces statuts (in et inout).
HMPP 2.4 facilite également le travail du programmeur en ce qui concerne la gestion de la cohérence des données CPU-GPU en ajoutant un mode de transfert automatique des données. Ce mode gère les besoins de transferts des arguments d’un codelet en étudiant les calculs effectués sur le CPU ou le GPU.
HMPP 2.4 est la première version officielle qui fournit un support pour le calcul hybride avec le système d’exploitation Microsoft Windows. HMPP peut maintenant être utilisé à travers l’interface de programmation de Visual Studio et supporte Microsoft Windows HPC Server 2008 R2 et Windows 7. CAPS élargit ainsi l’accès d’HMPP à un plus grand nombre d’utilisateurs.
Eclipse étant une interface de développement open-source largement utilisée qui fournit déjà un environnement conçu pour le développement d’applications parallèles, CAPS a entrepris d’intégrer à HMPP 2.4 une extension pour Eclipse Galileo permettant de faciliter le travail du programmeur à l’aide de différentes vues. Une documentation en ligne en également disponible.
« En fournissant un riche jeu de directives, HMPP permettait déjà d’exploiter pleinement la puissance de calcul des GPU. Ces dernières nouveautés rendent la programmation HMPP encore plus simple tout en permettant d’atteindre des niveaux de performances élevées. D’autre part, le support de Microsoft Visual Studio ainsi que le plugin Eclipse et la compatibilité renforcée avec d’autres outils de profiling et de débogage ouvrent cette nouvelle version d’HMPP à une plus large communauté d’utilisateurs. », commente Eric Courtois, Responsable des Développements à CAPS.
Avec sa version 2.4, l’écosystème de HMPP est en pleine évolution. CAPS enrichit sa plate-forme de programmation avec l’utilisation d’outils d’analyse et de débogage tels que Vampir ou DDT d’Allinea, l’intégration du compilateur Absoft Pro Fortran à la liste des compilateurs déjà supportés… sans oublier le support des derniers SDK fournis par NVIDIA et AMD/ATI.
CAPS invite les participants à SC10 à venir assister aux premières démonstrations d’HMPP 2.4 sur son stand (#1427). Des versions d’évaluation sont également disponibles sur demande.