Developpez.com - Rubrique HPC

Le Club des Développeurs et IT Pro

Sortie de PGI 2018.10, la suite de compilateurs pour le calcul de haute performance

Apporte une série de nouveautés intéressantes

Le 2018-12-20 06:55:25, par dourouc05, Responsable Qt & Livres
PGI est une société (maintenant filiale de NVIDIA) spécialisée dans le développement de compilateurs pour le calcul de haute performance. Leur premier produit est toujours le plus connu : un compilateur C et Fortran (maintenant, C++ s'est ajouté à la liste). Le marché visé est celui des superordinateurs, mais aussi de toute application du calcul à haute performance, c'est-à-dire avec un haut degré de parallélisme.

La version 2018.10 de la suite de compilateurs est maintenant sortie et apporte une série de nouveautés intéressantes. Du côté matériel, le compilateur peut cibler les cartes graphiques Tesla V100, un accélérateur pas spécialement nouveau ; PGI rapproche le code écrit avec la norme OpenACC (C++ et Fortran) ainsi que CUDA en Fortran de ce matériel, tant pour des processeurs x86 qu'OpenPOWER.

Pour faciliter le débogage de code, la version précédente de PGI (2018.7) a apporté une fonctionnalité d'autocomparaison : le même code OpenACC est lancé sur le CPU et sur le GPU et les résultats numériques sont comparés (en considérant que le CPU donne toujours des résultats exacts). La nouvelle version, en plus de retravailler le format de sortie de cette option pour le rendre plus lisible, permet de corriger les résultats défaillants en cas d'erreur (patch-and-continue) : les données sont alors copiées depuis le CPU vers le GPU et l'exécution continue avec les nouvelles données. Ainsi, si la suite du code émet à nouveau des avertissements, cela signifie qu'elle est également fausse.

Au niveau des langages, les versions du compilateur livrées en 2018 ont apporté les dernières évolutions : les sous-modules de Fortran 2008, l'assignation de valeurs à des variables allouables qui respecte la sémantique de Fortran 2003 (au lieu de Fortran 1995), OpenACC 2.6 complètement implémenté (et les fonctions anonymes peuvent être utilisées conjointement), C++17 en bonne partie disponible. La version 2018.10 ajoute la construction DO CONCURRENT de Fortran 2008, pour rattraper le retard accumulé ces dernières années.

Source : notes de version.
  Discussion forum
1 commentaire
  • dourouc05
    Responsable Qt & Livres
    Pour ceux qui se posent des questions sur la performance de PGI 18.10 par rapport aux derniers compilateurs libres (GCC 8 et LLVM 7), Phoronix a lancé quelques tests : globalement, PGI tend à se classer entre GCC (code généré le plus lent) et LLVM ; il est parfois un peu ou franchement devant… et parfois franchement derrière.

    https://www.phoronix.com/scan.php?pa...lers&num=1