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

Conception des algorithmes parallèles

Présentations similaires


Présentation au sujet: "Conception des algorithmes parallèles"— Transcription de la présentation:

1 Conception des algorithmes parallèles
Professeur: Nilo STOLTE Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI

2 Sommaire Méthodologie de conception Partitionnement Communication
Agglomération Répartition Exemple de conception

3 Méthodologie de conception
Partitionnement Définition des tâches Communication Identifier les exigences Agglomération Regroupement des tâches Répartition des tâches Placer les tâches

4 Partionnement Objectif: identifier les tâches concurrentes
Décomposition en granularité fine Partitionnement basé sur les données: décomposition par domaine Partitionnement basé sur les fonctions: décomposition par fonction

5 Décomposition par domaine
Utilisée lorsque les mêmes traitements sont appliqués sur différentes données Décomposer les données en région de façon â minimiser le transfert de données entre les tâches

6 Décomposition par fonction
Basée sur les fonctions à exécuter Augmente la modularité Communication entre les modules

7 Grille du partitionnement
Y-a-t-il plus de tâches que le nombre de processeurs alloués? Y-a-t-il de calcul ou de stockage redondant ? Les tâches sont de tailles comparables?

8 Communication Identifier les exigences de la communication
Si une tâche à besoin de donnée d’une autre tâche la communication est essentielle

9 Structure de la communication
Locale (vs. globale) Si le nombre des voisins est petit Structurée (vs. non structurée) Si les tâches forment une structure régulière (arbre, grille) Statique (vs. dynamique) Si la structure ne change pas en fonction du temps Synchrone (vs. asynchrone) Si l’émetteur et le récepteur participent

10 Communication locale Chaque tâche communique avec un nombre petit de tâches Ex. problème de différence fini 2D: Xi,j(t+1) = 4Xi,j(t) + Xi-1,j(t) + Xi+1,j(t) + Xi,j-1(t) + Xi,j+1(t) 8

11 Communication locale –suite-
L’algorithme Pour t = 0 à T Envoyer Xi,j(t) aux quatre tâches voisines recevoir Xi-1,j(t) , Xi+1,,j(t) , Xi,j-1(t) , Xi,,j+1(t) Calculer Xi,,j(t+1) Fin tâche

12 Communication globale
Communication demande la participation d’un grand nombre de tâches Exemple: Calcul de la somme

13 Communication globale: Solution 1
N tâches pour calculer les Xi Une tâche pour calculer S Tâche S risque d’avoir trop de communication

14 Communication globale: Solution 2
N tâches pour calculer les Xi et la somme partielle: Si= Xi + Si-1 N-1 pas de calcul pour le calcul de S N-1 communications série

15 Communication globale: Solution 3
Diviser pour conquérir Chaque sous-tâche est divisée en 2 sous-tâches log2N pas de calcul (Ex: pour 1024Xi  10 pas)

16 Communication non structuré et dynamique
Exemple: problème des éléments finis Le nombre des voisins sont différents La structure de communication peut être modifiée si la pièce subit des forces

17 Communication synchrone-asynchrone
Communication de façon ordonnée et prévue L’émetteur et le récepteur sont bien identifiés Asynchrone: L’émetteur ne sait pas quand le récepteur a besoin de l’information Le récepteur peut ne pas avoir d'idée sur l'émetteur

18 Grille de communication
Équilibre: une tâche doit communiquer beaucoup plus que les autres? Une tâche doit communiquer avec trop de tâches? La communication peut se faire en parallèle avec le calcul?

19 Agglomération Agglomération: regroupement des tâches pour former des tâches plus grandes But: optimiser l’algorithme Coût des communications Coût des latentes de communications

20 Agglomération idéale Chaque processeur a une tâche agglomérée
Les tâches ont des charges égales Minimum de communication inter-processeur L’agglomération se fait de façon paramétrique (pour la portabilité, la dimensionabilité) Éviter de réécrire le code à cause de l’agglomération

21 Les stratégies de l’agglomération
Réduire la dimension Augmenter la granularité Fusionner des sous-arbres

22 Facteurs à considérer lors de l’agglomération
Conserver la flexibilité, la dimensionnabilité pour s’adapter au: changement de l’ordinateur changement du nombre de processeurs la capacité de calculer et de communiquer de façon concurrentielle Coût de développement: Éviter une nouvelle conception, la réécriture de code. Considérer tout l’ensemble du projet Une stratégie peut être bonne pour une partie du projet mais mauvaise pour d’autres parties

23 Grille d’agglomération
On a réduit la communication et augmenté la localité? La duplicité de calcul (si il y en a) vaut-elle le coût? Les tâches ont-elles des charges équivalentes? Les tâches peuvent-elles encore s’exécuter en parallèle (concurrence) ? L’agglomération demande-t-elle une nouvelle conception ou réécriture de code?

