Algorithmes parall - PowerPoint PPT Presentation

1 / 81
About This Presentation
Title:

Algorithmes parall

Description:

Plan du m moire et contributions Introduction [objectifs et contributions, organisation] Programmation parall le [notions] ... Lin-Su 02] Peuvent tre ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 82
Provided by: Daouda7
Category:

less

Transcript and Presenter's Notes

Title: Algorithmes parall


1
Algorithmes parallèles auto-adaptatifs et
applications
  • Daouda TRAORÉ
  • Directeurs de thèse
  • Jean-Louis ROCH Denis TRYSTRAM
  • Projet MOAIS
  • Laboratoire dInformatique de Grenoble (UMR
    5217), France
  • Vendredi 19 Décembre 2008

2
Motivations
  • Evolution des machines parallèles de machines
    avec processeurs identiques vers
  • Grilles de calcul
  • gt ressources hétérogènes et dynamiques
  • Systèmes multi-processus (Processeurs
    multi-cœurs, SMP, MPsoc)
  • applications concurrentes sur une même unité
  • gt les cœurs apparaissent comme de vitesses
    variables
  • Processeurs graphiques GPUs CPUs
  • gt hétérogénéité, fréquences et
    opérations différentes
  • Questions Est-ce quun algorithme parallèle peut
    fonctionner dans ce contexte?
  • Avec quelles garanties de performance ?
  • Sous quelles hypothèses?

2/52
3
Evolution de la programmation parallèle
  • Initialement processeurs identiques (MPI)
  • Aujourdhui Interfaces de haut-niveau
    permettant dabstraire larchitecture.

Grille
Multi-coeurs, SMP
GPU
Cuda
Google MapReduce
OpenMP, Cilk, intel TBB
Athapascan/Kaapi
3/52
4
Objectif de la thèse
  • Construction dalgorithmes parallèles adaptatifs
  • Sadaptent à la plate-forme dexécution
  • Inconscients du nombre de processeurs (en
    anglais, processor oblivious)
  • Adaptation à la charge de la plate-forme
  • Avec des garanties defficacité
  • Temps dexécution si possible optimal p/r aux
    ressources (dynamiquement) allouées
  • Contexte LIG / EP INRIA Moais
  • Thème sur la conception dalgorithmes adaptatifs
    Rochal gzip2001, TSI2005,...
  • Master ROCO D. Traoré 2005 un algorithme de
    préfixe adaptatif (mais clairvoyant)

4/52
5
Plan du mémoire et contributions
  • Introduction objectifs et contributions,
    organisation
  • Programmation parallèle notions
  • Algorithmes parallèles adaptatifsdéfinitions
  • Un algorithme adaptatif pour le calcul parallèle
    des préfixes EUROPAR06, CARI06
  • Algorithmes adaptatifs de tri parallèle
    RENPAR08
  • Schéma générique des algorithmes parallèles
    adaptatifs PDP08, EUROPAR08
  • Application du schéma à la librairie standard
    STL EUROPAR08, MSAS08
  • Conclusion et perspectives

5/52
6
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

6/52
7
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
  • Calcul des préfixes
  • Entrée x0, x1, , xn
  • Sortie p0, p1, ..., pn avec
  • Applications parallélisation de boucles,
    additions modulaires Blelloch89
  • Algorithme séquentiel
  • for(p0x0, i1 i lt n i)
    pipi-1xi // n opérations
  • Borne inférieure sur p processeurs identiques
  • Parallélisation optimale sur p processeurs
    identiques Snir86, Nicolau-Wang96

Fich83
7/52
8
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
  • Un nouvel algorithme optimal pour le calcul des
    préfixes chap. 3, pages 27-36
  • - Soit s et q le quotient et le
    reste de la division de n1 par p1
  • n1 s(p1) q
  • Division du tableau initial en p1 blocs de
    taille éventuellement différentes

8/52
9
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
Algorithme statique en p1 blocs
s1
s1
s2
s2




9/52
10
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
  • Analyse théorique du temps dexécution de
    lalgorithme proposé
  • et le nombre dopérations vérifie
  • Remarque Une variante donne un temps toujours
    optimal, mais na pas été programmée

