En partenariat avec IBM, Aneo a lancé le portage de plusieurs applications sur les dernières machines "Power 9" d'IBM. L'architecture Power, et en particulier le processeur Power 9, se distingue notamment par une plus grande bande passante mémoire que d’autres architectures, et des performances accrues sur les applications nécessitant un accès constant aux données.
La bande passante mémoire est une caractéristique généralement peu mise en avant des constructeurs de matériel, alors qu'il s'agit fréquemment du principal facteur de ralentissement des programmes. C’est le cas de l’application SeWaS (Seismic Wave Simulator), un code de calcul moderne, développé et optimisé par ANEO, simulant la propagation d’ondes sismiques. Le code est basé sur un schéma numérique de type stencil et limité par la bande passante mémoire, ce qui en fait un bon candidat pour l’architecture Power 9.
Nous avons donc porté SeWaS sur l’architecture Power 9. Les deux objectifs de cette étude étaient d'évaluer les performances et la difficulté de portage.
L'architecture Power utilise un jeu d'instructions particulier, ce qui nécessite une recompilation des applications ainsi que leurs dépendances. IBM affirme néanmoins que « 95 % des applications Linux on x86 écrites en C/C++ sont portées sur Linux on Power sans aucune modification du code source. »
Dans le cas de SeWaS, le "portage" a en effet consisté simplement à recompiler l'application en lançant exactement le même script d'installation que sur plateforme x86, rendant l’architecture Power totalement transparente.
En particulier, IBM met à disposition une suite logicielle gratuite, Advance Toolchain, qui contient de nombreuses bibliothèques classiques précompilées et optimisées pour Power (Boost,…) ainsi que le compilateur GCC 7, simplifiant particulièrement le portage de codes HPC.
Les tests ont été réalisés sur des machines virtuelles à seulement 2 cœurs physiques, ce qui ne rend pas nécessairement les performances représentatives à l’échelle.
La performance sur 2 cœurs est toutefois prometteuse, et il est intéressant de voir que l'application n’a pas perdu en performance sur Power en utilisant un script d'installation générique.
Le Xeon utilisé comme comparaison est une machine HPC classique utilisée en production sur le supercalculateur Occigen du CINES.
ANEO réalisera d’autres benchmarks dans le futur, notamment le portage de SeWaS sur des machines Power 9 disposant de GPU, où un facteur d’accélération bien plus important est à attendre (typiquement x5 ou x10 par rapport au CPU).
En effet, l’un des principaux avantages du Power 9 est le support très efficace des accélérateurs (FPGA, GPU). Les machines Power 9 prennent en charge jusqu’à 6 GPU NVidia et la technologie NVlink, dont les applications sismiques bénéficient grandement.