Sunteți pe pagina 1din 61

CalculCalcul paralelparalel

Curs – Anul IV Specializarea Ingineria Informației (INF)

Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei

Prof. Felicia Ionescu

CapitolulCapitolul 11-- ArhitecturiArhitecturi pentrupentru calcululcalculul paralelparalel

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 cercetării

1.7.2 Primele generații de calculatoare paralele

1.7.3 Generația actuală de sisteme paralele și distribuite

1.8 Rețele de interconectare în calculatoarele paralele

1.8.1 Rețele dinamice de interconectare

1.8.2 Rețele statice de interconectare

1.9 Rețele 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

2

1.11.1 IntroducereIntroducere

Există numeroase aplicații cu cerințe 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, modelări macro-economice etc.

Pentru astfel de aplicatii calculatoarele “secventiale” (tradiționale) nu au performanțe suficiente si sunt necesare calculatoare paralele, constând din multiple procesoare, care oferă performanțe de calcul ridicate

Calculatoarele secvenţiale:

sunt bazate pe modelul von Neumann (1945);

constau dintr-o unitate de prelucrare (procesor), o unitate de memorie (M) și un canal de comunicaţie;

Creșterea performanțelor calculatoarelor secvențiale se obține prin:

Creșterea vitezei de operare a memoriei și a vitezei de transfer a datelor între procesor şi memorie

Creșterea performanțelor procesoarelor prin:

Creșterea vitezei de operare a procesoarelor

Introducerea paralelismului în interiorul procesoarelor

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

3

CreCreșștereaterea performanperformanțțelorelor calculatoarelorcalculatoarelor secvensecvențțialeiale

Creșterea vitezei de operare a memoriei și a vitezei de transfer a datelor intre procesor și memorie:

Memorii intrețesute (crește banda de comunicație) Memorii cache (scade latența de comunicație)

Processor

Processor Memorie
Processor Memorie
Processor Memorie

Memorie

Processor Memorie

Memorie

Arhitectura von Neumann

Memorie Processor
Memorie
Processor

Memorie

Memorii întrețesute

Memorie Cache Memorie Processor Memorie
Memorie
Cache
Memorie
Processor
Memorie

Memorii cache

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

4

CreCreșștereaterea vitezeivitezei dede operareoperare aa procesoarelorprocesoarelor

Creșterea vitezei de operare a procesoarelor:

Creșterea frecvenței ceasului procesorului (clock rate)

Introducerea paralelismului în interiorul procesorului

Creșterea frecvenței ceasului procesorului -> cresterea IPS (Instructions Per Second): numărul de operații cu numere întregi (operații neștiintifice) pe secundă. Multipli: kIPS = 10 3 IPS și MIPS = 10 6 IPS.

IPS executate de procesoare a crescut în permanență, prin cresterea frecvenței 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.

Frecvența de ceas nu poate creşte la infinit, datorită limitării fizice fundamentale, prin care viteza de propagare a semnalelor în interiorul chipului este limitată la valoarea vitezei luminii în vid (3x10 8 m/s)

De aceea, pentru creșterea mai puternică a performanțelor procesoarelor se adoptă diferite soluții arhitecturale din ce în ce mai complexe, în principal prin introducerea paralelismului în interiorul procesoarelor

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

5

IntroducereaIntroducerea paralelismuluiparalelismului îînn interiorulinteriorul procesoprocesoarelorarelor

Introducerea paralelismului (concurenței) în interiorul procesoarelor (paralelism implicit): mai multe căi de date, mai multe etaje de prelucrare

Ca urmare crește complexitatea circuitelor VLSI ale procesoarelor