Théorème chap. 3, page 30
Si 0 q 1 et (p3)/2 q p, alors le temps
dexécution de lalgorithme (optimal) sur p
processeurs identiques vérifie
Théorème chap. 3, pages 31 et 32
Si 2 q (p3)/2, alors le temps dexécution de
lalgorithme à 1 de loptimal sur p processeurs
identiques vérifie
10/52
11
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
  • Machine AMD Opteron

4 processeurs
n grand, temps dune opération très petit (temps
daddition de deux Doubles par exemple). Dans
lalgorithme de Nicolau-Wang On a 2n/(p1)
synchronisations
accélération
1 processeur
taille
temps
n petit, temps dune opération assez élevé
taille
11/52
12
Algorithmes pour processeurs identiques
illustration sur le calcul parallèle des préfixes
  • Inconvénients de la parallélisation sur des
    processeurs identiques
  • Nombre dopérations toujours le même si les p
    processeurs initialement prévus pour lexécution
    ne sont pas disponibles.
  • Exemple si on suppose que
  • Un seul processeur exécute lalgorithme parallèle
  • Les autres étant mobilisés pour dautres calculs
  • gt le nombre dopérations
    effectuées par un seul processeur est
  • Lalgorithme optimal sur processeurs identiques
    nest pas performant
  • Si les processeurs sont de vitesses différentes
    (temps dexécution final temps dexécution du
    processeur le plus lent)
  • Si le temps de lopération est variable

12/52
13
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

13/52
14
Ordonnancement par vol de travail
  • Principe
  • Suit le principe glouton à tout instant où il
    existe une tâche prête non encore ordonnancée,
    tous les processeurs sont actifs.
  • Algorithme distribué
  • Chaque processeur gère localement une pile des
    tâches quil a rendues prêtes (créées, ou
    débloquées).

