algorithmes parallèles auto-adaptatifs et applications daouda traorÉ directeurs de thèse...

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

Upload: charles-perin

Post on 03-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applications

Daouda TRAORÉ

Directeurs de thèse

Jean-Louis ROCH & Denis TRYSTRAM

Projet MOAIS

Laboratoire d’Informatique de Grenoble (UMR 5217), France

Vendredi 19 Décembre 2008

Page 2: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Motivations

Evolution des machines parallèles: de machines avec processeurs identiques vers:

Grilles de calcul => ressources hétérogènes et dynamiques

Systèmes multi-processus (Processeurs multi-cœurs, SMP, MPsoc) applications concurrentes sur une même unité => les cœurs apparaissent comme de vitesses variables

Processeurs graphiques : GPUs + CPUs => hétérogénéité, fréquences et opérations différentes

Questions: Est-ce qu’un algorithme parallèle peut fonctionner dans ce contexte? Avec quelles garanties de performance ? Sous quelles hypothèses?

2/52

Page 3: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Evolution de la programmation parallèle

Grille Multi-coeurs, SMP GPU

Google MapReduceOpenMP, Cilk++, intel TBB

Cuda

Athapascan/Kaapi

Initialement: processeurs identiques (MPI)

Aujourd’hui: Interfaces de haut-niveau permettant d’abstraire l’architecture.

3/52

Page 4: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Construction d’algorithmes parallèles adaptatifs

S’adaptent à la plate-forme d’exécution- Inconscients du nombre de processeurs (en anglais, processor oblivious)- Adaptation à la charge de la plate-forme

Avec des garanties d’efficacité- Temps d’exécution si possible optimal p/r aux ressources (dynamiquement) allouées

• Contexte: LIG / EP INRIA Moais:

Thème sur la conception d’algorithmes adaptatifs [Roch&al gzip2001, TSI2005,...]

Master ROCO D. Traoré 2005 : un algorithme de préfixe adaptatif (mais clairvoyant…)

4/52

Objectif de la thèse

Un algorithme auto-adaptatif est un algorithme qui est capable de changer automatiquement son comportement en fonction de son contexte d‘exécution (données manipulées, plate-forme d’exécution, occupation des processeurs, …).

Définition (algorithme auto-adaptatif)

Page 5: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

1. Introduction [objectifs et contributions, organisation]

2. Programmation parallèle [notions]

3. Algorithmes parallèles adaptatifs[définitions]

4. Un algorithme adaptatif pour le calcul parallèle des préfixes [EUROPAR’06, CARI’06]

5. Algorithmes adaptatifs de tri parallèle [RENPAR’08]

6. Schéma générique des algorithmes parallèles adaptatifs [PDP’08, EUROPAR’08]

7. Application du schéma à la librairie standard STL [EUROPAR’08, MSAS’08]

8. Conclusion et perspectives

5/52

Plan du mémoire et contributions

Page 6: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 7: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

Calcul des préfixes

– Entrée : x0, x1, …, xn

– Sortie : ..., n avec

Applications : parallélisation de boucles, additions modulaires [Blelloch’89]

Algorithme séquentiel :

for(x[0], i=1; i <= n; i++) [i]=i-1]*x[i]; // n opérations

Borne inférieure sur p processeurs identiques :

Parallélisation optimale sur p processeurs identiques [Snir’86, Nicolau-Wang’96]

i

kii x

0

7/52

1

2

p

n[Fich’83]

Page 8: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

s+1 s+1 s+2 s+2 s-p+1… …

q-1 blocsp-q+1 blocs

p+1 blocs

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 n+1 par p+1:

n+1 = s(p+1) + q

Division du tableau initial en p+1 blocs de taille éventuellement différentes

8/52

Page 9: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

s+1 s+1 s+2 s+2… …

p-1 étapes

p-1 1

p-1 1

p-1 1

s+1-p s+1-p s+2-p s+2-p s+1-p

Algorithme statique en p+1 blocs

9/52

Page 10: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 10/52

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

Analyse théorique du temps d’exécution de l’algorithme proposé

et le nombre d’opérations vérifie :

Remarque : Une variante donne un temps toujours optimal, mais n’a pas été programmée

