• Aucun résultat trouvé

Solutions spécifiques Patrons et squelettes

SIPSim

Solutions générales

Optimisation Abstraction

Flexibilité

Figure2.12 –Placement de notre travail par rapport à l’existant.

Enfin, afin de comprendre les résultats présentés dans cette thèse, nous avons terminé cet état de l’art par une présentation des mesures de performance et des mesures de difficulté de programmation.

3

SIPSim : Structured Implicit Parallelism for scientific Simulations

Sommaire

4.1 SIPSim pour les maillages réguliers à deux dimensions . . . . . 74 4.1.1 Structure de données distribuée . . . . 74 4.1.2 Applicateurs et opérations . . . . 77 4.1.3 Interfaces de programmation . . . . 78 4.1.4 Spécialisation partielle de template . . . . 80 4.2 Résolution numérique de l’équation de la chaleur . . . . 82 4.2.1 Équation et résolution numérique . . . . 82 4.2.2 Parallélisation avec SkelGIS . . . . 83 4.2.3 Résultats . . . . 85 4.3 Résolution numérique des équations de Saint Venant . . . . 89 4.3.1 Équations de Saint Venant . . . . 89 4.3.2 Résolution numérique et programmation . . . . 90 4.3.3 Parallélisation avec SkelGIS . . . . 92 4.3.4 Résultats . . . . 94 4.4 Conclusion . . . . 99

63

Dans cette thèse nous nous intéressons aux simulations scientifiques dont les équations aux dérivées partielles sont résolues par des méthodes numériques qui discrétisent l’espace et le temps. On appelle ces simulations des simulations basées sur des maillages. Nous nous intéressons plus précisément, et dans un premier temps, aux simulations dont les schémas numériques sont explicites et donc de la forme de l’équation (2.3) présentée dans la section 2.2.3.2. En informatique, ce type de calcul est appelé un calcul stencil.

Le parallélisme implicite pour des calculs de typestencil est un domaine très actif de la recherche en informatique. Dans ce chapitre est présentée la méthodeSIPSim, qui signifie Structured Implicit Parallelism for scientific Simulations. SIPSim permet d’obtenir une vision systématique des besoins pour proposer une solution de parallélisme implicite pour ce type de simulations. SIPSim peut donc être considéré comme un modèle de programmation parallèle implicite pour les simulations scientifiques.

Afin de définir une approche pertinente pour élaborer des solutions de parallélisme implicite pour les simulations scientifiques, il faut tout d’abord étudier la parallélisation de ces simulations scientifiques. Comme nous l’avons déjà décrit dans l’état de l’art 2.4, Pingali et Al [103] ont défini “The TAO of Parallelism in Algorithms”, qui propose une classification intéressante des différents types de problèmes à paralléliser. Une fois un problème classifié dans le “TAO”, des solutions connues de parallélisation peuvent être appliquées. La parallélisation est donc facilitée grâce à cette classification, mais en aucun cas cachée, comme nous cherchons à le faire. Comme nous l’avons déjà détaillé dans la section 2.4.1 de l’état de l’art, le type de simulations auxquelles nous nous intéressons dans ce travail (sur maillages fixes et schémas numériques explicites) sont classifiées dans le “TAO” comme des algorithmestopology-driven, dont l’ensemble des éléments du maillage sont identifiés comme les nœuds actifs (active nodes) de l’algorithme, et peuvent être traités de façon non-ordonnée dans l’algorithme. Enfin, les calculs sont considérés comme locaux car ne modifiant pas le maillage d’entrée.

Comme il l’a déjà été évoqué précédemment, pour des architectures parallèles à mé-moire distribuée, ce genre de simulations est généralement parallélisé en utilisant l’proche SPMD (Simple Program Multiple Data) décrite dans l’état de l’art. Cette ap-proche se prête bien aux simulations basées sur les maillages puisqu’elle consiste alors à partitionner le maillage en plusieurs parties, chacune confiées à des processeurs diffé-rents qui exécuteront le même code sur leur sous-partie du maillage. L’algorithme 2 de la partie 2.2.5 illustre ce type de parallélisation, et représente la base de l’analyse de l’approche SIPSim. Nous rappelons ici cet algorithme avec plus de détails. Nous notons Sb le schéma numérique à appliquer aux éléments de la bordure physique du maillage, qui correspond donc à calculer les conditions limites. Nous notons, de plus,S le schéma numérique permettant le calcul des quantités pour les autres éléments du maillage.

