Sunteți pe pagina 1din 61

Calcul paralel

Curs Anul IV
Specializarea Ingineria Informaiei (INF)

Facultatea de Electronic,
Telecomunicaii i Tehnologia Informaiei

Prof. Felicia Ionescu

Capitolul 1- Arhitecturi pentru calculul paralel


1.1 Introducere
1.2 Clasificarea calculatoarelor dup mecanismul de control (clasificarea Flynn)
1.3 Clasificarea calculatoarelor paralele dup organizarea memoriei
1.3.1 Arhitecturi cu memorie partajata
1.3.2 Arhitecturi cu transfer de mesaje

1.4 Clasificarea calculatoarelor MIMD


1.5 Granularitatea calculatoarelor paralele
1.6 Sisteme paralele i distribuite
1.6.1 Clustere de calculatoare
1.6.2 Sisteme Grid
1.6.3 Sisteme Cloud Computing

1.7 Scurt istoric al dezvoltarii sistemelor paralele i distribuite


1.7.1 Prototipuri de calculatoare paralele destinate cercetrii
1.7.2 Primele generaii de calculatoare paralele
1.7.3 Generaia actual de sisteme paralele i distribuite

1.8 Reele de interconectare n calculatoarele paralele


1.8.1 Reele dinamice de interconectare
1.8.2 Reele statice de interconectare

1.9 Reele de interconectare n clustere de calculatoare


1.9.1 Reteaua Gigabit Ethernet
1.9.2 Reteaua Infiniband
1.9.3 Reteaua Myrinet
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

1.1 Introducere
Exist numeroase aplicaii cu cerine de calcul foarte mari (intens
computationale) provocari ale stiintei n diferite domenii:
Domeniul stiintific: fizica nucleara, studierea fenomenelor naturale (meteorologice,
fizica pamantului), biologie(genom), biochimie (proiectarea de noi medicamente) etc.
Domeniul ingineresc: proiectare n mecanic, electronic, arhitectur etc.
Domeniul economic: previziuni financiar-bancare, modelri macro-economice etc.

Pentru astfel de aplicatii calculatoarele secventiale (tradiionale) nu au


performane suficiente si sunt necesare calculatoare paralele, constnd din
multiple procesoare, care ofer performane de calcul ridicate
Calculatoarele secveniale:
sunt bazate pe modelul von Neumann (1945);
constau dintr-o unitate de prelucrare (procesor), o unitate de memorie (M) i un canal
de comunicaie;

Creterea performanelor calculatoarelor secveniale se obine prin:


Creterea vitezei de operare a memoriei i a vitezei de transfer a datelor ntre
procesor i memorie
Creterea performanelor procesoarelor prin:
Creterea vitezei de operare a procesoarelor
Introducerea paralelismului n interiorul procesoarelor
Prof. Felicia Ionescu
Calcul paralel - Cap. 1

Creterea performanelor calculatoarelor secveniale


Creterea vitezei de operare a memoriei i a vitezei de transfer a datelor intre
procesor i memorie:
Memorii intreesute (crete banda de comunicaie)
Memorii cache (scade latena de comunicaie)

Processor

Memorie

Arhitectura von Neumann

Memorie

Processor

Memorie

Memorie

Memorii ntreesute
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Memorie

Cache

Processor

Memorie

Memorie

Memorii cache
4

Creterea vitezei de operare a procesoarelor


Creterea vitezei de operare a procesoarelor:
Creterea frecvenei ceasului procesorului (clock rate)
Introducerea paralelismului n interiorul procesorului

Creterea frecvenei ceasului procesorului -> cresterea IPS (Instructions Per


Second): numrul de operaii cu numere ntregi (operaii netiintifice) pe
secund. Multipli: kIPS = 103 IPS i MIPS = 106 IPS.
IPS executate de procesoare a crescut n permanen, prin cresterea frecvenei
de ceas (clock rate). De exemplu:
IBM System/370 (1972) la o frecven de ceas de 1 MHz obtine 1 MIPS;
Intel 8080 (1982 ) la o frecven de ceas de 12 MHz obtine 2.66 MIPS;
Intel 486DX (1992) la o frecven de ceas de 66 MHz obtine 54 MIPS;
Intel Core 2 Extreme QX9770 (2008) la frecventa de ceas de 3.2 GHz obtine ~ 60000
MIPS.

Frecvena de ceas nu poate crete la infinit, datorit limitrii fizice fundamentale,


prin care viteza de propagare a semnalelor n interiorul chipului este limitat la
valoarea vitezei luminii n vid (3x108 m/s)
De aceea, pentru creterea mai puternic a performanelor procesoarelor se
adopt diferite soluii arhitecturale din ce n ce mai complexe, n principal prin
introducerea paralelismului n interiorul procesoarelor
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Introducerea paralelismului n interiorul procesoarelor


Introducerea paralelismului (concurenei) n interiorul procesoarelor
(paralelism implicit): mai multe ci de date, mai multe etaje de prelucrare
Ca urmare crete complexitatea circuitelor VLSI ale procesoarelor
Cresterea complexitii (numr de componente) circuitelor VLSI este descris
empiric de lege a lui Moore: complexitatea circuitelor VLSI se dubleaz n
fiecare an (n 1965); n 1975, Gordon Moore a ajustat durata estimat de
dublare a complexitatii circuitelor VLSI la 1,5 ani
Exist controverse privind evoluia n viitor a complexitii circuitelor VLSI
Actualmente sunt combinate diferite tehnici de proiectare a procesoarelor:
Tehnica pipeline
Prelucrarea vectorial pipeline
Procesoare VLIW (Very Long Processor Word)
Procesoare superscalare
Procesoare multi-core
Procesoare SCMP (Single Chip Message Passing)
Acceleratoare hardware - procesoare GPU (Graphical Processing Unit)

Calculatoarele paralele actuale constau din multiple procesoare performante


(zeci, sute, mii, sute de mii etc.)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Tehnica pipeline (1)


Tehnica pipeline: divizarea fiecrei instruciuni ntr-un numr de etape, fiecare
etap fiind executat de o unitate funcional a procesorului (segment pipeline)
Segmentele pipeline S0, S1, , Sd-1 sunt conectate ntre ele, formnd o
conduct (pipe) de execuie a fiecrei instruciuni
Segmentele pipeline tipice:
extragerea (F fetch )
decodarea (D decode)
execuia operaiei (E execute)
scrierea rezultatului (W write-back)

n acelai moment de timp, mai multe instruciuni (maximum d) se afl n diferite


stadii de execuie n unitile pipeline ale procesorului
Execuia pipeline:
nu reduce timpul de executie al unei instruciuni individuale
dar reduce timpul mediu de execuie a unui numr oarecare (suficient de mare) de
instruciuni, producnd o accelerare de calcul, numit accelerare pipeline (pipeline
speedup)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Tehnica pipeline (2)


