Architectures et Algorithmique
Parall les
Dr. Khedija AROUR
INSAT
GL4
1
Plan
Tendance g n rale
Motivation
Introduction au parall lisme
Classification des Architectures Parall les
Machines multicoeurs
Sources du parall lisme
Quelques applications parall les
2
Tendance g n rale
Pendant plus de 40 ans, r duction de la taille
des transistors, de mani re :
ajouter toujours plus de transistors dans les
microprocesseurs
augmenter la fr quence des horloges
r duire la consommation nerg tique des
processeurs
3
Tendance g n rale...
Avec plus de transistors:
largir les bus et les registres
cr er des caches
construire des pipelines
augmenter le nombre d'unit s fonctionnelles
augmenter le nombre de fils d'ex cution (cSurs de
calcul)
4
Processeurs multi-coeurs
4
5
Chapitre 2 - Architecture mat rielle
Architectures Parall les
N. Hameurlain
http://www.univ-pau.fr/~hameur
Plan
" Architecture S quentielle
" Architecture Parall le
Motivation
Mod les
" Multiprocesseurs
" Multicalculateurs
Master TI, M1, Universit de Pau
1
Master TI, M1, Universit de Pau
2
Motivation : Machine s quentielle
Architecture s quentielle:
"de von Neuman"
Donn es
M moire
Donn es
Instructions
Unit de
Traitement
Ordres
Unit de
Contr le
Processeur
Architectures parall les:
Motivation
1. Les besoins des applications en puissance de
traitement;
2. Les limites de l'approche microprocesseur;
3. L'existence de la propri t du parall lisme
dans les applications.
Master TI, M1, Universit de Pau
3
Master TI, M1, Universit de Pau
4
1. Les besoins des applications en
puissance de traitement
Mod le de Von Neuman
" La latence du traitement: temps n cessaire
pour l'ex cution d'un traitement;
6
" le d bit du traitement : nombre de traitement
ex cutable par unit de temps.
2. Les limites de l'approche
microprocesseur(1)
" Les machines s quentielles (un seul
processeur) sont construites autour des
microprocesseurs (standardis s).
" L'inad quation du format de donn es, et des
op rations des microprocesseurs aux
caract ristiques de certaines applications
(traitement d'images, analyse num riques, ...)
Master TI, M1, Universit de Pau
5
Master TI, M1, Universit de Pau
6
Motivation
Le parall lisme est la cons quence :
besoin des applications : calcul scientifique, traitement
d'images, data mining qui demandent des ressources en
CPU et m moire de plus en plus importantes
limites des architectures s quentielles
performance
capacit d'acc s la m moire
tol rance aux pannes
l'existence de la propri t du parall lisme dans les
applications
7
Motivation...
Besoin des applications:
la latence du traitement: temps n cessaire pour l'ex cution d'un
traitement
le d bit du traitement : nombre de traitement ex cutable par unit
de temps
limites des architectures s quentielles:
Les machines s quentielles : poss dant un seul processeur
taille et type de donn es : inad quation du format de donn es, et
des op rations des microprocesseurs aux caract ristiques de
certaines applications
8
Motivation...
Limites des performances
Ne peut tre r solue par un microprocesseur m me si l' volution des
performances des microprocesseurs suit une courbe exponentielle
dans le temps depuis 1985
L'existence de la propri t du parall lisme dans les
applications
une m me op ration peut tre r alis e par plusieurs processeurs sur
des donn es diff rentes ?
des op rations diff rentes peuvent tre r alis es simultan ment ?
9
Applications
Renault : simulations, mod lisation,
M t orologie et climatologie
Industries A ronautiques
R alit virtuelle, R alit augment e
Simulation grandes chelle : tectonique,
mod les atmosph riques...
Simulation Temps-r el
Simulation de ph nom nes physiques
Cin ma : effets sp ciaux, films d'animations...
10
Puissances de calcul
MIPS ou FLOPS
(Machine Instructions Per Second)
repr sente le nombre d instructions effectu es
par seconde
(FLoating Point Operations Per Second)
repr sente le nombre d op rations en virgule
flottante effectu es par seconde
11
MIPS FLOPSBesoins
R pondre une forte demande
En puissance de calcul simulation, mod lisation :
m t o, a ronautique ...
En puissance de donn es :base de donn es,
serveurs multim dia, Internet
Toujours plus de donn es traiter, des donn es plus
complexes (volume + vari t )
Anciens probl mes et/ou nouveaux
probl mes
12
maintenant&
i
o
f
e
n
n
o
B
.
F
-
P
I
I
e
m
s
i
l
l
l
a
r
a
P
16
13
Architectures parall les
Construites partir des ressources qui
composent les architectures s quentielles: UT,
UC, m moire, entr e/sortie (disque, r seau, etc)
Durant l'ex cution, toutes les unit s changent
des informations travers une ressource
suppl mentaire: le r seau de communication
interne
14
D finition : Ordinateur parall le
Les ordinateurs parall les sont des machines
qui comportent une architecture parall le,
constitu e de plusieurs processeurs identiques,
ou non, qui concourent au traitement d'une
application
La performance d'une architecture parall le est
la combinaison des performances de ses
ressources et de leur agencement (latence,
d bit)
15
Ordinateur parall le...
Ordinateurs parall les :
pas de limite de m moire
pas de limite de processeurs
acc l ration des calculs complexes ou co teux en
temps d'occupation CPU
calcul r p titif sur un large ensemble de donn es
structur
traitement ind pendant
16
Que font les processeurs modernes
Les processeurs modernes
peuvent ex cuter plusieurs instructions
simultan ment
poss dent des caches et des bus distincts pour les
instructions et les donn es
incorporent un pipeline pour lire et d coder les
prochaines instructions ....
sont capables de sp culer sur le r sultat d'une
instruction conditionnelle
17
Architectures parall les :
classification : Flynn 1969
La machine a t-elle un ou plusieurs flux de
donn es (Single Data stream ou Multiple Data
stream)
La machine a t-elle un ou plusieurs flux
d'instructions (Single Instruction stream ou
Multiple Instruction stream)
18
!"#$%&'(&(cid:41)(cid:47)(cid:60)(cid:49)(cid:49)(cid:183)(cid:54)(cid:3)(cid:55)(cid:36)(cid:59)(cid:50)(cid:49)(cid:50)(cid:48)(cid:60)(cid:3)&
Architectures parall les :
classification : Flynn 1969...
(cid:125) )'&(cid:41)(cid:79)(cid:92)(cid:81)(cid:81)(cid:183)(cid:86)&+,%%-(-,)-'./&$-)0$1&'(&
)0$& -.%)12*)-'.& '1& 3,),& %)1$,4%&
%-.6+$& '1& 42+)-#+$7&
*,.& 5$&
8'4#2)$1& ,10-)$)21$& *,.& 5$&
*+,%%-(-$3& -.)'& )0$& ('++'9-.6& ('21&
3-%)-.)&,)$6'1-$%:&
&
(cid:125) %-.6+$;-.%)12*)-'.&
%)1$,4%&<!"!#=>&
%-.6+$;3,),&
(cid:125) %-.6+$;-.%)12*)-'.& 42+)-#+$;3,),&
%)1$,4%&<!"$#=>&
(cid:125) 42+)-#+$;-.%)12*)-'.&
%)1$,4%&<$"!#=>&,.3&
%-.6+$;3,),&
(cid:125) 42+)-#+$;-.%)12*)-'.&
3,),&%)1$,4%&<$"$#=7&
42+)-#+$;
19
Chapitre 2
Mod`eles de calculateurs
parall`eles
An de d enir et comparer les architectures de machines, plusieurs classications
ont et e d evelopp ees.
Mod le SISD...
2.1 Classication de Flynn
La classication la plus connue est celle de Flynn [2], qui caract erise les machines
Cette cat gorie correspond aux machines
suivant leurs ots de donn ees et dinstructions, ce qui donne quatre cat egories :
s quentielles conventionnelles, pour lesquelles
SISD ( Single Instruction stream, Single Data stream ). Cette cat egorie cor-
respond aux machines s equentielles conventionnelles, pour lesquelles chaque
chaque op ration seffectue sur une donn e la
Publicité
op eration seectue sur une donn ee `a la fois (gure 2.1) ;
fois
" Ordinateur s quentiel
(non parall le)
" Un seul flux d'instructions, une
instruction la fois
" Une seule donn e la fois
" Ex cution d terministe
" Correspond au mod le
d'ordinateur le plus commun
E/S
FI
UC
FI
UT
FD
UM
Fig. 2.1 Architecture SISD. Lunit e de contr ole (UC), recevant son ot dinstruc-
tions (FI) de lunit e m emoire (UM), envoie les instructions `a lunit e de traitement
(UT), qui eectue ses op erations sur le ot de donn ees (FD) provenant de lunit e
m emoire.
20
MISD ( Multiple Instruction stream, Single Data stream ). Cette cat egorie
regroupe les machines sp ecialis ees de type systolique , dont les processeurs,
arrang es selon une topologie xe, sont fortement synchronis es (gure 2.2) ;
12
Chapitre 2 - Architecture mat rielle
FI
E/S
UM
UC
FI
UT
UC
FI
UT
FD
FD
FD
UC
FI
UT
Fig. 2.2 Architecture MISD.
11
Mod le SISD...
Ex cution en mode SISD : D roulement,
performance
pour i de 1 n faire
v(i)=v1(i)+v2(i)
21
Mod le SIMD : vectoriel
Chaque processeur de cette architecture
ex cute la m me instruction chaque cycle
d'horloge, mais les donn es trait es sont
diff rentes
L'ex cution est synchrone et d terministe sur
chaque processeur
22
12
CHAPITRE 2. MOD ELES DE CALCULATEURS PARALL ELES
SIMD ( Single Instruction stream, Multiple Data stream ). Dans cette classe
darchitectures, les processeurs sont fortement synchronis es, et ex ecutent au
m eme instant la m eme instruction, chacun sur des donn ees di erentes (-
gure 2.3). Des informations de contexte (bits de masquage) permettent din-
hiber lex ecution dune instruction sur une partie des processeurs.
Mod le SIMD...
FI
UC
E/S
FI
UT
UT
UT
FD
FD
FD
UM
UM
UM
FD
FD
FD
UM
Fig. 2.3 Architecture SIMD.
" Ordinateur parall le
" Chaque processeur ex cute
la m me instruction en
m me temps
vectoriel
" Chaque processeur op re
sur une donn e diff rente
" Efficace surtout pour des
probl mes r guliers tels que
le traitement d'image ou
Ces machines sont adapt ees aux traitements r eguliers, comme le calcul matri-
ciel sur matrices pleines ou le traitement dimages. Elles perdent en revanche
toute ecacit e lorsque les traitements `a eectuer sont irr eguliers et d ependent
fortement des donn ees locales, car dans ce cas les processeurs sont inactifs la
majorit e du temps.
Ainsi, pour ex ecuter une instruction conditionnelle de type if. . . then. . . else
(gure 2.4), lensemble des instructions des deux branches doit etre pr esent e
aux processeurs, qui d ecident ou non de les ex ecuter en fonction de leur bit
local dactivit e, positionn e en fonction des valeurs de leurs variables locales.
23
" Ex cution synchrone
d terministe
des branches.
14
Chacun des processeurs nex ecutera eectivement que les instructions de lune
Code source
Code compil e
Chapitre 2 - Architecture mat rielle
Ex ecution,
cond=VRAI
Ex ecution,
cond=FAUX
blocA
if (cond)
blocV;
else
blocA;
blocV;
blocF;
blocF;
blocB
blocB
ACTIF = (cond);
ACTIF = (cond);
ACTIF = (cond);
ACTIF = ~ACTIF;
ACTIF = ~ACTIF;
ACTIF = ~ACTIF;
ACTIF = VRAI
ACTIF = VRAI
ACTIF = VRAI
blocA;
blocV;
--
blocB
blocA;
--
blocF;
blocB
Fig. 2.4 Ex ecution dune expression conditionnelle if. . . then. . . else sur une
architecture SIMD.
MIMD ( Multiple Instruction stream, Multiple Data stream ). Cette classe
comprend les machines multi-processeurs, o`u chaque processeur ex ecute son
propre code de mani`ere asynchrone et ind ependante. On distingue habituel-
lement deux sous-classes, selon que les processeurs de la machine ont acces a
une m emoire commune (on parle alors de MIMD `a m emoire partag ee, mul-
tiprocessor , gure 2.5), ou disposent chacun dune m emoire propre (MIMD
`a m emoire distribu ee, multicomputer , gure 2.6). Dans ce dernier cas, un
r eseau dinterconnexion est n ecessaire pour echanger les informations entre
processeurs.
Cette classication est trop simple, car elle ne prend en compte ni les machines
vectorielles (quil faut ranger dans la cat egorie SISD et non pas SIMD, car elles ne
Cours darchitectures et systemes des calculateurs paralleles
Mod le SIMD...
Ex cution en mode SIMD : D roulement,
performance ?
speed-up, gain, acc l ration=temps mod le de
base/temps nouveau mod le
24
Mod le MISD
Il existe peu d'exemples de cette classe de
syst mes parall les : pipeline?
Elle correspond aux syst mes capables
d'ex cuter plusieurs instructions sur la m me
donn es durant le m me cycle d'horloge
25
Chapitre 2
Mod`eles de calculateurs
parall`eles
An de d enir et comparer les architectures de machines, plusieurs classications
ont et e d evelopp ees.
2.1 Classication de Flynn
La classication la plus connue est celle de Flynn [2], qui caract erise les machines
suivant leurs ots de donn ees et dinstructions, ce qui donne quatre cat egories :
SISD ( Single Instruction stream, Single Data stream ). Cette cat egorie cor-
respond aux machines s equentielles conventionnelles, pour lesquelles chaque
op eration seectue sur une donn ee `a la fois (gure 2.1) ;
FI
UT
FI
FD
UM
E/S
UC
Fig. 2.1 Architecture SISD. Lunit e de contr ole (UC), recevant son ot dinstruc-
tions (FI) de lunit e m emoire (UM), envoie les instructions `a lunit e de traitement
(UT), qui eectue ses op erations sur le ot de donn ees (FD) provenant de lunit e
m emoire.
MISD ( Multiple Instruction stream, Single Data stream ). Cette cat egorie
regroupe les machines sp ecialis ees de type systolique , dont les processeurs,
arrang es selon une topologie xe, sont fortement synchronis es (gure 2.2) ;
Mod le MISD...
FI
FD
UM
E/S
UC
FI
UT
FD
UC
FI
UT
FD
UC
FI
UT
Fig. 2.2 Architecture MISD.
11
26
" un seul flux de donn es
est trait par de multiples
processeurs
" Chaque processeur op re
sur chaque donn e via un
flux distinct d'instructions
" Architecture peu courante
" Pourrait par exemple servir
tenter de d chiffrer un
m me message avec
diff rents algorithmes
16
Chapitre 2 - Architecture mat rielle
Mod le pipeline...
Permet de cacher la latence des traitements
pour augmenter le d bit
Lop rateur pipeline est form de k tages, et le
temps de travers e dun tage dure t
Le programme est compos de n instructions
temps total ?
27
Mod le Pipeline...
Traiter par pipeline une op ration arithm tique
deux op randes v(1)+v(2)
D composition de lop ration en 5 tapes
d codage de linstruction
calcul des adresses des op randes
chargement op rande 1 chargement op rande
2
ex cution de lop ration
28
Mod le Pipeline...
Ex cution en mode MISD : D roulement,
performance
?
29
Mod le Pipeline: tages de dur es
diff rentes
Un autre exemple
Chaque instruction peut tre d coup e en
quatre sous-traitements :
le premier de dur e 2t
le second de dur e 3t
le troisi me de dur e t
le dernier de dur e 4t
Repr sentez le diagramme de Gantt
Temps ? acc l ration?
Am lioration ?
30
Mod le Pipeline: d pendance
Un autre exemple
A =BC+DE, F =GH+IJ
utilisation de deux registres et pipeline 5 tages
Repr sentez le diagramme de Gantt
Temps ? acc l ration?
Am lioration ?
31
MIMD
C'est dans cette cat gorie que l'on trouve le
plus de syst mes parall les
A chaque cycle d'horloge, chaque processeur
ex cute une instruction diff rente sur une
donn e diff rente
Ces ex cutions peuvent tre synchrones ou
non, d terministes ou non
32
MIMD...
" Actuellement, type le plus commun
d'ordinateur parall le
Processeur multi-coeurs
Colosse
Publicité
" Chaque processeur peut ex cuter
un programme diff rent et
travailler sur des donn es
diff rentes
" l'ex cution peut tre synchrone,
asynchrone, d terministe ou non
d terministe
" Plusieurs ordinateurs MIMD
incorporent un ou plusieurs
composants SIMD
par exemple, des GPGPUs
17
Chapitre 2 - Architecture mat rielle
33
MIMD...
34
MIMD.... Exemple
Ex cution en mode MIMD : D roulement,
performance ?
35
MIMD: Organisation de la m moire
Trois types d'organisation de la m moire :
la m moire partag e; on parle de multi-processeurs
(SM)
la m moire distribu e; on parle de multi-ordinateurs
(DM)
la m moire hybride : Cest un m lange des deux
premiers. Dans cette architecture, il y a plusieurs
groupes de processeurs partageant de la m moire qui
communiquent gr ce un r seau
36
MIMD: Organisation de la
Le Mod le MIMD: classification
m moire...
MIMD
Fortement coupl s
Faiblement coupl s
Multiprocesseurs
(m moire partag e)
Multicalculateurs
(m moire priv e)
Bus
commutateur
Bus (LAN)
commutateur
37
Multiprocesseurs/ Multicalculateurs
MIMD: Organisation de la
m moire...
P
P
P
R seau
M M
M
M
P
M M
P
P
R seau
M moire partag e
M moire priv e
38
MIMD: M moire partag e
Les processeurs acc dent la m me m moire
partag e qui doit se comporter comme une
m moire plusieurs ports
La m moire partag e est construite partir de
plusieurs composants m moire
un r seau d'interconnexion relie les composants
m moire et les processeurs
16
2 Parallel Computer Architecture
Fig. 2.4 Illustration of a
computer with shared
memory: (a) abstract view
and (b) implementation of the
shared memory with memory
modules
(a)
P
P
(b)
P
P
interconnection network
interconnection network
shared memory
M
M
memory modules
" La m moire distribu e implique le passage de messages
of a number of processors or cores, a shared physical memory (global memory), and
entre les processeurs, travers une couche logicielle
an interconnection network to connect the processors with the memory. The shared
39
la couche logicielle augmente la latence
memory can be implemented as a set of memory modules. Data can be exchanged
between processors via the global memory by reading or writing shared variables.
" La m moire partag e permet chaque processeur
The cores of a multicore processor are an example for an SMM, see Sect. 2.4.2 for
d'acc der directement toute la m moire de fa on
a more detailed description. Physically, the global memory usually consists of sep-
arate memory modules providing a common address space which can be accessed
mat rielle (transparente)
by all processors, see Fig. 2.4 for an illustration.
A natural programming model for SMMs is the use of shared variables which
permet de minimiser la latence, mais augmente les co ts et limite
can be accessed by all processors. Communication and cooperation between the
l'extensibilit
processors is organized by writing and reading shared variables that are stored in
the global memory. Accessing shared variables concurrently by several processors
should be avoided since race conditions with unpredictable effects can occur, see
Chapitre 2 - Architecture mat rielle
21
also Chaps. 3 and 6.
The existence of a global memory is a signicant advantage, since communi-
cation via shared variables is easy and since no data replication is necessary as is
sometimes the case for DMMs. But technically, the realization of SMMs requires
a larger effort, in particular because the interconnection network must provide fast
access to the global memory for each processor. This can be ensured for a small
number of processors, but scaling beyond a few dozen processors is difcult.
A special variant of SMMs are symmetric multiprocessors (SMPs). SMPs have
a single shared memory which provides a uniform access time from any processor
for all memory locations, i.e., all memory locations are equidistant to all processors
[35, 84]. SMPs usually have a small number of processors that are connected via a
central bus which also provides access to the shared memory. There are usually no
private memories of processors or specic I/O processors, but each processor has a
private cache hierarchy. As usual, access to a local cache is faster than access to the
global memory. In the spirit of the denition from above, each multicore processor
with several cores is an SMP system.
SMPs usually have only a small number of processors, since the central bus
provides a constant bandwidth which is shared by all processors. When too many
processors are connected, more and more access collisions may occur, thus increas-
ing the effective memory access time. This can be alleviated by the use of caches
and suitable cache coherence protocols, see Sect. 2.7.3. The maximum number of
processors used in bus-based SMPs typically lies between 32 and 64.
Parallel programs for SMMs are often based on the execution of threads. A thread
is a separate control ow which shares data with other threads via a global address
MIMD: M moire partag e...
Permet dacc der directement toute la
m moire de fa on transparente
Minimiser la latence
Limiter lextensibilit
40
MIMD: M moire partag e
travailler avec des variables globales
conomiser la m moire en vitant les
r plications inutiles
d ployer des m canismes de synchronisation
des acc s la m moire
41
MIMD: M moire partag e
(Bus)
Un certains nombre d'UC sont connect s un
bus
La lecture (ou l' criture) se fait en mettant
l'adresse du mot m moire sur le bus et en
d clenchant le signal appropri (Lecture ou
Ecriture)
42
MIMD: M moire partag e
(Bus...)
Limite: surcharge du bus
Solution: ajouter une m moire cache entre l'UC
et le Bus:
le cache conserve les mots m moire auxquels on a
r cemment fait acc s
tous les acc s m moire passent par le cache
43
MIMD: M moire partag e
(Commutateurs)
Construire 1 Multiprocesseur comportant plus de 64
Processeurs
Diviser la m moire en Modules que l on relie aux
processeurs (N):
CROSSBAR switch: Matrice de commutateurs (NxN
noeuds de commutateurs);
OMEGA: bas sur les commutateurs 2x2 (Log2(N)
commutateurs/ tages)
44
MIMD: M moire partag e
Multiprocesseurs
(Commutateurs...)
commutateurs : Exemples
NSud de commutation
Commutateur 2x2
P
r
o
c
e
s
s
e
u
r
s
P
r
o
c
e
s
s
e
u
r
s
M
m
o
i
r
e
s
M moires
CROSSBAR
OMEGA
45
18
2 Parallel Computer Architecture
2 Parallel Computer Architecture
(a)
P
1
P
2
18
cache
ehcac
(b)
P1
2P
M
1
M
2
P
n
ehcac
(a)
P
1
P
2
cache
ehcac
memory
processing
elements
nP
P1
(b)
Mn
2P
interconnection network
M
1
M
2
P
n
ehcac
memory
processing
elements
nP
Mn
18
MIMD....M moire partag e
interconnection network
(c)
1P
2 Parallel Computer Architecture
nP
2P
(c)
Publicité
processing
(a)
P
1
P
2
cache
ehcac
1C
M
1
2C
P
n
ehcac
nC
1P
2P
elements
M
2
1C
M
n
2C
nP
nC
processing
elements
M
1
M
2
M
n
interconnection network
memory
interconnection network
(b)
P1
2P
M
1
M
2
(d)
Processor
nP
Cache
P
1
Mn
C
1
interconnection network
processing
P
elements
2
C
2
(d)
P
Processor
C
Cache
n
P
1
n
C
1
processing
P
2
elements
C
2
P
n
C
n
processing
elements
interconnection network
interconnection network
(c)
1P
1C
Fig. 2.5 Illustration of the architecture of computers with shared memory: (a) SMP symmet-
ric multiprocessors, (b) NUMA non-uniform memory access, (c) CC-NUMA cache-coherent
NUMA, and (d) COMA cache-only memory access
Fig. 2.5 Illustration of the architecture of computers with shared memory: (a) SMP symmet-
ric multiprocessors, (b) NUMA non-uniform memory access, (c) CC-NUMA cache-coherent
processing
NUMA, and (d) COMA cache-only memory access
elements
nC
2C
nP
2P
23
M
1
M
2
M
n
Chapitre 2 - Architecture mat rielle
46
more and more important to get good performance results at program level. This
is also true for parallel programs, in particular if a shared address space is used.
more and more important to get good performance results at program level. This
is also true for parallel programs, in particular if a shared address space is used.
Reducing the average latency observed by a processor when accessing memory can
interconnection network
(d)
Processor
Cache
Reducing the average latency observed by a processor when accessing memory can
increase the resulting program performance signicantly.
1
2
P
P
increase the resulting program performance signicantly.
Two important approaches have been considered to reduce the average latency
Two important approaches have been considered to reduce the average latency
for memory access [14]: the simulation of virtual processors by each physical
processing
for memory access [14]: the simulation of virtual processors by each physical
processor (multithreading) and the use of local caches to store data values that are
elements
accessed often. We give now a short overview of these approaches in the following.
processor (multithreading) and the use of local caches to store data values that are
C
C
P
C
n
n
1
2
accessed often. We give now a short overview of these approaches in the following.
interconnection network
Fig. 2.5 Illustration of the architecture of computers with shared memory: (a) SMP symmet-
ric multiprocessors, (b) NUMA non-uniform memory access, (c) CC-NUMA cache-coherent
NUMA, and (d) COMA cache-only memory access
more and more important to get good performance results at program level. This
is also true for parallel programs, in particular if a shared address space is used.
Reducing the average latency observed by a processor when accessing memory can
increase the resulting program performance signicantly.
Two important approaches have been considered to reduce the average latency
for memory access [14]: the simulation of virtual processors by each physical
processor (multithreading) and the use of local caches to store data values that are
accessed often. We give now a short overview of these approaches in the following.
a)
a)
a)
b)
b)
b)
b)
c)
c)
c)
c)
d)
d)
d)
d)
2.3 Memory Organization of Parallel Computers
13
2.3 Memory Organization of Parallel Computers
2.3 Memory Organization of Parallel Computers
13
13
a)
b)
interconnection network
P
P
MM
P
M
P = processor
a)
a)
interconnection network
interconnection network
M = local memory
P
P
P
P
MM
MM
P
P
M
M
P = processor
P = processor
M = local memory
M = local memory
node consisting of processor and local memory
b)
b)
node consisting of processor and local memory
node consisting of processor and local memory
computer with distributed memory
with a hypercube as
interconnection network
computer with distributed memory
computer with distributed memory
with a hypercube as
with a hypercube as
interconnection network
interconnection network
2.3 Memory Organization of Parallel Computers
13
2.3 Memory Organization of Parallel Computers
2.3 Memory Organization of Parallel Computers
2.3 Memory Organization of Parallel Computers
interconnection network
a)
c)
MIMD: M moire distribu e
interconnection network
c)
c)
13
P = processor
DMA (direct memory access)
DMA (direct memory access)
with DMA connections
with DMA connections
to the network
to the network
13
13
DMA (direct memory access)
interconnection network
interconnection network
with DMA connections
to the network
DMA
DMA
DMA
DMA
M
M
P
P
M
M
P
P
interconnection network
interconnection network
interconnection network
P
P
MM
P
P
P
P
MM
P
P
MM
MM
P
M
P
M
M
DMA
M = local memory
P = processor
DMA
P = processor
M
P
Publicité
P = processor
M = local memory
M = local memory
M = local memory
P
P
M
P
d)
M
node consisting of processor and local memory
d)
d)
M
P
node consisting of processor and local memory
node consisting of processor and local memory
computer with distributed memory
...
...
external
node consisting of processor and local memory
Router
computer with distributed memory
computer with distributed memory
input channels
with a hypercube as
with a hypercube as
computer with distributed memory
with a hypercube as
interconnection network
interconnection network
with a hypercube as
interconnection network
N
N
N
interconnection network
e)
e)
e)
.
.
.
.
.
.
external
external
input channels
input channels
.
.
.
.
.
.
external
output channels
N
N
R
R
N
N
R
R
interconnection network
interconnection network
interconnection network
interconnection network
DMA
DMA
R
R
N
M
DMA
P
DMA
DMA
P
P
P
M
M
M
M
N
P
DMA
P
DMA
M
P
M
R
DMA
M
P
P
M
R
R
N
DMA (direct memory access)
with DMA connections
to the network
DMA (direct memory access)
DMA (direct memory access)
N
with DMA connections
DMA (direct memory access)
with DMA connections
to the network
with DMA connections
to the network
N
to the network
R = Router
N
N
R
R
N = node consisting of
processor and
local memory
R
R
N
N
N
N
N
N
R
R
N
R
R
R
R
P
P
M
M
...
...
...
...
Router
Router
.
.
.
.
.
.
external
external
output channels
output channels
R = Router
R = Router
N = node consisting of
N = node consisting of
processor and
processor and
local memory
local memory
N
N
N
N
N
N
R
R
R
R
R
R
R
R
Fig. 2.3 Illustration of computers with distributed memory: (a) abstract structure, (b) computer
Fig. 2.3 Illustration of computers with distributed memory: (a) abstract structure, (b) computer
with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory
with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory
access), (d) processormemory node with router, and (e) interconnection network in the form of a
access), (d) processormemory node with router, and (e) interconnection network in the form of a
mesh to connect the routers of the different processormemory nodes
mesh to connect the routers of the different processormemory nodes
external
input channels
external
external
input channels
external
input channels
input channels
N
R
.
.
.
N
Fig. 2.3 Illustration of computers with distributed memory: (a) abstract structure, (b) computer
with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory
M
P
M
P
...
...
access), (d) processormemory node with router, and (e) interconnection network in the form of a
external
Router
M
P
output channels
mesh to connect the routers of the different processormemory nodes
...
...
...
...
external
external
Router
...
...
output channels
Router
output channels
external
Router
output channels
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
e)
N
e)
e)
e)
R
R
R
N
R
R
R
N
R
R
R
R
R
R
47
Program data is stored in the local memory of one or several nodes. All local
Program data is stored in the local memory of one or several nodes. All local
memory is private and only the local processor can access the local memory directly.
memory is private and only the local processor can access the local memory directly.
C...