Siad dd-2010-para
-
Upload
nawel-berka -
Category
Technology
-
view
47 -
download
0
Transcript of Siad dd-2010-para
Qu’est-ce que le parallélisme ?
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$�%&�'#(#))*)�+,-./$%012
!
CPU..…
instructions
Problem
time
Problem
..…
instructions
CPU
CPU
CPU
..…
..…
time
1
Ressources pour le calcul parallélisé
v Multiple processeurs dans un ordinateur
v Multiple systèmes informatiques connectés dans un réseau
v Combinaison des deux
2
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#"$$%$�&'()*+,-.�/%0'*#1%0
�
2*$+,)$%�)#'1%00'#0�'-�+3%�0"(%�1'()*+%#
�
2*$+,)$%�1'()*+%#0�1'--%1+%4�56�"�-%+7'#8
�
&'(5,-"+,'-�'9�5'+3
Problem
..…
instructions
CPU
CPU
CPU
..…
..…
time
Historique du calcul parallélisé
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$%&'�%(�)*&*++,+�-%./0$"12
1950 1960 1980 1990 2000 2004 Today
Interest Started
1970
shared memory & multiprocessors
working on shared data
1981:Cosmic Cube
constructed ( 64 Intel
Microprocessor )
Clusters & Companies
began selling Parallel
Computers
Parallel Systems made of off the
shelf processors(e.g. Beowulf
Clusters)
1997: 1st
supercomputer
(ASCI Red)
(1 trillion operations/second)
1998: 2nd
Supercomputer (ASCI Blue Pacific)(by IBM, 3 trillion
operations/s)
3rd supercomputer
(ASCI While)
(by IBM, 10 trillion operations/second)
100 trillion Operations/second
Parallel Computing based
on multi-core processors
3
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
Dépendances de données (1/2)
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
add a, b, c
!"#$�%&$�&�%'()*+&+,'$�-#�.&/&00#0,1#23�45678
a=1 b=3 c=-1 e=2 d=???Initial values:!""#!$#%$#&
'()*
"$#!$#+
!"#$"%tim
e
Sequential Parallel
b=3 c=-1+
a=2
mult d, a, e
a=2 e=2x
d=4
add a, b, c mult d, a, e
b=3 c=-1+ a=1 e=2x
a=2 d=2
�
./'-0#(9:�&-,0,+;�+'�-#�-/'<#$�,$+'�2,:%/#+#�),#%#:�+'�-#�:'0=#2�:,(*0+&$#'*:0;�
!"#$%�&'('�&#)#*&#*$+#,
5
Dépendances de données (2/2)
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
add a, b, c
!"#$�%&$�&�%'()*+&+,'$�-#�.&/&00#0,1#23�45657
a=??? b=3 c=-1 e=2 d=???Initial values:!""#!$#%$#&
'()*
"$#+$#,
!"#$"%tim
e
Sequential Parallel
b=3 c=-1+
a=2
mult d, e, f
e=2 x
d=0
add a, b, c
b=3 c=-1+
a=2
�
./'-0#(89�&-,0,+:�+'�-#�-/';#$�,$+'�2,9%/#+#�),#%#9�+'�-#�9'0<#2�9,(*0+&$#'*90:�
!"#$%�&'('�&#)#*&#*$+#,
f=0
f=0
mult d, e, f
e=2 x
d=0
f=0
6
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
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
Vitesse d’un processeur
v Au début des années 2000, on a eu le « frequency wall »
v La fréquence d’un processeur est plutôt limité vers 4GHz à cause des caractéristiques du Silicium
9
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#�$%&'�()*+,-�&).�/01*�2,+3
�
4"#)-5*�+',�,)-67�8999:*�#,�';+�)�<(-,=%,.&7�#)66>
("-�
?-"&,**"-*@
�
0-"&,**"-�(-,=%,.&;,*�+"??,5�"%+�)+�A�B!C�5%,�+"�+',��
+',-$)6�6;$;+�"(�D;6;&".@
© Christian Thostrup
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
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
Niveau des exécutions de programme
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$"%&�'()*+,-#.�/)0)12
Instruction
Thread
Task
Process
Program
12
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
Parallélisme au niveau de données
v Associé aux les boucles
v Chaque processeur tient compte d’une partie des données
v Les boucles peuvent-elles toutes être parallélisées ?
14
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#"$$%$&'"(&)*�$%+%$,�-./01�
2"("�$%+%$�!"#"$$%$&,3
�
!""#$%&'()�*%'+�,##-".�
�
/&0(�#-(1&'%#2�%"�3(%24�-(15#10()�#2�)%55(1(2'�-&1'%'%#2"�#5�'+(
"&0(�)&'&�"'16$'61(.
�
7&$+�-1#$(""#1�-(15#10"�'+(�'&"8�#5�%'"�-&1'�#5�'+(�)&'&.�
79:�&))�9�'#�&,,�'+(�(,(0(2'"�#5�&2�&11&;
�
<6'=�$&2�&,,�,##-"�$&2�3(�-&1&,,(,%>()?�
@##-�$&11%()�)(-(2)(2$%(":�%5�(&$+�%'(1&'%#2�#5�'+(�,##-�)(-(2)"
#2�1("6,'"�51#0�'+(�
-1(A%#6"�#2(=�,##-�$&2�2#'�3(�-&1&,,(,%>().��
A0 A9…
A20
A30
…
…Time
Time
X * =
X * =
X * =
X * =
X * =
A0 A39… …
A29
A39
Task 1:
Task 2:
Task 3:
Task 4:
A10 A19…
Parallélisme au niveau de tâches
v Différentes opérations sur un même ensembles des données
v Chaque processeur tient compte d’une tâche différente
v Communication entres des processus
15
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#"$$%$&'"(&)*�$%+%$,�-./01�
2",3�$%+%$�!"#"$$%$&,4
�
!"#$%&'&%(�)*++&,&-'�"$&,.'*"-/�.,&�$&,+",#&)�"-�'0&�/.#&�",�)*++&,&-'�
/&'/�"+�).'.1
�
2.30�$,"3&//",�*/�4*5&-�.�)*++&,&-'�'./61
�
7/�&.30�$,"3&//",�8",6/�*-�*'/�"8-�'./69�*'�3"##:-*3.'&/�8*'0�"'0&,�
$,"3&//",/�'"�$.//�.-)�4&'�).'.1
Time
m = a + b
p = x + c
f = a * b * c
y = (x * d) + e
z= y2
x = a + b
m = a + b
p = x + c
f = a * b * c
y = (x * d) + e
z= y2
x = a + b
Time
Total Time Total Time
Task Task
Task-Level ParallelizedSerial
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
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#"$$%$&'"(&)*�$%+%$,�-./01
�
2*,(#34(&)*�$%+%$�5"#"$$%$&,6
-27!1�
�
!"#$%"$&'(�)*"�&'+)$,-)&#'+�.'%�-#/0&'&'(�)*"/�&')#�($#,1+�+#�)*"�
-#/1,)"$�-.'�"2"-,)"�)*"/�+&/,3).'"#,+345
�
62./13"7�
x = a + b
y = c + d
z = x + y
8
9:�".-*�&'+)$,-)&#'�).;"+�<�)&/"�,'&)=�+">,"')&.3�
1"$:#$/.'-"�$">,&$"+�?�)&/"�,'&)+5
8
@*"�:&$+)�)A#�&'+)$,-)&#'+�.$"�&'%"1"'%"')=�+#�)*"4�-.'�
1"$:#$/"%�+&/,3).'"#,+345�
8
@*"�)*&$%�&'+)$,-)&#'�%"1"'%+�#'�)*"/�+#�&)�/,+)�0"�1"$:#$/"%�
.:)"$A.$%+5�
8
@#).334=�)*&+�A&33�).;"�B�)&/"�,'&)+5�
Time
Time
Serial
Instruction-level Parallelized
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
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
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
Spring 2010 ©15-319 Introduction to Cloud Computing
�
!"#$%&�'%()$*�+$,"-.%,./$%
�
01-2)$(�'%()$*�+,,%334
�
56/#7�#,,%33�$-8".3�#1&�#,,%33�
.-(%3�.)�(%()$*9
�
:%;$%3%1.%&�<*�!*((%.$-,�
'/7.-;$),%33)$�=!'>?9
�
!)(%.-(%3�,#77%&�@#,"%�
@)"%$%1.�0'+�=@@�0'+?9
>#$#77%7�@)(;/.-18�'%()$*�+$,"-.%,./$%�=ABC?
Main
MemoryCPU
CPU
CPU
CPU
Architecture mémoire distribuée
v Chaque processeur a son propre espace de mémoire
v Les changements effectués ne sont pas vus par les autres processus
v Les processeurs sont connectés par un réseau
v Le programme doit définir le moyen d’échange de données
20
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
�
!"#$%"&'$()�*(+,%-�.%/0"$(/$'%(
�
!"#$�%&'#())'&�$")�*+)�',-�"..&())�)%"#(�/0'#"0�1(1'&234�5$"-6()
.'-(�
72�("#$�%&'#())'&�*)�-'+�8*)*70(�72�'+$(&)4�
�
9&'#())'&)�"&(�#'--(#+(.�+'�("#$�'+$(&�'8(&�"�#'11:-*#"+*'-�-(+,'&;4�
�
<$(�%&'6&"1�1:)+�.(=*-(�"�,"2�+'�+&"-)=(&�."+"�,$(-�*+�*)�&(>:*&(.�
7(+,((-�%&'#())'&)4
12%233(3�4,+5'$"67�*(+,%-�.%/0"$(/$'%(�89:;<
CPU Main
MemoryCPU Main
Memory
CPU Main
MemoryCPU Main
Memory
Architecture hybride
v L’architecture utilisé dans des système parallélisés les plus performants aujourd’hui
v Les composants de la mémoire partagée sont les nœuds SMP
v Les composants de la mémoire distribuée sont les réseaux des nœuds SMP
21
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#"$$%$�&'()*+,-.�/%('#0�1#23,+%2+*#%�45678
�
90:#,;�<,=+#,:*+%;�>3"#%;�/%('#0�1#23,+%2+*#%
�
!"#$�%&�'(")�(*�)($+,-"�*+")�+&$�.+/0#�1+/+..#.�2('13)#/"
�
45#�"5+/#$�'#'(/,�2('1(&#&)"�+/#�678�&($#"9
�
45#�$%")/%:3)#$�'#'(/,�2('1(&#&)�%"�+�&#);(/<�(*�678�&($#"9
�
=$>+&)+0#"�+&$�$%"+$>+&)+0#"�+/#�)5#�2(''(&�1(%&)"�:#);##&�)5#�);(�
+/25%)#2)3/#"9
Main
MemoryCPU CPU
CPU CPU
Main
MemoryCPU CPU
CPU CPU
Main
MemoryCPU CPU
CPU CPU
Main
MemoryCPU CPU
CPU CPU
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
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
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
Synchronisation
v Synchronisation de processus
v Modèles de synchronisation– Barrières– Verrous et sémaphores– Opérations communications synchrones
26
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#�$%&'()*&+,-.+*&�!/01#
!"
�
2-))+3)4
�
#�$%&'(�)(�*+&,+�)�()-.�/0-(�-(%$1�)'2�,)'�'%(�$3%,442�0'(&5�)55
()-.-�)34�-6',+3%'&7428
�
9%-(561�)55�()-.-�)34�&':%5:428�
�
;),+�()-.�.44$-�$43<%3/&'=�&(-�*%3.�0'(&5�34),+&'=�)�>)33&43�$%&'(8�?+4'1�&(�-(%$-�)'2�
.44$-�*)&(&'=�<%3�(+4�5)-(�()-.�(%�34),+�(+4�>)33&438
�
@+4'�5)-(�()-.�34),+4-�
(+4�>)33&431�)55�()-.-�)34�-6',+3%'&7428�
�
A3%/�(+&-�$%&'(1�()-.-�,%'(&'04-�(+4&3�*%3.8
Task A
Task B
Task C
Tasks
Task D
Time Barrier Task continuation point
Tasks reaching the barrier at different times
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
Équilibrage de charge
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#�$%&'�(&)&*+,*-�
.%/�0%�',102,3405�/%26�&7%*-�&))�0&161�1%�0859�&25�&))�65:0�3419
&))�%;�085�
0,75<
�
=85*�3&22,52�19*+82%*,>&0,%*�,1�415'?�085�1)%/510�0&16�'50527,*51�085�
:52;%27&*+5@
!"
Time
Function 1
Total Time
Task
Serial
Function 2
Function 3
Function 4
Function 1
Function 2
Function 3
Function 4
Total Time
T1
T2
T3
T4
TimeTask
Load Balancing Using Parallelism
28
Exemple de parallélisation : tableau (1/2)Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$%&'(�)**#+�,*-.'//012
�
3'*0#&�4-5'(
do j = 1,n do i = 1,n
a(i,j) = fcn(i,j) end do
end do
6789�8:0/�0/�.-$%78#80-1#&&+�018'1/0;'<
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$%&'(�)**#+�,*-.'//012
�
3'*0#&�4-5'(
do j = 1,n do i = 1,n
a(i,j) = fcn(i,j) end do
end do
6789�8:0/�0/�.-$%78#80-1#&&+�018'1/0;'<
29
Exemple de parallélisation : tableau (2/2)
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$%&'(�)**#+�,*-.'//012
3014�-56�03�7�#$�8)9:!;�-*�<=;>!;�
03�7�#$�8)9:!;�01060#&0?'�6@'�#**#+�/'14�'#.@�<=;>!;�013-�-1�%#*6�-3�#**#+�06�-A1/�/'14�'#.@�<=;>!;�06/�%-*60-1�-3�01060#&�#**#+�*'.'0B'�3*-$�'#.@�<=;>!;�*'/5&6/�
'&/'�03�7�#$�<=;>!;�*'.'0B'�3*-$�8)9:!;�013-�-1�%#*6�-3�#**#+�7�-A1*'.'0B'�3*-$�8)9:!;�$+�%-*60-1�-3�01060#&�#**#+�
CC�.#&.5'�$+�%-*60-1�-3�#**#+�4-�D�E�$+�30*/6�.-&5$1F$+
&#/6�.-&5$14-�0�E�GF1�#H0FDI�E�3.1H0FDI'14�4-
'14�4-/'14�8)9:!;�*'/5&6/�
'1403
)**#+�0/�40B04'4�016-�[email protected]/F�
'#.@�%*-.'//-*�-A1�#�.@51JF�
#14�'"'.56'�6@'�%-*60-1�-3�6@'�
&--%�.-**'/%-14012�6-�06K
�
,#*#&&'&�L-4'(
Carnegie Mellon
Spring 2010 ©15-319 Introduction to Cloud Computing
!"#$%&'(�)**#+�,*-.'//012
3014�-56�03�7�#$�8)9:!;�-*�<=;>!;�
03�7�#$�8)9:!;�01060#&0?'�6@'�#**#+�/'14�'#.@�<=;>!;�013-�-1�%#*6�-3�#**#+�06�-A1/�/'14�'#.@�<=;>!;�06/�%-*60-1�-3�01060#&�#**#+�*'.'0B'�3*-$�'#.@�<=;>!;�*'/5&6/�
'&/'�03�7�#$�<=;>!;�*'.'0B'�3*-$�8)9:!;�013-�-1�%#*6�-3�#**#+�7�-A1*'.'0B'�3*-$�8)9:!;�$+�%-*60-1�-3�01060#&�#**#+�
CC�.#&.5'�$+�%-*60-1�-3�#**#+�4-�D�E�$+�30*/6�.-&5$1F$+
&#/6�.-&5$14-�0�E�GF1�#H0FDI�E�3.1H0FDI'14�4-
'14�4-/'14�8)9:!;�*'/5&6/�
'1403
)**#+�0/�40B04'4�016-�[email protected]/F�
'#.@�%*-.'//-*�-A1�#�.@51JF�
#14�'"'.56'�6@'�%-*60-1�-3�6@'�
&--%�.-**'/%-14012�6-�06K
�
,#*#&&'&�L-4'(
30