Cresterea complexității (număr 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 evoluția în viitor a complexității 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

6

TehnicaTehnica pipelinepipeline (1)(1)

Tehnica pipeline: divizarea fiecărei instrucţiuni într-un număr de etape, fiecare etapă fiind executată de o unitate funcţională a procesorului (segment pipeline)

Segmentele pipeline S 0 , S 1 , …, S d-1 sunt conectate între ele, formând o conductă (pipe) de execuţie a fiecărei instrucţiuni

Segmentele pipeline tipice:

extragerea (F – fetch )

decodarea (D – decode)

execuţia operaţiei (E – execute)

scrierea rezultatului (W – write-back)

În acelaşi moment de timp, mai multe instrucţiuni (maximum d) se află în diferite stadii de execuţie în unităţile pipeline ale procesorului

Execuţia pipeline:

nu reduce timpul de executie al unei instrucțiuni individuale

dar reduce timpul mediu de execuţie a unui număr oarecare (suficient de mare) de instrucţiuni, producând o accelerare de calcul, numită accelerare pipeline (pipeline speedup)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

7

TehnicaTehnica pipelinepipeline (2)(2)

Accelerarea pipeline este raportul dintre timpul de execuţie a instrucţiunilor fără pipeline şi timpul de execuţie a instrucţiunilor cu pipeline

Pentru un procesor pipeline cu d segmente pipeline cu durate de execuţie egale cu unitatea de timp:

T S (timpul de execuţie secvenţială a n instrucţiuni: T S = n x d

T P (timpul de execuţie pipeline a n instrucţiuni): T P = n + d -1

A P (accelerarea pipeline): A P = T S / T P = n x d / (n + d – 1) =~d (dacă n >> d)

Accelerarea pipeline este limitată la numărul de segmente pipeline (d)

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

Timp I F D E W 1 I F D E W 2 I F
Timp
I
F
D
E
W
1
I
F
D
E
W
2
I
F
D
E
W
3
I
F
D
E
W
4
I
F
D
E
W
5
I
F
D
E
W
6
Instrucţiuni

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

8

ProcesareaProcesarea vectorialvectorialăă pipelinepipeline

Un procesor sau un calculator vectorial pipeline constă dintr-o unitate de procesare și registre vectoriale și posedă instrucţiuni 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ă instrucţiune 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 iterație Exemplu:

Execuția a n instrucț. cu câte 4 etaje pipeline (F,D,E,W): T S = n(F) + n(D) + n(E) + n(W) =4n Execuția unei instruct. vectoriale pentru n elemente: T V = 1(F) + 1(D) + n(E) + n(W) = 2(n+1) T V < T S pentru n > 2

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

9

ProcesoareProcesoare VLIWVLIW

Într-un procesor VLIW (Very Long Instruction Word) o instrucțiune codează mai multe operații care se pot executa concurent, pe unităti de prelucrare multiple, dacă nu există dependențe între operații

În acest fel se reduce numărul operațiilor de fetch (F) și decode (D)

Exemplu: arhitectura procesorului Intel IA64 este VLIW

În VLIW dependențele de date sau de resurse se pot rezolva:

Static (înaintea execuției) de către compilatoare care planifică ordinea de execuție a operațiilor, astfel încât să respecte dependențele existente între operațiile unei instrucțiuni lungi

dar nu toate dependențele pot fi cunoscute în timpul compilării (dependențe care apar în funcție de rezultatul unei instrucțiuni conditionale)

Dinamic (în cursul execuției) de hardware specializat, care detectează dependențele și planifică corespunzător operațiile instrucțiunii lungi,

dar atunci crește complexitatea hardware (volumul circuitelor neceasare)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

10

ProcesoareProcesoare superscalaresuperscalare

Un procesor superscalar are mai multe unități de prelucrare (în general pipeline) și poate executa mai multe instrucțiuni în acelasi ciclu (exemplu procesorul superscalar Sun UltraSPARC)

Ex.: execuție superscalară pe două căi pentru adunarea a 4 numere:

 

1.

load R1, @1000

2. load R2, @1008

3.

add R1, @1004

4. add R2, @100C

5.

add R1, R2

6.

store R1, @2000

Două sau mai multe instrucțiuni se pot executa simultan (dacă nu există

dependențe între ele (ex: nu sunt dependențe între instr. 1 și 2 sau 3 și 4) Dependențele se rezolvă static (la compilare), dar nu pot fi detectate toate dependențele, sau dinamic (în cursul execuției), de hardware specializat, dar aceasta crește volumul circuitelor

Cicli instrucțiune

0

2

4

6

8

circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000
circuitelor Cicli instruc ț iune 0 2 4 6 8 IF ID OF load R1, @1000

IF

ID

OF

load R1, @1000

 

IF

ID

OF

load R2, @1008

 

IF

ID

OF

E

add R1, @1004

IF

ID

OF

E

add R2, @100C

 

IF

ID

NA

E

add R1, R2

 

IF

ID

NA

WB

IF: Instruction Fetch ID: Instruction Decode OF: Operand Fetch E: Instruction Execute

WB: Write-Back NA: No Action

store R1, @2000

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

11

ProcesoareProcesoare multimulti--corecore

Un procesor multicore conține mai multe procesoare interne (cores) în același chip, care execută secvența de instrucțiuni (programul)

Schema generică a unui procesor dual-core (dată în figura) conține câte 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 (conțin unități de același fel)

heterogene (conțin unități diferite)

Comunicația între cores în interiorul chipului:

prin partajare

cache partajat

memorie partajată

prin transfer de mesaje, folosind o rețea de interconectare internă; acestea se mai numesc SCMP (Single Chip Message Passing)

Creșterea performanțelor unui procesor multicore este semnificativă dacă execută algoritmi paraleli

CPU & Cache L1
CPU &
Cache L1
CPU & Cache L1
CPU &
Cache L1

Cache L2 & Interfața memorie

Memorie

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

12

ProcesoareProcesoare SCMPSCMP (Single(Single ChipChip MessageMessage Passing)Passing)

Procesoarele SCM conțin unități de prelucrare multiple conectate printr-o rețea

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 rețea de conectare; de exemplu rețeaua statică grilă bidimensională, în care fiecare procesor se conectează cu 4 vecini

ă , în care fiecare procesor se conecteaz ă cu 4 vecini Prof. Felicia Ionescu Calcul

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

13

AcceleratoareAcceleratoare hardwarehardware ProcesoareProcesoare GPUGPU (Graphical(Graphical ProcessingProcessing Unit)Unit)

Procesoarele sau sistemele de calcul pot include acceleratoare - implementează direct în hardware operații critice, necesare în anumite aplicații; de exemplu:

Unități aritmetice cu virgulă mobilă Unități de calcul FFT (Fast Fourier Transform ) – incluse în procesoare de semnal Procesoare grafice – pentru accelerarea operațiilor grafice

Actualmente, procesoarele grafice (GPU – Graphical Processing Unit)

GPUs - compuse din mai multe (zeci, sute, mii) unități 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 unități SM (Streaming Multiprocesor), alcătuite din câte 8 SP (Streaming Procesor)

Multiprocesor), alc ă tuite din câte 8 SP (Streaming Procesor) Prof. Felicia Ionescu Calcul paralel -

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

14

EvoluEvoluțțiaia performanperformanțțeleloror procesoarelorprocesoarelor

Folosind diferite tehnici, viteza de calcul a procesoarelor şi a calculatoarelor secvenţiale a crescut continuu, de la apariţia lor şi până în prezent:

de la ~ 50 operații în virgula mobila / sec. (50 FLOPS) la calculatorul ENIAC din 1950 până 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 Pperațions Per Second) - măsură a performanțelor de calcule în virgulă mobilă; multiplii cei mai folosiți ai FLOPS sunt:

MFLOPS (megaFLOPS) = 10 6 FLOPS; GFLOPS (gigaFLOPS) = 10 9 FLOPS; TFLOPS (teraFLOPS)= 10 12 FLOPS; PFLOPS (petaFLOPS) = 10 15 FLOPS; EFLOPS (exaFLOPS) = 10 18 FLOPS.

Reprezentarea performanţelor proc. în funcţie de cost arată că:

la începutul fiecărei curbe (costuri mici), perf. cresc aprox. linear cu costul peste un anumit punct, creşteri mici ale perf. necesită creşteri mari ale costului Deci este mai economic utilizarea mai multor procesoare cu perf. moderate decât a unui singur procesor cu performanțe foarte mari

Performanţe 2000 1990 1980 1970 Cost
Performanţe
2000
1990
1980
1970
Cost

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

15

CalculatoareCalculatoare paraleleparalele (1)(1)

Definitie: Un calculator paralel (maşină paralelă) este un calculator care conţine multiple unități de procesare (procesoare, core) și este capabil să prelucreze informaţia prin manevrarea concurentă a datelor, asigurând, în general, scăderea timpului de execuție a aplicațiilor (accelerare paralelă)

Accelerarea paralelă (S Speedup) este raportul dintre timpul de execuție secvențială și timpul de execuție paralelă a unei aplicații

Calculatoarele paralele satisfac cerinţele mereu în creştere de putere de calcul, prin obţinerea unor performanţe pe care un calculator “secvenţial” nu le poate atinge, datorită limitărilor existente

Calculatoarele paralele cu cele mai mari performanțe de calcul sunt numite “supercalculatoare” în perioada de timp respectivă

Performanțele supercalculatoarelor au crescut în permanență:

Ceea ce în deceniile trecute era considerat un supercalculator, este astăzi depașit de un simplu PC sau dispozitiv mobil;

Primul supercalculator, ILLIAC –IV (Illinois University, 1968), cu 64 de procesoare specializate de 64 biți la 13 MHz, a atins performanta de 200 MFLOPS (proiectul intial prevedea 256 de procesoare și performanța de 1 GFLOPS);

Actualmente (2012), primele 10 supercalculatoare depășesc 10 PFLOPS

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

16

CalculatoareCalculatoare paraleleparalele (2)(2)

Din punct de vedre hardware: se pot construi maşini paralele cu sute de mii de noduri de calcul puternice, legate prin rețele de interconectare la un preţ relativ scăzut

Din punct de vedere software apar numeroase probleme dificile ca:

descompunerea aplicaţiilor în sute şi mii de părţi (task-uri), care să fie executate concurent;

coordonarea activitatii tuturor task-urilor pentru realizarea unei aplicații (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ă

Clasificări ale calculatoarelor paralele:

Clasificarea în funcție de mecanismul de control (taxonomia Flynn)

Clasificarea în funcție de organizarea spaţiului de adresă al memoriei

Clasificarea în funcție de granularitate

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

17

1.21.2 ClasificareaClasificarea calculatoarelorcalculatoarelor dupdupăă mecanismulmecanismul dede controlcontrol

Clasificarea calculatoarelor propusă de Michael Flynn (1972), în funcţie de numărul fluxurilor de instrucțiuni și de date (unice sau multiple):

Calculatoare SISD - cu flux unic de instrucţiuni şi de date (Single Instruction Stream, Single Data Stream)

Calculatoare MISD - cu fluxuri multiple de instrucţiuni, flux unic de date (Multiple Instruction Stream, Single Data Stream)

Calculatoare SIMD - cu flux unic de instrucţiuni, fluxuri multiple de date (Single Instruction Stream, Multiple Data Stream)

Calculatoare MIMD - cu fluxuri multiple de instrucţiuni şi de date (Multiple Instruction Stream, Single Data Stream)

Această clasificare este o clasificare foarte generală, care nu diferenţiază 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

CalculatoareCalculatoare SISDSISD

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 instrucţiune, UP executa acea instrucțiune aupra unei date din fluxul de date (FD), obţinut din unitatea de memorie (M) și trimite rezultatul înapoi în memorie

Un astfel de calculator este un calculator secvenţial, care respectă modelul de execuţie introdus de John von Neumann în perioada anilor 1945

Procesor

Unitate de Control (UC)

Unitate de

Procesare (UP)

FI

Procesor Unitate de Control (UC) Unitate de Procesare (UP) FI

FD

de Control (UC) Unitate de Procesare (UP) FI FD Prof. Felicia Ionescu Calcul paralel - Cap.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

Unitate de

Memorie (M)

19

CalculatoareCalculatoare MISDMISD

În calculatoarele MISD, există N unităţi de procesare (UP), fiecare primește un flux de instrucțiuni (FI) de la propria lui unitate de control (UC), și execută operații asupra datelor dintr-un flux unic de date (FD), primit de la o unitate de memorie (M)

La fiecare ciclu de execuție, fiecare unitate de procesare UP

diferite (în funcţie de instrucţiunea din fluxul FI

unitate de control - UC i ) asupra aceleiași date (din fluxul de date FD) extrase din

memorie Arhitecturile MISD (denumite și tablourile sistolice) sunt utilizate pentru aplicaţii specializate

i

execută operații

i

pe care o primeşte de la propria

Unitate de Control (UC 0 )

Unitate de Control (UC 1 )

Unitate de Control (UC N - 1 )
Unitate de Control (UC N - 1 )
Unitate de Control (UC N - 1 )

Unitate de Control (UC N-1 )

Unitate de Procesare (UP 0 )

Unitate de Procesare (UP 1 )

Unitate de Procesare (UP N - 1 )
Unitate de Procesare (UP N - 1 )
Unitate de Procesare (UP N - 1 )

Unitate de Procesare (UP N-1 )

FI 0

(UP 1 ) Unitate de Procesare (UP N - 1 ) FI 0 FI 1 FD
(UP 1 ) Unitate de Procesare (UP N - 1 ) FI 0 FI 1 FD
(UP 1 ) Unitate de Procesare (UP N - 1 ) FI 0 FI 1 FD

FI 1

1 ) Unitate de Procesare (UP N - 1 ) FI 0 FI 1 FD F

FD

) Unitate de Procesare (UP N - 1 ) FI 0 FI 1 FD F I

