Nous observons actuellement un fort regain d'intérêt pour le développement des applications de calcul haute-performance (HPC), comme le démontre le nombre de jeunes entreprises s'y intéressant.
Marie Quantier, Strains, Quantmetry, Nexiogroup, Numtech, Cybeletech, Hydrocean, Datavortex...
Plusieurs facteurs expliquent cette situation :
Bien qu'originellement orienté pour des applications en recherche et développement, le HPC s'est démocratisé ces dernières années dans l'industrie, notamment grâce à la facilité d'accès aux ressources de calculs à faible coût. Néanmoins, en y regardant de plus près, le simple fait d'avoir accès aux ressources de calcul ne garantit pas systématiquement l'obtention de meilleures performances des applications de calcul.
En effet, depuis l'introduction du processeur multicore au début des années 2000, nous assistons plutôt à des transformations micro-architecturales profondes des processeurs et à l'apparition de nouveaux types de processeurs de calculs (GPU, MIC, FPGA). Ces transformations à leur tour s'accompagnent de nouveaux paradigmes de programmation que les développeurs doivent prendre en compte. De fait, fini le temps où il suffisait d'attendre l'arrivée de la nouvelle génération de son processeur favori et ainsi bénéficier "gratuitement" des améliorations de performances comme le rappelle la célèbre formulation "The free launch is over". Il faut désormais adopter de nouvelles approches de modernisation des codes de calculs, prenant de nouveau en compte à la fois les aspects software et hardware.
Ces approches lorsqu'elles sont bien mises en œuvre permettent de combiner les gains des différentes approches (modélisation qui favorise la mise en œuvre d’algorithmes efficaces et implémentation performante de ces derniers).
A titre d’exemple, comparons le temps de simulation d'un cœur de réacteur nucléaire complet (les détails sont présentés dans un de mes articles). PENTRAN, un solveur de transport neutronique généraliste, développé à Pennsylvania State University, résout ce problème en 4752 minutes sur 3468 cores d'un supercalculateur à 289 nœuds. DOMINO, un solveur de transport neutronique développé par EDF R&D, adapté aux cœurs de REP, permet d’obtenir la solution du même problème en 67 minutes sur 32 cores d'1 nœud de cluster de même génération. Ces résultats montrent clairement l’importance de permettre à chaque expert d’apporter sa brique pour l’obtention de bonnes performances : au final, le calcul effectué avec DOMINO consomme 100 fois moins de ressources de calcul qu’avec PENTRAN. Il est important de noter à ce niveau que le solveur PENTRAN n'est pas spécialisé pour traiter les problèmes de simulation de cœurs de réacteur de type REP. Par contre, dans le cas de DOMINO, la mise en place d'une "feature team" composée de numériciens et experts HPC a permis de concevoir un solveur spécialisé pour la simulation des REP et optimisé pour les architectures modernes.
Dans un prochain article, je détaillerai les différentes étapes à suivre pour "tailler" une application HPC adaptée aux architectures modernes.