• Aucun résultat trouvé

Redistribution locale des données de la couronne centrale

Dans le document The DART-Europe E-theses Portal (Page 79-83)

3.3 Performances de la gyromoyenne distribuée

4.1.3 Redistribution locale des données de la couronne centrale

Ce second schéma apporte une alternative au schéma avec communication globale en proposant un algorithme hybride entre les versions transposées et distribuées. Celui-ci sera dénommé «gyromoyenne avec redistribution locale». Le principe est de s’inspirer de la version initiale par transposition et de redistribuer les données uniquement pour les processus au centre du plan poloïdal. On aurait alors la couronne centrale de processus dans une distribution

D2 = (0 :NLr−1,∗, iN: (i+ 1)N, jNLvk : (j+ 1)NLvk, µ) (4.1) et le reste des processus en distributionD1, et ce pour la durée du calcul de la gyromoyenne de chaque bloc en cours de traitement (voir Figure 4.4). Ainsi, à la fin de la phase de communication, chaque processus du centre aura localement à sa disposition l’ensemble des données de la couronne sur Npbs

rNpθ plans (en supposantbsau moins supérieur àNprNpθ, quitte à procéder à un ajustement de la répartition sur la division n’est pas exacte). Il est toutefois nécessaire de retourner en distribution D1 pour la suite de la simulation, ce qui génère une deuxième phase de communication.

Figure 4.4 – Exemple de changement de distribution pour les processus au centre avec un bloc de quatre plans poloïdaux. La partie en blanc et gris est en distribution D1 et la partie centrale en nuance de rouge en distribution D2.

Les données étant simplement redistribuées, la quantité de calculs pour les processus centraux reste la même que dans la gyromoyenne distribuée. Le surcoût engendré par les conditions dues à la périodicité du domaine enθest néanmoins inévitable. Concernant les communications pour un sous-domaine, le volume est de bs·NLrN par bloc fractionné en Npθ−1 échanges point à point pour une transposition. Il faut donc en compter deux

70 4.1. Limites du schéma numérique et nouvelles propositions pour l’aller-retour. Le volume des échanges reste tout de même moindre qu’en version glo-bale et la multiplication de leur nombre par Npθ−1 est compensée par le fait que ce sont des communications point à point et non des communications globales. La seconde phase de communication nécessaire au retour dans la distribution de données initiale pose tou-tefois problème en ajoutant un point de synchronisation supplémentaire, potentiellement néfaste aux temps d’exécution pour l’algorithme avec recouvrement. En tout, le volume des communications devrait être fortement réduit par rapport à la version globale. L’em-preinte mémoire est également moindre puisque le surcoût est celui d’une duplication lors de chaque transposition des deux blocs en cours de traitement dans le pipeline de re-couvrement (contre un ajout deNpθ−1 blocs dans la version globale). Ce schéma devrait théoriquement présenter des performances situées entre celles de la gyromoyenne distribuée sans schéma au centre et celles de la gyromoyenne transposée.

Du fait de l’introduction d’une deuxième phase de communication, il est nécessaire de revoir le schéma de recouvrement. Un exemple de déroulement de l’exécution des threads dans ce schéma est donné en Figure 4.5. Les proportions utilisées sont représentatives des rapports de temps d’exécution en gyromoyenne distribuée dans des configurations à grand plan poloïdal (512×512et1024×1024, voir en fin de section 3.2.1). Similairement à l’algo-rithme de recouvrement de la gyromoyenne distribuée (voir section 3.2.2), le pipeline est démarré avec l’initialisation des blocs 1 et 2, la communication des halos et la transposi-tion (D1 → D2) du bloc 1. La première phase de communication du bloc 2 est effectuée en parallèle du calcul de la gyromoyenne du bloc 1. On retourne en distributionD1 sur le bloc 1 avant d’exécuter son post-traitement afin d’avoir les données des moments fluides dans la bonne distribution. De même pour le bloc 2, alors que l’initialisation du bloc 3 qui a été effectuée en parallèle de la communication précédente permet de lancer la première phase de communication du bloc 3, et ainsi de suite. Avec un ratio calcul – communication tel que présenté en Figure 4.5, on constate que la chaîne de communications devient le chemin critique de ce schéma de l’opérateur de gyromoyenne.

À noter qu’il est possible d’effectuer le post-traitement en distribution D2. Cela im-plique de changer l’algorithme de recomposition des moments fluides à la fin du diagnostic et l’influence sur les performances serait quasiment nulle. En effet, le nouveau schéma de recouvrement ne s’agence pas beaucoup mieux à cause de la prépondérance des temps de communication devant ceux du calcul de la gyromoyenne et des post-traitements. D’autre part, il devient complexe d’agencer les différentes étapes de l’algorithme de recouvrement.

Les chemins critiques peuvent changer notoirement en fonction des temps d’exécution de chaque partie. Le modèle de programmation par tâche présenté en introduction (section 1.2.4) pourrait faciliter le travail des développeurs et permettre d’avoir un bon ordonnan-cement, quelle que soit la répartition des temps d’exécution, et donc potentiellement de meilleures performances.

Ce dernier schéma pourrait permettre d’atteindre de bonnes performances bien que l’ajout d’une deuxième phase de communication dans le schéma de recouvrement risque de diminuer les gains potentiels. Il n’a pas fait l’objet d’une implémentation du fait de sa complexité de mise en œuvre et de l’incertitude quant au gain de temps d’exécution qu’il pourrait apporter. D’autre part, une autre solution plus en adéquation avec les évolutions du code lui a été préférée comme nous allons le voir.

L’utilisation d’un schéma spécifique au centre du plan est nécessaire et entraîne une hausse du temps d’exécution inévitable. Différents schémas sont envisageables dont la com-plexité de mise en œuvre est significative. Il est néanmoins possible de minimiser leur

4.2. Comparaison des interpolateurs Hermite et Lagrange 73

Dans le document The DART-Europe E-theses Portal (Page 79-83)