SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Haoyuan Li
http://www.info.univ-tours.fr/~li/
Distribution et Dématérialisation
Parallélisme
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 ©oduction 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)
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:
!""#!$#%$#&
'()* "$#!$#+
!"#$"%
time
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)
Spring 2010 ©15-319 Introduction to Cloud Computing
add a, b, c
a=??? b=3 c=-1 e=2 d=???Initial values:
!""#!$#%$#&
'()* "$#+$#,
!"#$"%
time
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 Sprin15-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
!"#$"%& '()*+,-#. /)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
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
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
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
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
%()$* +$,"-.%,./$%
( '%()$* +,,%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
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
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
Memory
CPU Main
Memory
CPU Main
Memory
CPU 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
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
Memory
CPU CPU
CPU CPU
Main
Memory
CPU CPU
CPU CPU
Main
Memory
CPU CPU
CPU CPU
Main
Memory
CPU CPU
CPU CPU
Discussion
v Les avantages de chaque architecture ?
v Les inconvénients de chaque architecture ?
22
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
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;'<
$%&'( )**#+ ,*-.'//012
#& 4-5'(
j = 1,n
do i = 1,n
a(i,j) = fcn(i,j)
end do
do
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&#6' $+ %-*60-1 -3 #**#+
4- D E $+ 30*/6 .-&5$1F$+ &#/6 .-&5$1
4- 0 E GF1 #H0FDI E 3.1H0FDI
'14 4-
'14 4-
/'14 8)9:!; *'/5&6/
'1403
)**#+ 0/ 40B04'4 016- .@5.J/F
'#.@ %*-.'//-* -A1 # .@51JF
#14 '"'.56' 6@' %-*60-1 -3 6@'
&--% .-**'/%-14012 6- 06K
,#*#&&'& L-4'(
)**#+ ,*-.'//012
; -* <=;>!;
#+
>!; 013- -1 %#*6 -3 #**#+ 06 -A1/
>!; 06/ %-*60-1 -3 01060#& #**#+
.@ <=;>!; *'/5&6/
)9:!; 013- -1 %#*6 -3 #**#+ 7 -A1
8)9:!; $+ %-*60-1 -3 01060#& #**#+
%-*60-1 -3 #**#+
-&5$1F$+ &#/6 .-&5$1
E GF1 #H0FDI E 3.1H0FDI
)**#+ 0/ 40B04'4 016- .@5.J/F
'#.@ %*-.'//-* -A1 # .@51JF
#14 '"'.56' 6@' %-*60-1 -3 6@'
&--% .-**'/%-14012 6- 06K
30
Fin
Parallélisme
31

Contenu connexe

Similaire à Siad dd-2010-para

Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1iSeeds Software
 
Analyse Exploratoire de Données
Analyse Exploratoire de DonnéesAnalyse Exploratoire de Données
Analyse Exploratoire de DonnéesFabien Pfaender
 
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfo
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfoE-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfo
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfoThomas TONDER
 
Les secrets d’un taux de conversion de champion
Les secrets d’un taux de conversion de championLes secrets d’un taux de conversion de champion
Les secrets d’un taux de conversion de championaltima°
 
L'entomologie moléculaire et l'étude de la structuration génétique des anophèles
L'entomologie moléculaire et l'étude de la structuration génétique des anophèlesL'entomologie moléculaire et l'étude de la structuration génétique des anophèles
L'entomologie moléculaire et l'étude de la structuration génétique des anophèlesInstitut Pasteur de Madagascar
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanMicrosoft
 
Cortexm3 lpc1768 programming
Cortexm3 lpc1768 programmingCortexm3 lpc1768 programming
Cortexm3 lpc1768 programmingfivesquare
 
BtoBIM2017_Conf_Maître d'ouvrage
BtoBIM2017_Conf_Maître d'ouvrageBtoBIM2017_Conf_Maître d'ouvrage
BtoBIM2017_Conf_Maître d'ouvrageNovabuild
 
Outil connecteurs logiques
Outil connecteurs logiquesOutil connecteurs logiques
Outil connecteurs logiquesLaura Gris Mota
 
Présentation Toucher pour Voir / tri-D - décembre 2015
Présentation Toucher pour Voir / tri-D - décembre 2015Présentation Toucher pour Voir / tri-D - décembre 2015
Présentation Toucher pour Voir / tri-D - décembre 2015Chris Delepierre
 
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...polenumerique33
 
Conférence transformation E-commerce Paris 2010
Conférence transformation E-commerce Paris 2010Conférence transformation E-commerce Paris 2010
Conférence transformation E-commerce Paris 2010altima°
 
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"Thomas TONDER
 
UVA Compta analytique
UVA Compta analytiqueUVA Compta analytique
UVA Compta analytiquerashidakrim
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Formación a medida: Una solución para generar comrpomiso en las personas clav...
Formación a medida: Una solución para generar comrpomiso en las personas clav...Formación a medida: Una solución para generar comrpomiso en las personas clav...
Formación a medida: Una solución para generar comrpomiso en las personas clav...CRISEL BY AEFOL
 

Similaire à Siad dd-2010-para (20)

A13 big data et web sémantique
A13  big data et web sémantiqueA13  big data et web sémantique
A13 big data et web sémantique
 
Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1
 
Analyse Exploratoire de Données
Analyse Exploratoire de DonnéesAnalyse Exploratoire de Données
Analyse Exploratoire de Données
 
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfo
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfoE-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfo
E-Metrics Paris 2011 - Libérer l'action pour faire bondir sa transfo
 
