La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique."— Transcription de la présentation:

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 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 quun algorithme parallèle peut fonctionner dans ce contexte? Avec quelles garanties de performance ? Sous quelles hypothèses? 2/52

3 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Evolution de la programmation parallèle Grille Multi-coeurs, SMPGPU Google MapReduce OpenMP, Cilk++, intel TBB Cuda Athapascan/Kaapi Initialement: processeurs identiques (MPI) Aujourdhui: Interfaces de haut-niveau permettant dabstraire larchitecture. 3/52

4 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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 [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 dexécution (données manipulées, plate-forme dexécution, occupation des processeurs, …). Définition (algorithme auto-adaptatif)

5 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 [EUROPAR06, CARI06] 5.Algorithmes adaptatifs de tri parallèle [RENPAR08] 6.Schéma générique des algorithmes parallèles adaptatifs [PDP08, EUROPAR08] 7.Application du schéma à la librairie standard STL [EUROPAR08, MSAS08] 8.Conclusion et perspectives 5/52 Plan du mémoire et contributions

6 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

7 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 : x 0, x 1, …, x n –Sortie :..., n avec Applications : parallélisation de boucles, additions modulaires [Blelloch89] 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 [Snir86, Nicolau-Wang96] 7/52 [Fich83]

8 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes s+1 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

9 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes s+1 s+2 … … p-1 étapes p-11 1 … 1 … s+1-p s+2-p s+1-p Algorithme statique en p+1 blocs 9/52

10 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 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 Si 0 q 1 et (p+3)/2 q p, alors le temps dexécution de lalgorithme (optimal) sur p processeurs identiques vérifie Théorème [chap. 3, page 30] Si 2 q (p+3)/2, alors le temps dexécution de lalgorithme à 1 de loptimal sur p processeurs identiques vérifie Théorème [chap. 3, pages 31 et 32]

11 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Algorithmes pour processeurs identiques: illustration sur le calcul parallèle des préfixes 11/52 taille temps accélération taille Machine AMD Opteron n petit, temps dune opération assez élevé n grand, temps dune opération très petit (temps daddition de deux Doubles par exemple). Dans lalgorithme de Nicolau-Wang On a 2n/(p+1) synchronisations 4 processeurs 1 processeur

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

14 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 quil a rendues prêtes (créées, ou débloquées). tâches P0P0 P1P1 P2P2 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). steal 14/52 Ordonnancement par vol de travail [Blelloch90, ], [Leiserson & Kuszmaul 2001]

15 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 dopérations de lalgorithme parallèle sur 1 processeur T p = 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) ave = la vitesse moyenne des p processeurs : Théorème [Arora, Blumofe, Plaxton 02, Bender, Rabin 02] Avec une grande probabilité; Le temps dexécution T p 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 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 W seq = travail de l algorithme séquentiel T seq = temps dexécution de lalgorithme séquentiel : Intérêt : Si W W seq et D très petit, En général W c 1 W seq, c 1 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 dabord [Frigo 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 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 res) { shared x; shared y; Fork ()(x); Fork ()(y); Fork ()(x, y, res); }

18 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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 : x 0, x 1, …, x n - Sortie :..., n avec Un algorithme parallèle récursif (Diviser Pour Régner) : 18/52 Ordonnancement par vol de travail : limite pref(n/2) final(n/2) … W(n) = 2W(n/2) + n/2 = (1/2) n * log(n) => lémulation séquentielle de lalgorithme parallèle fait plus dopérations que lalgorithme séquentiel optimal !

19 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

20 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 lalgorithme parallèle par un « vrai » algorithme séquentiel plus efficace. =>Utiliser 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 Schéma générique adaptatif

21 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Un processeur occupé a une tâche et lexécute avec un algorithme séquentiel T 0.Run_seq() 21/52 Couplage adaptatif de deux algorithmes PsPs

22 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Un processeur devient libre et exécute une opération dextraction de travail chez un processeur actif sans linterrompre. PsPs PvPv 21/52 Couplage adaptatif de deux algorithmes steal T 0.Run_seq()

23 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Un processeur devient libre et exécute une opération dextraction de travail chez un processeur actif (victime) sans linterrompre. PsPs 21/52 Couplage adaptatif de deux algorithmes PvPv T 0.Run_seq()

24 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré La victime a fini sa tâche et préempte son voleur PsPs 21/52 Couplage adaptatif de deux algorithmes PvPv T 0.Run_seq() Prempts

25 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. PsPs 21/52 Couplage adaptatif de deux algorithmes PvPv jump T 0.Finalize T 0.Run_seq() gets PsPs

