L’écosystème des bibliothèques pour le calcul scientifique
By , , and   |  January 06, 2014

Des bibliothèques plus spécifiques

À EDF R&D, Laurent Plagne travaille sur un type de problème très particulier : les matrices creuses structurées par blocs multiniveaux. Ces objets exotiques sont engendrés par des problèmes de neutroniques et consistent en des matrices très creuses, dont on peut exprimer le pattern en peu d’éléments. Pour les décrire, il faut recourir à Legolas++, un outil qui construit des patterns complexes à partir de patterns de base, allant même jusqu’à reconstruire des matrices non stockées.

Matrices creuses très structurées (blocs multiniveaux), typiques des problèmes de neutroniques et prises en charge par la bibliothèque Legolas++.

Pour y parvenir, Legolas++ se livre à une double opération : d’une part la composition verticale qui accole des matrices et d’autre part la composition horizontale qui les additionne. Au final, on peut reconstruire des matrices assez sophistiquées à partir d’un nombre fini de blocs, et résoudre le tout avec un solveur parallèle. La performance obtenue est très intéressante. En utilisant les bons outils, Legolas++ permet d’obtenir un speedup de 10X sur une machine multicœur à mémoire partagée.

Il faut également citer FreeFem++, un logiciel libre qui permet de résoudre les équations aux dérivées partielles. Créé – entre autres – par Frédéric Hecht (UPMC), il est, comme son nom l’indique, gratuit et basé sur une Finite Element Method. Au contraire de Legolas++ évoqué précédemment, le “++” ne fait pas ici référence au C++, mais au fait qu’il s’agit de sa troisième version. Multiplateforme (Windows, Mac et Unix), ff++ fonctionne par méthode d’éléments finis R2 et R3, avec un langage dédié, un seul paradigme de parallélisation (MPI) et ne prend en charge que les triangles et les simplexes, afin de conserver une structure “simple”. Il gère des valeurs réelles ou complexes, récupère toutes les matrices et fait… tout ce que l’on peut attendre d’un logiciel d’éléments finis, à quoi il ajoute l’interpolation automatique des données sur des maillages distincts.

N’oublions pas non plus OpenPALM, coupleur co-developpé par le Cerfacs et l’ONERA depuis 2011. Florent Duchaine (Cerfacs) recommande ses performances, notamment en mécanique des fluides, pour réaliser des couplages multiphysiques, et en algorithmique dynamique. Son principe est d’utiliser du couplage de code pour traiter un système dans sa globalité avec d’un côté les aspects couplages physiques, et de l’autre les aspects informatiques avec des échanges de données. Un étage de turbine, par exemple, comportant une partie fixe et une partie mobile couplées, peut être traité par une instance du même code. OpenPALM s’utilise également dans le domaine du réchauffement climatique ou le couplage thermique, notamment pour le spatial.

Quelles que soient les bibliothèques, il est intéressant de considérer l’usage qu’en font les utilisateurs compte tenu des contraintes auxquelles ils sont soumis. Au CEA par exemple, les échelles de temps sont très longues, de sorte que les codes associés doivent avoir une durée de vie extensive. Les réacteurs que le CEA exploite (propulsions navales, systèmes nucléaires électrogènes et expérimentaux…) ont des cycles de vie qui s’étalent sur 20 ou 30 ans et obligent à couvrir un spectre très large de sciences. Voilà pourquoi, comme le précise Christophe Calvin, le CEA utilise principalement la plate-forme Salome, un coupleur d’applications co-développé avec EDF.

Navigation

<123>

© HPC Today 2024 - All rights reserved.

Thank you for reading HPC Today.

Express poll

Do you use multi-screen
visualization technologies?

Industry news

Brands / Products index