FI N-1

de Procesare (UP N - 1 ) FI 0 FI 1 FD F I N -1

Unitate de Memorie (M)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

20

CalculatoareCalculatoare SIMDSIMD

Un calculator SIMD constă dintr-un număr N de unităţi de procesare (UP i , 0 i < N ), care operează sub controlul unui flux unic de instrucţiuni (FI) lansat de o unitate de control global (UC)

Unitatile de procesare lucrează sincron: la fiecare pas de calcul, fiecare unitate UP i execută aceeaşi instrucţiune (extrasă din fluxul FI) asupra unei date diferite, extrase din propriul fluxul de date (FD i )

Calculatoarele SIMD mai sunt cunoscute sub numele de tablouri de procesoare (processor arrays)

Comunicaţiile între procesoare se fac prin memorie partajată și/sau reţea de interconectare

Unitate de Control (UC)

Prof. Felicia Ionescu

Unitate

de Procesare (UP 0 )

Unitate

de Procesare (UP 1 )

Unitate

de Procesare (UP N-1 )

FD 0

(UP 1 ) Unitate de Procesare (UP N - 1 ) FD 0 Memorie ș i/sau

Memorie

și/sau

Rețea de

Interconectare

N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1
N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1
N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1

FD 1

N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1

FI

N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1

