vers un solveur de syst mes lin aires creux adapt …...intro numa sched large esp concl vers un...
TRANSCRIPT
Intro NUMA Sched Large ESP Concl
Vers un solveur de systemes lineaires creux adapteaux machines NUMA
Mathieu Faverge
RenPar’19, Toulouse 2009, France
9-11 Septembre 2009
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 1 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 2 / 32
Intro NUMA Sched Large ESP Concl
Introduction
PaStiX (http://pastix.gforge.inria.fr)
EPI Bacchus (INRIA Bordeaux - Sud-Ouest)
Bibliotheque de resolution de systemes lineaires creux
Methode supernodale
Implementation hybride :
MPI en memoire distribueePthread en memoire partagee
Ordonnancement statique
Distribution 1D par bloc-colonnes ou 2D par blocs
Objectif
Developper un ordonnancement dynamique pour les architecturesmulti-cœurs hierarchiques.
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 3 / 32
Intro NUMA Sched Large ESP Concl
Plan
Les architectures multi-cœurs modernes ont une topologiehierarchique avec des acces memoires non uniformes (NUMA)=⇒ Structures de donnees adaptees
Les acces memoires heterogenes sont difficiles a integrer dansles modeles de cout de l’ordonnancement statique=⇒ Ordonnancement dynamique pour corriger les defauts
La distribution par defaut n’est plus efficace sur les grandsproblemes=⇒ Calculs bases sur un grain plus fin
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 4 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 5 / 32
Intro NUMA Sched Large ESP Concl
Allocation pour architecture NUMA
(a) Repartition des allocations de la matrice pour mieux pren-dre en compte les effets NUMA
(b) Allocation initiale (c) Nouvelle allocation “NUMA”
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 6 / 32
Intro NUMA Sched Large ESP Concl
Architectures NUMA (1/2)
(a) NUMA8 (b) NUMA16
Fig.: Architectures utilisees pour lesbenchmarks
4 et 8 processeursDual-Core AMDOpteron(tm)
Bus d’interconnexionHyperTransport
4Go par cœur
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 7 / 32
Intro NUMA Sched Large ESP Concl
Architectures SMP (2/2)
Fig.: SMP16
4 blocs de 4 Power5simple cœur
28Go par nœud
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 8 / 32
Intro NUMA Sched Large ESP Concl
Cas tests
Nom N NNZA NNZL OPC Type Sym.
Matr5 485 597 12 359 369 680 915 459 9.84422e+12 R NMatr6 470 596 12 127 402 637 756 616 9.10808e+12 R NAudi 943 695 39 297 771 1 141 513 029 5.21640e+12 R ONice20 715 923 28 066 527 1 050 576 453 5.19123e+12 R OInline 503 712 18 660 027 158 830 261 1.41273e+11 R ONice25 140 662 2 914 634 51 133 109 5.26701e+10 R OMchlnf 49 800 4 136 484 22 878 995 4.79105e+10 R NThread 29 736 2 249 892 25 370 568 4.45729e+10 R O
3DSpectralWave 680 943 17 165 766 1 340 207 093 1.00308e+13 C O3DSpectralWave2 292 008 7 307 376 394 131 174 1.67461e+12 C OHaltere 1 288 825 10 476 775 405 822 545 1.56272e+12 C NFem Hifreq Circuit 491 100 10 365 178 178 227 119 4.75316e+11 C NMono 500hz 169 410 2 602 849 77 043 060 2.61338e+11 C N
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 9 / 32
Intro NUMA Sched Large ESP Concl
Evaluation
MatriceNUMA8 NUMA16 SMP16
V0 N V0 N V0 N
Matr5 469 422 481 386 162 161Matr6 426 405 450 361 177 178Audi 274 244 255 230 101 99.9Nice20 248 230 248 188 91.8 90.7Inline 9.07 7.95 18.4 17.3 5.88 5.62Nice25 3.28 2.62 7.23 5.08 2.07 1.9Mchlnf 3.13 2.43 5.86 3.24 1.92 1.89Thread 2.49 2.17 3.84 2.26 1.15 1.12
3DSpectralWave 2060 1650 1290 1040 575 6033DSpectralWave2 311 287 267 174 107 107Haltere 286 302 193 179 99.1 97.3Fem Hifreq Circuit 101 106 82 68 32.9 32.3Mono 500Hz 51.8 50.1 41.6 37.1 18.8 18.7
Tab.: Influence de l’allocation sur le temps de factorisation du solveur PaStiX.
V0 : Version d’origine avec allocation globale
N : Nouvelle allocation NUMA decoupee par bloc-colonnes
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 10 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 11 / 32
Intro NUMA Sched Large ESP Concl
Ordonnancement dynamique
Besoins
Prendre en compte la topologie des architectures NUMA
Reduire les temps d’inactivite
Ameliorer la reactivite sur les I/O
Solution proposee
Base sur un classique vol de travail
6= des solutions a base de DAG (PLASMA, HSM)
Le vol est limite pour conserver l’affinite memoire
Utilisation de threads dedies aux communications pour avoirune meilleure reactivite
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 12 / 32
Intro NUMA Sched Large ESP Concl
Methode directe
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 13 / 32
Intro NUMA Sched Large ESP Concl
Repartition proportionnelle
Distribution des super-nœuds sur les processeurs
Estimation du cout des sous-arbres a partir d’un modele decout des routines BLAS
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 14 / 32
Intro NUMA Sched Large ESP Concl
Nouvelle distribution
Distribution des donnees sur les processus MPI
Deux passes de l’algorithme :
Repartition proportionnelle pour distribuer les donneesConstruction d’une structure arborescente de files pour le volde travail
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 15 / 32
Intro NUMA Sched Large ESP Concl
Nouvelle distribution
Distribution des donnees sur les processus MPI
Deux passes de l’algorithme :
Repartition proportionnelle pour distribuer les donneesConstruction d’une structure arborescente de files pour levol de travail
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 16 / 32
Intro NUMA Sched Large ESP Concl
Vol de travail
Construction d’unarbre de filescontenant les taches
Premier vol : le longdu chemin vers laracine
Second vol : adistance 1 du cheminvers la racine
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 17 / 32
Intro NUMA Sched Large ESP Concl
Evaluation en memoire partagee
MatriceNUMA8 NUMA16 SMP16
V0 N ND V0 N ND V0 N ND
Matr5 469 422 405 481 386 352 162 161 151Matr6 426 405 380 450 361 315 177 178 150Audi 274 244 224 255 230 196 101 99.9 99.9Nice20 248 230 217 248 188 173 91.8 90.7 89.3Inline 9.07 7.95 7.41 18.4 17.3 14.7 5.88 5.62 6.12Nice25 3.28 2.62 2.81 7.23 5.08 5.22 2.07 1.9 1.9Mchlnf 3.13 2.43 2.47 5.86 3.24 3.47 1.92 1.89 1.72Thread 2.49 2.17 2.04 3.84 2.26 2.18 1.15 1.12 1.02
3DSpectralWave 2060 1650 1670 1290 1040 960 575 603 6233DSpectralWave2 311 287 279 267 174 168 107 107 100Haltere 286 302 284 193 179 177 99.1 97.3 93Fem Hifreq Circuit 101 106 98.6 82 68 73.1 32.9 32.3 31.6Mono 500Hz 51.8 50.1 49.1 41.6 37.1 33.4 18.8 18.7 17.5
V0 : Version d’origine, N : Ajout de l’allocation NUMA, ND :Ajout de l’ordonnancement dynamique
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 18 / 32
Intro NUMA Sched Large ESP Concl
Evaluation en memoire distribuee
Nb.Node
NUMA8 SMP16AUDI MATR5 AUDI MATR5
Stat. Dyn. Stat. Dyn. Stat. Dyn. Stat. Dyn.
1 217 210 410 389 100 100 161 1502 142 111 212 200 60.4 56.8 113 874 69 57.7 171 114 33.7 32.6 59.3 54.68 45.3 35.6 117 78.8 - - - -
Utilisation d’un thread par cœur, de la nouvelle allocation et d’unthread dedie aux communications.
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 19 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 20 / 32
Intro NUMA Sched Large ESP Concl
Etude sur un cas challenge
Proprietes
N 10 423 737NNZA 89 072 871NNZL 6 724 303 039OPC 4.41834e+13
4x32 8x32
Version statique 289 185Version dynamique 240 184
Tab.: Temps de factorisation enseconde
Problemes d’electromagnetisme en complexe double precisiondu CEA Cesta
Disponible sur la plate-forme GridTLSE
Cluster Vargas de l’IDRIS avec 32 power6 par nœuds
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 21 / 32
Intro NUMA Sched Large ESP Concl
Diagramme de Gantt de l’ordonnancement statique
Chaque couleur correspond au nombre de candidats pour latache (Niveau dans l’arbre)
Les blocs noirs sont les temps d’inactivite
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 22 / 32
Intro NUMA Sched Large ESP Concl
Diagramme de Gantt de l’ordonnancement dynamique
Amelioration de la reactivite des communications
Distribution 1D par bloc-colonnes limite la scalabilite
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 23 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 24 / 32
Intro NUMA Sched Large ESP Concl
ESP : Enhanced Sparse Parallelism
Multi-cœurs =⇒ grains de calcul plus fin
Distribution 2D par blocs disponible uniquement avecl’ordonnancement statique
Pretraitement tres couteux (1D : 40s / 2D(5) : 840s)
Creation de taches 2D dynamiquement au sein des nœuds pourobtenir un grain de calcul plus fin.
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 25 / 32
Intro NUMA Sched Large ESP Concl
Distribution 1D VS ESP
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 26 / 32
Intro NUMA Sched Large ESP Concl
ESP VS Distribution 2D
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 27 / 32
Intro NUMA Sched Large ESP Concl
Evaluation en memoire partagee
MatriceNUMA8 NUMA16 SMP16
V0 N ND NDE V0 N ND NDE V0 N ND NDE
Matr5 469 422 405 393 481 386 352 347 162 161 151 149Matr6 426 405 380 361 450 361 315 310 177 178 150 150Audi 274 244 224 208 255 230 196 195 101 99.9 99.9 99Nice20 248 230 217 226 248 188 173 214 91.8 90.7 89.3 89.5Inline 9.07 7.95 7.41 7.31 18.4 17.3 14.7 14.3 5.88 5.62 6.12 5.79Nice25 3.28 2.62 2.81 3.15 7.23 5.08 5.22 5.45 2.07 1.9 1.9 1.91Mchlnf 3.13 2.43 2.47 2.55 5.86 3.24 3.47 3.68 1.92 1.89 1.72 1.82Thread 2.49 2.17 2.04 2.03 3.84 2.26 2.18 2.17 1.15 1.12 1.02 1.06
3DSpectralWave 2060 1650 1670 1600 1290 1040 960 1010 575 603 623 5543DSpectralWave2 311 287 279 270 267 174 168 168 107 107 100 100Haltere 286 302 284 288 193 179 177 178 99.1 97.3 93 92.9Fem Hifreq Circuit 101 106 98.6 96.9 82 68 73.1 71.6 32.9 32.3 31.6 31.2Mono 500Hz 51.8 50.1 49.1 49 41.6 37.1 33.4 33.4 18.8 18.7 17.5 17.6
V0 : Version d’origine, N : Ajout de l’allocation NUMA, ND :Ajout de l’ordonnancement dynamique, NDE :Ajout de l’ESP
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 28 / 32
Intro NUMA Sched Large ESP Concl
Diagramme de Gantt avec l’ordonnancement dynamique etl’ESP
Temps de factorisation ameliore de 15% : 153s contre 184s
Reduction des temps d’inactivite
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 29 / 32
Intro NUMA Sched Large ESP Concl
Plan
1 Introduction et contexte
2 Allocation adaptee aux architectures NUMA dans PaStiX
3 Ordonnancement dynamique pour architectures NUMA
4 Etude d’un cas test important
5 Un grain de calcul plus adapte aux multi-cœurs
6 Conclusion et perspectives
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 30 / 32
Intro NUMA Sched Large ESP Concl
Conclusion and Perspectives
Conclusion
Nouvelle allocation “NUMA-aware” donne de bon resultats(∼ 15%)
Ordonnancement dynamique ameliore les resultats sur lesarchitectures SMP et NUMA
ESP ameliore faiblement les resultats sur les “petits” cas tests
Perspectives
Etude sur une approche hybride melangeant la distribution 2Det l’ESP
Integrer la bibliotheque MaMI developpee par l’EPI Runtimede Bordeaux pour la migration memoire
Utilisation d’architectures heterogenes GPU/CPU avec uncouplage fin de l’ordonnancement avec StarPU
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 31 / 32
Intro NUMA Sched Large ESP Concl
http://vite.gforge.inria.fr ou paquet Debian
PaStiX : http://pastix.gforge.inria.fr
Questions ?
Mathieu Faverge RenPar’19, Toulouse 2009, France Un solveur direct pour architectures NUMA 32 / 32