26 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 w s = NextWorkSeq(); unlock(); //déverrouiller return w s ; } Côté victime work extract_par() { //Micro-loop lock(); //verrouiller w v = WorkToSteal(); unlock(); //déverrouiller return w v ; } Côté voleur Run_seq() { While((w s = extract_seq())Ø) { local_run(w s ) // Nano-loop } Côté victime - Si taille(w s ) est petite => surcoût élévé. - Choix de taille (w s ) : taille (w s ) = profondeur (w rest ); => travail arithmétique W seq

27 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 23/52 Couplage adaptatif : Amortissement des synchronisations (extraction séquentielle du travail) Exemple : transform STL : boucle avec n calculs indépendants log(n 1 ) n i =l-f i log(n 2 ) f1f1 l f2f2 taille Temps[s] Machine utilisée : AMD Opteron Opteron 875 2,2 Ghz, Compilateur gcc, option –O2

28 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Schéma adaptatif : Amortissement du surcoût arithmétique Pour Certains dalgorithmes: – W seq nest pas connu davance – W > W seq Exemple: algorithme find_if qui permet de trouver le premier élément dune séquence vérifiant un predicat P0P0 P1P1 P 2 P3P3 position ou se trouve lélément Le temps final de lalgorithme parallèle est le temps final du processeur ayant terminé le dernier. Donc T 4 = 6 Le temps séquentiel de lalgorithme est T seq = 2 24/52

29 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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 n_cur elts n_cur / log(n_cur) 25/52 Schéma adaptatif : Amortissement du surcoût arithmétique Exemple : find_if B1B1 B2B2 B3B3 P 0, P 1, P 2

30 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 : 10 6 ; Position élément : 10 5 ; Temps STL : 3,60 s; Temps prédicat 36μ Accélération inférieure à 1

31 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 Nombre de processeurs accélération 27/52 Schéma adaptatif : Amortissement du surcoût arithmétique Machine utilisée : AMD Opteron (16 cœurs); Données : doubles; Taille tableau : 10 6 ; Temps prédicat 36μ

32 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Si le temps parallèle dexécution dun algorithme sur un nombre infini de processeurs fait (1+ )W seq 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 lalgorithme 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 lalgorithme du schéma

33 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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 Spécification et implantation du Schéma Interface C++ sur Kaapi

34 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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) { …. } … } 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

35 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 v1v1 v2v2 v3v3 v 31 v 12 v 11 w (a) avant préemption de v 1 (b) après préemption de v 1 v2v2 v3v3 v 12 v 11 w v 31 v 12

36 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

37 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 : x 0, x 1, …, x n –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 [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] 33/52 [Fich83]

38 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré a 1 a 2 a 3 a 4 a 5 a 6 1 ère étape de la macro-loop a 7 a 8 a 9 a 10 a 11 a 12 a 13 Steal request PsPs PvPv 9 temps PsPs PvPv i =a 4 *…*a i i =a 0 *…a i 34/52 Algorithme adaptatif du calcul parallèle des préfixes (2/7)

39 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11 a 12 a 13 preempt PsPs PvPv 35 9 PsPs PvPv i =a 4 *…*a i i =a 0 *…a i 1 ère étape de la macro-loop temps 34/52 Algorithme adaptatif du calcul parallèle des préfixes (2/7)

40 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11 a 12 a 13 jump 2 ème étape de la macro-loop a 10 a 11 a 12 Steal request PsPs PvPv PsPs PvPv i =a 10 *…*a i i =a 0 *…a i i =a 4 *…*a i i =a 0 *…a i 1 ère étape de la macro-loop temps 34/52 Algorithme adaptatif du calcul parallèle des préfixes (2/7)

41 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 13 jump a 10 a 11 a 12 preempt PsPs PvPv PsPs PvPv i =a 10 *…*a i i =a 0 *…a i 1 ère étape de la macro-loop temps 2 ème étape de la macro-loop 34/52 Algorithme adaptatif du calcul parallèle des préfixes (2/7)

42 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 12 a 13 jump a 10 a 11 jump 3ème étape de la macro-loop PsPs PvPv PsPs PvPv i =a 0 *…a i i =a 10 *…*a i i =a 0 *…a i T 2 = 9 temps optimal = 9 1 ère étape de la macro-loop temps 2 ème étape de la macro-loop 34/52 Algorithme adaptatif du calcul parallèle des préfixes (2/7)

43 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Le temps T p sur p processeurs du calcul n+1 préfixes par lalgorithme adaptatif vérifie Avec 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 dexécution