FD N-1

N - 1 ) FD 0 Memorie ș i/sau Re ț ea de Interconectare FD 1

Calcul paralel - Cap. 1

21

CalculatoareCalculatoare MIMDMIMD

Un calculator MIMD constă dintr-un număr N de unităţi de procesare (UP i

0 i < N), fiecare cu propria lui unitate de control (UC i ) şi memorie locală Fiecare unitate de procesare UP i execută instrucțiuni din fluxul de instrucţiuni FI i

lansat de unitatea de control proprie UC i , asupra datelor din fluxul de date propriu FD i 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 (UC 0 )

Unitate de Control (UC 1 )

FI 0

Control (UC 0 ) Unitate de Control (UC 1 ) FI 0 Unitate de Procesare (UP

Unitate de Procesare (UP 0 )

Unitate de Procesare (UP 1 )

Memorie

și/sau

Rețea de Interconectare

FD

0

) Memorie ș i/sau Re ț ea de Interconectare FD 0 FI 1 FD 1 F

FI 1

Memorie ș i/sau Re ț ea de Interconectare FD 0 FI 1 FD 1 F I

FD

1

ș i/sau Re ț ea de Interconectare FD 0 FI 1 FD 1 F I N
ș i/sau Re ț ea de Interconectare FD 0 FI 1 FD 1 F I N

