41
Une stratégie efficace pour le placement de processus en environnement multicœur Jérôme Clet-Ortega 1

Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Une stratégie efficace pour le placement de processus en

environnement multicœur

Jérôme Clet-Ortega

1

Page 2: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

- Elles ont évolué

2

Page 3: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

- Elles ont évolué

3

Page 4: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

-  Elles ont évolué - Multiprocesseurs

4

Page 5: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

-  Elles ont évolué - Multiprocesseurs

5

Page 6: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

-  Elles ont évolué - Multiprocesseurs - Multicœurs

6

Page 7: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

-  Elles ont évolué - Multiprocesseurs - Multicœurs - Multirails (réseaux)

Carte réseau

Carte réseau

7

Page 8: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Des architectures fortement hiérarchiques

-  Elles ont évolué - Multiprocesseurs - Multicœurs - Multirails (réseaux)

-  Et cela continue … - Manycore - GPUs

8

Page 9: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Une structure complexe

-  Différents niveaux de cache

-  Accès mémoire non uniformes -  Bancs mémoires partagés -  Le temps d’accès dépend de la position du cœur et

de celle du banc mémoire

cœur 0

cache L1

cache L2

cœur 1

cache L1

cœur 2

cache L1

cache L2

cœur 3

cache L1

cache L3

9

Page 10: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Comment les exploiter efficacement ?

-  Au travers d’une implémentation MPI efficace - Minimiser le surcoût -  Adapter les communications (intranœud/internœuds) -  Placer les processus consciencieusement

Nécessité de définir une politique de placement adéquate

10

Page 11: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Proposition

-  Déterminer les caractéristiques matérielles - Découverte topologique (cœurs, mémoire)

-  Extraire le schéma de communication -  Analyse de l’application (appels de fonction MPI)

-  Calculer le placement -  Échanges intranœud maximisés

1

2

3

11

Page 12: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Déterminer les caractéristiques matérielles

-  Récolter les informations sur l’architecture

1

? 12

Page 13: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Déterminer les caractéristiques matérielles

-  Récolter les informations sur l’architecture

1

L2

Cœur 2

L2

Cœur 6

L2

Cœur 3

L2

Cœur 7

L2

Cœur 1

L2

Cœur 5

L2

Cœur 0

L2

Cœur 4

MÉMOIRE

MÉMOIRE MÉMOIRE

MÉMOIRE

Réseau 1 Réseau 2

L1 L1 L1 L1

L1 L1 L1 L1

13

Page 14: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Déterminer les caractéristiques matérielles

-  Récolter les informations sur l’architecture -  Libtopology

1

Machine: NUMANode + Die: Node#0(8GB) Die#0 L2Cache + Core + L1Cache + SMTproc : L2#0(1MB) Core#0 L1#0(64kB) CPU#0 L2Cache + Core + L1Cache + SMTproc : L2#4(1MB) Core#1 L1#4(64kB) CPU#4 NUMANode + Die: Node#1(8GB) Die#1 L2Cache + Core + L1Cache + SMTproc : L2#1(1MB) Core#0 L1#1(64kB) CPU#1 L2Cache + Core + L1Cache + SMTproc : L2#5(1MB) Core#1 L1#5(64kB) CPU#5 NUMANode + Die: Node#2(8GB) Die#2 L2Cache + Core + L1Cache + SMTproc : L2#2(1MB) Core#0 L1#2(64kB) CPU#2 L2Cache + Core + L1Cache + SMTproc : L2#6(1MB) Core#1 L1#6(64kB) CPU#6 NUMANode + Die: Node#3(8GB) Die#3 L2Cache + Core + L1Cache + SMTproc : L2#3(1MB) Core#0 L1#3(64kB) CPU#3 L2Cache + Core + L1Cache + SMTproc : L2#7(1MB) Core#1 L1#7(64kB) CPU#7

14

Page 15: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Libtopology

