• Aucun résultat trouvé

6.2 Parallélisations de la méthode IE-DDM

6.2.2 Parallélisations de la méthode IE-DDM pour l’exécution sur un

Le portage sur supercalculateur de la méthode IE-DDM est nécessaire pour la si- mulation de problèmes de grande taille. À l’ONERA, le supercalculateur Stelvio est mis à disposition des utilisateurs pour résoudre ce type de problèmes. Nous le présente- rons brièvement puis nous décrirons les deux niveaux de parallélisation développés pour l’exécution de la méthode IE-DDM sur ce calculateur.

Description du supercalculateur Stelvio

Le cluster Stelvio fait partie de la gamme Altix ICE 8200 EX de SGI et comprend des processeurs Intel Nehalem, Intel Westmere et Intel Harpertown. Les nœuds de calcul Nehalem se composent de 2 processeurs quadri-cœurs X5560 cadencés à 2.80 GHz. Les nœuds de calcul Westmere se composent de 2 processeurs hexa-cœurs X5675 cadencés à 3.07 GHz. Les nœuds de calcul Harpertown se composent de 2 processeurs quadri-cœurs X5440 cadencés à 2.83 Ghz. Stelvio offre 384 nœuds Nehalem (3072 cœurs), 160 nœuds Westmere (1920 cœurs) et 16 nœuds Harpertown (128 cœurs), soit un total de 5120 cœurs pour une puissance crête de 57.9 TFlops. Concernant la mémoire disponible, un nœud Nehalem offre 36 Go de mémoire. Un nœud Westmere offre 48 Go de mémoire. Un nœud Harpertown offre 32 Go de mémoire.

Nous décrivons maintenant comment nous voyons le supercalculateur d’un point de vue utilisateur. Premièrement, nous assimilons les cœurs à des CPU. Ensuite, concernant l’architecture, ce qui nous intéresse est de savoir à combien de nœuds nous avons accès et combien de CPU possède chaque nœud. Par exemple, si nous travaillons sur les nœuds Nehalem, nous retenons que nous avons accès jusqu’à 384 nœuds possédant chacun 8 CPU. Ces 8 CPU ont accès à une mémoire commune. Ainsi, en choisissant 4 nœuds de calcul, nous pouvons utiliser 32 CPU. L’architecture visible de notre point de vue

utilisateur est illustrée sur la figure 6.4. Le nombre de nœuds est désigné par Nnodes,

le nombre de CPU par nœud est désigné par NCPU/nd et le nombre de CPU total par

6.2. Parallélisations de la méthode IE-DDM

Nœud 1 Nœud 2 · · · Nœud Nnodes

· · · M´emoire

CPU 1 CPU 2 NCPU

CPU/nd · · ·

M´emoire

CPU 1 CPU 2 NCPU

CPU/nd

· · · ·

M´emoire

CPU 1 CPU 2 NCPU

CPU/nd

Figure 6.4 – Architecture du point de vue utilisateur

Parallélisation MPI

Pour exécuter la méthode IE-DDM sur un supercalculateur, le modèle MPI peut être utilisé car il est adapté aux machines multiprocesseurs à mémoire distribuée. À la différence du modèle OpenMP, le modèle MPI est un modèle multiprocessus dont le mode de communication entre processus est explicite, c’est-à-dire que la gestion des communications est à la charge de l’utilisateur.

La parallélisation MPI mise en place consiste d’abord à exécuter autant de proces- sus que de CPU disponibles. Dans ce cas, la seule donnée qui nous intéresse concernant

l’architecture est le nombre de CPU NCPU total. Si nous choisissons 4 nœuds de calcul

possédant chacun 8 CPU, nous avons donc accès à 32 CPU et exécutons 32 processus. D’un point de vue utilisateur, nous voyons ce qui est illustré sur la figure 6.5. Une liste de blocs à assembler est alors attribuée à chaque processus. L’avantage est que la mise en œuvre est assez simple car elle ne requiert aucun changement majeur dans la struc- ture du code. En revanche, cette technique présente deux inconvénients. La première difficulté est de répartir les blocs de manière égale en terme de mémoire et de temps de calcul. Avec des matrices pleines, cela aurait été simple car le poids et le temps d’as- semblage de la matrice dépendent directement de ses dimensions. En revanche, dans le cas de matrices compressées, pour des blocs de dimensions égales, le poids et le temps d’assemblage vont varier selon la distance des interactions représentées. Des approxima- tions a priori ont été calculées mais nous constatons a posteriori que la répartition est toujours déséquilibrée. Le deuxième inconvénient concerne le solveur quand le nombre de processeurs est supérieur au nombre de sous-domaines. En effet, pendant la résolution interne, nous résolvons les sous-domaines. Or, les matrices CFIE des sous-domaines vont être répartis dans quelques processeurs seulement. Cela signifie que pendant l’étape de résolution interne (qui est la plus coûteuse), de nombreux processeurs ne travailleront pas. La conséquence sur le temps elapsed (temps réel de calcul) sera donc très négative.

Parallélisation MPI /OpenMP

Afin d’atténuer le problème d’un trop grand nombre de processeurs ne travaillant pas pendant la résolution interne, nous avons mis en place une parallélisation hy- bride MPI /OpenMP. Ici, la donnée du nombre de nœuds choisis ainsi que le nombre

de CPU par nœud NCPU/nd doit être connu. En effet, nous allons exécuter Nprocessus

qui activeront dans les régions OpenMP Nthreads threads. En pratique, si nous avons

Processus 1 Processus 2 · · · Processus NCPU M´emoire CPU M´emoire CPU · · · M´emoire CPU

Figure 6.5 – Parallélisation MPI de la méthode IE-DDM

Nprocessus = 2 × Nnodes et Nthreads = NCPU/nd/2. L’idée est donc que chaque processus

puisse activer Nthreads threads dans certaines régions parallèles. La parallélisation est

illustrée sur la figure 6.6. Ensuite, la parallélisation est semblable à la parallélisation MPI décrite précédemment. Une liste de blocs à assembler est alors attribuée à chaque

processus. Nthreads threads assembleront un bloc IE-DDM. L’inconvénient lié au solveur

est atténué car, ici le nombre de domaines sera du même ordre de grandeur que le nombre de processus, ce qui signifie que tous les processus auront des sous-domaines à résoudre. En revanche, la difficulté d’équilibrage a priori de la répartition est toujours présente.

Processus 1 Processus 2 · · · Processus Nprocessus

· · · M´emoire

CPU 1 CPU 2 NCPU

threads · · ·

M´emoire

CPU 1 CPU 2 NCPU

threads

· · · ·

M´emoire

CPU 1 CPU 2 NCPU

threads

Figure 6.6 – Parallélisation MPI /OpenMP de la méthode IE-DDM

Conclusions

Pour conclure, lors de l’exécution de la méthode IE-DDM sur le supercalculateur, nous utiliserons la parallélisation hybride MPI /OpenMP. Toutefois, à plus long terme, la parallélisation de la méthode IE-DDM est à revoir pour un meilleur équilibre des tâches en termes de temps de calcul et de mémoire. Nous suggérons deux méthodes. Premièrement, l’idée serait d’effectuer une parallélisation MPI à l’image de ce qui est fait pour la parallélisation OpenMP sur machines à mémoire partagée. Chaque proces- seur assemblerait et stockerait des morceaux d’une matrice hiérarchique. La deuxième

6.3. Calcul de la SER monostatique d’un modèle 1/15 de Fokker F100

Documents relatifs