Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Techniques de décomposition
2
INTRODUCTION On a vu que la première étape de la conception et l'implémentation d une solution parallèle pour un problème donné est la décompose de ce problème on taches. Ces taches peuvent être exécutées en parallèle. il n'existe pas une technique générale de décomposition. Les techniques présentées en suit peuvent être appliquées sur une large classe des problèmes
3
la décomptions récursive
Applique le principe de (diviser pour gagner) On décompose le problème en sous problèmes. D’une manière récursive les sous problèmes sont décomposés en sous problèmes. ce processus termine lorsque on obtient des taches indécomposables. Cette technique Premièrement En suit
4
Exemple 1 le tri rapide L'algorithme de tri rapide d'un tableau ou d’une liste A est un algorithme qui favorise la décomposition récursive On commence par le choix d'un élément pivot X. On décompose la liste Q en deux listes A0 et A1 les éléments de A0 <X les éléments de A1 >=X Les listes A0 et A1 sont triées on applique récursivement les étapes précédentes. Si on a un élément dans la liste le processus s'arrête.
5
Exemple 1 le tri rapide
6
exemple 2 recherche de plus petit element
la recherche de plus petit élément d'un tableau est un problème qui peut être résolu avec la décomposition récursive. La version séquentielle de l'algorithme n'est pas de type diviser pour gagner mais on peut la transformer pour avoir une décomposition récursive.
7
La version sequentille
1. procedure SERIAL MIN (A; n) 2. begin 3. min = A[0]; 4. for i := 1 to n -1 do 5. if (A[i] < min) min := A[i]; 6. endfor; 7. return min; 8. end SERIAL MIN
8
La version parallèle récursive
1. procedure RECURSIVE MIN (A; n) 2. begin 3. if (n = 1) then 4. min := A[0]; 5. else 6. lmin := RECURSIVE MIN (A; n/2); 7. rmin := RECURSIVE MIN (&(A[n/2]); n-n/2); 8. if (lmin < rmin) then 9. min := lmin; 10. else 11. min := rmin; 12. endelse; 13. endelse; 14. return min; 15. end RECURSIVE MIN
9
Déroulement de l'exécution
10
Décomposition des données
Identifier les données sur lesquelles les calculs sont effectués. Partitionner ces données à travers diverses tâches. Cette séparation provoque une décomposition du problème. Les données peuvent être partitionnées de différentes manières, cela a un impact critique sur la performance d'un algorithme parallèle.
11
La décomposition des données de Sortie
Souvent, chaque élément de la sortie peut être calculée de façon indépendante des autres (mais simplement en fonction de l'entrée). Une partition de l'ensemble des données de sortie décompose le problème naturellement. Considérons le problème de la multiplication de deux matrices A et B de nxn éléments pour produire la matrice C. La sortie de la matrice C peut être divisé en quatre tâches, comme suit
12
La décomposition des données de Sortie
13
La décomposition des données de Sortie
La decomposition des donnees de sortie nest pas unique Par exemple on a le probleme de calcul de produit de deux matrices on peut le decomposer comme suit :
14
La décomposition des données de Sortie
15
La décomposition des données de Sortie
16
La décomposition des données d'entrée
La décomposition des données de sortie est applicable si le calcul de ces sorties est en fonction des données d'entrée Ce n'est pas le cas toujours ( les algorithmes de tri, le calcul de Min…..) Dans ce cas on peut décomposer les données d'entrée. On peut crier une tache pour chaque partie On exécute les taches avec le plus possible des données locales. Rassembler les résultats partielles pour produire le résulta final
17
La décomposition des données d'entrée
18
La décomposition des données d'entrée
19
La décomposition exploratoire
20
décomposition spéculative
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.