Algorithmique parall - PowerPoint PPT Presentation

About This Presentation
Title:

Algorithmique parall

Description:

Construction et analyse d'algorithmes B. Le Cun. Synth se par transformation S. Rajopadhye ... courante c t appelant == future c t appel . courante. future. Avant ... – PowerPoint PPT presentation

Number of Views:185
Avg rating:3.0/5.0
Slides: 34
Provided by: ID47
Category:

less

Transcript and Presenter's Notes

Title: Algorithmique parall


1
Algorithmique parallèle
  1. Construction et analyse dalgorithmes B. Le Cun
  2. Synthèse par transformation S. Rajopadhye
  3. Synthèse par interprétation J.-L. Roch

2
Un exemple
  • void explore( nœud n, )
  • if
  • for (s n.first() s ltn.last() n)
  • dopar explore( s, )

tâche
T1 tps séquentiel T? O(h) S1 O(h)
Texec(p) T1 /p (1e) Sexec(p) S1 O(1)
3
De lalgorithme à la machine Synthèse par
interprétation
Programme parallèle T1, T?
Exécution efficace
Class f operating()( shared_r_wltintgt x ) x
sin(x-gtval ) BB(taq ( x ) ) void main(int
argc, char argv) Forkltfgt ( sharedltintgt (3) )

4
Langages data flow
détection (dynamique) des dépendances
  • Fonctionnel 70,
  • Calcul par nécessité
  • Haskell Arvind 70, MIT
  • Sisal 90, Gaudiot USC
  • mémoire
  • Parallélisme 80,
  • Ordonnancement efficace
  • - fonctionnel
  • Multilisp Halstead 86, MIT
  • Prolog Chassin 88 Mars-ML Lecussan 88
  • Sisal Sohn, 98 NJIT Nesl Blelloch 96
    Cornell
  • - impératif Macro data flow
  • Jade Rinard 95, Stanford Earth Gao 98 UD
  • Cilk Leiserson 98, MITAthapascan-1 Roch 98
  • temps mémoire

5
Plan
  • 1. Ordonnancement dun graphe calcul et contrôle
  • Interprétation data flow techniques de base
  • 3. Optimisation dynamique du grain
  • 4. Optimisation dynamique des accès mémoire
  • Contrôle de lexplosion mémoire

6
Ordonnancement cadre théorique
  • Entrée un graphe de précédence, pas un
    programme
  • Sortie un placement des tâches et des données
  • Analyse de lordonnancement comparaison à
    loptimal
  • Coût de calcul et de gestion généralement ignorés
  • Coût de calcul polynomial en le nombre de tâches
    -gt T1O(1)

7
Exemples dordonnancements
8
Surcoût pour réaliser lordonnancement
  • Contrôle
  • création/placement/entrelacement des tâches
  • gestion de la mémoire, mouvements de données
  • préemptivité, réactivité
  • Exemple algorithme récursif dexploration
  • Ordonnancement glouton théorique OK
  • Mais réalisation ???
  • Nombre de tâches T1
  • Mémoire 2h en séquentiel h

9
Contrôle ordonnancement sur grappe
  • Surcoût
  • local sur SMP
  • détection locale des données disponibles fins
    daccès locaux
  • gestion locale des tâches prêtes sur threads
    dédiés
  • global entre nœuds SMP
  • Calcul des synchronisations bilan des fins
    daccès locaux
  • si inactivité envoi dune requête à un autre
    nœud
  • Surcoût de réactivité

10
Plan
  • 1. Ordonnancement dun graphe calcul et contrôle
  • Interprétation data flow techniques de base
  • distribué, SMP, séquentiel
  • 3. Optimisation dynamique du grain
  • 4. Optimisation dynamique des accès mémoire

11
Interprétation data-flow (1)
  • Détecter dynamiquement les synchronisations
    dépendance
    écriture -gt lecture
  • Variables vues en assignation unique sisal
  • Une tâche lit des valeurs en mémoire
  • Leffet dune tâche est décrire des valeurs en
    mémoire
  • En cours dexécution dune tâche, une variable a
    deux versions
  • version courante ce qui est lu valeur
     précédente avant linstruction courante
  • version future ce qui sera écrit valeur
    résultant de lexécution de linstruction sera
    vue par les successeurs

12
Interprétation data-flow (2)
  • Lors de la création de tâches dopar f(x,)
  • création dune nouvelle version pour les
    variables modifiées par la tâche créée
  • courante côté appelant
    future côté appelé
  • Fin exécution f(x)

13
Interprétation data-flow (3)
  • Calculer si une version est prête
  • fin écriture gt lecture possible
  • fin lecture écriture en place/ramassage mémoire
    possible
  • Implémentation de la gestion des versions
  • dépend de la sémantique des accès mémoire
  • Distribuée, SMP, Séquentielle

14
Implémentation distribuée
  • Une même version est distribuée sur plusieurs
    sites
  • nommage site de création indice sur le site
    x ltsite, indicegt
  • Calculer si une version est prête
  • Terminaison distribuée
  • Exemple

Versionx
Versionx
bilan cptr local
id site de ref cptr local
Version sur site de référence
Version sur autre site
15
Implémentation SMP
  • Compteur local sur chaque version
  • nombre d accès en cours prêt ltgt cptr0

16
Implémentation séquentielle (DF)
  • ordonnancement dune tâche appel de fonction
  • dopar f( x )
  • version courante version future stockage en
    place