44 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Taille des données : n=3.10 5, temps dune opération 1ms accélération 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)

45 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Nombre de processeurs Temps dexécution 37/52 Algorithme adaptatif du calcul parallèle des préfixes (5/7): validation expérimentale Taille des données : n= 10 8, temps dune opération = addition de deux doubles Machine Itanium-2 (8 cœurs)Machine AMD Opteron (16 cœurs)

46 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= 10 4, temps dune opération 2ms Temps [s] Nombre de processeurs 38/52 Dix Machines de fréquences différentes AMD Opteron processeur fréquence Mhz 2550 Mhz Mhz Mhz 5660 Mhz 6440 Mhz Mhz Mhz 9550 Mhz Mhz [Simulateur CpuBurning /Cérin]

47 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Nombre de processeurs accélération 39/52 Algorithme adaptatif du calcul parallèle des préfixes (7/7): validation expérimentale Taille des données : n= , temps dune opération 1ms 8 Machines distribuées AMD Opteron [accès des données paginé via mmap]

48 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

49 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, RENPAR08 ] KASTL (Kaapi Adaptive Standard Template Library) Implémenté sur le noyau exécutif kaapi Basé le schéma adaptatif 41/52

50 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Applications du schéma à la librairie standard C++ ClasseAlgorithmes 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

51 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

52 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 lalgorithme de partition est darriver à 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

53 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Tableau initial P1P1 45/52 Applications du schéma à la librairie standard C++: partition adaptative

54 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Initialement P1 commence le calcul P1P1 45/52 Applications du schéma à la librairie standard C++: partition adaptative

55 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 2 vol du travail chez P 1 P1P1 P2P2 steal 45/52 Applications du schéma à la librairie standard C++: partition adaptative

56 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 et P 2 font la partition dans leurs intervalles respectifs P1P1 P2P2 45/52 Applications du schéma à la librairie standard C++: partition adaptative

57 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 3 vol du travail chez P 1 P1P1 P3P3 steal 45/52 Applications du schéma à la librairie standard C++: partition adaptative

58 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les trois processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 45/52 Applications du schéma à la librairie standard C++: partition adaptative

59 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 4 vol du travail chez P 2 P2P2 P4P4 steal 45/52 Applications du schéma à la librairie standard C++: partition adaptative

60 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les quatre processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

61 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les quatre processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

62 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les quatre processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

63 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les quatre processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

64 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les quatre processeurs font la partition dans leurs intervalles respectifs P1P1 P2P2 P3P3 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

65 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite et préempte P 3 P1P1 P2P2 P3P3 P4P4 préemption 45/52 Applications du schéma à la librairie standard C++: partition adaptative

66 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite et préempte P 3 P1P1 P2P2 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

67 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Les processeurs continuent les calculs en parallèle P1P1 P2P2 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

68 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite et préempte P 2 P1P1 P2P2 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative préemption

69 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite et préempte P 2 P1P1 P4P4 45/52 Applications du schéma à la librairie standard C++: partition adaptative

70 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite et préempte P 4 P1P1 P4P4 préemption 45/52 Applications du schéma à la librairie standard C++: partition adaptative

71 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré P 1 a fini sa partie droite P1P1 45/52 Applications du schéma à la librairie standard C++: partition adaptative

72 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Réarrangement des blocs non terminés P1P1 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

73 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré Réarrangement des blocs non terminés P1P1 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

74 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré sort Temps [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 : 10 8

75 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré unique_copy : supprime dans une séquence des éléments contigus égaux Exemple : Temps [s] Nombre de processeurs 47/52 Applications du schéma à la librairie standard C++ : validation expérimentales => Machine : Opteron (16 cœurs ) Données : Doubles Taille : 10 8

76 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré partial_sum : identique au calcul des préfixes Temps [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 : n/p 2n/(p+1)

77 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré merge accélération 49/52 Applications du schéma à la librairie standard C++ : validations expérimentales taille Machine : Opteron (16 cœurs ) Données : Doubles 8 processeurs

78 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

79 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré 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) -> ressources hétérogènes: CPU/GPU [Soares et al 07] 52/52

81 Algorithmes parallèles auto-adaptatifs et applicationsDaouda Traoré


Télécharger ppt "Algorithmes parallèles auto-adaptatifs et applications Daouda TRAORÉ Directeurs de thèse Jean-Louis ROCH & Denis TRYSTRAM Projet MOAIS Laboratoire dInformatique."

Présentations similaires


Annonces Google