Professional Documents
Culture Documents
architectures et modles de
programmation
Franoise Roch 1
1Observatoire
Westmere-EX
Cell
Sommaire
1. Architecture des ordinateurs
Les
L processeurs
La mmoire
Les rseaux
Les tendances dvolution
2. Concepts du paralllisme
Introduction
Terminologie et classification
Les diffrents modles de programmation
3. Conclusion
4
La mmoire : contient le
programme (instructions) et
les donnes.
Une Unit
i Arithmtique
ih i
et
Logique : UAL qui effectue
les oprations.
Une unit de contrle :
charge du squenage des
oprations.
oprations
Une unit dEntre/Sortie.
Un pocesseur en 2011
Systme
dEntres/
Sorties
Mmoire
Bus interface
L3
L1
inst
r
Core0
Core1
Core2
. Coren
Unit de commande
UAL
UAL
UAL
L1
data
UAL
L
2
11
13
14
Moores Law
100
Processeur Mmoire Performance
Processeur-Mmoire
50%/anne
10
DRAM
7%/anne
1999
1998
1997
1996
1995
1994
1992
1993
1991
1990
1989
1988
1987
1986
1985
1984
1983
1982
1981
2000
DRAM
1
1980
Perfformance
1000
17
Hirarchisation de la mmoire
Proximit du CPU
1 ou plusieurs caches*
RAM : mmoire primaire
Taille
Vittesse
Registres
18
iinstructions.
t ti
Localit spatiale : si une zone est rfrence, les zones
voisines ont des chances dtre rfrences dans un futur
proche.
Exemple de proximit spatiale : dans un bloc simple,
chaque
h
iinstruction
i sera accde
d llune aprs
llautre.
19
Proximit temporelle
DO I = 1,10 0000
S1 = A(I)
S2 = A(I+K) # S2 sera rutilis litration
l itration I+K
END DO
Lide de base est de conserver A(I+K) (lecture de la rfrence
litration I, dclaration S2) en mmoire rapide jusqu sa
prochaine utilisation litration I+K, dclaration S1.
Si on veut exploiter la localit temporelle via les registres, cela
suppose quil faille au moins K registres.
C
Cependant,
d t d
dans lle cas gnral,
l on aura certainement
t i
tb
besoin
i
de stocker dautres donnes.
Lvaluation prcise de la proximit temporelle est trs complexe
20
Proximit spatiale
Le voisinage dune zone localise par une adresse doit tre
value dans lespace dadressage virtuel.
Les structures de donnes sont linarises et rduites une
dimension pour tre places dans lespace dadressage linaire.
Exemple en Fortran (rangement des
tableaux 2D par colonne)
DO J = 1,1000
DO I = 1
1,10000
10000
X1 = A(I,J)
X2 = B(J,I)
END DO
END DO
23
Xeon
Northbridge
Opteron
Hypertransport
Nehalem
QuickPath
Interconnect
24
Communications CPU IO
B interne
Bus
i
dextension
d
i
Bus PCI-X
E l ti d
Evolution
du b
bus PCI
PCI, prserve
lla compatibilit.
tibilit
Interconnect parallle. Interface entre le bus processeur et le bus
dentres/sorties. Bus 64 bits, Frquence jusqu 533 MHz.
Bus srie full duplex PCI-Express
Utilise une interface srie (1 bit donc) base de lignes
g
bidirectionnelles. En version 2, chaque ligne fonctionne 500 Mo/s . Le
bus PCI-Express peut tre construit en multipliant le nombre de lignes
Par ligne : sur PCI-e V 1.x : 20 Mo/S, V2.x 500 Mo/s, V3.0 1 Go/s
Limite de la bande passante sur PCI-Express
PCI Express (16 lignes) :
v 2.0 : 8 Go/s, V3.0 : 16 Go/s
27
spculative,
l
excution dsordonne ...).
Evolution des interactions architecture/applications : dans le
cas de lItanium, le compilateur fait partie intgrante de
larchitecture.
Evolution des infrastructures vers un haut degr de paralllisme
en intgrant un grand nombre de cores.
cores
28
29
Core area
Core power
Chip power
Core
performance
Chip
performance
Gnration de gravure2
Quad Core
Gnration de gravure3
A
W
W+O
P
~ A/2
~ W/2
W + O
0.9P
~ A/4
~ W/4
W + O
0.8P
1.8 P
3.2 P
30
Architecture Nehalem-EP
4 cores
Cache L3 partag 8 Mo on-chip
3 niveaux de cache
Cache L1 : 32k I-cache + 32k D-cache
Cache L2 : 256 k par core
Cache inclusif : cohrence de cache on-chip
SMT
732 M transistors
transistors, 1 seule puce de 263 mm2
QuickPathInterconnect
Point Point
2 liens par socket CPU
1 pour la connexion lautre socket
1 pour la connexion au chipset
Jusqu
J
6.4
6 4 GT/Sec
GT/S dans
d
chaque
h
di
direction
ti
QuickPath Memory controller (DDR3) intgr
core
core
core
core
8 Mo L3 shared cache
Memory
controller
Link controller
3 DDR3
Channels
2 Quickpath
Interconnect
Bande passante
mmoire crte
25.6 GB/s
31
Nehalem
32
Architecture Power7
1200 M de transistors, 567 mm2 par die
jjusqu
8 cores
4 voies SMT jusqu 32 threads
simultanes
12 units d
dexcution
excution, dont 4 FP
Scalabilit : Jusqu 32 sockets de 8
cores par systme SMP , 360Go/s de
bande passante/chip
jusqu 1024 threads /SMP
Cache L2 de 256Ko /core
Cache L3 partag en technologie
eDRAM (embeddedDRAM)
34
35
36
Exemple du Nehalem :
une hirarchie de cache 3 niveaux
32ko L1 /I
32ko L1/D
32ko L1 /I
32ko L1/D
32ko L1 /I
32ko L1/D
32ko L1 /I
32ko L1/D
256ko L2
256ko L2
256ko L2
256ko L2
8 Mo L3 shared cache
inclusif
Memory
controller
Link controller
Les GPUS
Evolution des performances CPU vs GPU
GPU
CPU
Architecture de PC classique
Motherboard
CPU
System Memory
Bus PCI-e
Graphic Board
Vido Memory
GPU
40
Multiprocesseur
SM
core
Cache L2 de 768 Ko
42
43
S_GPU
S GPU (projet INRIIA)
Partage lutilisation de plusieurs GPU avec plusieurs processus MPI
placs sur des CPU
44
puce
Compatibilit x86
Support des logiciels Intel
Actuellement ltat de prototype,
sortie du Knights Corner fin 2012 ou dbut 2013
46
47
Topologie rseau
Bus
Hypercube
Chaque proc est le
Sommet dun hypercube
de dim n
Rseau
plusieurs
tages
Arbre
48
Technologie rseau
pour le HPC
p
Technologie
Vendeur
Latence MPI
usec,, short msgg
NUMAlink 4
SGI
3200
QsNet II
Quadrics
1.2
900
Infiniband
Mellanox, Qlogic,
(Voltaire)
1.O7
2500 (SDR)
Double speed DDR
Quad speed QDR
Fourteen speed FDR
(14Gb/s)
High
h Performance
f
Switch
IBM
1000
Myri-10G
Myricom
2.3
2500
2600
Ethernet 10/40 Gb
Ethernet 1 Gb
50 80
49
50
Concepts du paralllisme
51
Calcul parallle
Un calcul parallle est excut sur plusieurs units de calcul
Le calcul est dcoup en plusieurs parties pouvant sexcuter
s excuter
simultanment
Chaque partie est dcoupe en squences dinstructions
D instructions
Des
i t ti
d
de chaque
h
partie
ti sexcutent
t t simultanment
i lt
t sur
# CPU
CPU
CPU
CPU
CPU
52
Calcul parallle
Les ressources de calcul peuvent tre
Une seule machine avec un ou plusieurs processeurs
Plusieurs machines avec un ou plusieurs processeurs
interconnectes par un rseau rapide
Une grille de calcul : plusieurs ensembles de plusieurs
machines
en temps t/n
/
53
54
Classification de Flynn
Classification des architectures selon 2
dimensions : instruction, data.
SISD
SIMD
Single Instruction,
Instruction Single Data Single Instruction,
Instruction Multiple Data
MISD
Multiple Instruction, Single
Data
MIMD
Multiple Instruction, Multiple
Data
55
Classification de Flynn
Flux/flot dinstructions : squence
dinstructions excutes par la machine
Flux/flot de donnes : squence de donnes
pp
p
par le flux dinstructions
appeles
SISD : architecture squentielle avec un seul flot dinstructions,
un seul flot de donnes,, excution dterministe
SIMD : architecture // , ttes les units de traitement excutent la
mme instruction un cycle dhorloge donne, chaque unit
peut oprer sur des donnes diffrentes,
diffrentes excution dterministe
Arrays processors
Machines vectorielles (instructions sur des vecteurs de
donnes)
Excution pipeline
56
Classification de Flynn
MISD : un seull fl
flot d
de d
donnes
alimente
l
plusieurs
l
units
d
de
traitement,
chaque unit de traitement opre indpendamment des autres, sur
d fl
des
flots
t di
dinstructions
t ti
iindpendants
d
d t
Peu implment
Ex dutilisation : excution en // de plusieurs algos de cryptographie
pour le dcodage d1 mme message
MIMD: architecture la p
plus courante aujourdhui,
j
,
Chaque unit de traitement peut grer un flot dinstructions
diffrent
Chaque unit peut oprer sur un flot de donnes diffrent
Lexcution peut tre synchrone ou asynchrone, dterministe ou
non-dterministe
57
Terminologie
Tche parallle : portion de travail qui peut sexcuter sur
plusieurs CPU, sans risque sur la validit des rsultats
Mmoire partage :
Dun point de vue hard, rfre une machine dont tous les
CPUs. ont un accs direct une mmoire commune
Dun
D
un point de vue modle de programmation : toutes les
tches ont la mme image mmoire et peuvent
directement adresser et accder au mme emplacement
mmoire logique, peu importe o il se trouve en mmoire
physique.
Mmoire distribue :
Dun point de vue physique, base sur un accs mmoire
rseau
Mmoire partage
Tous les CPUs accde toute la mmoire globale avec un
mme espace dadressage global
Chaque CPU travaille indpendamment des autres
autres, mais les
modifications effectues par un processeur un
emplacement mmoire (en mmoire globale) sont visibles
par tous les autres
Les CPUs ont leur propre mmoire locale (cache)
CPU
cache
CPU
Mmoire
cache
cache
CPU
cache
h
CPU
59
d ff
diffrent
suivant la
l zone
accde. Le temps daccs via le lien dinterconnexion des
blocs est plus lent
Gestion de la cohrence des caches
CC-NUMA : Cache Coherent NUMA
60
Architecture NUMA
61
Mmoire partage
Espace dadresse globale J facilite le travail du
programmeur
Mmoire proche des CPUs J le partage des
donnes entre tches est rapide
Mais :
Manque de scalabilit : augmenter le nombre de
CPU accrot le traffic sur le chemin daccs la
mmoire
Le programmeur doit grer la synchronisation
pour un accs correcte la mmoire
Coteux de construire des architectures
mmoire partage avec un grand nombre de
processeurs
62
Mmoire distribue
P
Rseau
63
Le p
point commun de ces architectures : elles p
possdent
un rseau dinterconnexion pour communiquer entre
les mmoires des diffrents processeurs.
Mmoire distribue
Chaque processeur sa propre mmoire locale, il
nyy a pas
p de notion despace
p
dadressage
g gglobale
entre tous les procs.
Les procs oprent indpendamment les uns des
autres, une modification en mmoire locale na
pas deffet sur la mmoire des autres procs.
Si un processeur a b
besoin
i d
dune d
donne
d
dans lla
mmoire dun autre processeur, le programmeur
doit dfinir explicitement la communication
communication.
Les rseaux dinterconnexion sont divers, avec
des niveaux de performance trs variables
64
Mmoire distribue
On peut augmenter le nombre de processeur et
la mmoire proportionnellement
Accs rapide la mmoire locale sur chaque proc
Pas de problme de cohrence des accs
Cot raisonnable ex : PCs en rseau
Mais :
Le programmeur doit grer toutes les
communications entre processeurs
Peut tre difficile de faire concider une structure
de donnes base sur une mmoire globale,
cette
tt organisation
i ti physique
h i
d
de lla mmoire
i
Temps daccs mmoire non locaux levs
65
Architecture hybride
Les ordinateurs les plus puissants au monde sont
aujourdhui un mixte de mmoire partage et
mmoire distribue
La brique de base (nud) est un multiprocesseur
mmoire partage
Ces briques sont interconnectes par un rseau (type
y
, Infiniband,, ))
Ethernet,, Myrinet,
CPU
CPU
CPU
CPU
CPU
CPU
mmoire
CPU
mmoire
CPU
Rseau
CPU
CPU
CPU
CPU
CPU
CPU
mmoire
CPU
mmoire
CPU
66
67
68
69
Threads
Dans ce modle
modle, un unique processus peut initier
plusieurs tches concurrentes, appeles threads
Chaque thread a sa mmoire locale
locale, mais partage
galement la mmoire globale du processus
Les threads communiquent entre elles via cette
mmoire globale
Le programme principal est prsent durant toute
lexcution, alors quune thread peut apparatre
puis disparatre et rapparatre
rapparatre.
70
Machine 2
Task i
Task j
Send (x)
Receive(x)
73
Modles hybrides
Ils sont bass sur lutilisation combine de
plusieurs des modles prcdents
Typiquement
yp q
la combinaison du modle Message
g
Passing avec MPI et du modle des threads ou du
modle mmoire partage avec OpenMP.
Lhybride MPI+OpenMP est de + en + utilis, il est
notamment bien adapt aux architectures type
cluster de multiprocesseurs
75
77
Speedup maximum =
1-S + S
N
Speedup
linaire
78
Tcalcul
=T
calcul
N
+ Tcomm
1 + N Tcomm
Tcalcul
Dcomposition de domaines
Ce modle sera dautant plus efficace que le rapport :
((taille des sous-domaine/taille
/
des frontires)) est ggrand
(calculs / communications)
1D
block
1D
cyclic
y
2D
Bloc,*
l *
83
Dcomposition fonctionnelle
Ce modle est adapte
p
aux p
problmes q
qui
peuvent se dcouper naturellement en # tches
Le problme est vue comme un ensemble
dinstructions, on identifie des groupes
dinstructions indpendants
p
q
que lon affecte
diffrentes tches avec les donnes associes
Cest le placement des calculs qui dtermine le
placement des donnes
p
84
Communications
2 cas de figure :
Les tches travaillent indpendamment les unes des autres
autres, avec
trs peu de communications entre tches : le problme est dit
embarrassingly parallel
Les tches ont des donnes changer
changer,
un surcot si les comm. ne peuvent tre masques par les
calculs
des synchronisations entre tches
Temps de communication de B octets = + B
O temps de latence et temps de transfert d
d1
1 octet
Trop de petites communications D domination des temps de latence
(en gnral >> )
Concatner les petits messages pour envoyer de plus gros paquets
85
Dfinir les structures de communication et les algos appropris
Communications synchrones/asynchrones
Les communications synchrones requirent un
handshake entre tches qui changent les
donnes Elles sont dites bloquantes.
donnes.
bloquantes
Les comm. asynchrones sont non bloquantes.
Une tche ne sera pas bloque sur linstruction
l instruction
de comm, elle peut continuer traiter les
instructions suivantes pendant que la comm.
comm
seffectue.
86
Communications synchrones/asynchrones
Point point
une tche agit en tant que
metteur/producteur de donnes
donnes, et lautre
l autre
en tant que rcepteur/consommateur.
Collective
met en jeu le partage de donnes entre
plusieurs tches (plus que 2)
2), qui sont
souvent spcifies comme tant membres
dun
d
un groupe
groupe. Des exemples classiques :
broadcast, gather, reduction, scatter
87
Communications collectives
88
Gros grain
Beaucoup de calculs entre 2 comm.
p
Plus facile damliorer les performances
Plus difficile damliorer le load balancing
89
90
Scalabilit
Gnralement,
Gnralement des limites intrinsques
lalgorithme
Le hardware joue un rle important (dbit bus
mmoire-cpu sur SMP, dbit rseau de comm.,
taille et architecture mmoire
mmoire, vitesse d
dhorloge
horloge du
proc., )
Les systmes et les hardware peuvent jouer sur la
scalabilit et donc sur la portabilit
91
Conclusion
Vers une augmentation du nombre de coeurs plutt que
de la frquence dhorloge
Vers des cots de transferts de plus en + levs par
rapport au calcul
Programmation de plus en plus complexe :
Ncessit dune bonne connaissance des architectures
paralllisation obligatoire
p
g
pour un ggain de p
p
performance,, en
tenant compte des flots de donnes
Ncessit dexploiter le paralllisme aux diffrents niveaux de
hardware
Programmation sur des architectures hybrides avec
ventuellement diffrents types de processeurs, et diffrents
modles
de programmation
92
Conclusion
Exploitation des performances des processeurs
93
Rfrences
Un certain nombre dlments de ces slides sont issus des
prsentations ou des documentations prsentes sur les sites
suivant :
http://www.realworldtech.com
http://calcul.math.cnrs.fr
http://www.ci-ra.org sminaire trends in computer
architecture W. Jalby
p //
p
g
g /
/p
_comp
p
https://computing.llnl.gov/tutorials/parallel
http://www.citutor.org ncsa (national center for
supercomputing)
http://www.irisa.fr/ORAP
http://www irisa fr/ORAP (organisation associative pour le
paralllisme)
http://www.idris.fr sminaires de lIDRIS
www.intel.com
www.nvidia.fr
94