Rgulation de charge - PowerPoint PPT Presentation

About This Presentation
Title:

Rgulation de charge

Description:

arbitraire. Ordre d'ex cution des t ches (p = 2) p0. p1. O1 : seq glob. 1 ... 2. 3. 4. 1. 2. 3. 4. Ordre d'ex cution des t ches (p = 2) p0. p1. arbitraire. S ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 52
Provided by: LMC11
Category:

less

Transcript and Presenter's Notes

Title: Rgulation de charge


1
Régulation de charge
École ParDiOujda - Octobre 1999
Projet APACHE Laboratoire ID - IMAG
  • Jean-Louis Roch

2
Plan
  • 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

3
Partie 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

4
Principales 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,

5
Codage à 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

6
Limites 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

7
Langages 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

8
PGCD 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

9
Partie 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

11
Interface régulation - application
12
Interface régulation - architecture
13
Hypothè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

14
Hypothè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)

15
Partie 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é

16
Performance 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

17
Modèle de coût
18
Un exemple Ordonnancement glouton
Maintenir les processeurs au maximum
actifs Processeur inactif ? prendre une tâche
prête
? Théorème Graham 66
19
Coût global de l'algorithme de liste
?( ? )
20
Bornes 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

21
Partie 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

22
Vous 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

23
Optimiser 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

24
Exemple 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

25
Comparaisons expérimentales
Séquentiel
Athapascan-1 sans dégénération séquentielle
Cilk Dégénération séquentielle
26
Et la consommation mémoire ?
  • Calcul récursif Découpe en 4

découpes de l'image
découpes du calcul
affichage
affichage
27
Ordre d'exécution des tâches (p 2)
arbitraire
S2 146ko S1 78ko
LIFO
28
Ordre d'exécution des tâches (p 2)
S2 143ko S1 78ko
O2 seq loc
O1 seq glob
29
Ordre d'exécution des tâches (p 2)
1
2
5
6
4
3
8
7
10
9
11
12
O1 seq glob
30
Ordre d'exécution des tâches (p 2)
arbitraire
31
Optimiser la mémoire
32
Consommation mémoire théorique
  • Arbitraire
  • séquentiel local
  • séquentiel global Narlikar98

33
Compromis temps/mémoire
  • Arbitraire
  • Placement arbitraire des tâches surcoût très
    faible
  • Beaucoup de messages 1800 tâches migrées (sur
    2405) pour p4
  • LIFO
  • Vol de travail arbitraire peu de vols
  • Peu de messages 240 tâches migrées (sur 2405)
    pour p4
  • séquentiel local
  • 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
  • séquentiel global
  • 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

34
Exemple 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
35
Partie 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

36
Modèle de machine LogP
37
Masquage 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

38
Difficulté 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
39
Extension 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é

40
Prise 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

41
Modè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
42
Ré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

43
Exemples 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
44
Partie VI. Régulation sur un réseau de
machines Ordonnancements hybrides
  • Processeurs non-identiques et relaxation
  • Clusters de SMP

45
Processeurs 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

46
Exemple 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

47
Exemple cluster de SMP grappe
- Réseau de N nuds identiques - Chaque nud est
un SMP multi-processeurs
hiérarchie mémoire
48
Mixer 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
49
Un 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
50
Conclusion
  • 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

51
Athapascan - 1
  • Portabilité librairie C / Athapascan-0
    ?Parallélisme indépendant de larchitecture
  • Performances Ordonnancement adapté à
    l'architecture
Write a Comment
User Comments (0)
About PowerShow.com