FI N-1

Unitate de Control (UC N-1 )

Unitate de Procesare (UP N-1 )

FD N-1

(UC N - 1 ) Unitate de Procesare (UP N - 1 ) F D N
(UC N - 1 ) Unitate de Procesare (UP N - 1 ) F D N

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

22

ComparaComparațțieie SIMDSIMD -- MIMDMIMD

Construcția 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 instrucţiune execută eficient programe care implică operaţii identice asupra unor masive de date, programe care sunt cunoscute sub numele de “programe data – paralele”

Calculatoarele MIMD:

pot fi folosite pentru rezolvarea oricărui tip de problemă, inclusiv cele care prezintă masive de date regulate şi operaţii identice executate de toate procesoarele în aceleaşi momente de timp (programe data-paralele) dat fiind că procesoarele lucrează asincron, algoritmii implementaţi sunt algoritmi asincroni, care sunt dificil de proiectat, de implementat, de testat şi de evaluat.

În evoluția calculatoarelor paralele se observă variația tendințelor arhitecturale, în funcție 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 următoare (1990 – 2010) s-au realizat mai ales calculatoare MIMD, care folosesc procesoare de uz general, ieftine datorită producției mari Actualmente (2010-2013) asistăm la reluarea arhitecturii SIMD în procesoarele GPU, (Graphical Processing Unit), incluse în calculatoarele paralele

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

23

1.31.3 ClasificareaClasificarea calculatoarelorcalculatoarelor paraleleparalele dupdupăă organizareaorganizarea memorieimemoriei

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ă (strâns cuplate – tightly coupled):

 

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

modelul cu acces neuniform la memorie (NonUniform Memory Access – NUMA

(a)

P 0
P 0
P 1
P 1

P N-1

Reţea de interconectare

MP 0
MP 0
MP 1
MP 1

MP M-1

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

24

ModeleModele cucu accesacces neuniformneuniform lala memoriememorie (NUMA)(NUMA)

Modelul NUMA cu memorie locală (nepartajată) şi memorie globală partajată

P ML 0 ML 1 0 P 1
P
ML 0
ML 1
0
P 1
) ş i memorie global ă partajat ă P ML 0 ML 1 0 P 1
) ş i memorie global ă partajat ă P ML 0 ML 1 0 P 1

P N- 1

ML N- 1
ML N- 1
ă partajat ă P ML 0 ML 1 0 P 1 P N - 1 ML
ă partajat ă P ML 0 ML 1 0 P 1 P N - 1 ML

Reţea de Interconectare

MGP 0
MGP 0
MGP 1
MGP 1

MGP M-1

