La loi de Moore continue pour Code_Aster !
par O.Boiteau, EDF R&D / SINETICS
Si du point de vue matériel les promesses de performance de la loi de Moore commencent à s’essouffler, on continue à observer dans Code_Aster, version après version, des accélérations notables dans différentes fonctionnalités du code dont bénéficient directement les études.
Ainsi, l’étape dimensionnante des grosses études, celle de résolution des systèmes matriciels, vient de bénéficier de récentes avancées du produit MUMPS[1] très souvent utilisé, notamment en parallèle. Avec Code_Aster v13.1, en activant deux nouvelles fonctionnalités de cet outil externe - un niveau de parallélisme supplémentaire associé à des compressions algorithmiques - ces grosses études peuvent voir leur temps réduit d’au moins 50% (cf. Figures 1 et 2). Et ce, sans véritable impact sur la mise en donnée, le périmètre d’utilisation, la précision ou la robustesse des calculs et … contrairement à la loi de Moore, sans changer de machine ou de nombre de nœuds alloués !
Un parallélisme désormais hybride
Souvent, à cause de la mémoire, l’utilisateur distribue son calcul sur plusieurs nœuds informatiques (parallélisme dit « MPI ») ce qui conduit à sous-utiliser les processeurs : par exemple, sur le serveur centralisé Aster5, on n’exploite généralement une dizaine de cœurs par nœud … alors que 24 sont disponibles. Désormais, un niveau de parallélisme supplémentaire (dit « par threads ») est activé automatiquement au sein de chaque processus MPI par ASTK, les calculs profitent ainsi plus pleinement des ressources, ce qui contribue à la diminution des temps de calcul.
Compresser pour régner
Cette accélération « informatique » peut se cumuler avec une autre, plutôt « algorithmique », s’appuyant sur des compressions ‘block low-rank’[2]. A la manière des formats MP3 ou ZIP, ces compressions permettent de réduire en mémoire et en temps, avec peu de pertes, les étapes coûteuses de MUMPS. Cette approximation ne perturbe généralement pas la précision et le comportement des calculs mécaniques englobants (en non-linéaire notamment).
Les utilisateurs de Code_Aster retirent ici les fruits d’une collaboration EDF-MUMPS initiée il y a près de cinq ans autour de la thèse de Clément Weisbecker[3]. Ces travaux de thèse très novateurs ont d’ailleurs été salués par le prix Léopold Escande en 2014 [4].
![]() |
![]() |
Figure 1 : Temps de calcul et accélérations sur cas-test de performance PERF008 | Figure 2 : Temps de calcul et accélérations sur cas-test de performance PERF009 |
Un consortium d’avenir
Pour finir, précisons qu’outre EDF, de nombreux autres industriels, éditeurs de logiciels et équipes académiques font confiance à MUMPS (IRIT, INRIA, CERFACS, CNRS, MICHELIN, TOTAL, SAMCEF, LS-DYNA, ESI, ALTAIR…) et que, pour continuer plus efficacement à le développer et à le pérenniser, ils se sont regroupés au sein d’un consortium. EDF a été moteur dans sa création et la réunion de lancement de cette nouvelle entité a eu lieu à EDF Lab Clamart fin 2015 [5].
[1] http://graal.ens-lyon.fr/MUMPS/.
[2] P.Amestoy, C.Ashcraft, O.Boiteau, A.Buttari, J.Y.L’Excellent et C.Weisbecker. Improving multifrontal methods by means of block low-rank representations. SIAM Journal on Scientific Computing 37(3), A1451-1474.
[3] http://www.theses.fr/2013INPT0134.
[4] http://ethesis.inp-toulouse.fr/view/prix/Prix_L=E9opold_Escande_2013.html.
[5] https://mumps-consortium.org/