Vous êtes sur la page 1sur 9

Ch2.

Parallélisation d’algorithmes

1. Introduction
Le parallélisme consiste à utiliser un ensemble de processeurs capables de
communiquer et de coopérer dans le but d’accélérer la résolution d’un
problème.
Trois paramètres fondamentaux à en tenir compte:
- L’architecture : le type de la mémoire, l’interconnexion des
processeurs,…
- L’algorithme: l’algorithme parallèle doit être conçu en tenant compte
des types de données manipulées, de la granularité, des dépendances….
- La programmation: choisir le langage adéquat permettant d’exprimer le
parallélisme en fonction de l’architecture utilisée.
Objectifs:
– Obtenir les mêmes résultats en parallèle qu’en séquentiel.
– Gagner du temps
– Résoudre des problèmes de tailles plus grandes.

El Mostafa DAOUDI- p. 1

2. Principe:
La conception d’algorithmes parallèles consiste en:
- La recherche du parallélisme intrinsèque du problème à
résoudre.
- La décomposition de l’algorithme en tâches
indépendantes qui peuvent être exécutées simultanément
sur des processeurs différents.
- L’étude de la complexité: estimer le coût d'exécution de
de l’algorithme sur une machine parallèle en fonction de
la taille des données et du nombre de processeurs. Cette
étude permet de concevoir des algorithmes parallèles
efficaces.
- La mise en œuvre en choisissant le langage et
l’environnement adéquat.

El Mostafa DAOUDI- p. 2

1
3. Partitionnement
Le partitionnement (décomposition) consiste à décomposer
le problème en tâches, ensuite:
• Identifier les tâches concurrentes (les tâches
indépendantes).
• Identifier les dépendances entre les tâches.
La décomposition en tâches permet de générer le
parallélisme avec l’objectif d’occuper le maximum de
processeurs.
 Le degré du parallélisme est donné par le nombre de
tâches concurrentes à un instant donné.
Remarque
La décomposition peut être statique (avant exécution) ou
dynamique (à l’exécution).

El Mostafa DAOUDI- p. 3

4. Granularité
La granularité d’une tâche désigne le volume de calcul que
nécessite l’exécution (temps d’exécution) de la tâche. Ce temps
d’exécution doit être grand par rapport au temps qu’il faut pour
l’ordonnancer, la placer, ainsi que communiquer (envoyer et
recevoir les données).
• Tâches à gros grains avec de nombreux calculs.
• Tâches à grains fins avec très peu de calculs.
• Compromis à trouver en fonction des performances (calcul,
accès aux données, surcoût du système, communications,
disque, …)

El Mostafa DAOUDI- p. 4

2
5. Affectation aux processeurs
L’affectation des tâches aux processeurs doit assurer un bon
équilibrage de charge entre les différents processeurs (i.e. tous
les processeurs doivent avoir le même volume de calcul à
exécuter) en tenant compte des coûts des échanges de messages
(pour les machines à mémoires distribuées)
Le but principal: utilisation égale des processeurs tout en
conservant un volume de communications entre les processeurs
le plus petit possible
Cette étape appelé aussi ordonnancement.
• Si elle est effectuée pendant la phase d’initialisation du
programme: ordonnancement statique.
• Si elle effectuée pendant l’exécution du programme:
ordonnancement dynamique.

El Mostafa DAOUDI- p. 5

Algorithme d’ordonnancement
Méthode pour:
- Assurer une exécution efficace d’un ensemble de tâches
(Tâches séquentielles ou parallèles) sur un ensemble de
processeurs donné.
- Satisfaire les dépendances entre les tâches (contraintes de
précédence) en tenant compte des contraintes de
capacités (nombre de processeurs limité)
- définir le temps de départ et l’unité d’exécution cible
pour chaque tâche.
- Minimiser le temps d’exécution (makespan) = temps
entre début de la 1ère tâche et la fin de la dernière tâche.
El Mostafa DAOUDI- p. 6

3
6. Programmation parallèle
• Programmation dans un langage permettant
d’exprimer le parallélisme dans une application
réelle.
• Différents niveaux d’abstraction possibles.
• La parallélisation automatique serait la solution
idéale, mais difficile à mettre en œuvre.
• La façon de programmer n’est pas indépendante de la
machine utilisée.

El Mostafa DAOUDI- p. 7

7. Analyse de performances
Pour l’analyse de performances d’algorithmes parallèles il faut avoir un
modèles et d’un cadre de travail pour présenter et analyser les algorithmes.
• Algorithmique séquentielle
– Le modèle communément accepté est un processeur avec une mémoire
centrale (RAM).
– Les instructions sont : accès mémoire (load, store), arithmétiques,
logiques, ...
– Modèle simple.
• Algorithmique parallèle
– Il y a plusieurs modèles et la situation est plus complexe. Les
performances dépendent de facteurs tels que :
• la concurrence
• l’allocation des processeurs et la planification
• la communication
• la synchronisation

El Mostafa DAOUDI- p. 8

