Académique Documents
Professionnel Documents
Culture Documents
• Architectures parallèles
• Applications
Introduction aux concepts de bases
• Exemples de simulations :
Prévisions météorologiques
Introduction aux concepts de bases
• La puissance de calcul nécessaire pour les
algorithmes d'intelligence artificielle double tous les
3,4 mois, selon [OpenAI].
Utilisation du Parallélisme
Introduction aux concepts de bases
Utilisation du Parallélisme
Les besoins en performance[Koudil]
Les supercalculateurs
Architecture du calcul Parallèle
Les supercalculateurs
Architecture du calcul Parallèle
Les supercalculateurs
Architecture du calcul Parallèle
• 94,6 pétaflops,
• la recherche militaire, plus
spécifiquement à la simulation
d’armes nucléaires,
Les supercalculateurs
Architecture du calcul Parallèle
• 93 pétaflops;
• 10 millions de processeurs.
Les supercalculateurs
Architecture du calcul Parallèle
Les supercalculateurs
Architecture du calcul Parallèle
• Le calcul parallèle ne peut avoir lieu que sur des
plateformes de calcul Parallèle. Parmi les
plateformes de calcul parallèle actuelles, on
distingue :
Paradigme de programmation
Conception d’algorithmes parallèles
Paradigme de programmation
Conception d’algorithmes parallèles
Paradigme de programmation
Conception d’algorithmes parallèles
« Si le marteau est le
seul outil que vous
avez, vous voyez des
clous partout !»
Abraham Maslow (The
Psychology of
Science, 1966)
Paradigme de programmation
Conception d’algorithmes parallèles
Changer de paradigme
Changer d’outils
Paradigme de programmation
Conception d’algorithmes parallèles
• Problème : On veut trouver la valeur maximum
parmi une séquence (un tableau) d’éléments
Paradigme de programmation
Conception d’algorithmes parallèles
• Problème : On veut trouver la valeur maximum
parmi une séquence (un tableau) d’éléments
Paradigme de programmation
Conception d’algorithmes parallèles
• Problème : On veut trouver la valeur maximum
parmi une séquence (un tableau) d’éléments
Paradigme de programmation
Conception d’algorithmes parallèles
Penser en parallèle
Ordonnancement (Scheduling)
Affectation des tâches
• Les tâches d’une application sont programmées
dans un langage ou environnement parallèle et sont
assignées à des processus (threads);
Affectation (Mapping))
Dépendances des tâches
• Les tâches d’une application peuvent être
indépendantes, mais elles peuvent aussi être
dépendantes les unes des autres.
dépend de
Mémoire Partagée
Organisation mémoire
Inconvénient:
• Il faut gérer dans le code les accès concurrents en mémoire
ce qui est complexe (coordination des accès aux données
partagées- Synchronisation des threads)
cpu M
é
cpu
m
cpu o
i
cpu r
e
cpu
Mémoire Partagée
Organisation mémoire
• Chaque processus est indépendant en mémoire;
Réseau
Mémoire Répartie
Organisation mémoire
Inconvénient
Réseau
Mémoire Répartie
Organisation mémoire
cpu M cpu M
é é
cpu m cpu m
o o
cpu i cpu i
r r
cpu e cpu e
Réseau
M cpu M
cpu é é
cpu m cpu m
o o
cpu i cpu i
r r
cpu e cpu e
Mémoire Hybride
Organisation mémoire
Inconvénient
cpu M cpu M
é é
cpu m cpu m
o o
cpu i cpu i
r r
cpu e cpu e
Réseau
M cpu M
cpu é é
cpu m cpu m
o o
cpu i cpu i
r r
cpu e cpu e
Mémoire Hybride
Organisation mémoire
• Un mécanisme de protection, ou plutôt de synchronisation est couramment
utilisé dans les applications parallèles.
Barrière de synchronisation
• Dans ce cas, tous les processus ou threads doivent attendre à une barrière
de synchronisation jusqu’à ce que tous les autres processus ou threads
atteignent cette barrière.
Wait Wait
Barrière de Synchronisation
Barrière de synchronisation
Organisation mémoire
Wait Wait
Barrière de Synchronisation
Barrière de synchronisation
Mesures de performance
• Temps d’exécution (Tp): le temps écoulé entre le début de
l’exécution de l’application sur le premier processeur. et la fin
de son exécution sur tous les processeurs. (il doit être
inférieur au temps séquentiel sur un seul processeur (Ts))
Tp = (T + C) log2(p)
𝑛
𝑇𝑝 = ∗ 𝑇 + 𝑇 + 𝐶 ∗ 𝑙𝑜𝑔2 (𝑝)
𝑝
On a,
𝑇𝑠 =𝑛 ∗ 𝑇
𝑇𝑠
𝑆𝑝 = , 𝑎𝑣𝑒𝑐
𝑇𝑝
Facteur d’Accélération
Mesures de performance
• Exemple: : Somme de n valeurs sur p processeurs (n/p valeurs par processeur (n>>p))
𝑛
𝑇𝑝 = ∗ 𝑇 + 𝑇 + 𝐶 ∗ 𝑙𝑜𝑔2 (𝑝)
𝑝
On a,
𝑇𝑠 =𝑛 ∗ 𝑇
Alors
𝑝
𝑆𝑝 =
𝐶 𝑝
1 + 1 + 𝑇 ∗ 𝑛 ∗ 𝑙𝑜𝑔2 (𝑝)
Facteur d’Accélération
Mesures de performance
• Facteur d’accélération Sp (speed up) :
𝑇𝑠
𝑆𝑝 =
𝑇𝑝
𝑺𝒑 𝑺𝒑 = p
• Sp < 1 : on ralentit !
mauvaise parallélisation;
• P<Sp : hyper-accélération
analyser & justifier
Facteur d’Accélération
Mesures de performance
• Le pourcentage d’accélération
( 𝑇𝑃 −𝑇𝑆 )
𝑐𝑝𝑡 = ∗ 100�
𝑇𝑠
Pourcentage d’Accélération
Mesures de performance
• Le pourcentage d’accélération
Exemple ( Ts = 100)
• �
Tp 100 90 80 70 60 50 40 30 20 10
Accélération(Sp) 1.00 1.11 1.25 1.43 1.67 2.00 2.50 3.33 5.00 10.00
Pourcentage(pct) 0% -10% -20% -30% -40% -50% -60% -70% -80% -90%
Pourcentage d’Accélération
Mesures de performance
• Efficacité (Efficience)
• Le rapport entre le facteur d’accélération et le nombre de
processeurs:
𝑆𝑝 𝑇𝑆
𝐸𝑃 = =
𝑝 𝑃∗𝑇𝑝
Efficacité
Mesures de performance
• Efficacité (Efficience)
𝑆𝑝 𝑇𝑆
𝐸𝑃 = =
𝑝 𝑃∗𝑇𝑝
• Les algorithmes s’exécutant avec une accélération linéaire
ou sur un seul processeur ont une efficacité égale à 1.
Efficacité
Mesures de performance
• Efficacité (Efficience)
• Exemple
• Considérons une matrice d’ordre n et supposons que le traitement d’un
élément prend c secondes (exemple : traitement d’image)
• Soit T(n,p) le temps d’exécution d’une matrice d’ordre n en utilisant p
processeurs
Efficacité
Mesures de performance
• Efficacité (Efficience)
• Exemple
• Soit T(n,p) le temps d’exécution d’une matrice d’ordre n en utilisant p
processeurs
Ts = t(n,1) = c*n2
• En négligeant les temps de communication
𝑆𝑝 = Ts/Tp = 9 et Ep = 𝑆𝑝 /9 = 1
Efficacité
Mesures de performance
• Efficacité (Efficience)
𝑆𝑝 𝑇𝑆
𝐸𝑃 = =
𝑝 𝑃 ∗ 𝑇𝑝
• En général 1 ≤ 𝑆𝑝 ≤ p et 𝐸𝑃 ≤ 1 si 𝑆𝑝 > p alors il s’agit d’une
sur-accélération
Mesures de performance
• Le travail (work) (Efficience)
𝑾𝑃 = 𝒑 ∗ 𝑻𝒑 p p
Temps exécution
Optimal si la surface
du rectangle vaut T s
p
Nombre de processeurs
Mesures de performance
• Le travail (work) (Efficience)
𝑾𝑃 = 𝒑 ∗ 𝑻𝒑 p p
Temps exécution
Optimal si la surface
du rectangle vaut T s
p
Nombre de processeurs
LES DIFFÉRENTS TYPES DE PARALLÉLISATION
• Architectures parallèles
• Applications
Architectures Parallèles
• Plusieurs processeurs;
Nombre de Flux
de données
Un seul Plusieurs
Classification de Flynn
Architectures Parallèles: Classification de Flynn
Données Instructions
Statuts
Architecture SISD
Architectures Parallèles: Classification de Flynn
Load A
Load B
C=A + B
time
Sore C
A=B * 2
Store A
Architecture SISD
Architectures Parallèles: Classification de Flynn
ML1
UT1
Avec:
UT2
ML2
UT : Unité de traitement
ML: Mémoire Locale
FI : Flux d’instructions
FD : Flux de données
FD
MLn
UTn
Architecture SIMD
Architectures Parallèles: Classification de Flynn
time
C(1) =A(1) + B(1) C(2) =A(2) + B(2) C(n) =A(n) + B(n)
Sore C(1) Sore C(2) Sore C(n)
Next instr Next instr Next instr
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Addition de 16 nombres (D1,D2,D3,D4,D5,D6,D7,
D8,D9,D10,D11,D12,D13,D14,D15,D16) sur 4 processeurs en utilisant une
architecture SIMD
D1,D2, FD D5,D6,
D3,D4 D7,D8 Étape 1:
nombres en 4 sous-ensembles, un
seul ensemble par processeur.
D9,D10, FD D13,D14,
D11,D12 D15,D16
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Addition de 16 nombres (D1,D2,D3,D4,D5,D6,D7,
D8,D9,D10,D11,D12,D13,D14,D15,D16) sur 4 processeurs en utilisant une
architecture SIMD
SP1=Somme( SP2=Somme(
D1,D2,D3,D4) D5,D6,D7,D8) Étape 2:
processeurs individuels;
calcul sériel sur chaque
SP3=Somme( SP4=Somme( unité
D9,D10,D11,D12) D13,D14,D15,D16)
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Addition de 16 nombres (D1,D2,D3,D4,D5,D6,D7,
D8,D9,D10,D11,D12,D13,D14,D15,D16) sur 4 processeurs en utilisant une
architecture SIMD
Étape 3:
SP5=SP1+SP3 SP6=SP2+SP4
• La moitié des processeurs
envoie les données,
FI • l’autre moitié les reçoit et
UC
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Addition de 16 nombres (D1,D2,D3,D4,D5,D6,D7,
D8,D9,D10,D11,D12,D13,D14,D15,D16) sur 4 processeurs en utilisant une
architecture SIMD
Étape 4:
SP7=SP5+SP6 SP6
• Additionner à nouveau les
sommes partielles
FI
UC
Architecture SIMD
Architectures Parallèles: Classification de Flynn
d'ordinateur vectoriel.
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Produit de deux matrices d’ordre n
Version SISD
Version SIMD
Architecture SIMD
Architectures Parallèles: Classification de Flynn
• Exemple : Produit de deux matrices d’ordre n (n = 3)
Architecture SIMD