1

2

p

nTp

Si 0 ≤ q ≤ 1 et (p+3)/2 ≤ q ≤ p, alors le temps d’exécution de l’algorithme (optimal) sur p processeurs identiques vérifie

Théorème [chap. 3, page 30]

11

2

p

nTp

Si 2 ≤ q ≤ (p+3)/2, alors le temps d’exécution de l’algorithme à 1 de l’optimal sur p processeurs identiques vérifie

Théorème [chap. 3, pages 31 et 32]

1

2

p

npWp

Page 11: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

0

0,02

0,04

0,06

0,08

0,1

0,12

0,14

n=100001 10000001

implantation "algoproposé"implantation "Nicolau-Wang"implantation"séquentielle"

11/52

1

1,2

1,4

1,6

1,8

2

2,2

2,4

2,6

n=21 n=141 n=261 n=381 n=421

implantation "algoproposé"implantation "Nicolau-Wang"borne inférieure

taille

tem

ps

accé

léra

tion

taille

Machine AMD Opteron

n petit, temps d’une opération assez élevé

n grand, temps d’une opération très petit (temps d’addition de deux Doubles par exemple).Dans l’algorithme de Nicolau-WangOn a 2n/(p+1) synchronisations

4 processeurs

1 processeur

Page 12: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes

Inconvénients de la parallélisation sur des processeurs identiques

Nombre d’opérations : toujours le même si les p processeurs initialement prévus pour l’exécution ne sont pas disponibles.

Exemple : si on suppose que Un seul processeur exécute l’algorithme parallèle Les autres étant mobilisés pour d’autres calculs

=> le nombre d’opérations effectuées par un seul processeur est

L’algorithme optimal sur processeurs identiques n’est pas performant Si les processeurs sont de vitesses différentes (temps d’exécution final = temps

d’exécution du processeur le plus lent) Si le temps de l’opération * est variable

12/52

1

2

p

np

Page 13: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 14: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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 qu’il a rendues prêtes

(créées, ou débloquées).

tâches

P0 P1 P2