4
Objectifs
• Déterminer si un algorithme est bon ou non pour le calcul
parallèle.
• Critères pour le séquentiel : temps d’exécution, utilisation de
l’espace et facilité de programmation.
• Critères pour le parallèle : temps d’exécution, utilisation de
l’espace, facilité de programmation, nombre de processeurs,
capacité des mémoires locales, modèle de communication et
les protocoles de synchronisation.

El Mostafa DAOUDI- p. 9

Mesures
• Soit n la taille des données en entrée.
• Les limites sont exprimées de façon asymptotique en utilisant
les notations suivantes :
– T(n) = O(f (n)) si  c et n0 tel que T(n) ≤ c×f (n)  n ≥ n0
– T(n) = (f (n)) si  c et n0 tel que T(n) ≥ c×f (n)  n ≥ n0
– T(n) = (f (n)) si T(n) = O(f (n)) et T(n) = (f (n))

El Mostafa DAOUDI- p. 10

5
8. Le facteur d’accélération (speedup)
Permet de mesurer le gain apporté en utilisant p processeurs.
– Soit Q un problème et n la taille des données en entrée
– Soit T*(n) le temps d’exécution du meilleur algorithme
séquentiel pour résoudre le problème Q.
– Soit Tp(n) le temps d’exécution d’un algorithme parallèle
pour résoudre le problème Q en utilisant p processeurs.
• L’accélération est définie par:
T * ( n)
Sp(n) =
T p ( n)
• Dans le cas idéal on a Sp (n) =p, c’est à dire l’algorithme est
purement parallèle.
 L’algorithme parallèle s’exécute p fois plus vite que
l’algorithme séquentiel: T*(n) = pTp (n)
El Mostafa DAOUDI- p. 11

• Dans la réalité on a, 1 ≤ Sp (n) ≤ p). Ceici est dû à plusieurs


facteurs:
– Pas assez de parallélisme: insuffisance de concurrence
(des partie du problèmes sont exécutées séquentiellement).
– Les surcoûts (temps supplémentaires) dus au temps de
communication entre les processeurs.
– Problèmes de synchronisation et de contrôle.
– Problèmes dus à l’équilibrage de charge (les processeurs
n’effectuent pas la même charge de travail).
–…

El Mostafa DAOUDI- p. 12

6
Remarque:
– L’accélération (accélération réelle) est calculée à partir du
temps du meilleur algorithme séquentiel (T*(n)) et non à
partir du temps de l’algorithme parallèle exécuté sur 1
processeur (T1(n)).
– L’accélération relative RSp(n) est calculée à partir de T1(n)
qui désigne l’algorithme parallèle exécuté avec un seul
processeur.

T1 ( n)
RSp(n) =
Tp ( n )

El Mostafa DAOUDI- p. 13

9. L’efficacité Ep
Permet de mesurer le tau d’utilisation effectif des p
processeurs (mesure le pourcentage de l’utilisation des p
processeurs).
T * ( n) S ( n)
Ep(n) = = p
pTp (n) p

• Dans le cas idéal, on a: Ep (n) = 1, indique que Tp (n)


s’exécute p fois plus vite que l’algorithme séquentiel,
ce qui signifie que les p processeurs ont été tous utilisés
pendant tout le calcul.
• Dans la réalité, on a: Ep(n) ≤ 1.

El Mostafa DAOUDI- p. 14

7
10. Loi d’Amdahl (G. M. Amdahl (1967))
• Soit T = T(n) le temps d’exécution séquentiel d’un
problème donné (de taille n) et soit Tp = Tp(n) son temps
d’exécution en utilisant p processeurs.
• La loi d’Amdahl permet de déterminer une borne à
l’accélération. Le principe consiste à identifier:
- la partie séquentielle (partie non parallélisable). On
suppose que son temps d’exécution est Tseq.
- la partie parallélisable. On suppose que cette partie est
idéalement parallélisable en utilisant p processeurs. Son
temps d’exécution est Tpar.
 T = partie séquentielle + partie parallèle = Tseq +Tpar
El Mostafa DAOUDI- p. 15

Soient:
•  le pourcentage de la partie séquentielle (Tseq= T)
• (1-) le pourcentage de la partie parallèle (Tpar=(1-)T).

Dans le cas idéal on a:


T par T ( n)
T p  Tseq   T (n)  (1   )
p p
• L’accélération:
T ( n) T (n ) p
S p  S p (n )   
Tp (n) T ( n)  (1   ) T ( n) 1  ( p  1)
p
Sp  1/  quand p  

El Mostafa DAOUDI- p. 16

8
Interprétation de illustration de la loi d’Amdahl
Le tableau suivant dresse quelques valeur de Sp suivant p et 

p\  50% 10% 1%
10 1.82 5.26 9.17
100 1.98 9.17 50.25
1000 1.99 9.91 90.99
10000 1.99 9.91 99.02

L’accélération est limitée par la partie séquentielle


– limite indépendante du nombre de processeurs
p\  50% 10% 1%
 2 10 100
• Plus la partie séquentielle est importante plus l’accélération est moins bonne.
• Pour avoir une bonne accélération
– il faut diminuer (optimiser ) la partie séquentielle
– ne pas focaliser uniquement sur la partie parallèle.

El Mostafa DAOUDI- p. 17

Vous aimerez peut-être aussi