siad dd-2010-para

32
Haoyuan Li http://www.info.univ-tours.fr/~li/ Distribution et Dématérialisation Parallélisme

Upload: nawel-berka

Post on 08-Jan-2017

45 views

Category:

Technology


0 download

TRANSCRIPT

Haoyuan Lihttp://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 ©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

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

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&#6'�$+�%-*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&#6'�$+�%-*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

Fin

Parallélisme

31