Lorsqu’un processeur devient inactif, il choisit (au hasard) un processeur dont la pile en cours d’exécution contient une tâche prête et lui vole une tâche (la plus ancienne, en haut de la pile (FIFO).

steal

14/52

Ordonnancement par vol de travail

[Blelloch’90, ], [Leiserson & Kuszmaul 2001]

Page 15: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Modèle de coût associé au vol de travail (1/2)

Notations• W = travail = le nombre d’opérations de l’algorithme parallèle sur 1

processeur

• Tp = la durée d’exécution de l’algorithme parallèle sur p processeurs

• D = la profondeur de l’algorithme parallèle (le nombre d’opérations sur le chemin critique)

• ave = la vitesse moyenne des p processeurs :

Théorème[Arora, Blumofe, Plaxton 02, Bender, Rabin 02]

Avec une grande probabilité; Le temps d’exécution Tp d’un programme utilisant l’ordonnancement par

vol de travail est majoré par :

Le nombre de vols (réussis ou échoués) est inférieure à O(p.D)

)(aveave

p

DO

p

WT

15/52

ave i(t)

i1

p

t1

T

T.p

Page 16: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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 d’exécution de l’algorithme 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û à l’ordonnancement 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 d’ordonnancement Principe du travail d’abord[Frigo et al98, Roch01]

Ce principe consiste à minimiser le surcoût de création de tâches de l’ordonnancement par vol de travail.

Appels de création de tâches traduits en appel local de fonction séquentielle.

ave

seqseq

WT

16/52

p

TDO

p

WT seq

aveavep

)(

Page 17: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Bibliothèques implémentant le vol de travail

cilk A () { x = spawn C(); y = spawn B(); sync;return (x+y);}

A (Shared_w<int> res) { shared<int> x; shared<int> y;

Fork<C>()(x); Fork<B>()(y); Fork<M>()(x, y, res);}

Page 18: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Emulation séquentielle de l’algorithme parallèle Nombre d’opérations arithmétiques supérieur à celui de l’algorithme

séquentiel Exemple : Calcul des préfixes, optimal avec n opérations !

- Entrée : x0, x1, …, xn

- Sortie : ..., n avec

Un algorithme parallèle récursif (Diviser Pour Régner) :

18/52

Ordonnancement par vol de travail : limite

i

kii x

0

pref(n/2) pref(n/2)

final(n/2)

W(n) = 2W(n/2) + n/2 = (1/2) n*log(n) => l’émulation séquentielle de l’algorithme parallèle fait plus d’opérations que l’algorithme séquentiel optimal !

Page 19: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 20: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Ordonnancement par vol de travail: amélioration Principe de base [Roch&al TSI 2005]

Remplacer l’émulation séquentielle de l’algorithme parallèle par un « vrai » algorithme séquentiel plus efficace.

=>Utiliser le couplage de deux algorithmes : Un séquentiel: qui minimise le travail (nombre d’opé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 » l’algorithme séquentiel (optimal)

20/52

Schéma générique adaptatif

Page 21: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Un processeur occupé a une tâche et l’exécute avec un algorithme séquentiel

T0.Run_seq()

21/52

Couplage adaptatif de deux algorithmes

Ps

Page 22: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Un processeur devient libre et exécute une opération d’extraction de travail chez un processeur actif sans l’interrompre.

Ps

Pv

21/52

Couplage adaptatif de deux algorithmes

steal

T0.Run_seq()

Page 23: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Un processeur devient libre et exécute une opération d’extraction de travail chez un processeur actif (victime) sans l’interrompre.

Ps

21/52

Couplage adaptatif de deux algorithmes

Pv

T0.Run_seq()

T’0.Run_seq()

Page 24: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

La victime a fini sa tâche et préempte son voleur

Ps

21/52

Couplage adaptatif de deux algorithmes

Pv

T’0.Run_seq()

Prem

pts

Page 25: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

21/52

Couplage adaptatif de deux algorithmes

Pv

jump

T’0.Finalize

T0.Run_seq()

gets

Ps

Page 26: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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)

22/52

Couplage adaptatif : Amortissement des synchronisations (extraction séquentielle du travail)

work extract_seq() { lock(); //verrouiller ws = NextWorkSeq();

unlock(); //déverrouiller return ws;}

Côté victime

work extract_par() { //Micro-loop lock(); //verrouiller wv = WorkToSteal(); unlock(); //déverrouiller return wv;}

Côté voleur

Run_seq() { While((ws= extract_seq())≠Ø) { local_run(ws) // Nano-loop }}

Côté victime

- Si taille(ws) est petite => surcoût élévé.- Choix de taille (ws) : taille (ws) = profondeur (wrest); => travail arithmétique ≈ Wseq

Page 27: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 23/52

Couplage adaptatif : Amortissement des synchronisations (extraction séquentielle du travail)

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,00E+05

1,00E+06

1,00E+07

1,00E+08

1,00E+09

transformSTL

transformadapt

Exemple : transform STL : boucle avec n calculs indépendants

log(n1)

ni=l-fi

log(n2)

f1 lf2

taille

Tem

ps[

s]Machine utilisée :AMD Opteron Opteron 8752,2 Ghz,Compilateur gcc, option –O2

Page 28: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Schéma adaptatif : Amortissement du surcoût arithmétique

Pour Certains d’algorithmes: – Wseq n’est pas connu d’avance – W > Wseq

Exemple: algorithme find_if qui permet de trouver le premier élément d’une séquence vérifiant un predicat

P0 P1 P2 P3

position ou se trouve l’élément

Le temps final de l’algorithme parallèle est le temps final du processeur ayant terminé le dernier. Donc T4 = 6

Le temps séquentiel de l’algorithme est Tseq = 2

24/52

Page 29: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Pour s’adapter : division dynamique du travail global en des étapes (Macro-loop [Danjean, Gillard, Guelton, Roch, Roche, PASCO’07]),avec synchronisation après chaque pas schéma de type algorithme de Floyd

n_cur elts n_cur / log(n_cur)

25/52

Schéma adaptatif : Amortissement du surcoût arithmétique

Exemple : find_if

B1 B2 B3

P0, P1, P2 P0, P1, P2 P0, P1, P2

Page 30: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Exemple : find_if STL Comparaison avec find_if parallèle MPTL [Baertschiger 06]

26/52

Schéma adaptatif : Amortissement du surcoût arithmétique

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

Page 31: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Exemple : find_if STL Accélération par rapport au temps STL en fonction de la position où se

trouve l’élément

0

2

4

6

8

10

12

14

16

1 3 5 7 9 11 13 15

pos=100

pos=1000

pos=10000

pos=100000

pos=500000

pos=1000000

accélération idéale

Nombre de processeurs

accé

léra

tion

27/52

Schéma adaptatif : Amortissement du surcoût arithmétique

Machine utilisée :AMD Opteron (16 cœurs);Données : doubles;Taille tableau : 106;Temps prédicat ≈ 36μ

Page 32: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

)log(1 2

seqseqp WDWp

T

Si le temps parallèle d’exécution d’un algorithme sur un nombre infini de processeurs fait (1+)Wseq opérations avec ≥ 0, alors avec une grande probabilité,

Théorème [chap. 6, pages 89 et 90]

28/52

Schéma adaptatif : Analyse théorique

Trois niveaux de boucles utilisés dans l’algorithme du du schéma nano-loop => limite le surcoût de synchronisation micro-loop => permet le vol de travail et la préemption macro-loop => limite le surcoût arithmétique

Analyse de la complexité de l’algorithme du schéma

Page 33: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Suit le schéma de l’algorithme 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 d’une 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

Spécification et implantation du Schéma Interface C++ sur Kaapi

Page 34: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Pour construire un algorithme adaptatif, l’utilisateur remplit les fonctions nécessaires

Class MyWorkAdapt : public WorkAdapt {

bool extract_seq() { …. } bool extract_par() { …. } void local_run() {

} void join(const WorkAdapt stolenwork) { …. }

… }

Lancement du moteur adaptatif sur le travail construit

void MyalgoAdapt (… ) { MyWorkAdapt my_work = new MyWorkAdapt(….); adapt::run(my_work); }

30/52

Spécification et implantation du Schéma Interface C++ sur Kaapi

Page 35: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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 => 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 :

31/52

Spécification et implantation du schéma Gestion des vols

v1

v2

v3

v31

v12

v12

v11

w

(a) avant préemption de v1

(b) après préemption de v1

v2

v3

v12

v11

w

v31

v12

Page 36: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 37: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithme adaptatif du calcul parallèle des préfixes (1/7)

Calcul des préfixes– Entrée : x0, x1, …, xn

– Sortie : ..., n avec

Algorithme séquentiel : for(x[0], i=1; i <= n; i++) [i]=i-1]*x[i]; // n opérations

Borne inférieure sur p processeurs identiques :

Parallélisation optimale sur p processeurs identiques [Snir’86, Nicolau-Wang’96]

Ne sont pas adaptés si le temps de l’opération * varie ou si les processeurs sont à vitesse variable

Parallélisation sur un nombre non borné de processeurs [Ladner-Fischer’80, Lin-Su’02]

Peuvent être émulés par vol de travail mais effectuent plus de 2n opérations

But : trouver un algorithme adaptatif qui se comporte optimalement [EUROPAR’2006, CARI’2006]

i

kii x

0

33/52

1

2

p

n[Fich’83]

Page 38: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

a1 a2 a3

a4 a5 a6

a4 a5 a6

1ère étape de la macro-loop

a7 a8 a9

a10 a11 a12

a13

Ste

al r

equ

est

1 2 83 54 6 7

Ps

Pv

9

temps

Ps

Pvi=a4*…*ai

i=a0*…ai

i=a0*…ai

34/52

Algorithme adaptatif du calcul parallèle des préfixes (2/7)

Page 39: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

a1 a2 a3

a4 a5

a6

a7 a8 a9

a10 a11 a12

a13

preem

pt

1 2 84 6 7

Ps

Pv

3 5 9

Ps

Pvi=a4*…*ai

i=a0*…ai

i=a0*…ai

1ère étape de la macro-loop

temps

34/52

Algorithme adaptatif du calcul parallèle des préfixes (2/7)

Page 40: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

a1 a2 a3

a4 a5

a6

a7 a8 a9

a10 a11 a12

a13

jump

2ème étape de lamacro-loop

a10 a11 a12

Ste

al r

equ

est

Ps

Pv

1 2 84 63 5 7

9

Ps

Pv

i=a10*…*ai

i=a0*…ai

i=a4*…*ai

i=a0*…ai

1ère étape de la macro-loop

temps

34/52

Algorithme adaptatif du calcul parallèle des préfixes (2/7)

Page 41: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

a1 a2 a3

a4 a5

a6

a7 a8 a9

a13

jump

a10 a11 a12

preem

pt

Ps

Pv

1 2 84 63 5 7 9

Ps

Pv

i=a10*…*ai

i=a0*…ai

i=a0*…ai

1ère étape de la macro-loop

temps

2ème étape de lamacro-loop

34/52

Algorithme adaptatif du calcul parallèle des préfixes (2/7)

Page 42: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

a1 a2 a3

a4 a5

a6

a7 a8 a9

a12 a13

jump

a10 a11

jump

3ème étape de lamacro-loop

Ps

Pv

1 2 84 63 5 7 9

Ps

Pv

i=a0*…ai

i=a10*…*ai

i=a0*…ai

T2 = 9 temps optimal = 9

1ère étape de la macro-loop

temps

2ème étape de lamacro-loop

34/52

Algorithme adaptatif du calcul parallèle des préfixes (2/7)

Page 43: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

)(log)1(

2 3 np

nT

avep

Le temps Tp sur p processeurs du calcul n+1 préfixes par l’algorithme adaptatif vérifieAvec une grande probabilité :

Théorème [chap. 4, pages 53 et 54]

35/52

Algorithme adaptatif du calcul parallèle des préfixes (3/7)

Analyse théorique du temps d’exécution

Page 44: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Taille des données : n=3.105, temps d’une opération ≈ 1ms

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

1 2 3 4 5 6 7 8

accélérationoptimale

préfixeadaptatifac

célé

ratio

n

Nombre de processeurs

0

1

2

3

4

5

6

7

8

9

1 2 4 6 8 10 12 14 16

accélérationoptimale

préfixeadaptatif

Nombre de processeurs

36/52

Algorithme adaptatif du calcul parallèle des préfixes (4/7): validation expérimentale

Machine Itanium-2 (8 cœurs) Machine AMD Opteron (16 cœurs)

Page 45: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

0,5

1

1,5

2

2,5

3

3,5

1 2 3 4 5 6 7 8

prefixestatique

prefixeadaptatif

Nombre de processeurs

Tem

ps

d’ex

écut

ion

0,4

0,6

0,8

1

1,2

1,4

1,6

1,8

1 2 3 4 5 6 7 8

prefixestatique

prefixeadaptatif

37/52

Algorithme adaptatif du calcul parallèle des préfixes (5/7): validation expérimentale

Taille des données : n= 108, temps d’une opération = addition de deux doubles

Machine Itanium-2 (8 cœurs) Machine AMD Opteron (16 cœurs)

Page 46: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Algorithme adaptatif du calcul parallèle des préfixes (6/7): validation expérimentale

Taille des données : n= 104, temps d’une opération ≈ 2ms

Tem

ps [s

]

Nombre de processeurs

38/52

Dix Machines de fréquences différentes AMD Opteron

0

5

10

15

20

25

30

35

40

45

1 2 3 4 10

théorique

temps minimum depréfixe adaptatiftemps moyen de préfixeadaptatiftemps maximum depréfixe adaptatiftemps moyen de préfixestatique (SWARM)

ave

seq

p

T

)1(

2

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

[Simulateur CpuBurning /Cérin]

Page 47: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

1

1,5

2

2,5

3

3,5

4

4,5

5

1 2 3 4 5 6 7 8

Accélérationthéoriqueoptimale

prefixeadaptatif endistribué

Nombre de processeurs

accé

léra

tion

39/52

Algorithme adaptatif du calcul parallèle des préfixes (7/7): validation expérimentale

Taille des données : n=5120000, temps d’une opération ≈ 1ms

8 Machines distribuées AMD Opteron [accès des données paginé via mmap]

Page 48: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 49: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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, RENPAR’08]

KASTL (Kaapi Adaptive Standard Template Library) Implémenté sur le noyau exécutif kaapi Basé le schéma adaptatif

41/52

Page 50: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Applications du schéma à la librairie standard C++

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

Classification des algorithmes de la STL

42/52

Page 51: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Page 52: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

« Partition »:  primitive de base dans un tri de type « quicksort »

  Soit un tableau T[0..n], et un élément quelconque appelé pivot pris dans le

tableau. Le but de l’algorithme de partition est d’arriver à la situation suivante :1. T[i] < pivot pour i appartenant à [0..k[

2. T[i] >= 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

Applications du schéma à la librairie standard C++: partition

Page 53: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Tableau initial

P1

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 54: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Initialement P1 commence le calcul

P1

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 55: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P2 vol du travail chez P1

P1

P2 steal

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 56: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 et P2 font la partition dans leurs intervalles respectifs

P1

P2

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 57: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P3 vol du travail chez P1

P1

P3steal

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 58: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les trois processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 59: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P4 vol du travail chez P2

P2

P4 steal

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 60: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les quatre processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 61: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les quatre processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 62: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les quatre processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 63: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les quatre processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 64: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les quatre processeurs font la partition dans leurs intervalles respectifs

P1

P2

P3

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 65: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite et préempte P3

P1

P2

P3

P4

préemption

préemption

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 66: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite et préempte P3

P1

P2

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 67: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Les processeurs continuent les calculs en parallèle

P1

P2

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 68: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite et préempte P2

P1

P2

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

préemption

préemption

Page 69: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite et préempte P2

P1

P4

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 70: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite et préempte P4

P1

P4

préemption

préemption

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 71: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

P1 a fini sa partie droite

P1

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 72: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Réarrangement des blocs non terminés

P1

Tous les éléments qui sont dans cette partie sont supérieurs au pivot

Réarrangement des blocs mal placés

45/52

Applications du schéma à la librairie standard C++: partition adaptative

Page 73: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Applications du schéma à la librairie standard C++ : partition adaptative

Page 74: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

sort

2

6

10

14

18

22

1 3 5 7 9 11 13 15

sort STL

sort adaptatif

sort TBB

Tem

ps [s

]

46/52

Applications du schéma à la librairie standard C++ : validations expérimentales

Nombre de processeurs

Machine : Opteron (16 cœurs )

Données : Doubles

Taille : 108

Page 75: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

unique_copy : supprime dans une séquence des éléments contigus égaux Exemple :

0,1

0,3

0,5

0,7

1 3 5 7 9 11 13 15

unique_copy adaptatif

unique_copy de MCSTL

Tem

ps [s

]

Nombre de processeurs

47/52

Applications du schéma à la librairie standard C++ : validation expérimentales

=>1 1 2 3 0 0 10 15 15 15

10

1 2 3 0 10 15

6

Machine : Opteron (16 cœurs )

Données : Doubles

Taille : 108

Page 76: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

partial_sum : identique au calcul des préfixes

5

10

15

20

25

30

35

40

45

50

1 3 5 7 9 11 13 15

partial_sum adaptatif

partial_sum de TBB(grain adaptatif)

partial_sum de TBB(grain=100)partial_sum de TBB(grain=1875)

Tem

ps [s

]

Nombre de processeurs

48/52

Applications du schéma à la librairie standard C++ : validation expérimentales

Machine : Opteron (16 cœurs )

Données : Doubles

Taille : 3.105

2n/p

2n/(p+1)

Page 77: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

merge

0

1

2

3

4

5

6

1,E+05 1,E+06 1,E+07 1,E+08

Merge adaptatif

Merge MCSTL

Merge STL

accé

léra

tion

49/52

Applications du schéma à la librairie standard C++ : validations expérimentales

taille

Machine : Opteron (16 cœurs )

Données : Doubles

8 processeurs

Page 78: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

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

Plan de la présentation

Page 79: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Conclusion

Spécification d’un 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 à

d’autres algorithmes implantés dans d’autres librairies (MCSTL, TBB, SWARM)

51/52

Page 80: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré

Perspectives

Optimisation de l’interface 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 d’autres 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) -> ressources hétérogènes: CPU/GPU [Soares et al 07]

52/52

Page 81: Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique

Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré