Architectures et Algorithmique Parallèles

Page 1 sur 53Lecteur de document UniversityLib

Architectures et Algorithmique Parallèles

Programming, Computer Architecture, Parallelism · course

Voir tous les documents en programmation

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 (cœurs 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& ,1*0-)$*)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

Afin de d´efinir et comparer les architectures de machines, plusieurs classifications

ont ´et´e d´evelopp´ees.

Modèle SISD... 2.1 Classification de Flynn

La classification la plus connue est celle de Flynn [2], qui caract´erise les machines

 Cette catégorie correspond aux machines

suivant leurs flots de donn´ees et d’instructions, 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 s’effectue sur une donnée à la op´eration s’effectue sur une donn´ee `a la fois (figure 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. L’unit´e de contrˆole (UC), recevant son flot d’instruc- tions (FI) de l’unit´e m´emoire (UM), envoie les instructions `a l’unit´e de traitement (UT), qui effectue ses op´erations sur le flot de donn´ees (FD) provenant de l’unit´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 fixe, sont fortement synchronis´es (figure 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

Publicité

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 d’architectures, les processeurs sont fortement synchronis´es, et ex´ecutent au mˆeme instant la mˆeme instruction, chacun sur des donn´ees diff´erentes (fi- gure 2.3). Des informations de contexte (bits de masquage) permettent d’in- hiber l’ex´ecution d’une 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 d’images. Elles perdent en revanche toute efficacit´e lorsque les traitements `a effectuer 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 (figure 2.4), l’ensemble 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 d’activit´e, positionn´e en fonction des valeurs de leurs variables locales.

23

• Exécution synchrone

déterministe

des branches.

14

Chacun des processeurs n’ex´ecutera effectivement que les instructions de l’une

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 d’une 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 acc`es `a

une m´emoire commune (on parle alors de MIMD `a m´emoire partag´ee, « mul-

tiprocessor », figure 2.5), ou disposent chacun d’une m´emoire propre (MIMD

`a m´emoire distribu´ee, « multicomputer », figure 2.6). Dans ce dernier cas, un

r´eseau d’interconnexion est n´ecessaire pour ´echanger les informations entre

processeurs.

Cette classification est trop simple, car elle ne prend en compte ni les machines

vectorielles (qu’il faut ranger dans la cat´egorie SISD et non pas SIMD, car elles ne

Cours d’architectures et syst`emes des calculateurs parall`eles

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

Afin de d´efinir et comparer les architectures de machines, plusieurs classifications

ont ´et´e d´evelopp´ees.

2.1 Classification de Flynn

La classification la plus connue est celle de Flynn [2], qui caract´erise les machines

suivant leurs flots de donn´ees et d’instructions, 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 s’effectue sur une donn´ee `a la fois (figure 2.1) ;

FI

UT

FI

FD

UM

E/S

UC

Fig. 2.1 – Architecture SISD. L’unit´e de contrˆole (UC), recevant son flot d’instruc-

tions (FI) de l’unit´e m´emoire (UM), envoie les instructions `a l’unit´e de traitement (UT), qui effectue ses op´erations sur le flot de donn´ees (FD) provenant de l’unit´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 fixe, sont fortement synchronis´es (figure 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

 L’opérateur pipeline est formé de k étages, et le

temps de traversée d’un é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 l’opération en 5 étapes  décodage de l’instruction  calcul des adresses des opérandes  chargement opérande 1 chargement opérande

2

 exécution de l’opé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 =B*C+D*E, F =G*H+I*J  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

• 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 : C’est 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

Publicité

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 significant 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 difficult.

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 specific 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 definition 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 flow which shares data with other threads via a global address

MIMD: Mémoire partagée...

 Permet d’accéder directement à toute la

mémoire de façon transparente

 Minimiser la latence  Limiter l’extensibilité

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

Nœud 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)

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 significantly.

1

2

P

P

increase the resulting program performance significantly.

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 significantly.

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)

Publicité

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 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) processor–memory node with router, and (e) interconnection network in the form of a access), (d) processor–memory node with router, and (e) interconnection network in the form of a mesh to connect the routers of the different processor–memory nodes mesh to connect the routers of the different processor–memory 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) processor–memory 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 processor–memory 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. Chapitre 2 - Architecture matérielle When a processor needs data from the local memory of other nodes to perform When a processor needs data from the local memory of other nodes to perform local computations, message-passing has to be performed via the interconnection local computations, message-passing has to be performed via the interconnection

Program data is stored in the local memory of one or several nodes. All local R memory is private and only the local processor can access the local memory directly.

N

N

N

N

R = Router

R

R

N

R

N

N

When a processor needs data from the local memory of other nodes to perform

network. Therefore, distributed memory machines are strongly connected with the

network. Therefore, distributed memory machines are strongly connected with the

N = node consisting of

local computations, message-passing has to be performed via the interconnection

message-passing programming model which is based on communication between

message-passing programming model which is based on communication between

network. Therefore, distributed memory machines are strongly connected with the

cooperating sequential processes and which will be considered in more detail in

cooperating sequential processes and which will be considered in more detail in

N = node consisting of

processor and

R = Router

local memory

R = Router

R = Router

R

N

N

R

N

N

N

R

N

N

message-passing programming model which is based on communication between

cooperating sequential processes and which will be considered in more detail in

processor and

N = node consisting of

N = node consisting of

processor and

processor and

local memory

N

N

N

N

N

N

R

R

N

R

R

N

R

R

R

R

R

R

R

R

R

R

N

N

R

Fig. 2.3 Illustration of computers with distributed memory: (a) abstract structure, (b) computer

local memory

local memory

N

N

with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory

N

N

R

N

N

N

access), (d) processor–memory node with router, and (e) interconnection network in the form of a

mesh to connect the routers of the different processor–memory nodes

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

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

access), (d) processor–memory node with router, and (e) interconnection network in the form of a

with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory

with distributed memory and hypercube as interconnection structure, (c) DMA (direct memory

Program data is stored in the local memory of one or several nodes. All local

access), (d) processor–memory node with router, and (e) interconnection network in the form of a

mesh to connect the routers of the different processor–memory nodes

access), (d) processor–memory node with router, and (e) interconnection network in the form of a

memory is private and only the local processor can access the local memory directly.

mesh to connect the routers of the different processor–memory nodes

mesh to connect the routers of the different processor–memory nodes

When a processor needs data from the local memory of other nodes to perform

local computations, message-passing has to be performed via the interconnection

Program data is stored in the local memory of one or several nodes. All local

network. Therefore, distributed memory machines are strongly connected with the

memory is private and only the local processor can access the local memory directly.

Program data is stored in the local memory of one or several nodes. All loc