Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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 (mn)
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 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)
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 ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.