24 Répartition des tâches
Distribution des tâches entre les processeurs: Maximiser la concurrence Minimiser la communication Techniques: Problèmes réguliers: agglomérer en P tâches Problèmes irréguliers: utiliser la répartition par le balancement de charge statique Problèmes irréguliers dans le temps: balancement de charge dynamique

25 Techniques de balancement de charge
Balancement de charge statique Bissection récursive Algorithmes locaux Algorithmes probabilistes Répartition cyclique Balancement de charge dynamique (Ordonnancement des tâches) Patron employé (manager-worker, master-slave) : centralisé et hiérarchique Arrangement décentralisé

26 Bissection récursive Méthode bissection récursive:
applicable typiquement aux problèmes de type grille diviser d’abord en 2 groupes de tâches de charge approx. égale et le nombre de communications minimal chaque groupe est divisé en d’autres sous-groupes avec les même critères principe diviser pour conquérir simple mais non optimisé pour la communication Variance de la bissection récursive diviser d’abord en deux de charge 1/P et (P-1)/P (P = nombre de processeurs) diviser ensuite en deux de charge 2/P et (P-2)/P. Le groupe 2/P inclut le groupe 1/P de la première division

27 Algorithmes locaux Les tâches sont réparties d’une façon quelconque initialement Les processeurs se communiquent périodiquement pour s’informer de leur charge de travail. Les processeurs qui ont trop de charge déchargent vers ceux qui ont moins de charge (vases communicantes). Bonne méthode pour le cas où les tâches sont créées / détruites dynamiquement

28 Algorithmes probabilistes
Distribuer au hasard les tâches entre les processeurs Bonne chance de balancement de charge quand le nombre de tâches >> nombre de processeurs Mauvaise pour la communication

29 Répartition cyclique Peut adresser la dé balancement de charge dynamique et statique

30 Structure patron-employé
Le patron donne l’ordre de l’exécution des tâches aux travailleurs Un employé peut demander au patron l’exécution d’une tâche par un autre employé Inconvénients: gestionnaire peut devenir un goulot d’étranglement

31 Patron-employé hiérarchique
un patron de haut niveau Les employés sont divisés en groupes, chaque groupe a un patron Cette organisation peut avoir plusieurs niveaux Avantage: diminuer la charge des patrons

32 Arrangement décentralisé
Pas de patron Chaque employé en attente demande du travail des autres employés.

33 Exemples: simulation de la chaleur
Considérons une plaque métallique rectangulaire de longueur L et largeur l

34 Description du problème
Soit T(x,y,t) la température du point de coordonnées (x,y) à l’instant t On suppose que la conductivité C de la plaque est uniforme dans toute la plaque métallique L'équation de transfert de la chaleur en 2D est donnée par la formule d’Euler suivante:

35 Description du problème
Les conditions aux limites sont fixées aux frontières de la plaque (x= 0, x=l, y=0, y=L) : T(0,y,t)=f1(y) T(L,y,t)=f2(y) T(x,0,t)=f3(x) T(x,l,t)=f4(x) Les conditions initiales à l'instant t=0 T(x,y,0)=f(x,y)

36 Partitionnement On partitionne la plaque en petites subdivisions (mn)
On suppose que ces subdivisions sont assez petites pour considérer que la chaleur est uniforme dans chaque subdivision n m

37 Passage du continu au discret
On discrétise également le temps La simulation s’effectue toutes les td secondes. U(i,j,k) est la température de la subdivision (i,j) à l’instant ktd (i varie de 0 à m-1 et j varie de 0 à n-1) : U(i,j,k)=T(iL/m, jl/n, k td)

38 Passage du continu au discret
Pour simplifier, on prend L/m=l/n=h et C=1 On suppose que h et td sont assez petites On démontre que la formule discrétisée d’Euler est la suivante : U(i,j,k+1)=(1-4 td /h²)U(i,j,k)+( td/h²) [U(i-1,j,k)+U(i+1,j,k)+U(i,j-1,k)+U(i,j+1,k)]

39 Exemple des conditions initiales
On s'arrange de sorte que le centre de la plaque soit plus chaud que toute autre subdivision et plus on s’éloigne du centre, plus la température diminue jusqu’à s’annuler aux frontières : Les températures aux frontières sont gardées nulles pendant toute la simulation

40 Questions Si on considère que le calcul d'une subdivision de la plaque constitue une tâche. Que peut-on dire sur la communication des tâches constituées du calcul de la température de la subdivision (i,j)?

41 Questions On affecte une tâche à chaque calcul de la température d'une subdivision de la plaque métallique On dispose de P processeurs, on veut distribuer ces tâches sur les processeurs disponibles, de sorte à équilibrer les charges sur les processeurs. Donner la moyenne des tâches par processeur. Expliquer comment on va agglomérer et répartir les tâches sur les processeurs Combien de messages les processeurs vont-ils échanger au total ? Pour chaque pas de temps, combien de messages chaque processeur va t-il échanger avec ses voisins? Est ce que tous les processeurs vont avoir des charges de travail égaux ?


Télécharger ppt "Conception des algorithmes parallèles"

Présentations similaires


Annonces Google