Modelul NUMA cu memorie partajată distribuită

MPD 0 MPD 1 P 0 P 1 MPD N-1 P N-1 Reţea de Interconectare
MPD 0
MPD 1
P 0
P 1
MPD N-1
P N-1
Reţea de Interconectare

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

25

ArhitecturArhitecturaa cucu transfertransfer dede mesajemesaje

Această arhitectură constă din mai multe noduri conectate printr-o rețea de

interconectare Fiecare nod din rețea conține o unitate formată din procesor (P) și memorie (M)

locală (care nu poate fi accesată de alte procesoare din sistem) Nu există memorie partajată, comunicația se face numai prin transfer de mesaje

Se mai numesc sisteme slab cuplate (loosly coupled)

Reţea de Interconectare P 0 P 1 P N-1 M 0 M 1 M N-1
Reţea de Interconectare
P 0
P 1
P N-1
M 0
M 1
M N-1

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

26

1.41.4 ClasificareaClasificarea calculatoarelorcalculatoarelor MIMDMIMD

Calculatoare MIMD

calculatoarelor calculatoarelor MIMD MIMD Calculatoare MIMD Puternic cuplate Slab cuplate Multiprocesoare Spa ţ iu

Puternic cuplate

Slab cuplate

Multiprocesoare Spaţiu unic de adrese al memoriei partajate

Spa ţ iu unic de adrese al memoriei partajate Multiprocesoare cu memorie partajat ă centralizat ă
Spa ţ iu unic de adrese al memoriei partajate Multiprocesoare cu memorie partajat ă centralizat ă

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

Multiprocesoare cu memorie partajată distribuită (NUMA)

Multicalculatoare Spaţii multiple de adrese ale memoriei şi transfer de mesaje

ii multiple de adrese ale memoriei ş i transfer de mesaje Multicalculatoare cu memorie centralizat ă

Multicalculatoare cu memorie centralizată (?)

de mesaje Multicalculatoare cu memorie centralizat ă (?) Multicalculatoare cu memorie distribuit ă Arhitecturile

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 combinație cu procesoare GPU

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

27

1.1.55 GranularitateaGranularitatea calculatoarelorcalculatoarelor paraleleparalele

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) conţine 65536 (64k) procesoare de un bit

Granularitate medie: numar mediu de procesoare cu capacitate de procesare “moderata”

Valorile care definesc granularitatea (număr de procesoare, viteza de procesare) variază (cresc) încontinuu, odată cu dezvoltarea tehnologică

Diferite aplicaţii de calcul paralel sunt adecvate pentru calculatoare paralele cu diferite valori ale granularităţii

Aplicaţii cu grad limitat de paralelism nu pot beneficia de un număr foarte mare de procesoare dintr-un calculator cu granularitate fină, şi sunt mai potrivite execuţiei pe calculatoare cu granularitate medie sau grosieră

Pentru execuția 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.1.66 SistemeSisteme paraleleparalele șșii distribuitedistribuite

Sisteme paralele și distribuite - conțin mai multe (posibil sute de mii) procesoare:

Sisteme (calculatoarele) paralele – unități la distante mici (aceeasi incinta), comunica prin memorie partajata sa prin rețea rapida de interconectare cu transfer de mesaje Sisteme distribuite – unitati la distante mari, comunica prin rețea de interconectare cu transfer de mesaje

În general se consideră că noţiunea 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 rețele de calculatoare:

Rețele LAN (Local Area Network) suport pentru clustere de calculatoare Retele WAN (Wide Area Network - cum este rețeaua Internet) suport pentru sisteme de calcul distribuit cum sunt sistemul Web, Grid-uri, sisteme Cloud Computing În nodurile rețelei unui sistem distribuit pot fi folosite calculatoare secvențiale sau paralele

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

performante 500 de sisteme paralele și distribuite (supercalculatoare), începând 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

CalculCalcul paralelparalel șșii distribuitdistribuit

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 (aplicație paralelă) – rezolvă o problema intens computatională, partiționată în mai multe sarcini de calcul care se execută concurent într-un sistem paralel sau distribuit; comunicație prin memorie partajata sau transfer de mesaje Calcul distribuit (aplicație distribuită) – execuția concurentă a mai multor programe de calcul inerent distribuite (plasate) în unitati distincte ale unui sistem distribuit; comunicatie prin transfer de mesaje

Algoritmi concurenți:

Algoritmi paraleli – algoritmi care definesc aplicații paralele Algoritmi distribuiti - algoritmi care definesc aplicații distribuite

Programare concurentă:

Programare paralelă – dezvoltarea algoritmilor paraleli Programare distribuită – dezvoltarea algoritmilor distribuiți