-  Abstraction des architectures hiérarchiques - Nœuds NUMA - Caches - Cœurs

-  De multiples systèmes d’exploitation supportés -  Linus, Solaris, AIX, …

-  Création de topologies virtuelles 15

Page 16: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Libtopology

-  Interface - Manipuler les topologies et leurs éléments -  Fixer des processus

-  Affichage -  Plusieurs formats: PDF, PNG, FIG, …

16

Page 17: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Libtopology

-  Processeur Intel Xeon (4 cœurs – 2 sockets)

17

Page 18: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Libtopology

-  Processeur AMD Opteron (8 cœurs – 4 sockets)

System(31GB)

Node#0(8191MB)

Socket#0

Node#1(8192MB)

Socket#1

Node#2(8192MB)

Socket#2

Node#3(8192MB)

Socket#3

L2(1024KB) L2(1024KB) L2(1024KB) L2(1024KB) L2(1024KB) L2(1024KB) L2(1024KB) L2(1024KB)

L1(64KB) L1(64KB) L1(64KB) L1(64KB) L1(64KB) L1(64KB) L1(64KB) L1(64KB)

Core#0 Core#1 Core#0 Core#1 Core#0 Core#1 Core#0 Core#1

P#0 P#4 P#1 P#5 P#2 P#6 P#3 P#7

18

Page 19: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Libtopology

-  Version actuelle : 0.9

-  Téléchargement et documentation - http://runtime.bordeaux.inria.fr/libtopology/

-  Changement de nom -  Libhwloc (Hardware Locality)

19

Page 20: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Déterminer les caractéristiques matérielles

-  Création d’une structure de données - Graphe complet et non-orienté -  Sommet cœur -  Arête pondérée facteur de distance (entre 2 cœurs)

-  facteur Nombre d’éléments mémoire partagés

-  Exemple : cluster d’Opteron (8 cœurs) -  Valeur maximum pour les cœurs d’une même socket -  Valeur minimum pour les cœurs de 2 nœuds distincts

1

20

Page 21: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Déterminer les caractéristiques matérielles

1

1000

100 100

1000 2 6

0 4 1 5

3 7

100

100 100 100

1000

100 100

1000

100

10

21

Page 22: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Extraire le schéma de communication

-  Caractéristiques du modèle -  Spécifique pour chaque application -  Influencé par le nombre de processus - Critère: quantité de données échangées (entre 2

processus)

-  Première exécution nécessaire

2

22

Page 23: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Extraire le schéma de communication

-  Structure de données - Graphe complet et non-orienté -  Sommet processus -  Arête pondérée quantité des données échangées

2

23

Page 24: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Extraire le schéma de communication

-  Exemple -  Test NAS : LU classe B pour 8 processus

2

1000

100 100

100 0 1

2 3 6 7

4 5

100

10 100 100

1000

100 100

1000

100

24

Page 25: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Calculer le placement

-  2 éléments d’information - Graphe du matériel - Graphe des communications

-  Objectif - Regrouper les processus qui communiquent

intensément

-  Plongement de graphes ( NP-complet)

3

25

Page 26: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Calculer le placement

-  Le logiciel SCOTCH -  Ensemble de programmes et de bibliothèques -  Application de la théorie des graphes

- Partitionnement, renumérotation, placement statique

-  Téléchargement et documentation: - http://www.labri.fr/perso/pelegrin/scotch/

-  Placement statique - Graphe de plus de 232 sommets

3

26

Page 27: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Calculer le placement

-  Exemple -  Test NAS: LU classe B, 8 processus -  Architecture sous-jacente : AMD Opteron (8 cœurs)

3

27

Page 28: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Calculer le placement 3

0 100 100 10 1000 100 100 10

100 0 10 100 100 1000 10 100

100 10 0 100 100 10 1000 100

10 100 100 0 10 100 100 1000

1000 100 100 10 0 100 100 10

100 1000 10 100 100 0 10 100

100 10 1000 100 100 10 0 100