steal
tâches
P0
P1
P2
Blelloch90, , Leiserson Kuszmaul 2001
  • Lorsquun processeur devient inactif, il choisit
    (au hasard) un processeur dont la pile en cours
    dexécution contient une tâche prête et lui vole
    une tâche (la plus ancienne, en haut de la pile
    (FIFO).

14/52
15
Modèle de coût associé au vol de travail (1/2)
  • Notations
  • W travail le nombre dopérations de
    lalgorithme parallèle sur 1 processeur
  • Tp la durée dexécution de lalgorithme
    parallèle sur p processeurs
  • D la profondeur de lalgorithme parallèle
    (le nombre dopérations sur le chemin critique)
  • Pave la vitesse moyenne des p processeurs
  • ThéorèmeArora, Blumofe, Plaxton 02, Bender,
    Rabin 02
  • Avec une grande probabilité
  • Le temps dexécution Tp dun programme utilisant
    lordonnancement par vol de travail est majoré
    par
  • Le nombre de vols (réussis ou échoués) est
    inférieure à O(p.D)

15/52
16
Modèle de coût associé au vol de travail (2/2)
  • Efficacité de la parallélisation
  • Wseq travail de l algorithme séquentiel
  • Tseq temps dexécution de lalgorithme
    séquentiel
  • Intérêt Si W Wseq et D très petit,
  • En général W c1Wseq, c1 mesure le surcoût
    dû à lordonnancement et au parallélisme.
  • Surcoût de parallélisme
  • Gestion des tâches tâches empilées dans une
    pile
  • Exemple algorithme récursif,
  • Grain fin surcoût arithmétique (récursivité)
  • Minimisation du surcoût dordonnancement
  • Principe du travail dabordFrigo et al98,
    Roch01
  • Ce principe consiste
    à minimiser le surcoût de création de tâches de
  • lordonnancement par
    vol de travail.
  • Appels de création de tâches traduits en appel
    local de fonction séquentielle.

16/52
17
Bibliothèques implémentant le vol de travail
  • Cilk Frigo et al 98
  • Création de tâches spawn
  • Synchronisation sync
  • Architectures cibles mémoires partagées
  • Athapascan/Kaapi
  • Athapascan Roch et al, PACT 98 interface
    applicative
  • Basé sur le graphe de flot de données
  • Création de tâches Fork
  • Création de données Shared
  • Architectures cibles mémoires partagées et
    distribuées
  • Kaapi Gautier et al 07 moteur exécutif, qui
    supporte Athapascan

17/52
18
Ordonnancement par vol de travail limite
  • Emulation séquentielle de lalgorithme parallèle
  • Nombre dopérations arithmétiques supérieur à
    celui de lalgorithme séquentiel
  • Exemple Calcul des préfixes, optimal avec n
    opérations !
  • - Entrée x0, x1, , xn
  • - Sortie p0, p1, ..., pn avec
  • Un algorithme parallèle récursif (Diviser Pour
    Régner)

W(n) 2W(n/2) n/2 (1/2) nlog(n) gt
lémulation séquentielle de lalgorithme
parallèle fait plus dopérations que lalgorithme
séquentiel optimal !
18/52
19
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

19/52
20
Schéma générique adaptatif
  • Ordonnancement par vol de travail amélioration
  • Principe de base Rochal TSI 2005 Remplacer
    lémulation séquentielle de lalgorithme
    parallèle par un  vrai  algorithme séquentiel
    plus efficace.
  • gtUtiliser le couplage de deux algorithmes
  • Un séquentiel qui minimise le travail (nombre
    dopérations) W
  • Un parallèle qui minimise la profondeur
    parallèle D
  • Points clefs
  • À tout instant, chaque processus actif exécute un
    algorithme séquentiel, mais peut être volé par un
    processus inactif
  • Un processus  suit  lalgorithme séquentiel
    (optimal)

20/52
21
Couplage adaptatif de deux algorithmes
  • Un processeur occupé a une tâche et lexécute
    avec un algorithme séquentiel

Ps
T0.Run_seq()
21/52
22
Couplage adaptatif de deux algorithmes
  • Un processeur devient libre et exécute une
    opération dextraction de travail chez un
    processeur actif sans linterrompre.

Ps
T0.Run_seq()
steal
Pv
21/52
23
Couplage adaptatif de deux algorithmes
  • Un processeur devient libre et exécute une
    opération dextraction de travail chez un
    processeur actif (victime) sans linterrompre.

Ps
T0.Run_seq()
Pv
T0.Run_seq()
21/52
24
Couplage adaptatif de deux algorithmes
  • La victime a fini sa tâche et préempte son voleur

Ps
Prempts
Pv
T0.Run_seq()
21/52
25
Couplage adaptatif de deux algorithmes
  • La victime effectue un saut (jump) sur le travail
    déjà fait par le voleur, le voleur finalise
    éventuellement ses calculs grâce aux résultats de
    la victime.

Ps
Ps
jump
T0.Run_seq()
gets
Pv
T0.Finalize
21/52
26
Couplage adaptatif Amortissement des
synchronisations (extraction séquentielle du
travail)
  • A la fois les processeurs victime et voleur
    peuvent modifier les informations sur le travail
    en cours de traitement
  • Nécessité de se synchroniser ( pour la cohérence
    des données)

Côté victime
Côté voleur
work extract_seq() lock() //verrouiller
ws NextWorkSeq() unlock()
//déverrouiller return ws
work extract_par() //Micro-loop lock()
//verrouiller wv WorkToSteal()
unlock() //déverrouiller return wv
- Si taille(ws) est petite gt surcoût élévé. -
Choix de taille (ws) taille (ws) profondeur
(wrest) gt travail arithmétique Wseq
22/52
27
Couplage adaptatif Amortissement des
synchronisations (extraction séquentielle du
travail)
Exemple transform STL boucle avec n calculs
indépendants
nil-fi
l
f1
f2
alog(n1)
alog(n2)
Machine utilisée AMD Opteron Opteron 875 2,2
Ghz, Compilateur gcc, option O2
Tempss
taille
23/52
28
Schéma adaptatif Amortissement du surcoût
arithmétique
  • Pour Certains dalgorithmes
  • Wseq nest pas connu davance
  • W gt Wseq
  • Exemple algorithme find_if qui permet de
    trouver le premier élément dune séquence
    vérifiant un predicat
  • Le temps séquentiel de lalgorithme est Tseq 2
  • Le temps final de lalgorithme parallèle est le
    temps final du processeur ayant terminé le
    dernier. Donc T4 6

24/52
29
Schéma adaptatif Amortissement du surcoût
arithmétique
  • Pour sadapter division dynamique du travail
    global en des étapes (Macro-loop Danjean,
    Gillard, Guelton, Roch, Roche, PASCO07),avec
    synchronisation après chaque pas schéma de type
    algorithme de Floyd
  • Exemple find_if

P0, P1, P2
P0, P1, P2
P0, P1, P2
B1
B2
B3
25/52
30
Schéma adaptatif Amortissement du surcoût
arithmétique
  • Exemple find_if STL
  • Comparaison avec find_if parallèle MPTL
    Baertschiger 06

Machine utilisée AMD Opteron (16
cœurs) Données doubles Taille tableau
106 Position élément 105 Temps STL 3,60
s Temps prédicat 36µ
Accélération inférieure à 1
26/52
31
Schéma adaptatif Amortissement du surcoût
arithmétique
  • Exemple find_if STL
  • Accélération par rapport au temps STL en fonction
    de la position où se trouve lélément

Machine utilisée AMD Opteron (16
cœurs) Données doubles Taille tableau
106 Temps prédicat 36µ
accélération
Nombre de processeurs
27/52
32
Schéma adaptatif Analyse théorique
  • Trois niveaux de boucles utilisés dans
    lalgorithme du du schéma
  • nano-loop gt limite le surcoût de synchronisation
  • micro-loop gt permet le vol de travail et la
    préemption
  • macro-loop gt limite le surcoût arithmétique
  • Analyse de la complexité de lalgorithme du
    schéma

Théorème chap. 6, pages 89 et 90
Si le temps parallèle dexécution dun algorithme
sur un nombre infini de processeurs fait
(1s)Wseq opérations avec s 0, alors avec une
grande probabilité,
28/52
33
Spécification et implantation du Schéma
Interface C sur Kaapi
  • Suit le schéma de lalgorithme adaptatif
  • Classes à instancier WorkAdapt, JumpWork,
    FinalizeWork
  • Les fonctions à instancier

Fonctions Spécifications
bool extract_seq() extrait une partie du travail local
bool extract_par() appelée lors du vol (extraction du parallélisme
void local_run() exécution séquentielle efficace
void join(const WorkAdapt stolenwork) fusionne les résultats
void jump(JumpWork ) construit le travail à sauter
void after_jump(const JumpWork ) donne les informations sur le travail sauté
bool extract_nexmacro_work() extrait la taille dune macro-étape
bool get_finalize_work (FinalizeWork) donne le travail à finaliser
void get_main_result() retourne le résultat de la victime
void get_thieft_result() retourne le résultat du voleur
void must_jump() autorise le saut
29/52
34
Spécification et implantation du Schéma
Interface C sur Kaapi
  • Pour construire un algorithme adaptatif,
    lutilisateur remplit les fonctions nécessaires
  • Class MyWorkAdapt public WorkAdapt
  • bool extract_seq()
  • .
  • bool extract_par()
  • .
  • void local_run()
  • void join(const WorkAdapt stolenwork)
  • .

30/52
35
Spécification et implantation du schéma
Gestion des vols
  • Implémentation  sans pile  du couplage
    séquentiel-parallèle
  • Mais le parallélisme récursif sans surcoût peut
    rester géré par Kaapi avec sa pile
  • Gestion des vols
  • Remplacer la pile distribuée de tâches créées par
    une liste distribuée de tâches volées
  • Intérêt peu de vols gt peu de tâches insérées
    dans la liste les surcoûts de création sont
    aussi limités.
  • Gestion lors de la préemption

w
v1
v2
v3
(a) avant préemption de v1
31/52
36
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

32/52
37
Algorithme adaptatif du calcul parallèle des
préfixes (1/7)
  • Calcul des préfixes
  • Entrée x0, x1, , xn
  • Sortie p0, p1, ..., pn avec
  • Algorithme séquentiel
  • for(p0x0, i1 i lt n i)
    pipi-1xi // n opérations
  • Borne inférieure sur p processeurs identiques
  • Parallélisation optimale sur p processeurs
    identiques Snir86, Nicolau-Wang96
  • Ne sont pas adaptés si le temps de lopération
    varie ou si les processeurs sont à vitesse
    variable
  • Parallélisation sur un nombre non borné de
    processeurs Ladner-Fischer80, Lin-Su02
  • Peuvent être émulés par vol de travail mais
    effectuent plus de 2n opérations
  • But trouver un algorithme adaptatif qui se
    comporte optimalement EUROPAR2006, CARI2006

Fich83
33/52
38
Algorithme adaptatif du calcul parallèle des
préfixes (2/7)
a1 a2 a3
a4 a5 a6
a7 a8 a9
a10 a11 a12
a13
Ps
p1
p2
p3
pia0ai
Steal request
?ia4ai
a4 a5 a6
Pv
a5
a6
pia0ai
1ère étape de la macro-loop
9
1
2
8
3
5
4
6
7
temps
34/52
39
Algorithme adaptatif du calcul parallèle des
préfixes (2/7)
a1 a2 a3
a6
a7 a8 a9
a10 a11 a12
a13
Ps
p1
p2
p3
pia0ai
a6
preempt
p3
?ia4ai
a4 a5
Pv
a5
a6
pia0ai
1ère étape de la macro-loop
9
1
2
8
4
6
7
3
5
temps
34/52
40
Algorithme adaptatif du calcul parallèle des
préfixes (2/7)
a1 a2 a3
a6
a7 a8 a9
a10 a11 a12
a13
Ps
p1
p2
p3
jump
p6
p7
p8
p9
pia0ai
Steal request
?ia10ai
?ia4ai
a4 a5
a10 a11 a12
Pv
a4
p4
a11
p5
a12
pia0ai
1ère étape de la macro-loop
2ème étape de la macro-loop
9
1
2
8
4
6
3
5
7
temps
34/52
41
Algorithme adaptatif du calcul parallèle des
préfixes (2/7)
a1 a2 a3
a6
a7 a8 a9
a13
Ps
p1
p2
p3
jump
p6
p7
p8
p9
pia0ai
preempt
a12
p9
?ia10ai
a4 a5
a10 a11 a12
Pv
p5
p4
a11
a12
pia0ai
1ère étape de la macro-loop
2ème étape de la macro-loop
9
1
2
8
4
6
3
5
7
temps
34/52
42
Algorithme adaptatif du calcul parallèle des
préfixes (2/7)
a1 a2 a3
a6
a7 a8 a9
a12
a13
Ps
p1
p2
p3
jump
p6
p7
p8
p9
jump
p12
p13
pia0ai
T2 9 temps optimal 9
?ia10ai
a4 a5
a10 a11
Pv
p5
p4
a11
p10
p11
pia0ai
1ère étape de la macro-loop
3ème étape de la macro-loop
2ème étape de la macro-loop
9
1
2
8
4
6
3
5
7
temps
34/52
43
Algorithme adaptatif du calcul parallèle des
préfixes (3/7)
  • Analyse théorique du temps dexécution

Théorème chap. 4, pages 53 et 54
Le temps Tp sur p processeurs du calcul n1
préfixes par lalgorithme adaptatif vérifie Avec
une grande probabilité
35/52
44
Algorithme adaptatif du calcul parallèle des
préfixes (4/7) validation expérimentale
  • Taille des données n3.105, temps dune
    opération 1ms

accélération
Nombre de processeurs
Nombre de processeurs
Machine Itanium-2 (8 cœurs)
Machine AMD Opteron (16 cœurs)
36/52
45
Algorithme adaptatif du calcul parallèle des
préfixes (5/7) validation expérimentale
  • Taille des données n 108, temps dune
    opération addition de deux doubles

Temps dexécution
Nombre de processeurs
Machine Itanium-2 (8 cœurs)
Machine AMD Opteron (16 cœurs)
37/52
46
Algorithme adaptatif du calcul parallèle des
préfixes (6/7) validation expérimentale
  • Taille des données n 104, temps dune
    opération 2ms

processeur fréquence
1 1760 Mhz
2 550 Mhz
3 1100 Mhz
4 1650 Mhz
5 660 Mhz
6 440 Mhz
7 1320 Mhz
8 880 Mhz
9 550 Mhz
10 1760 Mhz
Temps s
Nombre de processeurs
Simulateur CpuBurning /Cérin
Dix Machines de fréquences différentes AMD Opteron
38/52
47
Algorithme adaptatif du calcul parallèle des
préfixes (7/7) validation expérimentale
  • Taille des données n5120000, temps dune
    opération 1ms

8 Machines distribuées AMD Opteron accès des
données paginé via mmap
39/52
48
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

40/52
49
Applications du schéma à la librairie standard C
  • La librairie STL (Standard Template Library)
  • Fournit conteneurs, algorithmes, itérateurs
  • Avantage généricité
  • Parallélisation de la STL
  • PSTL (Parallel Standard Template Library)
    Johnson et al 97
  • STAPL (Standard Adaptive Parallel Libary)
    Thomas et al 88
  • MPTL (Multi-Processing Template Library)
    Baertschiger 06
  • MCSTL (Multi-Core Standard Template Library)
    Singler et al 07
  • Intel TBB (Thread Building Blocks) Reinders 07
  • PaSTeL Saule Videau, RENPAR08
  • KASTL (Kaapi Adaptive Standard Template Library)
  • Implémenté sur le noyau exécutif kaapi
  • Basé le schéma adaptatif

41/52
50
Applications du schéma à la librairie standard C
  • Classification des algorithmes de la STL

Classe Algorithmes implémentés
Algorithmes sans fusion de résultats copy, copy_bacward, fill, fill_n, for_each, generate, generate_n, replace, replace_if, replace_copy, replace_copy_if, swap_ranges, transform
Algorithmes avec fusion de résultats count, count_if, accumulate, inner_product, partial_difference
Algorithmes avec terminaison anticipée find, find_if, find_end, find_first_of, adjacent_find, search_n
Algorithmes avec surcoûts de parallélisme partial_sum, remove_copy_if, unique_copy
Algorithmes de partition et de tri merge, stable_sort, partition, sort
42/52
51
Applications du schéma à la librairie standard C
  • Algorithmes sans fusion de résultats
  • Fonctions extract_seq, extract_par, local_run
    (1)
  • Algorithmes avec fusion de résultats
  • Fonctions (1) et join, jump (2)
  • Algorithmes avec terminaison anticipée
  • Fonctions (2) et extract_nextmacro_work (3)
  • Algorithmes avec surcoûts de parallélisme
  • Fonction et classe (3) et la classe
    FinalizeWork

43/52
52
Applications du schéma à la librairie standard
C partition
  •  Partition   primitive de base dans un tri de
    type  quicksort 
  •  
  • Soit un tableau T0..n, et un élément quelconque
    appelé pivot pris dans le tableau. Le but de
    lalgorithme de partition est darriver à la
    situation suivante
  • Ti lt pivot pour i appartenant à 0..k
  • Ti gt pivot pour j appartenant à k..n
  • Exemple soit T 10, 5, 2, 8, 20, 6, 32,
    3, 7 et pivot 8
  • T_partionné 7,5,2,3,6, 20, 32,
    8,10

44/52
53
Applications du schéma à la librairie standard
C partition adaptative
  • Tableau initial

P1
45/52
54
Applications du schéma à la librairie standard
C partition adaptative
  • Initialement P1 commence le calcul

P1
45/52
55
Applications du schéma à la librairie standard
C partition adaptative
  • P2 vol du travail chez P1

P1
P2
steal
45/52
56
Applications du schéma à la librairie standard
C partition adaptative
  • P1 et P2 font la partition dans leurs intervalles
    respectifs

P1
P2
45/52
57
Applications du schéma à la librairie standard
C partition adaptative
  • P3 vol du travail chez P1

P1
steal
P3
45/52
58
Applications du schéma à la librairie standard
C partition adaptative
  • Les trois processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
45/52
59
Applications du schéma à la librairie standard
C partition adaptative
  • P4 vol du travail chez P2

P2
P4
steal
45/52
60
Applications du schéma à la librairie standard
C partition adaptative
  • Les quatre processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
P4
45/52
61
Applications du schéma à la librairie standard
C partition adaptative
  • Les quatre processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
P4
45/52
62
Applications du schéma à la librairie standard
C partition adaptative
  • Les quatre processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
P4
45/52
63
Applications du schéma à la librairie standard
C partition adaptative
  • Les quatre processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
P4
45/52
64
Applications du schéma à la librairie standard
C partition adaptative
  • Les quatre processeurs font la partition dans
    leurs intervalles respectifs

P1
P2
P3
P4
45/52
65
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite et préempte P3

P1
P2
préemption
préemption
P3
P4
45/52
66
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite et préempte P3

P1
P2
P4
45/52
67
Applications du schéma à la librairie standard
C partition adaptative
  • Les processeurs continuent les calculs en
    parallèle

P1
P2
P4
45/52
68
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite et préempte P2

P1
préemption
préemption
P2
P4
45/52
69
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite et préempte P2

P1
P4
45/52
70
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite et préempte P4

P1
préemption
préemption
45/52
71
Applications du schéma à la librairie standard
C partition adaptative
  • P1 a fini sa partie droite

P1
45/52
72
Applications du schéma à la librairie standard
C partition adaptative
  • Réarrangement des blocs non terminés

P1
Réarrangement des blocs mal placés
Tous les éléments qui sont dans cette partie sont
supérieurs au pivot
45/52
73
Applications du schéma à la librairie standard
C partition adaptative
  • Réarrangement des blocs non terminés

P1
Tous les éléments qui sont dans cette partie sont
supérieurs au pivot
Tous les éléments qui sont dans cette partie sont
inférieurs au pivot
Appel à partition adaptive sur ce intervalle
45/52
74
Applications du schéma à la librairie standard
C validations expérimentales
  • sort

Machine Opteron (16 cœurs ) Données
Doubles Taille 108
Temps s
Nombre de processeurs
46/52
75
Applications du schéma à la librairie standard
C validation expérimentales
  • unique_copy supprime dans une séquence des
    éléments contigus égaux
  • Exemple

gt
Machine Opteron (16 cœurs ) Données
Doubles Taille 108
Temps s
Nombre de processeurs
47/52
76
Applications du schéma à la librairie standard
C validation expérimentales
  • partial_sum identique au calcul des préfixes

Machine Opteron (16 cœurs ) Données
Doubles Taille 3.105
2n/p
Temps s
2n/(p1)
Nombre de processeurs
48/52
77
Applications du schéma à la librairie standard
C validations expérimentales
  • merge

8 processeurs
Machine Opteron (16 cœurs ) Données Doubles
accélération
taille
49/52
78
Plan de la présentation
  • Algorithmes pour processeurs identiques
    illustration sur le calcul parallèle des préfixes
  • Ordonnancement par vol de travail
  • Schéma générique adaptatif
  • Algorithme adaptatif pour le calcul parallèle des
    Préfixes
  • Application du schéma à la STL
  • Conclusion et perspectives

50/52
79
Conclusion
  • Spécification dun schéma générique qui permet de
    développer des programmes parallèles adaptatifs
  • Garanties théoriques prouvées
  • Interface C sur Kaapi développée
  • Validation expérimentales sur plusieurs exemples
  • Calcul parallèle des préfixes
  • Fusion de listes triées, partition, tri par
    fusion et tri introspectif
  • Algorithmes de la STL unique_copy,
    remove_copy_if, transform, accumulate, .
  • Bonnes performances expérimentales obtenues par
    rapport à dautres algorithmes implantés dans
    dautres librairies (MCSTL, TBB, SWARM)

51/52
80
Perspectives
  • Optimisation de linterface développée
  • Supprimer les verrous important pour un travail
    de petite taille
  • Expérimenter et améliorer en contexte distribué
    (calcul automatique des seuils)
  • Implémenter le schéma sur dautres bibliothèques
  • Comme Cilk, Cilk, intel Tbb
  • Comparer les performances
  • Avoir des algorithmes caches et processeurs
    inconscients (vrai pour plusieurs algorithmes
    (préfixe, partition, ), mais reste sort
    adaptatif?)
  • Utilisation pour des applications de simulations
    3D (SOFA, Everton)
  • -gt ressources hétérogènes CPU/GPU Soares
    et al 07

52/52
81

MERCI DE VOTRE ATTENTTION! QUESTIONS ?
Write a Comment
User Comments (0)
About PowerShow.com