Accelerarea pipeline este raportul dintre timpul de execuie a instruciunilor fr
pipeline i timpul de execuie a instruciunilor cu pipeline
Pentru un procesor pipeline cu d segmente pipeline cu durate de execuie egale
cu unitatea de timp:
TS (timpul de execuie secvenial a n instruciuni: TS = n x d
TP (timpul de execuie pipeline a n instruciuni): TP = n + d -1
AP (accelerarea pipeline): AP = TS / TP = n x d / (n + d 1) =~d (dac n >> d)

Accelerarea pipeline este limitat la numrul de segmente pipeline (d)


Exemplu: Intel Pentium 4 are 20 etape pipeline la 2GHz
Timp
I1
I2

I3
I4
I5
I6

Instruciuni

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Procesarea vectorial pipeline


Un procesor sau un calculator vectorial pipeline const dintr-o unitate
de procesare i registre vectoriale i posed instruciuni vectoriale de
operare asupra vectorilor de date
Fie, de exemplu, doi vectori x i y de dimensiune n, i o bucl de calcul:
for (i = 0; i < n; i++)
y[i] = a*x[i] + y[i];

n procesarea vectorial pipeline, aceast bucl se poate nlocui cu o


singur instruciune vectorial: Y = a*X + Y.
Datele vectorilor sunt memorate n registre vectoriale i sunt procesate
succesiv n unitatea de procesare
n acest fel se elimin costul operatiilor de extragere (F) i decodare (D)
repetate la fiecare iteraie
Exemplu:
Execuia a n instruc. cu cte 4 etaje pipeline (F,D,E,W): TS = n(F) + n(D) + n(E)
+ n(W) =4n
Execuia unei instruct. vectoriale pentru n elemente: TV = 1(F) + 1(D) + n(E) +
n(W) = 2(n+1)
TV < TS pentru n > 2
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Procesoare VLIW
ntr-un procesor VLIW (Very Long Instruction Word) o instruciune codeaz mai
multe operaii care se pot executa concurent, pe unitti de prelucrare multiple,
dac nu exist dependene ntre operaii
n acest fel se reduce numrul operaiilor de fetch (F) i decode (D)
Exemplu: arhitectura procesorului Intel IA64 este VLIW

n VLIW dependenele de date sau de resurse se pot rezolva:


Static (naintea execuiei) de ctre compilatoare care planific ordinea de execuie a
operaiilor, astfel nct s respecte dependenele existente ntre operaiile unei
instruciuni lungi
dar nu toate dependenele pot fi cunoscute n timpul compilrii (dependene care apar n
funcie de rezultatul unei instruciuni conditionale)

Dinamic (n cursul execuiei) de hardware specializat, care detecteaz dependenele


i planific corespunztor operaiile instruciunii lungi,
dar atunci crete complexitatea hardware (volumul circuitelor neceasare)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

10

Procesoare superscalare
Un procesor superscalar are mai multe uniti de prelucrare (n general
pipeline) i poate executa mai multe instruciuni n acelasi ciclu (exemplu
procesorul superscalar Sun UltraSPARC)
Ex.: execuie superscalar pe dou ci pentru adunarea a 4 numere:
1. load R1, @1000
3. add R1, @1004
5. add R1, R2
6. store R1, @2000

2. load R2, @1008


4. add R2, @100C

Dou sau mai multe instruciuni se pot executa simultan (dac nu exist
dependene ntre ele (ex: nu sunt dependene ntre instr. 1 i 2 sau 3 i 4)
Dependenele se rezolv static (la compilare), dar nu pot fi detectate toate
dependenele, sau dinamic (n cursul execuiei), de hardware specializat, dar
aceasta crete volumul circuitelor
Cicli instruciune
0

IF

ID

OF

load R1, @1000

IF

ID

OF

load R2, @1008

IF

ID

OF

add R1, @1004

IF

ID

OF

add R2, @100C

IF

ID

NA

IF

ID

NA

Prof. Felicia Ionescu

IF: Instruction Fetch


ID: Instruction Decode
OF: Operand Fetch
E: Instruction Execute
WB: Write-Back
NA: No Action

add R1, R2
WB

Calcul paralel - Cap. 1

store R1, @2000

11

Procesoare multi-core
Un procesor multicore conine mai multe procesoare interne (cores) n acelai
chip, care execut secvena de instruciuni (programul)
Schema generic a unui procesor dual-core (dat n figura) conine cte o memorie
cache local pentru fiecare procesor (nivel L1) i o memorie cache partajat de
ambele procesoare (nivel L2)
Exemple: Intel Core Duo E6750, An AMD Athlon X2 6400+ dual-core processor.

Procesoarele multi-core:
omogene (conin uniti de acelai fel)
heterogene (conin uniti diferite)

CPU &
Cache L1

CPU &
Cache L1

Comunicaia ntre cores n interiorul chipului:


prin partajare
Cache L2 &
Interfaa memorie

cache partajat
memorie partajat
prin transfer de mesaje, folosind o reea de
interconectare intern; acestea se mai numesc
SCMP (Single Chip Message Passing)

Memorie

Creterea performanelor unui procesor


multicore este semnificativ dac execut
algoritmi paraleli
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

12

Procesoare SCMP (Single Chip Message Passing)


Procesoarele SCM conin uniti de prelucrare multiple conectate printr-o reea
de interconectare intern
Fiecare unitate de prelucrare este un procesor RISC (Reduced Instruction Set
Chip) cu o unitate ALU (Arithmetic Logic Unit) i o unitate FPU (Floting Point
Unit), memorie local
Procesoarele se conecteaz printr-o reea de conectare; de exemplu reeaua
static gril bidimensional, n care fiecare procesor se conecteaz cu 4 vecini

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

13

Acceleratoare hardware Procesoare GPU


(Graphical Processing Unit)
Procesoarele sau sistemele de calcul pot include acceleratoare - implementeaz
direct n hardware operaii critice, necesare n anumite aplicaii; de exemplu:
Uniti aritmetice cu virgul mobil
Uniti de calcul FFT (Fast Fourier Transform ) incluse n procesoare de semnal
Procesoare grafice pentru accelerarea operaiilor grafice

Actualmente, procesoarele grafice (GPU Graphical Processing Unit)


GPUs - compuse din mai multe (zeci, sute, mii) uniti de prelucrare performante,
folosite nu numai pentru grafic, ci i pentru calcule generale GPGPU (General
Purpose GPU); produse de: Nvidia, Intel, AMD
In fig.: chipul Nvidia GT200: cluster de 10 procesoare (TPC), fiecare cu 3 uniti SM
(Streaming Multiprocesor), alctuite din cte 8 SP (Streaming Procesor)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

14

Evoluia performanelor procesoarelor


Folosind diferite tehnici, viteza de calcul a procesoarelor i a calculatoarelor
secveniale a crescut continuu, de la apariia lor i pn n prezent:
de la ~ 50 operaii n virgula mobila / sec. (50 FLOPS) la calculatorul ENIAC din 1950
pn la valori de 1TFLOPS la procesoarele actuale:
procesorul AMD x86_64 Opteron Quad Core: 8.4 GFLOPS (la 2.1 GHz)
procesorul Intel POLARIS: 1 TFLOPS (la 3.2 GHz).

Un FLOPS (FLoating point Pperaions Per Second) - msur a performanelor


de calcule n virgul mobil; multiplii cei mai folosii ai FLOPS sunt:

MFLOPS (megaFLOPS) = 106 FLOPS;


GFLOPS (gigaFLOPS) = 109 FLOPS;
TFLOPS (teraFLOPS)= 1012 FLOPS;
PFLOPS (petaFLOPS) = 1015 FLOPS;
EFLOPS (exaFLOPS) = 1018 FLOPS.

Reprezentarea performanelor proc. n


funcie de cost arat c:
la nceputul fiecrei curbe (costuri mici),
perf. cresc aprox. linear cu costul
peste un anumit punct, creteri mici ale
perf. necesit creteri mari ale costului
Deci este mai economic utilizarea mai
multor procesoare cu perf. moderate
dect a unui singur procesor cu
performane foarte mari
Prof. Felicia Ionescu

Performane
2000

Calcul paralel - Cap. 1

1990
1980
1970

Cost
15

Calculatoare paralele (1)


Definitie: Un calculator paralel (main paralel) este un calculator care
conine multiple uniti de procesare (procesoare, core) i este capabil s
prelucreze informaia prin manevrarea concurent a datelor, asigurnd, n
general, scderea timpului de execuie a aplicaiilor (accelerare paralel)
Accelerarea paralel (S Speedup) este raportul dintre timpul de execuie secvenial
i timpul de execuie paralel a unei aplicaii

Calculatoarele paralele satisfac cerinele mereu n cretere de putere de calcul,


prin obinerea unor performane pe care un calculator secvenial nu le poate
atinge, datorit limitrilor existente
Calculatoarele paralele cu cele mai mari performane de calcul sunt numite
supercalculatoare n perioada de timp respectiv
Performanele supercalculatoarelor au crescut n permanen:
Ceea ce n deceniile trecute era considerat un supercalculator, este astzi depait de
un simplu PC sau dispozitiv mobil;
Primul supercalculator, ILLIAC IV (Illinois University, 1968), cu 64 de procesoare
specializate de 64 bii la 13 MHz, a atins performanta de 200 MFLOPS (proiectul intial
prevedea 256 de procesoare i performana de 1 GFLOPS);
Actualmente (2012), primele 10 supercalculatoare depesc 10 PFLOPS
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

16

Calculatoare paralele (2)


Din punct de vedre hardware: se pot construi maini paralele cu sute de mii
de noduri de calcul puternice, legate prin reele de interconectare la un pre
relativ sczut
Din punct de vedere software apar numeroase probleme dificile ca:
descompunerea aplicaiilor n sute i mii de pri (task-uri), care s fie executate
concurent;
coordonarea activitatii tuturor task-urilor pentru realizarea unei aplicaii (comunicarea
i sincronizarea ntre task-uri).

n plus, se resimte lipsa de maturitate a instrumentelor soft (limbaje, biblioteci,


sisteme de dezvoltare) necesare pentru calculul paralel, precum i lipsa de
experien a programatorilor n programarea paralel
Clasificri ale calculatoarelor paralele:
Clasificarea n funcie de mecanismul de control (taxonomia Flynn)
Clasificarea n funcie de organizarea spaiului de adres al memoriei
Clasificarea n funcie de granularitate

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

17

1.2 Clasificarea calculatoarelor


dup mecanismul de control
Clasificarea calculatoarelor propus de Michael Flynn (1972), n funcie de
numrul fluxurilor de instruciuni i de date (unice sau multiple):
Calculatoare SISD - cu flux unic de instruciuni i de date (Single Instruction
Stream, Single Data Stream)
Calculatoare MISD - cu fluxuri multiple de instruciuni, flux unic de date
(Multiple Instruction Stream, Single Data Stream)
Calculatoare SIMD - cu flux unic de instruciuni, fluxuri multiple de date (Single
Instruction Stream, Multiple Data Stream)
Calculatoare MIMD - cu fluxuri multiple de instruciuni i de date (Multiple
Instruction Stream, Single Data Stream)

Aceast clasificare este o clasificare foarte general, care nu difereniaz


calculatoare din punct de vedere al structurii
Cu toate acestea, clasificarea (taxonomia) lui Flynn este frecvent utilizat
i aceste clase arhitecturale vor fi analizate n continuare

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

18

Calculatoare SISD
Un calculator SISD const dintr-un procesor (P), (compus din unitatea de
procesare - UP i unitatea de control - UC) i o unitate de memorie (M);
n fiecare pas de calcul, UC lanseaz o instruciune, UP executa acea
instruciune aupra unei date din fluxul de date (FD), obinut din unitatea de
memorie (M) i trimite rezultatul napoi n memorie
Un astfel de calculator este un calculator secvenial, care respect modelul
de execuie introdus de John von Neumann n perioada anilor 1945

Procesor
Unitate de
Control (UC)

Prof. Felicia Ionescu

FI

Unitate de
Procesare (UP)

Calcul paralel - Cap. 1

FD

Unitate de
Memorie (M)

19

Calculatoare MISD
n calculatoarele MISD, exist N uniti de procesare (UP), fiecare primete un
flux de instruciuni (FI) de la propria lui unitate de control (UC), i execut
operaii asupra datelor dintr-un flux unic de date (FD), primit de la o unitate de
memorie (M)
La fiecare ciclu de execuie, fiecare unitate de procesare UPi execut operaii
diferite (n funcie de instruciunea din fluxul FIi pe care o primete de la propria
unitate de control - UCi) asupra aceleiai date (din fluxul de date FD) extrase din
memorie
Arhitecturile MISD (denumite i tablourile sistolice) sunt utilizate pentru aplicaii
specializate
Unitate
de Control (UC0)

FI0

Unitate
de Procesare (UP0)

Unitate
de Control (UC1)

FI1

Unitate
de Procesare (UP1)

Unitate
de Control (UCN-1)

FIN-1

Unitate
de Procesare (UPN-1)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

FD

Unitate
de Memorie (M)

20

Calculatoare SIMD
Un calculator SIMD const dintr-un numr N de uniti de procesare (UPi,
0 i < N ), care opereaz sub controlul unui flux unic de instruciuni (FI)
lansat de o unitate de control global (UC)
Unitatile de procesare lucreaz sincron: la fiecare pas de calcul, fiecare
unitate UPi execut aceeai instruciune (extras din fluxul FI) asupra unei
date diferite, extrase din propriul fluxul de date (FDi)
Calculatoarele SIMD mai sunt cunoscute sub numele de tablouri de
procesoare (processor arrays)
Comunicaiile ntre procesoare se fac prin memorie partajat i/sau reea de
interconectare

Unitate
de Control (UC)

FI

Unitate
de Procesare (UP0)

FD0

Unitate
de Procesare (UP1)

FD1

Unitate
de Procesare (UPN-1)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Memorie
i/sau

FDN-1

Reea de
Interconectare

21

Calculatoare MIMD
Un calculator MIMD const dintr-un numr N de uniti de procesare (UPi
0 i < N), fiecare cu propria lui unitate de control (UCi) i memorie local
Fiecare unitate de procesare UPi execut instruciuni din fluxul de instruciuni FIi
lansat de unitatea de control proprie UCi, asupra datelor din fluxul de date
propriu FDi
In calculatoarele MIMD fiecare un procesor (compus din UC i UP) poate
executa un program diferit de programul executat de celelalte procesoare
Clasa de calculatoare MIMD este cea mai general i cea mai flexibil dintre
toate clasele de calculatoare paralele
Unitate de Control
(UC0)

FI0

Unitate de Procesare
(UP0)

FD0
Memorie

Unitate de Control
(UC 1)

FI1

Unitate de Procesare
(UP1)

FD1

i/sau
Reea de
Interconectare

Unitate de Control
(UC N-1)

Prof. Felicia Ionescu

FIN-1

Unitate de Procesare
(UP N-1)

Calcul paralel - Cap. 1

FDN-1

22

Comparaie SIMD - MIMD


Construcia calculatoarelor SIMD i MIMD
MIMD utilizeaz procesoare de uz general
SIMD utilizeaz procesoare proiectate special, mai compacte -o singur unit. central

Calculatoarele SIMD:
sincronizare automat ntre procesoare la fiecare ciclu de instruciune
execut eficient programe care implic operaii identice asupra unor masive de date,
programe care sunt cunoscute sub numele de programe data paralele

Calculatoarele MIMD:
pot fi folosite pentru rezolvarea oricrui tip de problem, inclusiv cele care prezint
masive de date regulate i operaii identice executate de toate procesoarele n
aceleai momente de timp (programe data-paralele)
dat fiind c procesoarele lucreaz asincron, algoritmii implementai sunt algoritmi
asincroni, care sunt dificil de proiectat, de implementat, de testat i de evaluat.

n evoluia calculatoarelor paralele se observ variaia tendinelor arhitecturale,


n funcie de nivelul de dezvoltare a tehnologiilor microelectronice
n primele faze de dezvoltare (1970 - 1990) s-au realizat mai ales calculatoare SIMD,
mai compacte i mai ieftine pentru acea perioad
n perioada urmtoare (1990 2010) s-au realizat mai ales calculatoare MIMD, care
folosesc procesoare de uz general, ieftine datorit produciei mari
Actualmente (2010-2013) asistm la reluarea arhitecturii SIMD n procesoarele GPU,
(Graphical Processing Unit), incluse n calculatoarele paralele
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

23

1.3 Clasificarea calculatoarelor paralele


dup organizarea memoriei

Din punct de vedere al modului cum comunic procesoarele ntre ele, exista
dou tipuri de arhitecturi paralele:

arhitecturi cu memorie partajat

arhitecturi cu transfer de mesaje (fara memorie partajat)

Arhitecturi cu memorie partajat (strns cuplate tightly coupled):

modelul cu acces uniform la memorie (Uniform Memory Access UMA) (a)

modelul cu acces neuniform la memorie (NonUniform Memory Access NUMA

P0

P1

PN-1

Reea de interconectare

(a)
MP0

Prof. Felicia Ionescu

MP1

Calcul paralel - Cap. 1

MPM-1

24

Modele cu acces neuniform la memorie (NUMA)


Modelul NUMA cu memorie local (nepartajat) i memorie global partajat
P0

ML0

P1

ML1

PN-1

MLN-1

Reea de Interconectare

MGP0

MGP1

MGPM-1

Modelul NUMA cu memorie partajat distribuit


P0

MPD0

P1

MPD1

PN-1

MPDN-1

Reea de Interconectare

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

25

Arhitectura cu transfer de mesaje


Aceast arhitectur const din mai multe noduri conectate printr-o reea de
interconectare
Fiecare nod din reea conine o unitate format din procesor (P) i memorie (M)
local (care nu poate fi accesat de alte procesoare din sistem)
Nu exist memorie partajat, comunicaia se face numai prin transfer de mesaje
Se mai numesc sisteme slab cuplate (loosly coupled)

Reea de Interconectare

P0

P1
M0

Prof. Felicia Ionescu

PN-1
M1

MN-1

Calcul paralel - Cap. 1

26

1.4 Clasificarea calculatoarelor MIMD


Calculatoare MIMD
Puternic cuplate

Slab cuplate

Multiprocesoare
Spaiu unic de adrese al
memoriei partajate

Multiprocesoare
cu memorie partajat
centralizat (UMA)
(SMP Symmetric
Multi-Processor)

Multicalculatoare
Spaii multiple de adrese ale
memoriei i transfer de mesaje

Multiprocesoare
cu memorie partajat
distribuit (NUMA)

Multicalculatoare
cu memorie
centralizat (?)

Multicalculatoare
cu memorie
distribuit

Arhitecturile actuale ale calculatoarelor paralele sunt hibride: MPP (Massively Parallel
Processsing): multicalculatoare n care nodurile sunt compuse din
multiprocesoare (CPU) multicore, n combinaie cu procesoare GPU
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

27

1.5 Granularitatea calculatoarelor paralele


Granularitatea calculatoarelor paralele:
Granularitate mare: numar mic de procesoare puternice; exemplu: Cray Y-MP,
compus din16 procesoare puternice, cu o vitez de procesare de 10 Gflops
Granularitate fina: numar mare de procesoare slabe; de exemplu: Connection
Machin 1 (CM-1) conine 65536 (64k) procesoare de un bit
Granularitate medie: numar mediu de procesoare cu capacitate de procesare
moderata

Valorile care definesc granularitatea (numr de procesoare, viteza de


procesare) variaz (cresc) ncontinuu, odat cu dezvoltarea tehnologic
Diferite aplicaii de calcul paralel sunt adecvate pentru calculatoare paralele cu
diferite valori ale granularitii
Aplicaii cu grad limitat de paralelism nu pot beneficia de un numr foarte mare de
procesoare dintr-un calculator cu granularitate fin, i sunt mai potrivite execuiei pe
calculatoare cu granularitate medie sau grosier
Pentru execuia eficient a programelor paralele trebuie s existe o potrivire
(matching) ntre granularitatea calculatorului paralel i gradul de paralelism al
algoritmului

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

28

1.6 Sisteme paralele i distribuite


Sisteme paralele i distribuite - conin mai multe (posibil sute de mii) procesoare:
Sisteme (calculatoarele) paralele uniti la distante mici (aceeasi incinta), comunica
prin memorie partajata sa prin reea rapida de interconectare cu transfer de mesaje
Sisteme distribuite unitati la distante mari, comunica prin reea de interconectare cu
transfer de mesaje

n general se consider c noiunea de sistem distribuit nglobeaz i pe aceea de


calculator (sistem) paralel i deci sistemele distribuite cuprind:
Calculatoare paralele (multiprocesoare, multicalculatoare, MPP)
Sisteme distribuite bazate pe reele de calculatoare:
Reele LAN (Local Area Network) suport pentru clustere de calculatoare
Retele WAN (Wide Area Network - cum este reeaua Internet) suport pentru sisteme de
calcul distribuit cum sunt sistemul Web, Grid-uri, sisteme Cloud Computing
n nodurile reelei unui sistem distribuit pot fi folosite calculatoare secveniale sau paralele

HPC - High Performance Computing - www.top500.org public lista celor mai


performante 500 de sisteme paralele i distribuite (supercalculatoare), ncepnd
din anul 1993; listele sunt actualizate o dat la 6 luni
n momentul de fa (conform listei top500/noiembrie 2012) supercalculatoarele
se ncadreaz ntr-una din dou clase arhitecturale:
MPP (Massively Parallel Processing) - 17.8 %
Clustere de calculatoare - 82.2 %
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

29

Calcul paralel i distribuit


Calcul (procesare) concurent mai multe sarcini de calcul (task-uri) se
executa concurent pe mai multe procesoare ntr-un sistem paralel sau distribuit:
Calcul paralel (aplicaie paralel) rezolv o problema intens computational,
partiionat n mai multe sarcini de calcul care se execut concurent ntr-un sistem
paralel sau distribuit; comunicaie prin memorie partajata sau transfer de mesaje
Calcul distribuit (aplicaie distribuit) execuia concurent a mai multor programe de
calcul inerent distribuite (plasate) n unitati distincte ale unui sistem distribuit;
comunicatie prin transfer de mesaje

Algoritmi concureni:
Algoritmi paraleli algoritmi care definesc aplicaii paralele
Algoritmi distribuiti - algoritmi care definesc aplicaii distribuite

Programare concurent:
Programare paralel dezvoltarea algoritmilor paraleli
Programare distribuit dezvoltarea algoritmilor distribuii

Convergena (ntreptrunderea) noiunilor paralel-distribuit:


Calculul paralel se poate desfura atat n calculatoare (sisteme) paralele ct i n
sisteme distribuite
Componentele unei aplicatii distribuite pot fi task-uri intens computationale (paralele)
Calculatoare paralele pot fi folosite ca servere n aplicaii distribuite
Se folosete termenul general calcul de inalt performan HPC (High Performance
Computing)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

30

Clustere de calculatoare
Un cluster de calculatoare este compus dintr-un grup de calculatoare
independente, conectate printr-o reea local (LAN Local Area Network) care
poate oferi (n funcie de numrul i capacitatea calculatoarelor conectate)
performante foarte ridicate, pn la nivel de supercalculatoare.
~82 % din supercalculatoarele actuale (2013) sunt clustere
De ex., clusterul Fujitsu cu 705024 procesoare SPARC64 la 2.0 GHz instalat n
Japonia atinge 10510 TFLOPS (10.510 PFLOPS); a fost #1 n lista top500/nov
2011 i #3 n lista top500/nov.2012
Un cluster este un sistem local, n care controlul (proprietatea, administrarea)
aparine unui singur domeniu administrativ (intreprindere, laborator).
Clusterele se pot clasifica n:
Clustere nededicate, compuse din calculatoarele conectate n reea ale unei
ntreprinderi, pe care se pot executa aplicatii individuale (ale celor ce detin aceste
calculatoare) concomitent cu aplicaiile paralele care necesit puterea de calcul a
tuturor, sau a unui mare numr din calculatoarele conectate n reea; sunt primele
care s-au dezvoltat
Clustere dedicate, care sunt clustere special construite, folosite pentru execuia
aplicaiilor paralele, fr utilizatori individuali ai fiecarui calculator din cluster;
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

31

Avantajele clusterelor de calculatoare


Apariia clusterelor:
Determinat de faptul c timpul de calcul al calculatoarelor existente intr-o
ntreprindere este n general utilizat parial (editare de documente, e-mail-uri, sau
dezvoltare de programe)
Resursa de calcul format din timpul de calcul ramas neutilizat al calculatoarelor din
reea poate fi organizat ca un cluster nededicat care s execute aplicaii intens
computaionale

Ulterior s-a trecut la construirea clusterelor dedicate, deosebit de puternice,


care concureaz cu succes calculatoarele paralele (multiprocesoare i
multicalculatoare)
Avantajele clusterelor:
Riscuri de dezvoltare sczute
Costuri sczute, datorit posibiltaii de a folosi calculatoare din productia curenta
(COTS Commodity Of the Shelfs marfa de pe raft)
Suporta arhitecturi heterogene, ceea permite extinderea treptata a sistemului, fara
costuri exagerate n faza initiala (asa cum se intampla la achizitia unui calculator
paralel performant)
Clusterele pot urmri cu usurin progresul tehnologic, fiecare nou calculator
performant achizitionat de ntreprindere poate fi nglobat n cluster.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

32

Arhitectura clusterelor de calculatoare


Componentele clusterelor: hardware i software
Aplicii secveniale
Aplicii
Aplicii secveniale
paralele
Apliciisecveniale
secveniale
Aplicii
Aplicii
secveniale

Medii de programare paralel


Cluster Middleware

PC/Workstation

PC/Workstation

PC/Workstation

Interfata reea

Interfata reea

Interfata reea

Reea de interconectare

Hardware: un cluster este compus din noduri (host-uri) conectate printr-o reea
de comunicaie, fiecare nod este un calculator independent, secvenial sau
paralel:
COP (Cluster of PCs)
COW (Cluster of Workstations)
CLUMP (Cluster of Multiprocessors).
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

33

Componentele hardware ale clusterelor


Procesoarele utilizate n nodurile clusterelor sunt procesoarele din producia
curent a marilor producatori (Intel, Motorola, AMD etc.)
Sistemele de stocare a datelor constau din:
memoria principal RAM (Random Access Memory), cu capaciti ce depasesc n
general 4 GByte/nod);
memorii cache;
memoria secundar, compus din hard-disk-uri de mare capacitate.

Retelele de interconectare utilizate n clustere sunt n general reele dinamice


de mare vitez standardizate:
Gigabit-Ethernet
Infiniband
Myrinet

Fiecare nod se conecteaz la reea prin module de interfa, compuse din plci
de reea (Net. Interface HW) i driverele software de comunicaie aferente
(Comm SW)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

34

Componentele software ale clusterelor


Componentele software ale clusterelor: sisteme de operare, middleware,
biblioteci, toolset-uri de dezvoltare, programe de aplicaii
Sistemele de operare ruleaz n fiecare nod din cluster, asigurnd:
gestiunea resurselor locale ale nodului respectiv
Interfaa cu middleware-ul i aplicaiile din cluster

Sistemele de operare folosite n supercalculatoarele din top500/nov. 2011


(dintre care majoritatea de 83.4% sunt clustere):
Sisteme de operare Linux (91.2% din sisteme, dintre care majoritatea sunt clustere)
Sistemele de operarte Unix sunt folosite ntr-o proporie mult mai mic (6 %)
Sistemele de operare Windows au o utilizare sub 1%

Middleware-ul este un nivel software folosit n sistemele distribuite ca


intermediar ntre sistemele de operare (locale din fiecare nod) i programele de
aplicaii distribuite
n clustere, middleware-ul are, n general, rolul de a asigura o imagine de
sistem unic (Single Sistem Image SSI)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

35

Imagine de sistem unic SSI (Single Sistem Image)


Imaginea de sistem unic (SSI) - asigur transparenta localizarii diferitelor sarcini
i resurse, adic utilizatorul nu trebuie s precizeze sau s cunoasc n ce nod
anume se afla o resurs sau se execut un job
Serviciile oferite de SSI:
Punct unic de intrare (Single Point of Entry) utilizatorul se poate conecta la cluster
ca la un sistem unic, n loc s se conecteze la fiecare calculator n parte
Ierarhie unica de fisiere (Single File Hierarchy) - utilizatorul vede toate fisierele din
cluster intr-o singura ierarhie, cu radacina unic
Un singur punct de management i control (Single Point of Management and
Control) intregul cluster poate fi monitorizat dintr-un singur punct (host)
Spaiu de memorie unic (Single Memory Space) aparena unui spatiu unic de
adrese ale memoriei, construit peste memoriile componente ale nodurilor clusterului
Un singur sistem de gestiune a job-urilor (Single Job Management System) utilizatorul poate lansa un job n orice nod al clusterului n mod transparent
Spatiu unic de I/O (Single I/O Space) fiecare nod poate executa operaii de
intrare/iesire att ctre periferice locale ct i ctre perifericele la distan (remote)
Spatiu unic al proceselor (Single Process Space) procesele au identificatori care
sunt unici n intreg clusterul.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

36

Categorii de middleware n clustere


Categorii de middleware folosite n clustere:
Sistemele middleware de comunicatie, sunt biblioteci de transfer de mesaje cum
sunt MPI (Message Passing Interface) i PVM (Parallel Virtual Machines)
Sisteme middleware de management a resurselor (Resourse Manager) au rolul de a primi cererile de execuie a job-urilor i de a le planifica i executa n
nodurile de calcul; cele mai cunoscute planificatoare pentru clustere sunt: LSF,
TORQUE, Condor, PBS, SGE.
Sisteme middleware de echilibrare a utilizarii resurselor (Workload Manager) permit o planificare avansat a resurselor i a proceselor; cele mai cunoscute
planificatoare avansate sunt Moab i Maui.

Aplicaiile care se pot executa n clustere sunt:


Aplicatii obisnuite (secveniale)
Aplicatii paralele, compuse din mii (sau mult mai multe) task-uri care se execut
coordonat n nodurile clusterului pentru rezolvarea unor probleme intens
computationale
Aplicatii distribuite, care permit colaborarea ntre diferii utilizatori din cluster.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

37

Sisteme Grid
Definitie concisa a Grid-urilor data n lucrarea "The Anatomy of the Grid" (Ian
Foster, Carl Kesselman, Steven Tuecke, 1999):
Grid-ul este o infrastructur distribuit i reconfigurabil, care ofer o
modalitate flexibil i securizat de a coordona partajarea resurselor de calcul a
diverselor colective dinamice formate din persoane i institutii, numite
Organizatii Virtuale (VO).
Analogia cu reelele electrice (power grids), care furnizeaz energie electric
consumatorilor, independent de locul de producere a acesteia (centralele
electrice) prin transportul ei prin reelele de distribuitie
Spre deosebire de Internet, care este unul singur, exista numeroase Grid-uri, ca
organizatii virtuale construite pentru rezolvarea anumitor probleme, n principal
stiintifice, dar i financiare, comerciale etc.
Sistemele Grid permit calculul de nalt performan (HPC) n medii distribuite,
i includ resurse cum sunt:
Calculatoare performante (supercalculatoare), reele de comunicaie
Baze de date
Instrumente stiintifice
Licene software etc.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

38

Sisteme Cloud Computing


Sistemele Cloud Computing sunt sisteme distribuite n care se folosesc servicii
i resurse de calcul externe (remote - la distan) nchiriate (de la furnizori
centre de date), atunci cnd sunt necesare (on-demand computing)
Sistemele distribuite cloud computing sunt rezultatul combinaiei mai multor
tehnologii pre-existente: Internet, virtualizare, servicii.
Virtualizare: emularea uneia sau mai multor staii sau servere pe un singur
calculator fizic
Virtualizarea asigur scalabilitatea, flexibilitatea i reutilizabilitatea resurselor fizice
datorit posibilitii de adaptare a resurselor existente la cerinele unor aplicaii diverse
si expandabile

Sistemele cloud computing se mpart n trei mari categorii:


Software-as-a Service (SaaS) sau Application-as-a-Service (AaaS): aplicaii gzduite
pe servere la distan i accesate de utilizatori distribuii n Internet; utilizatorul nu
cumpr softul, ci pltete pentru utilizarea lui (modelul pay-per-use).
Platform-as-a-Service (PaaS) furnizorul (provider) ofer platforma hardware i
instrumentele software de dezvoltare a unor aplicaii de ctre utilizatori.
Infrastructure-as-a-Service (IaaS) furnizorul ofer resurse de calcul (capacitate de
procesare sau spaiu de stocare), pe care utilizatorii le pot accesa prin Internet.

Furnizori de servicii i resurse cloud computing: Amazon, Google, IBM, Microsoft


Tehnologii de dezvoltare a aplicaiilor n cloud: Hadoop, Microsoft Dryad etc.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

39

1.7 Scurt istoric al dezvoltarii


sistemelor paralele i distribuite
Mai multe etape (generaii) n dezvoltarea calculatoarelor paralele i a
sistemelor distribuite, prezentate n tabelul urmator:
Generaia

Caracteristici

Cteva exemple

Prototipuri de
cercetare timpurii

Procesoare special proiectate

Illiac, PASM, MPP, NYU Ultra,


HEP, TRAC, Cosmic Cube, RP3

Primele generaii
de calculatoare
paralele

Procesoare specializate sau din


productia curent; retele de
interconectare statice sau
dinamice nestandardizate
(proprietar)

Sequent Balance, Sequent


Symmetry
NCUBE-1, NCUBE-2
CM-1, CM-2, CM-5
iPSC/1, iPSC/2

Generatia actual
de sisteme
paralele i
distribuite

Sisteme paralele i distribuite cu


performante ridicate (folosind
numar mare de procesoare
puternice i reele de
interconectare rapide)

Sisteme MPP: IBM BlueGene,


Cray XT5-HE
Clustere: HP, IBM, Fujitsu
Sisteme Grid
Cloud Computing

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

40

Primele calculatoare paralele


Prototipuri de calculatoare paralele destinate cercetrii:
pentru studierea problemelor de baz teoretice ale calculului paralel;
nu au avut succes comercial, dar au pregtit sisteme paralele i distribuite actuale.
Exemplu: primul calculator paralel, Illiac IV:
finalizat n anul 1968 la Universitatea din Illinois, proiectat pentru 256 proc. specializate;
avea att funcionare sincron (mod SIMD), ct i functionare asincron (mod MIMD);
proiectat pentru performane de 1 GFLOPS, nu a atins decat 200 MFLOPS (cu 64 procesoare)

Primele generaii de calculatoare paralele (ultimele decenii ale secolului trecut):


Cuprind att calculatoare SIMD cat i MIMD, produse de mari companii (IBM, Sun, HP
etc.) i disponibile comercial; exemplu: firma TMC Thinking Machines Corpoation
Danny Hillis a produs:
Calculatoarele CM1 (Connection Machine 1, 1985), CM2- (1887)
arhitectura SIMD compus din 64 k elemente de procesoare pe 1 bit, respectiv 4 biti,
reea de interconectare hipercub;
Performana atins: 5 GFLOPS, respectiv 20 GFLOPS.

Calculatorul CM5 (1993):


calculator cu functionare dual, MIMD i SIMD
compus din 16 384 noduri de procesare (procesoare SPARC, apoi SuperSPARC)
trei reele de interconectare (reeaua de date, de control i de diagnoz)
performana posibil n configuraia maxim: 2 TFLOPS
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

41

Generaia actual de sisteme paralele i distribuite (1)


Lista primelor 5 supercalculatoare din top500/noiembrie 2012

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

42

Generaia actual de sisteme paralele i distribuite (2)


Performanele supercalculatoarelor (conform statisticilor top500):
#1 din 1993 (CM-5 cu 1024 procesoare SPARC-32) avea performana maxim de 60
GFLOPS
#1 din noiembrie 2012 (sistem Cray XK7 cu 560640 core procesoare Opteron) are
performana maxim de 17.59 PFLOPS

Productorii de supercalculatoare sunt marii producatori de calculatoare


comerciale: IBM (~38% n top500/nov.2012), HP, Cray, SGI, Dell, Fujitsu etc.
Numrul de procesoare n supercalculatoare (top500/iunie 2011):
Granularitate mare: 1k-2k procesoare/sistem (0.4 %)
Granularitate fina: > 128k procesoare/sistem (2 %)
Granularitate medie: 4k-128k procesoare/sistem (97.6%), dintre care majoritatea sunt
cu 4k-8k (39%) sau 8k-16k (44.6%)

Sisteme de operare (lista top500/nov.2012): Linux (~ 94% din lista top500/nov.


2013), celelalte sisteme (Unix, Windows) cu procente mult mai mici
Reele de interconectare n sistemele paralele i distribuite actuale:
n calculatoarele paralele: reele nestandardizate (custom, proprietary)
n clustere de calculatoare: reele standardizate (Ethernet, Infiniband, Myrinet)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

43

Generaia actual de sisteme paralele i distribuite (3)


Procesoarele folosite n MPP i clustere: CPU, GPU
CPU (n general multicore): Intel (Xeon ~ 44% in top500/nov.2013), AMD (Opteron),
Motorola (Power), SPARC64 etc.
GPU - compuse din sute sau mii de uniti de prelucrare (cores) se folosesc ca i coprocesoare pentru accelerarea operaiilor paralele n combinaie cu CPUs

Cel mai mare productor de GPU: Nvidia, cu modelele GeForce, Quadro, Tesla
GPU - model SIMT Single Instruction Multiple Thread), asem. sistem SIMD
Fiecare core din GPU poate executa thread-uri multiple prin time-sharing, cu
control hardware, echivalent SO hardware
Supercomputerul Titan Cray XK7
conine perechi de procesoare CPU
(Opteron) i GPU (Nvidia Tesla)
Programarea GPU - biblioteci speciale
CUDA (Compute Unified Device
Architecture) - pentru procesoare
Nvidia
OpenCL (Open Computing Language)
platform pentru programare paralel
pe arhitecturi heterogene (CPU, GPU,
DSP)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

44

1.8 Reele de interconectare n calculatoarele paralele


n multiprocesoare, multicalculatoare i MPP se folosesc reele statice i dinamice
nestandardizate (custom, proprietary ~ 17% n lista top500/nov. 2013)
Reelele statice (directe): constau din conexiuni fixe (invariante n timp), punct-la-punct,
ntre noduri; folosite n general n calculatoare cu transfer de mesaje;
Reelele dinamice (indirecte): constau din comutatoare (switch-uri) i conexiuni (linkuri), care asigur ci de comunicatie n mod dinamic n funcie de pozitia comutatoarelor

Carecteristicile generale ale reelelor de interconectare:


Lrgimea canalului (channel width, b): numrul de bii care pot fi transferai simultan
pe canal; este dat de numrul de fire fizice din care este compus un link.
Viteza canalului (channel rate, v - msurat n numr de bii / secund): viteza cu care
se pot transmite datele pe un fir fizic al unui canal (link).
Lrgimea de band a canalului (channel bandwidth, w): viteza cu care se pot
transmite datele pe un canal de comunicaie; w = v * b [ bii / secunda]
Lrgimea biseciei (bisection width, B): numrul minim de link-uri care trebuie tiate
pentru a mpri reeaua n dou pri aproximativ egale.
Lrgimea de band a biseciei (bisection bandwidth, W): viteza de comunicaie a
datelor ntre dou jumti ale reelei: W = B * w [ bii / secunda]
Costul (C): se pot folosi mai multe criterii: numrul de comutatoare, numrul de module,
numrul de link-uri, volumul (spatiul ocupat de reea).
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

45

Reele de interconectare dinamice


Reele dinamice: crossbar, magistral (bus), multietaj.
Reeaua crossbar (reea de comutatoare): conecteaz p proc. cu n blocuri de memorie
Este neblocant: o conexiune intre 2 elemente nu interzice alt conexiune (intre alte
perechi de procesoare-module de memorie)
are nr total de comut. (costul) C = (p * n); dac p = n, C = (n2), deci este
nescalabil punct de vedere al costului
Este scalabil ca performane: B = n, W = B x w = n x w = O (n) (w constant)

Este utilizat n multiprocesoare (de ex. Fujitsu VPP-500, Sun Enterprise-1000)


M0

M1

Mn-1

P0
P1
Element de
comutare
Pp-1
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

46

Reeua magistral (bus)


O magistral (bus) este alctuit din fire, conectori i circuite de arbitrare, pentru
transferul datelor ntre procesoare, module de memorie i dispozitive periferice
Realizeaz un singur transfer de date la un moment de timp, ntre surs i destinaie
Este o reea blocanta: dac sunt mai multe cereri simultane de transferuri de date,
logica de arbitrare a magistralei secveneaz n timp transferurile
Performanele sistemului se limiteaz chiar dac numrul de procesoare creste (este
nescalabil ca i performane) deoarece B = 1, W = B x w = O(1) (w constant)
Costul crete proportional cu numrul de module conectate: C = O(n), deci reeaua
magistral este scalabil ca i cost

Reeaua magistral este folosit n multiprocesoare (de ex. IBM RS/6000)


Bloc de
Memorie

Bloc de
Memorie

Subsistem
Intrare/Ieire

Magistrala

Procesor

Prof. Felicia Ionescu

Procesor

Procesor

Calcul paralel - Cap. 1

47

Retele multietaj
Reelele multietaj au o comportare intermediar intre:
reeaua crossbar care este neblocanta i scalabil ca performante, dar nescalabil ca i
cost (performant, dar scump);
reeaua magistral, care este scalabil ca i cost, dar este blocant i nescalabil ca
performane (ieftin, dar performane se limiteaz atunci cnd crete nr de procesoare).
Cost

Crossbar Multietaj

Magistral

Performae
Crossbar

Multietaj
Magistral

Numr de procesoare

Numr de procesoare

Reelele multietaj sunt, n general, parial blocante:


admit mai multe interconexiuni simultane;
exist i interconexiuni care nu pot fi realizate simultan; n acest caz, transferurile de
date sunt distribuite n dou sau mai multe treceri.

Reelele multietaj sunt realizate ca reele custom (de ex. reeaua Omega) sau
standardizate (Ethernet, Infiniband, Myrinet)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

48

Exemplu: reeaua dinamic multietaj Omega


O reea Omega de dimensiune n x n este constituit din:
k = log n etaje, fiecare etaj compus din n/2 comutatoare 2 x 2
fiecare conexiune inter-etaje este o reea de permutare cu intercalare perfect

Din totalul de n! permutri, nn/2 se pot realiza ntr-o singur trecere; toate celelalte
necesit maximum log n treceri; deci reeaua Omega este partial blocant
Exemplu: reea Omega de dimensiune 8 x 8 (n = 8, k = 3)
Intrri
(000) 0
(001) 1
(010) 2
(011) 3
(100) 4
(101) 5

(110) 6
(111) 7

Etaj 2

Etaj 1
0

0
1

c20

2
3

c21

4
5

c22

6
7

Prof. Felicia Ionescu

c23

c10

c11

c12

c13

Etaj 0
0

Calcul paralel - Cap. 1

Ieiri
0

c00

1
2

c01

3
4

c02

c03

0 (000)
1 (001)
2 (010)
3 (011)
4 (100)
5 (101)

6 (110)
7 (111)

49

Reele statice de interconectare


Reelele statice de interconectare utilizeaz conexiuni (link-uri) directe i invariante
n timp ntre noduri
Fiecare nod dintr-o reea static este compus dintr-un procesor, un modul de
memorie local i un circuit de rutare (router)
O reea static se reprezint printr-un graf G = (V, E), unde:
V = {vi | 0 <= i < v, v = | V |} ; V este mulimea nodurilor (vrfurilor)
E = {eij = < vi, vj > | 0 <= i, j < v} ; E este multimea muchiilor (arcelor) ; o muchie ntre dou
noduri exist dac i numai dac cele dou noduri sunt conectate ntre ele

Rutarea datelor ntre nodurile reelelor statice se face prin naintarea mesajelor
de la nodul surs, prin noduri vecine (conectate) pn la nodul destinaie
Caracteristicile specifice ale reelelor statice de interconectare sunt: topologia
reelei, gradul nodurilor, distana dintre dou noduri, diametrul:
Topologia (pattern-ul) de conectare ntre noduri determin toate celelalte caracteristici
Gradul nodurilor (g) - numrul de muchii incidente ntr-un nod s; gradul nodului reflect
numrul porturilor de intrare/ieire, deci complexitatea circuitelor de rutare
Distana ntre dou noduri este calea cea mai scurt (ca nr. de link-uri) ntre acestea
Diametrul reelei (D) este distana maxim ntre dou noduri ale reelei; diametrul
reelei determin timpul de comunicaie n reea; reelele cu diametrul mai mic sunt mai
performante (timpul de transfer al datelor este mai redus)
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

50

Reeaua complet conectat i reeaua stea


Reeaua complet conectat (a):
Rutarea datelor: direct, intre fiecare 2 noduri
Gradul nodurilor: g = n 1
Diametrul reelei: D = 1
Largimea bisectiei: B = (n/2)*(n/2) = n2/4
Cosul (nr.link-uri): C = n * (n-1)/2
Reteaua complet conectat este similara
reelei dinamice crossbar
(a)

Reeaua stea (b):


Rutarea datelor: prin intermediul nodului
central, care produce congestie n
comunicaiile din reeaua stea
Gradul nodurilor: g = 1, n 1
Diametrul reelei: D = 2
Lrgimea biseciei; B = ?
Costul (nr. link-uri): C = n 1
Reeaua stea este similar reelei dinamice
de tip magistral
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

(b)
51

Reelele lan i inel


Reeaua lan (linear array) (a)
Rutarea datelor: prin naintarea repetat ctre un nod vecin pn la destinaie
Gradul nodurilor: g = 1, 2
Diametrul reelei: D = n 1
Lrgimea biseciei: B = 1
Costul (nr. link-uri): C = n 1

Reeaua inel (ring) (b)


Rutarea datelor se face la stnga sau la dreapta; se poate alege drumul cel mai scurt
ntre noduri
Gradul nodurilor: g = 2
Diametrul reelei: D ~= n/2
Largimea biseciei: B = 2
Costul (nr. link-uri): C = n

(a)

Prof. Felicia Ionescu

(b)

Calcul paralel - Cap. 1

52

Reelele gril i tor (1)


Se poate defini o reea gril (grid) sau tor (thorus) cu k dimensiuni
Dac n fiecare dimensiune sunt m noduri, grila (torul) are n total n = mk noduri
Pentru k = 2:
Gril bidimensional (a) extensia n dou dimensiuni a reelei lan
Tor bidimensional (b) extensia n dou dimensiuni a reelei inel

Dac cele dou dimensiuni ale grilei sunt egale, atunci grila se numete gril
ptrat, altfel se numete gril rectangular; la fel pentru tor

(b)

(a)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

53

Reelele gril i tor (2)


Reeaua gril bidimensional cu n noduri (m linii x m coloane, m = n):
Rutarea datelor: prin naintarea datelor dintr-un nod n nodul vecin, mai nti pe una
din dimensiuni (de exemplu, pe linie), apoi pe cealalt dimensiune (pe coloan), pn
se atinge nodul destinaie (rutare XY ordonata dup dimensiuni)
Gradul nodurilor: g = 2, 3, 4
Diametrul reelei: D = 2(m 1)
Lrgimea biseciei: B = m = n
Costul (nr. link-uri): C = 2 m (m 1) = 2(n n)

Reeaua tor bidimensional cu n noduri (m linii x m coloane, m = n)


Rutarea datelor: prin naintarea datelor dintr-un nod n nodul vecin, mai nti pe una
din dimensiuni (de exemplu, pe linie), apoi pe cealalt dimensiune (pe coloan), pn
se atinge nodul destinaie, folosindu-se i link-urile de nchidere ale inelelor
Gradul nodurilor: g = 4
Diametrul reelei : D = m/2 + m/2 = m = n
Lrgimea biseciei : B = 2 m = 2 n
Costul (nr. link-uri): C = 2 m x m = 2n

Reelele gril i tor au fost folosite n construcia multor calculatoare paralele (de
exemplu: Intel Paragon, Cray T3D).
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

54

Reeaua arbore (1)


ntr-o reea arbore k-ar (k-ar tree), fiecare nod este conectat la alte k noduri:
acestea se numesc noduri descendeni sau fii (children);
nodurilor terminale (nodurile frunz leaves) nu au descendeni;
nodul iniial (nodul rdcin root sau printe parent) nu are nici un ascendent

Pentru k = 2 arbore binar; un arbore binar complet cu d niveluri are:


pe nivelul j (unde 0 j < d) 2j noduri;
n total: n = 20 + 21 + + 2d-1 = 2d 1 noduri;
1 nod rdcin, 2d-1 noduri frunz, 2d-1 2 noduri intermediare
numrul de niveluri: d = log (n + 1).
0

Nivel 0

Nivel 1
3

Nivel 2

Nivel 3
7

Prof. Felicia Ionescu

10

11

12

Calcul paralel - Cap. 1

13

14

55

Reeaua arbore (2)


Caracteristicile reelei arbore binar complet:
Rutarea datelor: n reeaua arbore se execut prin naintarea acestora de la nodul
surs n sus, ctre rdcin, pn ce este ntlnit un nod care este printe al
subarborelul care conin nodul surs i nodul destinaie; de la acest nod, datele sunt
rutate n jos, pn la nodul destinaie
Gradul nodurilor: G = 1, 2, 3
Diametrul reelei: D = 2(d 1) = 2(log (n + 1) 1)
Lrgimea biseciei: B = 1
Costul (nr. link-uri): C = 2(2d-1 1) = 2d 2 = n 1 deoarece din 2d 1 noduri (nodul
rdcin i nodurile intermediare) pornesc cte 2 link-uri

Dezavantajul reelei arbore: aglomerare a mesajelor pe link-urile nodurilor din


nivelurile mai apropiate de nodul rdcin (congestie)
nlturarea acestui dezavantaj: arbore gras (fat tree - Leiserson, 1985)
ntr-un arbore gras, lrgimea canalului link-urilor crete de la frunze ctre rdcin
Reeaua arbore gras a fost folosit n construcia multor calculatoare paralele (de
exemplu: calculatorul CM-5)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

56

Reteaua hipercub (1)


Un hipercub d-dimensional const din n = 2d noduri
Fiecare nod are o etichet care se reprezint binar cu d bii
Dou noduri sunt conectate ntre ele printr-un link dac i numai dac etichetelor
lor difer exact ntr-o singur pozitie a unui bit; deci nodurile a i b:
a = ad-1 ad-2 ..ai aj..a1a0
b = bd-1 bd-2 ..bi bj..b1b0
sunt conectate ntre ele pe dimensiunea i (unde 0 i < d ) dac:
ai bi i aj = bj , pentru orice j i i 0 j < d

Construcie recursiv a hipercubului: hipercubul (d + 1)-dimensional se


construiete prin conectarea nodurilor corespondente (cu etichetele egale) a
111
110
dou hipercuburi d-dimensionale
Dim 2
Dim 1
0

10

100
11

Dim 1

Dim 0
00
Hipercub
0-D

Hipercub
1-D

Prof. Felicia Ionescu

101

011

010
01
Hipercub
2-D

Dim 0

000

Calcul paralel - Cap. 1

001
Hipercub
3-D

Dim 0

57

Reeaua hipercub (2)


Constructia
hipercubului
4-dimensional
din 2 hipercuburi
3-dimensionale

0111

0110
0101

0100

0000

1101

1100
0011

0010
0001

1111

1110

0111

1011

1010
1000

1001

Caracteristicile reelei hipercub:


Rutarea datelor: de la nodul s la nodul t se face prin naintarea acestora, succesiv, pe
fiecare din cele d dimensiuni ale hipercubului care au valoarea 1 a bitului corespunztor
din distana Hamming dintre cele dou noduri (H = s xor t)
Gradul nodurilor: G = d = log n
Diametrul: D = d = log n
Largimea bisectiei: din construcia recursiv rezult ca un hipercub d-dim. se poate
mpari n dou hipercuburi (d 1)- dim. prin elim. a 2d-1 muchii; rezulta: B = 2d-1 = n/2
Costul (nr. link-uri): C = (n log n)/2

Reeaua hipercub a fost folosit n multe calculatoare paralele: CM-1, 2, Intel


iPSC, n-Cube, Cray (Cray Interconnect) etc.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

58

1.9 Reele de interconectare n clustere de calculatoare


Reteaua Ethernet: standard IEEE 802.3 (1975, firma Xerox) pentru LAN
Toate variantele folosesc acelai protocol CSMA/CD (Carrier Sense Multiple
Access with Collision Detection) permite interoperarea ntre diferite tehnologii
Este #2 n lista top500/nov. 2012 (37.8 % din sisteme)
Tipuri de reele dinamice realizate n tehnologia Ethernet:
Conexiuni prin cablu coaxial sau cabluri torsadate cu concentrator (hub) reea bus
Conexiuni prin cabluri torsadate cu switch-uri reele dinamice crossbar (1 switch) sau
multietaj (mai multe switch-uri)

Evoluie ca tehnologie i performante:


Ethernet 10 Mbit/sec mai multe variante i standarde:
10Base2 10 Mbit/sec pe cablu coaxial de cupru;
10Base-T: hub sau switch, patru perechi de fire torsadate de tipul Cat.3 sau Cat. 5.

Fast Ethernet - 100 Mbit/sec: perechi de fire torsadate, cu mai multe variante:
100Base-TX: 100Mbit/sec pe dou perechi de fire dintr-un cablu Cat.5.
100Base-FX: 100 Mbit/sec pe fibr optica.

Gigabit Ethernet 1 Gbit/sec: cabluri torsadate cu variantele:


1000BASE-T: 1 Gbit/s pe cablu de cupru Cat.5;
1000BASE-SX: 1 Gbit/s pe fibr optic;

10-Gigabit Ethernet 10 Gbit/sec cu mai multe variante:


10GBASE-SR: proiectata pentru transmisia pe fibr, pana la max. 300 m;
10GBASE-LX4: 240-300m pe fibra multi-node (multiplexare) pana la 10 km pe fibra single-mode
10GBASE-LR i 10GBASE-ER: suport 10km, respectiv 40 km pe fibre single mode.
Prof. Felicia Ionescu

Calcul paralel - Cap. 1

59

Reeaua Infiniband
Standardul Infiniband (2002) pentru comunicaia pe cablu de cupru i fibr, cu
viteze pn la 96 Gigabit/sec
Reeua Infiniband n listele top500/nov.2012:
2003 cu un procent de utilizare de 0.2% (1 sistem din primele 500)
2012 #1 ca numar de sisteme (44.8%)

Reteua Infiniband este o reea dinamica multietaj n care nodurile se conecteza


intre ele prin intermediul unor module de comutatie (switched fabric):
Un nod poate fi un nod de procesare (server host), sau un dispozitiv de I/O;
Un modul de comutatie: compus dintr-unul sau mai multe comutatoare i routere (fig);
Pe 1 fir se pot transmite date cu diferite viteze:
2.5 Gigabit/sec (single data rate SDR);
5 Gigabit/sec (double data rate DDR);
10 Gigabit/sec (quad data rate QDR).

Nod

Nod
Nod

Switch

La o codare 8B/10B se obtin viteze:


2 Gigabit/sec (SDR);
4 Gigabit/sec (DDR);
8 Gigabit/sec (QDR).

Nod

Se pot agrega 1, 4 sau 12 fire ntr-un link


La agregare de 12 fire ntr-un link
viteza maxim de 12 x 8 = 96 Gigabit/sec;
Prof. Felicia Ionescu

Nod

Switch

Switch

Switch

Nod

Calcul paralel - Cap. 1

Nod

Nod

Nod
Nod

Nod

60

Reeaua Myrinet
Reteaua Myrinet (firma Myricom): standard ANSI n anul 1998
Dezvltare remarcabila intre anii 2002-2004, dup care a fost depait de reelele
Gigabit-Ethernet i Infiniband (datorit costurilor ridicate ale dispozitivelor sale)
n anul 2004 reeaua Myrinet era pe primul loc n top500 (37.6% ca nr. de sisteme);
n anul 2012 ea a ajuns la un procent de numai 0.6% ca numar de sisteme din top500

Reteaua Myrinet este o reea dinamic multi-etaj de tip Clos, cu mai multe
niveluri de comutatoare (switch-uri), porturi de conexiune pentru noduri (host-uri)
i conexiuni intre niveluri
Variante: Myrinet Myri-10G (10Gigabit/sec) i Myrinet-2000 (2Gigabit/sec)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

61

S-ar putea să vă placă și