Les secrets d’un taux de conversion de champion
Les secrets d’un taux de conversion de championLes secrets d’un taux de conversion de champion
Les secrets d’un taux de conversion de champion
 
Statistiques de consultation, comment les utiliser. Vers un observatoire nati...
Statistiques de consultation, comment les utiliser. Vers un observatoire nati...Statistiques de consultation, comment les utiliser. Vers un observatoire nati...
Statistiques de consultation, comment les utiliser. Vers un observatoire nati...
 
L'entomologie moléculaire et l'étude de la structuration génétique des anophèles
L'entomologie moléculaire et l'étude de la structuration génétique des anophèlesL'entomologie moléculaire et l'étude de la structuration génétique des anophèles
L'entomologie moléculaire et l'étude de la structuration génétique des anophèles
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 
Cortexm3 lpc1768 programming
Cortexm3 lpc1768 programmingCortexm3 lpc1768 programming
Cortexm3 lpc1768 programming
 
BtoBIM2017_Conf_Maître d'ouvrage
BtoBIM2017_Conf_Maître d'ouvrageBtoBIM2017_Conf_Maître d'ouvrage
BtoBIM2017_Conf_Maître d'ouvrage
 
Outil connecteurs logiques
Outil connecteurs logiquesOutil connecteurs logiques
Outil connecteurs logiques
 
A4 open data
A4 open dataA4 open data
A4 open data
 
Présentation Toucher pour Voir / tri-D - décembre 2015
Présentation Toucher pour Voir / tri-D - décembre 2015Présentation Toucher pour Voir / tri-D - décembre 2015
Présentation Toucher pour Voir / tri-D - décembre 2015
 
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...
Guide des AAP, AMI et actions du Programme Investissements d'Avenir (PIA) - m...
 
Manual salvamento altura
Manual salvamento alturaManual salvamento altura
Manual salvamento altura
 
Conférence transformation E-commerce Paris 2010
Conférence transformation E-commerce Paris 2010Conférence transformation E-commerce Paris 2010
Conférence transformation E-commerce Paris 2010
 
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"
E-Commerce Paris 2010 : Optimisation Transfo "Petit mais costaud"
 
UVA Compta analytique
UVA Compta analytiqueUVA Compta analytique
UVA Compta analytique
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Formación a medida: Una solución para generar comrpomiso en las personas clav...
Formación a medida: Una solución para generar comrpomiso en las personas clav...Formación a medida: Una solución para generar comrpomiso en las personas clav...
Formación a medida: Una solución para generar comrpomiso en las personas clav...
 

Siad dd-2010-para

  • 2. 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
  • 3. 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 ©oduction 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
  • 4. 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
  • 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
  • 6. Dépendances de données (1/2) 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: !""#!$#%$#& '()* "$#!$#+ !"#$"% time 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
  • 7. Dépendances de données (2/2) Spring 2010 ©15-319 Introduction to Cloud Computing add a, b, c a=??? b=3 c=-1 e=2 d=???Initial values: !""#!$#%$#& '()* "$#+$#, !"#$"% time 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
  • 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
  • 10. 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 Sprin15-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
  • 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
  • 15. 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 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 …
  • 16. 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 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
  • 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
  • 21. 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 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 Memory CPU Main Memory CPU Main Memory CPU Main Memory
  • 22. 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 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 Memory CPU CPU CPU CPU Main Memory CPU CPU CPU CPU Main Memory CPU CPU CPU CPU Main Memory CPU CPU CPU CPU
  • 23. Discussion v Les avantages de chaque architecture ? v Les inconvénients de chaque architecture ? 22
  • 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
  • 27. 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
  • 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
  • 29. Équilibrage de charge 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
  • 30. 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;'< $%&'( )**#+ ,*-.'//012 #& 4-5'( j = 1,n do i = 1,n a(i,j) = fcn(i,j) end do do 8:0/ 0/ .-$%78#80-1#&&+ 018'1/0;'< 29
  • 31. 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&#6' $+ %-*60-1 -3 #**#+ 4- D E $+ 30*/6 .-&5$1F$+ &#/6 .-&5$1 4- 0 E GF1 #H0FDI E 3.1H0FDI '14 4- '14 4- /'14 8)9:!; *'/5&6/ '1403 )**#+ 0/ 40B04'4 016- .@5.J/F '#.@ %*-.'//-* -A1 # .@51JF #14 '"'.56' 6@' %-*60-1 -3 6@' &--% .-**'/%-14012 6- 06K ,#*#&&'& L-4'( )**#+ ,*-.'//012 ; -* <=;>!; #+ >!; 013- -1 %#*6 -3 #**#+ 06 -A1/ >!; 06/ %-*60-1 -3 01060#& #**#+ .@ <=;>!; *'/5&6/ )9:!; 013- -1 %#*6 -3 #**#+ 7 -A1 8)9:!; $+ %-*60-1 -3 01060#& #**#+ %-*60-1 -3 #**#+ -&5$1F$+ &#/6 .-&5$1 E GF1 #H0FDI E 3.1H0FDI )**#+ 0/ 40B04'4 016- .@5.J/F '#.@ %*-.'//-* -A1 # .@51JF #14 '"'.56' 6@' %-*60-1 -3 6@' &--% .-**'/%-14012 6- 06K 30