6Parallélisme multi-domaine. Code Aster logiciel de simulation
Code_Aster
Titre :
Notice d'utilisation du parallélisme
Responsable :
Olivier BOITEAU
Version default
Date :
16/02/2011
Page :
18/21
Clé :
U2.08.06
Révision :
5559
6 Parallélisme multi-domaine
6.1
Solveur hybride FETI
Utilisation: grand public via Astk.
Périmètre d'utilisation: calculs comportant des résolutions de systèmes linéaires coûteuses (en général STAT/DYNA_NON_LINE, MECA_STATIQUE...). Pour des problèmes frontières. Solveur de recherche. À utiliser plutôt en linéaire.
Nombre de processeurs conseillés: 16 ou 32.
Gain: en temps CPU et en mémoire RAM (surtout).
Speed-up: gains variables suivant les cas. Il faut une assez grosse granularité pour que ce parallélisme reste efficace : 5.10
Type de parallélisme: MPI.
4 degrés de liberté par processeur.
Scénario: 3a du §3. Chaînage 1b+3a intrinsèque. Cumuls 2a+3a/1c+3a possibles via Astk (utilisations avancées).
Ce solveur hybride par Décomposition de Domaines (cf. [R6.01.03] ou [U4.50.01] §3.10) est utilisée
via la mot-clé SOLVEUR/METHODE='FETI'. Ce type de solveur linéaire peut être utilisé pour
traiter des problèmes frontières de très grande taille (>5.10
6
souhaite réaliser des gains mémoire importants
degrés de liberté) ou lorsqu'on
Comme pour le solveur MUMPS en mode distribué, cette méthode par DD initie un flot de données parallèle dès la construction du système linéaire (calculs élémentaires/assemblages). C'est pour cette raison que l'on stipule que le chaînage 1b+3a est intrinsèque à la méthode. On ne peut pas les séparer. Chaque processeur va être responsable d'un certain nombre de sous-domaines et il va assembler leurs données locales (matrices, seconds membres). À charge, par la suite, au solveur d'interface géré par le processeur maître de coordonner ces contributions via un solveur (dit d'interface) sur la frontière des sous-domaines. Le code est donc bien parallèle, de la construction du système linéaire jusqu'à sa résolution (chaînage des parallélismes 1b+3a).
domaines sur m processeurs : le sous-domaine 1 est attribué au processeur 0, le SD 2 au proc. 1, le
SD q au proc. q, le q+1 au proc. 0, ...
) permet de soulager la charge du processeur Un paramètre du mot-clé SOLVEUR (NB_SD_PROC0=r 17
maître. En lui affectant moins de sous-domaines que ne le prévoit la distribution cyclique, il peut plus se consacrer (en temps et en mémoire) à la coordination du problème d'interface. Cette astuce peut
être payante lorsque bon nombre de sous-domaines sont flottants. La gestion de leurs modes rigides peut alors tellement pénaliser le processeur 0, qu'il peut être intéressant de rééquilibrer artificiellement la charge en lui enlevant 1 ou 2 sous-domaine(s).
La mise en œuvre de ce parallélisme s'effectue de manière transparente à l'utilisateur. Elle s'initialise par défaut dès qu'on lance un calcul via Astk (menu Options) utilisant plusieurs processus MPI.
Ainsi sur le serveur centralisé Aster, il faut paramétrer les champs suivants :
• mpi_nbcpu=m, nombre de processeurs alloués en MPI (nombre de processus MPI).
•
(facultatif) mpi_nbnoeud=p, nombre de nœuds sur lesquels vont être dispatchés ces processus MPI.
Cependant il faut veiller à ce que le paramétrage
m , q , r
reste licite : il faut au moins un SD par processeur (même pour le proc. 0).
Une fois ce nombre de processus MPI fixé, on peut lancer son calcul (en batch sur la machine centralisé) avec le même paramétrage qu'en séquentiel. On peut bien sûr baisser les spécifications en temps du calcul et surtout en mémoire.
15 Concernant les gains mémoire que procurer FETI, ceux-ci peuvent résulter de la conjugaison de l'effet multidomaines, de l'OOC et de la distribution de données inhérente au parallélisme.
16 Préalablement construits via les opérateurs DEFI_PART*** et renseignés dans le mot-clé
PARTITION.
17 Equivalent du CHARGE_PROC0_SD des opérateurs DEFI/MODI_MODELE.
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Notice d'utilisation du parallélisme
Responsable :
Olivier BOITEAU
Version default
Date :
16/02/2011
Page :
19/21
Clé :
U2.08.06
Révision :
5559
Remarques:
•
Cette répartition sous-domaine/processeur s'effectue au début de chaque opérateur de calcul. On ne tient donc pas compte d'une éventuelle distribution de données par sousdomaines paramétrée en amont dans AFFE/MODI_MODELE.
•
Empiriquement, on constate qu'il est intéressant pour gagner en mémoire, de découper le problème en de nombreux sous-domaines. Par contre, la résolution du problème d'interface et les déséquilibres de charges pénalisent alors les temps de résolution. Il est alors conseillé d'affecter plusieurs sous-domaines par processeur (équilibrage de charge empirique !). Le
distinguo opéré dans Code_Aster entre sous-domaine et processeur procure cette liberté.
Manuel d'utilisation
Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Fascicule u2.08 : Fonctions avancées et contrôle des calculs

Öffentlicher Link aktualisiert
Der öffentliche Link zu Ihrem Chat wurde aktualisiert.