10 100 100 1000 10 100 100 0

0 1000 10 1 100 1 1 1

1000 0 1000 1 1 100 1 1

10 1000 0 1000 1 1 100 1

1 1 1000 0 1 1 1 100

100 1 1 1 0 1000 10 1

1 100 1 1 1000 0 1000 1

1 1 100 1 10 1000 0 1000

1 1 1 100 1 1 1000 0

Rang MPI 0 1 2 3 4 5 6 7

Numéro de cœur 3 7 4 0 6 2 5 1

28

Page 29: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation

-  Plate-forme d’expérimentation - Cluster de 8 nœuds (Borderline) -  AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs

chacun) -  8 Go de mémoire par socket - Carte réseau Myrinet 10G (attachée à la puce 0)

-  Tests NAS -  BT, CG, LU, MG et SP (64 processus) -  Schémas de communication irréguliers 29

Page 30: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation

-  2 implémentations MPI - MPICH2-Nemesis - MPICH2-MX

-  Politiques de placement - Round-Robin (mod 8) -  Placed (placement calculé)

30

Page 31: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation Round-Robin vs Placed (MPICH2-Nemesis)

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

’exé

cutio

n no

rmal

isé

Round Robin Placed

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

'exé

cutio

n no

rmal

isé

Round Robin Placed 31

Page 32: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation Round-Robin vs Placed (MPICH2-MX)

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

'exé

cutio

n no

rmal

isé

Round Robin Placed

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

'exé

cutio

n no

rmal

isé

Round Robin Placed 32

Page 33: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation

-  Questions en suspens -  L’augmentation du taux de communications intranœud

est-il le seul facteur d’influence ? - Que dire du cache ? De l’effet NUMA ?

-  3 nouvelles stratégies - Round-Robin Core Binding - Regroup (= Placed sans attacher les processus) -  Placed Core Reversed

33

Page 34: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation Comparaison de politiques (MPICH2-Nemesis)

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

'exé

cutio

n no

rmal

isé

Round Robin RR Core Binding Regroup Placed Placed Core Reversed

34

Page 35: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Évaluation Comparaison de politiques (MPICH2-Nemesis)

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

1

BT CG LU MG SP

Tem

ps d

'exé

cutio

n no

rmal

isé

Round Robin RR Core Binding Regroup Placed Placed Core Reversed

35

Page 36: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Conclusion

-  Exploiter efficacement les environnements multicœurs

-  3 étapes - Récupérer la hiérarchie matérielle - Collecter le modèle de communication - Calculer le placement

-  Facteurs d’influence -  Accroissement du taux de communication - Utilisation du cache adéquate

36

Page 37: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Perspectives

-  Intégrer des informations supplémentaires -  Bus d’E/S - GPUs

-  Modèle hybride (MPI + threads)

-  Schéma de communication temporel

37

Page 38: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Merci de votre attention

38

Page 39: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

39

Page 40: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Evaluation - Round-robin vs placed (MPICH2-Nemesis) -

BT CG LU MG SP

Round Robin 51.6s 23.9s 45.5s 5.6s 78.6s

Placed 45.6s 15.6s 33.6s 3.7s 60.2s

BT CG LU MG SP

Round Robin 1038.6s 1177.5s 1356.5s 119.2s 2015.63s

Placed 851.7s 848.4s 938.3s 85.3s 1386.8s

40

Page 41: Une stratégie efficace pour le placement de processus en ...- Cluster de 8 nœuds (Borderline) - AMD Opteron ( 2,6 GHz - 4 sockets avec 2 cœurs chacun) - 8 Go de mémoire par socket

Evaluation - Round-robin vs placed -

BT CG LU MG SP

Round Robin 56% 33% 66% 62% 55%

Placed 69% 85% 82% 73% 69%

BT CG LU MG SP

Round Robin 56% 33% 66% 70% 55%

Placed 69% 85% 82% 80% 69%

41