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

Techniques de décomposition

Présentations similaires


Présentation au sujet: "Techniques de décomposition"— Transcription de la présentation:

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


Télécharger ppt "Techniques de décomposition"

Présentations similaires


Annonces Google