Title: Rgulation de charge
1Régulation de charge
École ParDiOujda - Octobre 1999
Projet APACHE Laboratoire ID - IMAG
2Plan
- I. Introduction Régulation
de charge et langages parallèles - II. Définition du problème de régulation de
charge - III. Analyse théorique compétitivité et coût
- IV. Ordonnancement UMA (sans communication)
- V. Ordonnancement NUMA (avec communications)
- VI. Ordonnancements hybrides
3Partie I Introduction Régulation de charge et
langages parallèles
- Principales techniques de régulation
- Codage à la main de la régulation
- Limites du codage à la main
- Langages intégrant la régulation
4Principales techniques de régulation
- Techniques de régulation nombreuses, bien
décrites, utilisées - Exemples Stratageme96,
- Ordonnancement glouton Graham66, minimiser
l'inactivité - limiter la mémoire et les migrations
Work-Stealing, , - limiter les communications ETF, DSC, ...
- Analyse des précédence entre taches
- Partitionnement de graphe minimiser les
communications Metis94, Scotch96 - Analyse des dépendances entre taches
communicantes - En pratique stratégie hybride
statique/dynamique - exemples Dynamique moléculaire Bernard97 ,
Chloesky creux ,Dumitrescu98,
5Codage à la main de la régulation
- Approche "classique" Stratageme96, ...
- 1. Analyse de l'application/exécution
- 2. Choix dune régulation adaptée à
lapplication - 3. Écriture dun programme parallèle (MPI) qui
implémente simultanément application et
régulation - Exemple ScaLapack algèbre linéaire dense pour
architectures distribuées - 1. Analyse Algèbre linéaire
- opérations de blocs assez équilibres
- beaucoup de communications potentielles
- 2. Choix régulation
- distribution bloc-cyclique bi-dimensionnelle de
la matrice - "Owner computes rule" pour placement des calculs
- 3. Codage MPI (SMPD sur BLACS) synchrone
par super pas
6Limites du codage à la main
- Écriture de plusieurs programmes
- un pour calculer l'information sur l'exécution
- ex graphe de taches pour Metis
- l'autre pour programmer l'application (avec la
régulation) - Problème de fiabilité
- l'information utilisée pour la régulation
est-elle cohérente avec l'application ? - Problème de portabilité
- si l'architecture change, qu'est qui doit changer
dans le code ? - Problème de maintenance
- si l'information/régulation change mais pas
l'application tout réécrire
7Langages intégrant la régulation
- Langages restreints pour une classe
d'applications - information implicite sur les programmes ?
régulation intégrée dans le langage - Théorèmes garantie de performances pour une
classe de programmes/exécution - Exemples
- BSP super-pas synchrone à chaque pas,
permutation prochaine (h-relation) - routage efficace Valliant90,
- Cilk, Nesl programmes série-parallèle
ordonnancement séquentiel (LIFO) - work-stealing efficace temps, mémoire,
défauts de page Blunhofe94,, Randall99 - Athapascan-1 construction implicite du flot de
données Rochal98 - tout programme
- ordonnancements efficaces pour des classes de
programmes UMA, NUMA,... - Autre motivation sémantique Rinard98
8PGCD flot de données
- Flot de données informations de précédence et
dépendance
Class f operating()( shared_r_wltintgt x ) x
sin(x-gtval ) BB(taq ( x ) ) void main(int
argc, char argv) Forkltfgt ( sharedltintgt (3) )
- Peut être calculé implicitement par
interprétation abstraite Sisal, Jade - avec un surcoût borné Athapascan-1
- Annotations pour ajouter des informations
9Partie II. Formalisation du problème de
régulation de charge
- Définition du problème de régulation
- Interface régulation - programme / application
- Interface régulation - exécution / architecture
- Hypothèses application
- Hypothèses architecture
10 Définition du problème de régulation
Architecture parallèle
Programme
Données d entrée
Interface avec l application
Interface avec l architecture
Régulation de charge
- Entrée
- un programme A une donnée x
- une machine M
- Sortie
- une exécution correcte de A(x) sur M
11Interface régulation - application
12 Interface régulation - architecture
13Hypothèses application
- (H0) Flot de données de A(x) invariant
- mais a priori inconnu avant la fin de
l'exécution - doit pouvoir être construit à la volée
- (H1) Hypothèses simplificatrices pour assurer
- la correction
-
- si une tache t crée une tache t' ? t' lt
t - si une tache t ajoute une dépendance " t1 lt
t2" ? t lt t1 et t lt t2
14Hypothèses architecture
- (H3) Données - Synchronisation - communication
- Lire / Écrire (adr_globale, adr_locale ) .
- Lock / Unlock (verrou global)
- (H4) Exécution / Entrelacement des taches
- Démarrer ( tache, processeur inactif )
- Dupliquer (tache )
- Préempter ( tache en cours)
restreinte (Kill) ou générale
(continuation / migration)
15Partie III Analyse théorique de la régulation
compétitivité et coût
- Performance intrinsèque et compétitivité
- Modèle de coût du programme
- Compétitivité Exemple d'un algorithme glouton
- Coût global de l'algorithme glouton
- Bornes inférieures et optimalité
16Performance intrinsèque et compétitivité
Programme A entrée x
Régulation
- Performance intrinsèque Texec sur p
processeurs ( A(x) ) ?( P, x, Machine(p),
... ) incluant ou non le coût
du calcul de l'ordonnancement - Performance relative par rapport à
d'autres régulationsRatio comparaison entre
l'ordt calculé et l'ordt optimal dans une classe
donnée
17Modèle de coût
18Un exemple Ordonnancement glouton
Maintenir les processeurs au maximum
actifs Processeur inactif ? prendre une tâche
prête
? Théorème Graham 66
19Coût global de l'algorithme de liste
?( ? )
20Bornes inférieures et optimalité
- Méthode 1 minorer la performance de tout
algorithme de régulation sur une instance de
grapheexemple taches indépendantes pour ordt à
la volée - Méthode 2 Montrer une contradiction avec P ?
NPThéorème de l'impossibilité Lenstra-Shmoys
si le problème sur m machines est NP-complet,
alors Ratio gt (m1)/m - exemple taches de durée 1, sans com. Ratio
gt 4/3
21Partie IV. Régulation sur machine UMA
(SMP)ouOrdonnancements sans communication
- Vous avez dit glouton ? Non, distribuez !
- Optimiser le surcoût en temps dégénération
séquentielle - Exemple Cilk
- Comparaisons expérimentales
- Optimiser le surcoût en mémoire
- Comparaisons expérimentales
22Vous avez dit glouton ? Non, distribuez !
- Distribuer la liste des taches
- Localement gestion des taches créées/exécutées
sur le processeur - Si inactivité vol de tache(s) sur un autre
processeur - Contention pour l'accès a la liste locale
éviter les prises de verrou
Verrou arithmétique Dikjstra,...Cilk,.
. Exemple stratégie FIFO accès locaux
en tête -- vol en queue
23Optimiser le coût dégénération séquentielle
- Dans un algorithme glouton, un processeur est
rarement inactif ! ( lt p. T? ) - "Work-first principle" privilégier T1 sur T?
- Optimiser l'exécution sans vol
nano-tache appel de fonction minimum pour
autoriser un vol - Mettre le surcoût lors du vol de tache le
micro-tache création effective de la tache
puis déplacement vers le processeur
voleur
24Exemple Cilk
- Optimiser l'exécution sans vol -
Exécution en profondeur d'abord tache appel
de fonction - Sauvegarde minimale pour
autoriser une continuation
(pointeur sur le contexte)
sync nop !!! - Mettre le surcoût lors du vol de tache
- Vol de la suite, pas des spawn !!! -
Restauration contexte compteur ordinal, pile,
frame sync teste si les
spawn précédents sont terminés
spawn suivants exécutés en version
optimisée
25Comparaisons expérimentales
Séquentiel
Athapascan-1 sans dégénération séquentielle
Cilk Dégénération séquentielle
26Et la consommation mémoire ?
- Calcul récursif Découpe en 4
découpes de l'image
découpes du calcul
affichage
affichage
27Ordre d'exécution des tâches (p 2)
arbitraire
S2 146ko S1 78ko
LIFO
28Ordre d'exécution des tâches (p 2)
S2 143ko S1 78ko
O2 seq loc
O1 seq glob
29Ordre d'exécution des tâches (p 2)
1
2
5
6
4
3
8
7
10
9
11
12
O1 seq glob
30Ordre d'exécution des tâches (p 2)
arbitraire
31Optimiser la mémoire
32Consommation mémoire théorique
- séquentiel global Narlikar98
33Compromis temps/mémoire
- Placement arbitraire des tâches surcoût très
faible - Beaucoup de messages 1800 tâches migrées (sur
2405) pour p4
- Vol de travail arbitraire peu de vols
- Peu de messages 240 tâches migrées (sur 2405)
pour p4
- Vol de travail arbitraire peu de vols
- Peu de messages 240 tâches migrées (sur 2405)
pour p4 - Parcours en profondeur léger surcoût
- Ordre de référence maintenu de manière globale
h q/p O(s ) - Beaucoup de messages 1850 tâches migrées (sur
2405) pour p4
34Exemple d'application
Recherche de séquence d'ADN Algorithme
séquentiel générique Musser98
Compromis Knuth-Morris-Pratt/Boyer-Moore
Parallélisation découpe en taches indépendantes
Pentium 4x200MHz
35Partie V. Régulation sur machine NUMAou
Ordonnancements avec communications
- Modèle de machine LogP
- Difficulté de l'ordonnancement avec communication
- Extension des algorithmes gloutons
- Prise en compte de la localité
- Exemples expérimentaux
- Optimiser le coût Dégénération distribuée
- Exemples expérimentaux
36Modèle de machine LogP
37Masquage des latences de communication
- Outil de base "parallel slackness" Valliant
90, Karp 96, - Mise en uvre multithreading
- Régulation a deux niveaux
- global placement des taches et données sur les
nuds - local ordonnancement local des tâches prêtes
sur des threads dédiés
38Difficulté de l'ordonnancement avec communication
p entrée B_inf B_sup 4/3
2 5/4 7/3 11/(c3)
c 2
p petit p2 polyn. p3 ouvert p2
ouvert p2 NP-complet
p infini B_inf B_sup 1
1 7/6 4/3 1 c 1
h 0 h 1 h grand
Ordonnancement de taches de durée 1 avec
précédences. Rapport communication/calcul h
39Extension des algorithmes gloutons
- Hachage universel distribution des mots de
donnée dansles modules mémoire Karpal 96,
- Ordonnancement sur q processeurs virtuels,
latence d'accès h
- En pratique, h grand il faut prendre en compte
la localité
40Prise en compte de la localité
- Algorithme de liste avec choix sur critère de
localité Exemple ETF Earliest Task First
- Regroupement des taches fortement communicantes
Exemple DSC Direct-semi clustering
Pyros - Éloignement des taches les moins communicantes
Exemple bissection récursive
Metis, Scotch
- Restriction des programmes considérés Exemple
graphes série-parallèle Metis, Scotch
défauts de page en distribué lt p. défauts de
page en séquentiel
41Modèle de communication et régulation
- Cholesky creux Doreille99 Ordonnancement ETF
et modèle délai ? sensibilité importante au
rapport bande passante/vitesse processeur
16 processeurs (IBM-SP1)
MFlops f( taille )
16 proc
4 proc
1 proc
42Régulation et dégénération distribuée
- 1. Génération dynamique du graphe de flot de
données - 2. Calcul d'un "ordonnancement" du graphe
annoté - placement des tâches et des données sur les nuds
de l'architecture - graphe de flots de données
- ? JIT-compilation du graphe des communications à
réaliser entre nuds - 3. Exécution distribuée efficace de l'application
- sur chaque nud, ordonnancement local
- poster les requêtes de lecture à distance
(tâches non prêtes) réception - Boucle
- exécution tâche prête
- poster les écritures à distance émission
- mettre à jour l'état local
- ? Pas plus de communications qu'une écriture
directe en MPI
43Exemples expérimentaux
Athapascan-1 5000 taches ScaLapack 16 proc.
MPI
- Cholesky dense dpotrf Doreille99
16 processeurs (IBM-SP1)
Athapascan1- JITcom ETF
MFlops f( taille )
Athapascan1- JITcom bloc-bidim
ScaLapack bloc-bidim
44Partie VI. Régulation sur un réseau de
machines Ordonnancements hybrides
- Processeurs non-identiques et relaxation
- Clusters de SMP
45Processeurs non-identiques et relaxation
- Difficulté modélisation précise du problème
- Machines uniformes vitesses
proportionnelles (connues ou non) - Machines non-uniformes durée d'une
tache varie selon le processeur - Borne inférieure ratio gt log m Shmoys,
- Borne supérieure relaxation Shmoys,
migration de taches trop longues
46Exemple d'application
Recherche de séquence d'ADN
Recherche distribuée dans 2 répertoires de même
taille chacun sur un disque distant (NFS)
- Séquentiel Pentium 4x200 Mhz
- SMP Pentium 4x200 Mhz
- Architecture distribuée Myrinet Pentium
4x200 Mhz 2x333 Mhz
47Exemple cluster de SMP grappe
- Réseau de N nuds identiques - Chaque nud est
un SMP multi-processeurs
hiérarchie mémoire
48Mixer ordonnancement statique et dynamique
- Hypothèse information sur l'exécution
flot de données annoté - Placement
statique des taches sur les nuds - A
l'intérieur d'un nud ordonnancement dynamique
(liste) sur les processeurs
49Un exemple expérimental
Athapascan-1 330000 taches ScaLapack 64 proc.
MPI
- Cholesky dense dpotrf Doreille99
Grappe de 64 processeurs 16 SMP x 4 (16
stations SUN295 MHz) Delaware
MFlops f( taille )
- Grain bloc 100x100 - Sur les 16 nuds
Bloc-cyclique
bidim - Sur chaque SMP ordt glouton
50Conclusion
- Régulation lien entre programme et machine
- Difficulté forte dépendance avec
l'architecture gt peu de résultats sur des
modèles réalistes (LogP) - Progrès importants depuis 10 ans il existe
des approches efficaces et portables
exemple Cilk (SMP), Athapascan-1 (distribuée) - Une clef de l'efficacité est la maîtrise du
surcoût d'ordonnancement -
dégénération séquentielle / Work-stealing -
dégénération distribuée basée sur l'analyse du
flot
51Athapascan - 1
- Portabilité librairie C / Athapascan-0
?Parallélisme indépendant de larchitecture - Performances Ordonnancement adapté à
l'architecture