conception des algorithmes parallèles professeur: nilo stolte chargé de cours: mohammed elkanouni...

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

Upload: gerald-doucet

Post on 04-Apr-2015

121 views

Category:

Documents


15 download

TRANSCRIPT

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

Conception des Conception des algorithmes parallèlesalgorithmes parallèles

Professeur: Nilo STOLTE

Chargé de Cours: Mohammed ELKANOUNI

Département de génie logiciel et des TI

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

2Conception des algorithmes parallèles

SommaireSommaire

Méthodologie de conception

Partitionnement

Communication

Agglomération

Répartition

Exemple de conception

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

3Conception des algorithmes parallèles

Méthodologie de conceptionMé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

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

4Conception des algorithmes parallèles

PartionnementPartionnement

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

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

5Conception des algorithmes parallèles

Décomposition par domaineDé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

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

6Conception des algorithmes parallèles

Décomposition par fonctionDécomposition par fonction

Basée sur les fonctions à exécuter

Augmente la modularité

Communication entre les modules

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

7Conception des algorithmes parallèles

Grille du pGrille du partitionnementartitionnement

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?

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

8Conception des algorithmes parallèles

CommunicationCommunication

Identifier les exigences de la communication

- Si une tâche à besoin de donnée d’une autre tâche la communication est essentielle

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

9Conception des algorithmes parallèles

Structure de la communicationStructure 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

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

10Conception des algorithmes parallèles

Communication localeCommunication 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

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

11Conception des algorithmes parallèles

Communication locale –suite-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

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

12Conception des algorithmes parallèles

Communication globaleCommunication globale

Communication demande la participation d’un grand nombre de tâches

Exemple: Calcul de la somme

N

iiXS

0

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

13Conception des algorithmes parallèles

Communication globale: Communication globale: Solution 1Solution 1

N tâches pour calculer les Xi

Une tâche pour calculer S

Tâche S risque d’avoir trop de communication

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

14Conception des algorithmes parallèles

Communication globale: Communication globale: Solution 2Solution 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

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

15Conception des algorithmes parallèles

Communication globale: Communication globale: Solution 3Solution 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)

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

16Conception des algorithmes parallèles

Communication non structuré et Communication non structuré et dynamiquedynamique

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

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

17Conception des algorithmes parallèles

Communication synchrone-Communication synchrone-asynchroneasynchrone

Synchrone:

- 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

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

18Conception des algorithmes parallèles

Grille de communicationGrille 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?

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

19Conception des algorithmes parallèles

AgglomérationAgglomé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

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

20Conception des algorithmes parallèles

Agglomération idéaleAgglomé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

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

21Conception des algorithmes parallèles

Les stratégies de l’agglomérationLes stratégies de l’agglomération

Réduire la dimension

Augmenter la granularité

Fusionner des sous-arbres

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

22Conception des algorithmes parallèles

Facteurs à considérer lors de Facteurs à considérer lors de l’agglomérationl’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

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

23Conception des algorithmes parallèles

Grille d’agglomérationGrille 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?

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

24Conception des algorithmes parallèles

Répartition des tâchesRé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

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

25Conception des algorithmes parallèles

Techniques de balancement de Techniques de balancement de chargecharge

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é

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

26Conception des algorithmes parallèles

Bissection récursiveBissection 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 lesmê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

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

27Conception des algorithmes parallèles

Algorithmes locauxAlgorithmes 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

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

28Conception des algorithmes parallèles

Algorithmes probabilistesAlgorithmes 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

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

29Conception des algorithmes parallèles

Répartition cycliqueRépartition cyclique

Peut adresser la dé balancement de charge dynamique et statique

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

30Conception des algorithmes parallèles

Structure patron-employé 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

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

31Conception des algorithmes parallèles

Patron-employéPatron-employé hiérarchique 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

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

32Conception des algorithmes parallèles

Arrangement décentraliséArrangement décentralisé

Pas de patron

Chaque employé en attente demande du travail des autres employés.

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

33Conception des algorithmes parallèles

Exemples: simulation de la chaleurExemples: simulation de la chaleur

Considérons une plaque métallique rectangulaire de longueur L et largeur l

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

34Conception des algorithmes parallèles

Description du problèmeDescription 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:

2

2

2

2 ),,(),,(),,(

y

tyxT

x

tyxTC

t

tyxT

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

35Conception des algorithmes parallèles

Description du problèmeDescription 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)

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

36Conception des algorithmes parallèles

PartitionnementPartitionnement

On partitionne la plaque en petites subdivisions (mn)

On suppose que ces subdivisions sont assez petites pour considérer que la chaleur est uniforme dans chaque subdivision

- m

- n

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

37Conception des algorithmes parallèles

Passage du continu au discretPassage 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 ktd (i varie de 0 à m-1 et j varie de 0 à n-1) :

- U(i,j,k)=T(iL/m, jl/n, k td)

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

38Conception des algorithmes parallèles

Passage du continu au discretPassage 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)]

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

39Conception des algorithmes parallèles

Exemple des conditions initiales 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

)1()1()0,,( jnjimijiU

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

40Conception des algorithmes parallèles

QuestionsQuestions

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)?

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

41Conception des algorithmes parallèles

QuestionsQuestions

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 ?