Convergența (întrepătrunderea) noțiunilor paralel-distribuit:

Calculul paralel se poate desfășura atat în calculatoare (sisteme) paralele cât și în sisteme distribuite Componentele unei aplicatii distribuite pot fi task-uri intens computationale (paralele) Calculatoare paralele pot fi folosite ca servere în aplicații distribuite Se folosește termenul general “calcul de inaltă performanță” – HPC (High Performance Computing)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

30

ClustereClustere dede calculatoarecalculatoare

Un cluster de calculatoare este compus dintr-un grup de calculatoare independente, conectate printr-o rețea locală (LAN – Local Area Network) care poate oferi (în funcție de numărul și capacitatea calculatoarelor conectate) performante foarte ridicate, până 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) aparține unui singur domeniu administrativ (intreprindere, laborator).

Clusterele se pot clasifica în:

Clustere nededicate, compuse din calculatoarele conectate în rețea ale unei întreprinderi, pe care se pot executa aplicatii individuale (ale celor ce detin aceste calculatoare) concomitent cu aplicațiile paralele care necesită puterea de calcul a tuturor, sau a unui mare număr din calculatoarele conectate în rețea; sunt primele care s-au dezvoltat

Clustere dedicate, care sunt clustere special construite, folosite pentru execuția aplicațiilor paralele, fără utilizatori individuali ai fiecarui calculator din cluster;

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

31

AvantajeleAvantajele clusterelorclusterelor dede calculatoarecalculatoare

Apariția clusterelor:

Determinată de faptul că timpul de calcul al calculatoarelor existente intr-o întreprindere este în general utilizat parțial (editare de documente, e-mail-uri, sau dezvoltare de programe)

Resursa de calcul formată din timpul de calcul ramas neutilizat al calculatoarelor din rețea poate fi organizată ca un cluster nededicat care să execute aplicații intens computaționale

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 scăzute

Costuri scăzute, datorită posibiltații 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 urmări cu usurință progresul tehnologic, fiecare nou calculator performant achizitionat de întreprindere poate fi înglobat în cluster.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

32

ArhitecturaArhitectura clusterelorclusterelor dede calculatoarecalculatoare

Componentele clusterelor: hardware și software Aplicții secvențiale Aplicții secvențiale Aplicții paralele
Componentele clusterelor: hardware și software
Aplicții secvențiale
Aplicții secvențiale
Aplicții paralele
Aplicții secvențiale
Aplicții secvențiale
Medii de programare paralelă
Aplicții secvențiale
Cluster Middleware
PC/Workstation
PC/Workstation
PC/Workstation
Interfata rețea
Interfata rețea
Interfata rețea
Rețea de interconectare

Hardware: un cluster este compus din noduri (host-uri) conectate printr-o rețea de comunicație, fiecare nod este un calculator independent, secvențial sau paralel:

COP (Cluster of PCs) COW (Cluster of Workstations) CLUMP (Cluster of Multiprocessors).

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

33

ComponenteleComponentele hardwarehardware aleale clusterelorclusterelor

Procesoarele utilizate în nodurile clusterelor sunt procesoarele din producția curentă a marilor producatori (Intel, Motorola, AMD etc.)

Sistemele de stocare a datelor constau din:

memoria principală RAM (Random Access Memory), cu capacități 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 rețele dinamice de mare viteză standardizate:

Gigabit-Ethernet

Infiniband

Myrinet

Fiecare nod se conectează la rețea prin module de interfață, compuse din plăci de rețea (Net. Interface HW) și driverele software de comunicație aferente (Comm SW)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

34

ComponenteleComponentele softwaresoftware aleale clusterelorclusterelor

Componentele software ale clusterelor: sisteme de operare, middleware, biblioteci, toolset-uri de dezvoltare, programe de aplicații

Sistemele de operare rulează în fiecare nod din cluster, asigurând:

gestiunea resurselor locale ale nodului respectiv Interfața cu middleware-ul și aplicațiile 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 proporție 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 aplicații 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

ImagineImagine dede sistemsistem unicunicSSISSI (Single(Single SistemSistem Image)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)

Spațiu de memorie unic (Single Memory Space) – aparența 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 operații de intrare/iesire atât către periferice locale cât și către 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

CategoriiCategorii dede middlewaremiddleware îînn clustereclustere

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 execuție 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.

Aplicațiile care se pot executa în clustere sunt:

Aplicatii „obisnuite” (secvențiale)

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 diferiți utilizatori din cluster.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

37

