5. Quand un calcul peut-t-il être parallélisé ?
v Quand l'utilisation de plusieurs ressources de calculs économise
plus de temps que d’utiliser une seule ressource
v A chaque fois que l’on peut isoler des lots de calculs indépendants
v La capacité du problème a être décomposé en lot pouvant être
traités simultanément
v Le parallélisme dépend de la dépendances de données
4
8. Utilisation du parallélisme
v Modélisation des problèmes difficiles scientifique
– Physique
– Géologie
– Sciences moléculaires
– Génie électronique
v Applications commerciales
– Base de données
– Fouille de données
– Traitement des vidéos
– Traitements des images
– Jeux vidéos 3D
7
9. Pourquoi le parallélisme ?
v Pourquoi pas réaliser un système informatique encore plus rapide?
– Limite de la vitesse du déplacement des données
– Limite de la miniaturisation
– Limite économique: un peu plus vite = beaucoup plus cher
v Pour gagner du temps
v Pour résoudre les problèmes complexes
v Profiter des avantages de la concurrence
8
11. Solution : plusieurs processeurs en parallèle
v Processeur multicœurs
v Encapsuler plusieurs processeurs dans une puce pour augmenter la
fréquence
v 4 jusqu’à 6 cœurs pour un processeur traditionnel
v IBM Cell contient jusqu’à 9 cœurs
v Le processeur Intel de 48 cœurs (dans le laboratoire Intel)
10
12. Terminologie
v Programme : un fichier exécutable
v Processus : instance d’un programme en cours d’exécution
v Tâche : en ensemble des instructions pour atteindre un but
(échangeable avec le terme « processus »)
v Thread : un processus « léger »
v Instruction : une opération dans un processeur
11
13. Niveau des exécutions de programme
!"#$"%& '()*+,-#. /)0)12
Instruction
Thread
Task
Process
Program
12
14. Niveau du parallélisme
v Parallélisme au niveau de données
v Parallélisme au niveau de tâches
v Parallélisme au niveau d’instructions
v Parallélisme au niveau de bits
13
17. Parallélisme au niveau d’instructions
v Regrouper des instructions pour qu’elles soient exécutées
simultanément
v Problématique : dépendances d’instructions
16
2*,(#34(&)* $%+%$ 5"#"$$%$&,6 -27!
!"#$%"$&'( )*" &'+)$,-)&#'+ .'% -#
-#/1,)"$ -.' "2"-,)" )*"/ +&/,3)
62./13"7
x = a + b
y = c + d
z = x + y
8 9: ".-* &'+)$,-)&#'
1"$:#$/.'-" $">,
8 @*" :&$+) )A# &'+)$
1"$:#$/"% +&/,3).
8 @*" )*&$% &'+)$,-)&
Time
Serial
Instruction-level Pa
18. Parallélisme au niveau de bits
v Basé sur l’augmentation de la taille du mot du processeur
v Pour réduire le temps requis à traiter une variable ayant la taille
supérieure à la taille du mot du processeur
v Exemple
– L’addition des deux entiers de 64 bits dans un processeurs de
32 bits a besoin de 2 instructions
– L’addition des deux entiers de 64 bits dans un processeurs de
64 bits a besoin de 1 instruction
17
19. Utilisation de mémoire pour le parallélisme
v Architecture mémoire partagée
v Architecture mémoire distribuée
v Architecture hybride de mémoire distribué et partagée
18
20. Architecture mémoire partagée
v Les processeurs effectuent des opérations indépendantes mais ils
partagent les mêmes ressources car ils peuvent accèdent à toute la
mémoire système
v Lorsqu’un processeur change la valeur d’un emplacement de
mémoire, tous les autres processeur peuvent voir la modification
v La performance dépend du temps d’accès à la mémoire
19
Carnegie Mellon
%()$* +$,"-.%,./$%
( '%()$* +,,%334
#7 #,,%33 $-8".3 #1& #,,%33
%3 .) (%()$*9
$%3%1.%& <* !*((%.$-,
.-;$),%33)$ =!'>?9
(%.-(%3 ,#77%& @#,"%
%$%1. 0'+ =@@ 0'+?9
(;/.-18 '%()$* +$,"-.%,./$% =ABC?
Main
MemoryCPU
CPU
CPU
CPU
24. Peut-on paralléliser ce problème ?
v Décomposition
v Communications
v Synchronisation
v Dépendances de données
v Équilibrage de charge
v Granularité
v Entrée/Sortie
23
25. Décomposition
v Diviser le problème en parties de travail qui peuvent être
distribués à des tâches multiples
v Le meilleur partitionnement se passe où il y a moins d’E/S et de
communication
v Décomposition fonctionnelle
– Se focalise sur le calcul, mais pas sur les données
– Le problème est divisé par les tâches
– Chaque tâche calcule un des tâches
v Décomposition par domaine
– Les données sont divisées
– Chaque partie est calculé par une tâche
24
26. Communications
v Pourquoi les communications ?
v Quand les communications ?
v Coût de communications
– Temps
– Ressources
– Temps & ressources
v Types de communications
– Synchrones
– Asynchrones
25
28. Dépendances de données
v L’ordre des instructions du programme affecte le résultat du calcul
v Multiple utilisations des données stockées dans le même endroit
en mémoire par multiple tâches
v Traitement de dépendances des données
– Architectures mémoire distribuée
• Transférer des données aux points de synchronisation
– Architectures mémoire partagée
• Synchronisation système
27