• Aucun résultat trouvé

7.5 Expérimentation

7.5.3 Évaluation d’Athapascan-1 sur d’autres politiques d’ordonnance-

7.5.3.2 Ordonnancement dynamique

Nous présentons maintenant une expérimentation de la factorisation dense de Cho-lesky en utilisant la version générale de la bibliothèque Athapascan-1, pouvant à la fois supporter des politiques d’ordonnancement statiques et à la volée. Deux politiques d’or-donnancement sont expérimentées ici. Un ord’or-donnancement à la volée de type glouton avec vole de tâche (i.e. lorsqu’un processeur n’a plus de tâche prête, il vole une tâche prête à un processeur choisi au hasard) et l’ordonnancement cyclique bidimensionnel uti-lisé précédemment.

La figure 7.9 page 128 montre les résultats obtenus sur le SP1 pour la factorisation de Cholesky sur différentes tailles de matrice. Deux problèmes peuvent alors être observés. Tout d’abord, les résultats obtenus avec l’ordonnancement cyclique bidimensionnel sont bien moins performants que ceux obtenus avec un ordonnancement identique mais sur la version spécialisée de la bibliothèque (voire figure 7.7 page 125). Ceci peut s’expli-quer par le surcoût plus important de gestion et d’interprétation du graphe dans le mode d’exécution dynamique, comme nous l’avons déjà souligné dans la section 6.5 page 103. Le second problème concerne l’écart de performance obtenu entre les deux politiques d’ordonnancement sur le même mode d’exécution dynamique de la bibliothèque. Ceci s’explique par le fait que l’algorithme glouton utilisé ne tient aucun compte de la localité des données et génère alors beaucoup de communications de données entre processeurs.

7.6 Conclusion

Nous avons présenté dans ce chapitre trois applications de bases de l’algèbre linéaire dense implantées en Athapascan-1 : le produit de matrice, la factorisationLU et la facto-risationLL

t

. Ces trois applications ont permis d’illustrer certains point d’Athapascan-1 : – La facilité de programmation de ce type d’application dans l’interface de

program-mation d’Athapascan-1. Le programmeur est libéré de l’analyse du parallélisme de son programme mais surtout des problèmes de distribution et de communications des données. Il est également libéré des problèmes d’ordonnancement des calculs, bien que dans le cas des applications régulières traitées ici, ce problème ne soit pas aussi difficile que dans le cas d’application irrégulière (le chapitre 9 traitera un exemple d’application irrégulière en Athapascan-1).

– La portabilité apportée par l’abstraction de la machine parallèle dans l’écriture du programme. Le système chargé de l’exécution peut alors tirer pleinement partie des différentes architectures parallèles. Par exemple sur les machines de types SMP ou réseau de SMP, le système d’exécution peut avantageusement utiliser des processus légers et la mémoire partagée de la machine, ce qui n’est par exemple pas pos-sible pour une application écrite dans un modèle de programmation par échange

0 20 40 60 80 100 120 140 160 400 800 1200 1600 2000 2400 Taille de la matrice

Athapascan-1 dynamique, glouton Athapascan-1 dynamique, cyclique bidimensionnel

Mfl

ops

Exécution sur16processeurs, taille des blocs=100

Figure 7.9 – Exécution sur le SP1 avec la version générale de la bibliothèque Athapascan-1

avec deux politiques d’ordonnancement, de la factorisationLL

t .

de messages entre processus lourds. Cet avantage a été illustré dans la section 7.5.2 page 122 où l’application de factorisation de Cholesky dense en Athapascan-1 amé-liore jusqu’à100%les performances obtenue par ScaLapack sur une machine SMP et améliore jusqu’à100%sur une machine de type réseau de SMP.

– La possibilité offerte par Athapascan-1 d’utiliser différentes politiques d’ordonnan-cement. L’ordonnancement cyclique bidimensionnel spécifique à ce type d’appli-cation fournit souvent de bons résultats ; mais nous avons vu par exemple dans la section 7.5.3 page 124 que sur certaines machines et pour certaines tailles de pro-blèmes un autre ordonnancement comme ETF peut permettre d’obtenir une amé-lioration significative des performances.

8

Factorisation parallèle creuse de

Cholesky

Ce chapitre est consacré à la factorisation parallèle creuse de Cholesky. Les phases préparatoires à la factorisation numérique proprement dite, renumérotation et factorisa-tion symbolique, nécessaires pour obtenir un algorithme efficace sont présentées dans un cadre général. Nous présentons ensuite (section 8.5.4 page 142) un algorithme de fac-torisation numérique parallèle pour machines à mémoire distribuée, de type fan-in, avec partitionnement par blocs bidimensionnel de la matrice. Cet algorithme est décrit dans un modèle de programmation par échange de messages. Un ordonnancement des calculs par placement initial des données de la matrice est ensuite proposé pour cet algorithme.

8.1 Introduction

La résolution de systèmes linéaires creux symétriques définis positifs intervient dans beaucoup de problèmes comme par exemple les méthodes d’éléments finis, l’analyse des structures, la simulation de semi-conducteurs... De plus, pour ces applications, une partie importante du temps d’exécution est passée dans la résolution de ces systèmes linéaires.

Pour résoudre un tel système Ax = b, deux classes de méthodes, directes et itéra-tives, peuvent être utilisées. La méthode directe consiste à factoriser la matrice initialeA

pour obtenir une matriceLtriangulaire inférieure telle queA =LL T

. Cette factorisation est obtenue en utilisant une variante creuse de l’algorithme de factorisation de Cholesky présentée au chapitre précédent. La solution du système est ensuite obtenue en résolvant les deux systèmes triangulairesLy=bpuisL

T

x=y. Les méthodes itératives consistent quant à elles à obtenir une approximation de la solution par des itérations faisant intervenir

des produits de type matrice creuse par un vecteur.

Bien que les méthodes directes soient généralement plus coûteuses en mémoire et en temps d’exécution que les méthodes itératives, elles ont l’avantage d’être plus robustes et générales que ces dernières. En effet, pour résoudre efficacement un système linéaire par une méthode itérative il faut choisir le schéma itératif le mieux adapté au système. Ensuite, il faut généralement préconditionner la matrice pour se ramener à un système sur lequel le schéma itératif sera plus efficace. La encore, pour cette opération appelée préconditionnement, il existe différentes méthodes. De plus, pour des raisons de stabilité, il existe certains systèmes sur lesquels seules les méthodes directes sont utilisables.