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
2Conception des algorithmes parallèles
SommaireSommaire
Méthodologie de conception
Partitionnement
Communication
Agglomération
Répartition
Exemple de conception
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
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
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
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
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?
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
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
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
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
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
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
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
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)
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
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
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?
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
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
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
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
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?
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
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é
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
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
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
29Conception des algorithmes parallèles
Répartition cycliqueRépartition cyclique
Peut adresser la dé balancement de charge dynamique et statique
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
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
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.
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
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
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)
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
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)
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)]
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
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)?
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 ?
Top Related