7. Optimisation des performances CPU#

7.1. Parallélisme du solveur linéaire#

Le calcul modal fait appel à un solveur linéaire. Si on choisit le solveur linéaire MUMPS avec le mot-clé facteur SOLVEUR, opérande METHODE=”MUMPS”, on peut activer son fonctionnement en parallèle. Il faut pour cela utiliser une version parallèle de Code_Aster , et renseigner le nombre de processeurs à utiliser. Empiriquement, l’utilisation d’un processeur par tranche de 105 à 106 degrés de liberté que comporte le modèle, donne de bonnes performances. En parallèle, on recommande aussi le paramétrage RENUM=”QAMD”.

7.2. Calcul des modes par sous-bandes#

Si le problème à traiter est un GEP et qu’on recherche beaucoup de modes sur une bande donnée ou que le nombre de degrés de liberté du modèle est élevé (> 105), il est conseillé de découper la bande de recherche globale en plusieurs sous-bandes, de 40 à 80 modes, les plus équilibrées possibles. Le calcul sera ainsi plus robuste et plus rapide, même en appelant séquentiellement un CALC_MODES pour chaque sous-bande.

Pour une meilleure ergonomie, les calculs sur chaque sous-bande peuvent être réalisés de manière automatique et transparente pour l’utilisateur, en donnant au mot-clé FREQ un liste de n>2 valeurs. Cela permet en outre de paralléliser le traitement des différentes sous-bandes, engendrant des gains considérables sur les performances CPU (facteur pouvant atteindre 10 à 20 sur le temps de calcul, et plusieurs dizaines de pourcents sur le pic mémoire).

Pour plus de détails, on se reportera aux documentations génériques [U2.08.06] sur le parallélisme, et [U2.06.01] sur le calcul de modes propres.