SistemeSisteme GridGrid

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 rețelele electrice (“power grids”), care furnizează energie electrică consumatorilor, independent de locul de producere a acesteia (centralele electrice) prin transportul ei prin rețelele 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), rețele de comunicație Baze de date Instrumente stiintifice Licențe software etc.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

38

SistemeSisteme CloudCloud ComputingComputing

Sistemele “Cloud Computing” sunt sisteme distribuite în care se folosesc servicii

Virtualizarea asigură scalabilitatea, flexibilitatea și reutilizabilitatea resurselor fizice

și resurse de calcul “externe” (remote - la distanță) închiriate (de la furnizori – centre de date), atunci când sunt necesare (“on-demand computing”) Sistemele distribuite cloud computing sunt rezultatul combinației mai multor

tehnologii pre-existente: Internet, virtualizare, servicii. Virtualizare: emularea uneia sau mai multor stații sau servere pe un singur

calculator fizic

datorită posibilității de adaptare a resurselor existente la cerințele unor aplicații diverse si expandabile

Sistemele cloud computing se împart în trei mari categorii:

Software-as-a Service (SaaS) sau Application-as-a-Service (AaaS): aplicații găzduite pe servere la distanță și accesate de utilizatori distribuiți în Internet; utilizatorul nu cumpără softul, ci plătește pentru utilizarea lui (modelul pay-per-use). Platform-as-a-Service (PaaS) – furnizorul (provider) oferă platforma hardware și instrumentele software de dezvoltare a unor aplicații de către utilizatori. Infrastructure-as-a-Service (IaaS) – furnizorul oferă resurse de calcul (capacitate de procesare sau spațiu 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 aplicațiilor în cloud: Hadoop, Microsoft Dryad etc.

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

39

1.1.77 ScurtScurt istoricistoric alal dezvoltariidezvoltarii sistemelorsistemelor paraleleparalele șșii distribuitedistribuite

Mai multe etape (generații) în dezvoltarea calculatoarelor paralele și a sistemelor distribuite, prezentate în tabelul urmator:

Generaţia

Caracteristici

Câteva exemple

Prototipuri de cercetare timpurii

Procesoare special proiectate

Illiac, PASM, MPP, NYU Ultra, HEP, TRAC, Cosmic Cube, RP3

Primele generaţii 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 rețele 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

PrimelePrimele calculatoarecalculatoare paraleleparalele

Prototipuri de calculatoare paralele destinate cercetării:

pentru studierea problemelor de bază teoretice ale calculului paralel;

nu au avut succes comercial, dar au pregătit 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 atât funcţionare sincronă (mod SIMD), cât şi functionare asincronă (mod MIMD); proiectat pentru performanțe de 1 GFLOPS, nu a atins decat 200 MFLOPS (cu 64 procesoare)

Primele generații de calculatoare paralele (ultimele decenii ale secolului trecut):

Cuprind atât 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, rețea de interconectare hipercub; Performanța 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 reţele de interconectare (rețeaua de date, de control și de diagnoză) performanţa posibilă în configuraţia maximă: 2 TFLOPS

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

41

GeneraGenerațțiaia actualactualăă dede sistemesisteme paraleleparalele șșii distribuitedistribuite ((11))

Lista primelor 5 supercalculatoare din top500/noiembrie 2012

( 1 1 ) ) Lista primelor 5 supercalculatoare din top500/noiembrie 2012 Prof. Felicia Ionescu Calcul

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

42

GeneraGenerațțiaia actualactualăă dede sistemesisteme paraleleparalele șșii distribuitedistribuite ((22))

Performanțele supercalculatoarelor (conform statisticilor top500):

#1 din 1993 (CM-5 cu 1024 procesoare SPARC-32) avea performanța maximă de 60 GFLOPS

#1 din noiembrie 2012 (sistem Cray XK7 cu 560640 core – procesoare Opteron) are performanța maximă de 17.59 PFLOPS

Producătorii de supercalculatoare sunt marii producatori de calculatoare comerciale: IBM (~38% în top500/nov.2012), HP, Cray, SGI, Dell, Fujitsu etc.

Numărul 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

Rețele de interconectare în sistemele paralele și distribuite actuale:

În calculatoarele paralele: rețele nestandardizate (custom, proprietary)

În clustere de calculatoare: rețele standardizate (Ethernet, Infiniband, Myrinet)

Prof. Felicia Ionescu

Calcul paralel - Cap. 1

43

GeneraGenerațțiaia actualactualăă dede sistemesisteme paraleleparalele șșii distribuitedistribuite ((33))

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 unități de prelucrare (cores) se folosesc ca și co- procesoare pentru accelerarea operațiilor paralele în combinație cu CPUs