implantation
f(x)
implantation
x
17
Interprétation data flow
  • Efficace à gros grain en distribué et smp mais
  • Surcoût de contrôle dû à linterprétation
  • Comment gérer de nombreuses synchronisations ?
  • Analogie interprétation vs compilation
  • Comment compiler (à la volée) lordonnancement ?
    JIT

18
Plan
  • 1. Ordonnancement dun graphe calcul et contrôle
  • 2. Interprétation data flow techniques de base
  • 3. Optimisation dynamique du grain
  • dégénération séquentielle
  • 4. Optimisation dynamique des accès mémoire

19
Tirer parti dun ordt séquentiel efficace
  • Programme très parallèle
  • beaucoup de tâches créées et exécutées
    localement Blumhoffe
  • void prog()
  • lti1gt
  • spawn f1 (args )
  • //autres spawn
  • Sync
  • ltfingt
  • Mettre le surcoût dordt lors du vol
  • éviter les créations de tâches, remplacées par
    des appels de fonction

20
Quand est-ce possible ?
  • Lors dune création, il faut pouvoir dégénérer en
    appel de fonction profondeur dabord
  • Sémantique séquentielle possible
  • Être sûr que la tâche est prête à être exécutée
  • Exemples multilisp 86, Prolog,, Cilk 98,
  • Deux versions dune fonction
  • Séquentielle -
    Création/exécution dune tâche

21
Dégénération séquentielle  active 
  • Principe test si ? processeur inactif avant de
    dégénérer

lti1gt
Si pas de requête de tâches dégénération
séquentielle f(args1)
f1(args)

fk(args)
Processeur actif Ordt compilé
22
Dégénération séquentielle  passive 
  • Principe si requête de vol, vol de la
    continuation

// dégénération séquentielle lti1gt Préparation
continuation exportable f(args1) // version
rapide
lti1gt
f1(args)

fk(args)
sync
ltfingt
Processeur actif Ordt compilé
23
Dégénération séquentielle - Conclusion
  • Théorique sur SMP si programme parallèle strict
  • Pratique contrôle automatique de granularité
    Galilée98

O( p.T?)
SMP durée f( seuil ) temps séquentiel
pour 1 processeur pour 2 processeurs
24
Plan
  • 1. Ordonnancement dun graphe calcul et contrôle
  • 2. Interprétation data flow techniques de base
  • 3. Optimisation dynamique du grain
  • 4. Optimisation dynamique des accès mémoire
  • dégénération distribuée

25
Optimiser les accès mémoire
  • Si beaucoup de synchronisations
  • efficacité si localité
  • Analyse data flow gt Les accès distants sont
    prévisibles
  • Pré-calcul de sites pour tâches et données
    (écriture locale) ETF
  • Accès mémoire  compilé  pointeur
    local ou communication  uni-directionnelle
     
  • Dégénération distribuée
  • Surcoût mis lors de non respect de la localité

26
Exemple
  • Pré-affectation tâches/versions aux processeurs

Accèsmémoire
F(a)
G(b)
comm
b
a
send
a
H(a)
recv
I(a,b)
Processeur 1
Processeur 2
27
Algorithme dinterprétation
  • Hypothèse graphe calculé dynamiquement
    (partiellement)
  • Version ptrressource de communication (ex tag
    mpi)
  • En fin décriture, diffusion à tous les sites
    lecteurs
  • Regroupement des communications / contrôle
    scrutation
  • Côté lecteur
  • pré-allocations pour les réceptions
  • Ordonnancement dynamique des tâches prêtes
  • NB le pré-placement peut être modifié
    dynamiquement

28
Dégénération distribuée - Conclusion
  • Théorique sur modèle délai latence t

Doreille99
29
Plan
  • 1. Ordonnancement dun graphe calcul et contrôle
  • 2. Interprétation data flow techniques de base
  • 3. Optimisation dynamique du grain
  • 4. Optimisation dynamique des accès mémoire

30
Conclusion (1)
  • Langages  macro data flow 
  • JIT Analyse (implicite) des dépendances
  • Calcul dordonnancement
  • Contrôle de lordonnancement
  • Techniques pour optimiser le surcoût de contrôle
  • Dégénération séquentielle
    Dégénération distribuée
  • Intégration dans dautres langages
  • Dégénération séquentielle dans Open-MP ?
  • Spécialisation automatique
  • Les techniques peuvent être couplées entre elles
  • Vers un ordt générique avec auto-spécialisation

31
dtrporf grappe de 64 processeurs
  • 16 quadri-processeurs Univ. Delaware
  • Grappe SUNsSolaris Myrinet
  • bande passante 30Mo/s , latence 60µs
  • 1560 Mflops par nœuds 25000 Mflops.

Athapascan-1 60000 tâches
  • Dégénération distribuée entre nœuds
  • Ordt glouton optimisé SMP sur chaque noeud

Bloc bidim/MPI
  • Exploitation mémoire partagée
  • Ordonnancement  plus dynamique

32
Conclusion (2)
  • Construction dun algorithme parallèle efficace
  • À la main algorithmique parallèle
  • Automatiquement par transformation dun programme
    séquentiel
  • Exécution dun programme parallèle
  • Automatiquement par interprétation dun programme
    parallèle
  • Intérêt dun ordonnancement séquentiel efficace
    Prédiction dépendances
  • À la main écriture dun programme spécifique
  • La synthèse automatique permet, sous certaines
    restrictions, la portabilité avec performances

33
Comment paralléliser gzip ?
Parallélisation
?
?
Write a Comment
User Comments (0)
About PowerShow.com