Title: Synthse des outils de paralllisation
1Synthèse des outils de parallélisation
- Matthieu Pérotin
- LI Tours
2Plan (1/2)
- Introduction
- Pourquoi ?
- Rappels architecturaux
- Paralléliser
- Modèles de parallélisation
- Algorithmes parallèles
- Évaluation de la qualité
3Plan (2/2)
- Exemple avancé
- Procédures par Séparation et Évaluation
- Conclusion
4Introduction
- Pourquoi Paralléliser ?
- Gagner du temps
- La modélisation parallèle est parfois évidente
- Comment paralléliser ?
- Question non triviale
- Propre à chaque architecture
- Propre à chaque problème
5Introduction
- Rappels architecturaux
- Flynn (1972) propose une classification basée
sur - Les capacités des machines à exécuter plusieurs
instructions en parallèle - Les capacités à lire plusieurs sources
dinformations simultanément
6Introduction
- 4 catégories
- Single Instruction Single Data
Processeur
Mémoire
Unité de Commande
U.A.L
Bus dinterconnexion
7Introduction
- Multiple Instructions Single Data
Processeur
Unité cde 3
U.A.L 3
Unité cde 2
U.A.L 2
Mémoire
Unité cde 1
U.A.L 1
Bus dinterconnexion
8Introduction
- Single Instruction Multiple Data
Processeur
Unité de Commande
Mémoire
U.A.L
U.A.L
U.A.L
Bus dinterconnexion
9Introduction
- Multiple Instruction Multiple Data
Processeur 1
Processeur n
Mémoire
Unité de Commande
U.A.L
Unité de Commande
U.A.L
Bus dinterconnexion
10Introduction
- Classification étendue par Johnson (1988)
- Tient compte des types daccès mémoire
- Uniform Memory Access (UMA)
Processeur 1
Processeur n
Mémoire
Unité de Commande
U.A.L
Unité de Commande
U.A.L
Bus dinterconnexion
11Introduction
- Non Uniform Memory Access (NUMA)
Mem
Mem
Processeur n
Processeur n
Unité de Commande
U.A.L
Unité de Commande
U.A.L
Bus dinterconnexion
Bus dinterconnexion
Bus dinterconnexion
12Introduction
- No Remote Memory Access (NORMA)
Mem
Mem
Processeur n
Processeur n
Unité de Commande
U.A.L
Unité de Commande
U.A.L
Bus dinterconnexion
Bus dinterconnexion
13Introduction
- Il est important de tenir compte de
larchitecture matérielle de lordinateur qui va
exécuter le code - En particulier cette architecture détermine le
grain de lapplication - Le grain est la taille des unités de calcul
- On peut le définir comme le rapport des temps de
communication sur le temps dexécution
14Intoduction
- Les architectures MIMD/NORMA sont peu adaptées
aux applications à grain fin - Une architecture MIMD/UMA lest beaucoup plus
15Plan
- Introduction
- Pourquoi ?
- Rappels architecturaux
- Paralléliser
- Modèles de parallélisation
- Algorithmes parallèles
- Évaluation de la qualité
16Paralléliser
- Démarche détude
- Quels sont les modèles existants ?
- Quest-ce quun algorithme parallèle ?
- Comment évaluer sa qualité ?
17Paralléliser Modèles
- Modèles de parallélisme
- Un modèle de parallélisme est une description
abstraite dune machine parallèle. - Deux grands modèles
- Mémoire partagée
- Réseau dinterconnexion
18Paralléliser - Modèles
- Mémoire partagée
- Les processeurs accèdent tous de manière
identique à une zone de mémoire unique
P1
Unité dAccès Mémoire
Mémoire partagée
P2
Pn
19Parallélisme - Modèles
- Dans ce modèle
- Les processeurs utilisent la mémoire pour
communiquer les uns avec les autres - Un mécanisme dexclusion mutuelle est mis en
place - Plusieurs processeurs peuvent lire la même
adresse - Un seul peut y écrire à un moment donné
20Parallélisme - Modèle
- Mémoire partagée
- Existence physique
- Systèmes SMP
- Systèmes UMA
- Existence logique
- SSI
- Attention ceci ne remet pas en cause la
classification matérielle !
21Paralléliser - Modèles
- Réseau
- Les processeurs disposent chacun dune mémoire
qui leur est propre, mais sont reliés par un
réseau
22Parallélisation - Modèles
- Dans ce modèle
- Les processeurs communiquent par échange de
message - Mécanisme dexclusion mutuelle (ou pas) au niveau
de laccès réseau
23Paralléliser - Modèles
- Réseau dinterconnexion
- Existence physique
- Salle de TP
- Existence logique
- MPI, PVM
24Parallélisation - Algorithmes
- Quest-ce quun algorithme parallèle ?
- Un algorithme parallèle est une méthode de
résolution dun problème dans laquelle le
problème est découpé en sous problèmes de taille
inférieure qui sont résolus de façon simultanée
Akl00 - Attention la simultanéité est ici un concept
logique - Ex application multi-threadée sexécutant sur un
unique processeur
25Paralléliser - Algorithmes
- Formalisme
- Graphique Diagramme de Gantt
P1
P2
P3
P2
M1
t
P2
M2
P1
P3
M1
t
26Paralléliser - Algorithmes
- Formalisme
- Graphique diagramme de Gantt
P2
M2
P1
P3
M1
P2
P4
M2
P1
P3
M1
27Paralléliser - Algorithmes
- Formalisme
- Graphique diagramme de précédence
P2
P4
P1
P3
P5
P6
28Parallélisme - Algorithmes
- Formalisme théorique
- On suppose disposer de nouvelles primitives en
pseudo code - Démarrer(tache(arguments))Lance la tâche en
parallèle, de manière non bloquante - Envoyer(P, message) et Recevoir(P, message)Pour
échanger des messages avec le processeur P - Limplémentation effective de ces primitives
dépend du modèle et de larchitecture
29Paralléliser - Algorithmes
- Exemple
- On doit effectuer un mailing
- 1000 courriers à envoyer
- Plier une feuille
- Mettre dans une enveloppe
- Adresser
- Timbrer
30Paralléliser - Algorithmes
- Première version, séquentielle
- Tant que les 1000 enveloppes ne sont pas faites
- Traiter lenveloppe
P1
M1
31Paralléliser - Algorithmes
- Deuxième version, parallèle
- On invite 4 amis à participer, chacun fait 200
enveloppes - Pourquoi notre algorithme parallèle nest-il pas
optimal ?
32Paralléliser - Algorithmes
P11
P12
P13
P14
P15
P1
P11
M1
t
P12
M2
P13
M3
P14
M4
P15
M5
t
33Paralléliser - Algorithmes
- Une nouvelle version de lalgorithme serait
- Tant que 1000 enveloppes nont pas été faites,
faire des enveloppes - Induit un coût de synchronisation supplémentaire
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
Pe
34Paralléliser - Algorithmes
- On peut aussi décider que chacun a une tâche bien
définie - Lun timbre, lautre écrit les adresses
- Sans se préoccuper des autres
Un stock apparaît en entrée Pour chaque enveloppe
traitée, 3 arrivent
P
I
A
T
35Paralléliser - Algorithmes
- Sur cet exemple simple, nous navons pas réfléchi
P
I
E
E
E
E
E
A
T
36Paralléliser - Algorithme
- Nous allons faire les opérations dans un autre
ordre - Plus de stock et la date de fin reste inchangée
P
A
I
P
A
I
T
T
37Paralléliser - Algorithmes
- Autre possibilité, je mautorise à avoir du stock
A
P
I
T
38Paralléliser - Qualité
- Disposer de critères dévaluation est
indispensable - 3 principaux critères
- Le temps dexécution total (Makespan, Cmax)
- Le nombre de processeurs
- Le coût
39Parallélisme - Qualité
- Temps total dexécution
- Critère intuitif moins un algorithme met de
temps à sexécuter, meilleur est cet algorithme - Dépend généralement de la taille des données,
t(n) - Problème évaluer le temps dexécution dun
algorithme est un problème ouvert
40Parallélisation - Qualité
- Nombre de processeurs p(n)
- Pour des raisons économiques, il est important de
prendre en compte le nombre de processeurs que
nécessite un algorithme - Quand le nombre de processeurs augmente, le Cmax
diminue (en général)
41Parallélisation - Qualité
- Plusieurs coûts possibles
- Coût des communications
- Coût de stockage (espace mémoire)
- Coût dinactivité des machines
42Parallélisation - Qualité
- Les critères dévaluation sont souvent
contradictoires - Nous sommes bel et bien face à des problèmes
doptimisation multi-critères - Lintervention dun décideur est essentielle
- On peut proposer un outil daide à la décision,
mais pas un outil de décision automatique
43Plan
- Exemple avancé
- Procédures par Séparation et Évaluation
- Conclusion
44Les PSE
- Principe en exemple
- Le problème du voyageur de commerce (PVC)
2
c12
c23
1
c25
c24
c13
1,5,4,2,3
3
c15
c35
5
c34
c14
c45
4
45Les PSE
- Le PVC est un problème NP-Difficile
- Pas dautre choix que dessayer toutes les
possibilités si lon veut trouver la solution
optimale - (n-1)! possibilités
46Les PSE
- Construction de notre PSE
1
1
2
3
4
5
1,2 c12
1,3 c13
1,4 c14
1,5 c15
6
1,2,3 c12 c23
7
1,2,4 c12 c24
Si Cn lt c15 il nest pas nécessaire dexplorer
les solutions qui découlent du nud 5
1,2,3,5,4 Cn
n
47Les PSE
- En fait une PSE permet une énumération implicite,
et pas trop bête - On nexplore que les solutions à même de donner
une solution meilleure que celles que lon
connaît déjà - Deux règles de coupe
- Tests de borne inférieure
- Tests de dominance
48Les PSE
- Exemple de tests de dominance
- Soit les deux solutions partielles
- 1,2,3,4 de coût c12c23c34 z1
- 1,3,2,4 de coût c13c32c24 z2
- Si z1 z2 alors on dit que z1 domine z2
- On explorera quun des deux sous arbres au départ
des noeuds
49Paralléliser une PSE
- Larbre dune PSE peut être vu comme un diagramme
de précédence - Le parallélisme apparaît donc de manière limpide
50Paralléliser une PSE
1
1
2
3
4
5
1,2 c12
1,3 c13
1,4 c14
1,5 c15
6
7
1,2,4 c12 c24
1,2,3,5,4 Cn
n
51Paralléliser une PSE
- Paralléliser une PSE est un problème intéressant
à plus dun titre - Les PSE sont utiles
- Des phénomènes dignes dintérêt apparaissent
- Anomalie daccélération
- Anomalie de décélération
52Paralléliser une PSE
1
2
3
4
O
n
m
53Paralléliser une PSE
1
2
3
4
O
n
m
54Paralléliser une PSE
- Certains critères existent pour éviter les
anomalies de détérioration, et favoriser celles
daccélération
55Conclusion
- Paralléliser une application est une opération
compliquée - Pas de recette magique
- Il est nécessaire de bien réfléchir
- Sur quelle architecture matérielle vais-je
exécuter mon application ? - Quels sont mes critères dévaluation ?
- Ma solution logicielle est-elle réalisable ?
56Conclusion
- Il existe des outils théoriques qui permettent
une modélisation fine - Théorie de lordonnancement mono et multi
critères - Recherche opérationnelle
- Algorithmique
- Plus de processeurs nimplique pas nécessairement
plus de vitesse