Cet algorithme parallèle peut très clairement être apparenté au modèle BSP, introduit lui aussi dans l’état de l’art. En effet, dans cet algorithme peuvent être identifiées trois super-étapes. Tout d’abord une super-étape de communication est effectuée au début de chaque itération de temps. Dans cette étape, chaque processeur reçoit les valeurs sur le voisinage N(x), qu’il ne possède pas dans son sous-maillage, afin de pouvoir calculer, de façon correcte, l’ensemble des nouvelles valeurs pour la nouvelle itération de temps.

Algorithme 3 : Algorithme parallèle SPMD d’une simulation basée sur un maillage.

Création du maillageµ

Partitionnement du maillageµ={µ0, µ1, . . . µp−1} Création des quantités à simuler appliquées ൠInitialisation des quantités et des paramètres

Définition du pas de temps, commun à tous les processeurs : t Définition du temps maximal, commun à tous les processeurs : tmax tant quet<tmax faire

Communication deN(x) entre les processeurs pourchaque b∈Eµi de la bordure physique faire

Obtention deσ(b, t−1)etσ(y, t−1),y∈N(b) Calcul du schémaSb(b, t)

fin

pourchaque x∈Eµi faire

Obtention deσ(x, t−1)etσ(y, t−1),y∈N(x) Calcul du schémaS(x, t)

fin t = t+1 fin

Il effectue également, dans cette super-étape, l’envoi des valeurs des éléments dont les autres processeurs ont besoin. La seconde super-étape consiste à calculer le schéma numé-rique à appliquer aux éléments de la bordure physique du domaineSb. Enfin, la dernière super-étape consiste à calculer le schéma numérique S. Ces deux dernières super-étapes peuvent être exécutées de façon asynchrone par l’ensemble des processeurs. En effet, cha-cun des processeurs, ayant reçu dans la première super-étape les valeurs nécessaires à l’ensemble des calculs, ils sont en mesure d’exécuter de façon autonome ces super-étapes.

En d’autres termes, il est possible d’affirmer qu’une simulation scientifique parallèle, basée sur un maillage et des schémas numériques explicites, peut être identifiée à un pro-gramme parallèle BSP contenant une super-étape de communications et nsuper-étapes de calculs, où nest le nombre de schémas numériques à appliquer à chaque itération de temps.

Dans une solution de parallélisme implicite, le but est d’identifier quelles parties du programme peuvent être conservées comme séquentielles, et n’ont donc pas besoin d’être cachées à l’utilisateur, et quelles parties du programme sont nécessairement parallèles et nécessitent donc de devenir implicites pour l’utilisateur. Dans le modèle BSP, chaque super-étape de calcul peut être considérée comme un programme séquentiel qui sera exécuté sur une sous-partie des données initiales. Pour cette raison, lesnsuper-étapes de calcul, dans une simulation scientifique, sont des calculs séquentiels, que l’utilisateur est capable de renseigner. De l’algorithme 3, on peut alors déduire que quatre composants

principaux sont nécessaires à la création d’une solution de parallélisme implicite pour les simulations scientifiques :

— Un maillage distribué de façon implicite

— Une création des quantités à simuler, implicitement distribuées sur le maillage

— Un moyen implicite de cacher les communications entre les processeurs

— Des interfaces de programmation pour manipuler de façon implicite les données distribuées

Ces quatre composants forment l’approche systématique SIPSim et sont détaillés dans le reste de ce chapitre. Ces composants sont nommés, structure de données distribuée (DDS),application de données (DPMap),applicateur (AP) etinterfaces de programma-tion (PI).