CP_Cap1_Arhitecturi_pentru_calculul_paralel.pdf

61
Calcul paralel Calcul paralel Curs – Anul IV Specializarea Ingineria Informației (INF) Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Prof. Felicia Ionescu

Transcript of CP_Cap1_Arhitecturi_pentru_calculul_paralel.pdf

  • Calcul paralelCalcul paralel

    Curs Anul IV Specializarea Ingineria Informaiei (INF)

    Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

    Prof. Felicia Ionescu

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 2

    Capitolul 1Capitolul 1-- Arhitecturi pentru calculul paralelArhitecturi pentru calculul paralel1.1 Introducere1.2 Clasificarea calculatoarelor dup mecanismul de control (clasificarea Flynn) 1.3 Clasificarea calculatoarelor paralele dup organizarea memoriei

    1.3.1 Arhitecturi cu memorie partajata1.3.2 Arhitecturi cu transfer de mesaje

    1.4 Clasificarea calculatoarelor MIMD1.5 Granularitatea calculatoarelor paralele1.6 Sisteme paralele i distribuite

    1.6.1 Clustere de calculatoare1.6.2 Sisteme Grid1.6.3 Sisteme Cloud Computing

    1.7 Scurt istoric al dezvoltarii sistemelor paralele i distribuite1.7.1 Prototipuri de calculatoare paralele destinate cercetrii1.7.2 Primele generaii de calculatoare paralele1.7.3 Generaia actual de sisteme paralele i distribuite

    1.8 Reele de interconectare n calculatoarele paralele1.8.1 Reele dinamice de interconectare1.8.2 Reele statice de interconectare

    1.9 Reele de interconectare n clustere de calculatoare1.9.1 Reteaua Gigabit Ethernet1.9.2 Reteaua Infiniband1.9.3 Reteaua Myrinet

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 3

    1.1 Introducere1.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 4

    CreCreterea performanterea performanelor calculatoarelor secvenelor calculatoarelor secvenialeiale

    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

    Processor Memorie

    Memorie

    Memorie

    Memorii ntreesute

    Cache Memorie

    Memorie

    Memorie

    Processor

    Memorii cache

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 5

    CreCreterea vitezei de operare a procesoarelorterea 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 6

    Introducerea paralelismuluiIntroducerea paralelismului n interiorul proceson interiorul procesoarelorarelor 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 7

    Tehnica pipeline (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 8

    Tehnica pipeline (2)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

    TimpF D E W

    F D E W

    F D E W

    F D E W

    F D E W

    F D E W

    I1

    I2

    I3

    I4

    I6

    I5

    Instruciuni

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 9

    Procesarea vectorialProcesarea vectorial pipelinepipeline 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 10

    Procesoare VLIWProcesoare 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 11

    Procesoare superscalareProcesoare 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 2. load R2, @1008 3. add R1, @1004 4. add R2, @100C 5. add R1, R26. store R1, @2000

    Dou sau mai multe instruciuni se pot executa simultan (dac nu existdependene 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 instruciune0 2 4 6 8

    load R1, @1000load R2, @1008

    add R1, @1004add R2, @100C

    add R1, R2

    IF ID OF

    IF ID OF

    IF ID OF E

    IF ID OF E

    IF ID NA E

    IF ID NA WB

    IF: Instruction FetchID: Instruction DecodeOF: Operand FetchE: Instruction ExecuteWB: Write-BackNA: No Action

    store R1, @2000

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 12

    Procesoare multiProcesoare multi--corecore 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)

    Comunicaia ntre cores n interiorul chipului: prin partajare

    cache partajat memorie partajat

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

    Creterea performanelor unui procesor multicore este semnificativ dac executalgoritmi paraleli

    CPU &Cache L1

    CPU &Cache L1

    Cache L2 &Interfaa memorie

    Memorie

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 13

    Procesoare SCMP (Single Chip Message Passing)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 reeauastatic gril bidimensional, n care fiecare procesor se conecteaz cu 4 vecini

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 14

    Acceleratoare hardwareAcceleratoare hardware Procesoare GPU Procesoare GPU (Graphical Processing Unit)(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 15

    EvoluEvoluia performania performaneleloror procesoarelor 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

    2000

    19901980

    1970

    Performane

    Cost

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 16

    Calculatoare paralele (1)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 intialprevedea 256 de procesoare i performana de 1 GFLOPS);

    Actualmente (2012), primele 10 supercalculatoare depesc 10 PFLOPS

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 17

    Calculatoare paralele (2)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 18

    1.2 1.2 Clasificarea calculatoarelorClasificarea calculatoarelor dup mecanismul de control 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 19

    Calculatoare SISDCalculatoare 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

    FDFIUnitate deControl (UC)

    Unitate de Memorie (M)

    Unitate deProcesare (UP)

    Procesor

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 20

    Calculatoare MISDCalculatoare 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 executoperaii 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

    FI1

    FI0

    FD Unitate de Memorie (M)

    Unitate de Procesare (UP0)

    Unitate de Control (UC0)

    Unitate de Control (UC1)

    Unitate de Procesare (UP1)

    FIN-1Unitate de Control (UCN-1)

    Unitate de Procesare (UPN-1)

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 21

    Calculatoare SIMDCalculatoare 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 deprocesoare (processor arrays)

    Comunicaiile ntre procesoare se fac prin memorie partajat i/sau reea de interconectare

    FDN-1

    FD1

    FD0

    FIUnitate de Control (UC)

    Unitate de Procesare (UP0)

    Unitate de Procesare (UPN-1)

    Unitate de Procesare (UP1)

    Memorie

    i/sau

    Reea de Interconectare

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 22

    Calculatoare MIMDCalculatoare 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

    FI0 Unitate de Procesare (UP0)

    Unitate de Control (UC0)

    FD0

    FI1Unitate de Control (UC 1)

    Unitate de Procesare (UP1)

    FD1

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

    Unitate de Procesare (UP N-1)

    FDN-1

    Memorie

    i/sau

    Reea de Interconectare

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 23

    ComparaComparaie SIMD ie SIMD -- MIMDMIMD 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 24

    1.3 Clasificarea calculatoarelor paralele1.3 Clasificarea calculatoarelor paraleledupdup organizarea memorieiorganizarea 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

    MP0 MP1 MPM-1

    (a)

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 25

    Modele cu acces neuniform la memorie (NUMA)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 MGPM-1MGP1

    Modelul NUMA cu memorie partajat distribuitP0 MPD0 P1 MPD1 PN-1 MPDN-1

    Reea de Interconectare

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 26

    ArhitecturArhitecturaa cu transfer de mesajecu 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 M0

    P1M1

    PN-1MN-1

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 27

    1.4 1.4 Clasificarea calculatoarelor MIMDClasificarea calculatoarelor MIMDCalculatoare MIMD

    MultiprocesoareSpaiu unic de adrese al

    memoriei partajate

    MulticalculatoareSpaii multiple de adrese ale

    memoriei i transfer de mesaje

    Multiprocesoarecu memorie partajatcentralizat (UMA)(SMP Symmetric Multi-Processor)

    Multiprocesoarecu memorie partajatdistribuit (NUMA)

    Multicalculatoarecu memorie

    distribuit

    Multicalculatoarecu memorie

    centralizat (?)

    Slab cuplatePuternic cuplate

    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 28

    1.1.55 Granularitatea calculatoarelor paraleleGranularitatea 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 29

    1.1.66 Sisteme paralele Sisteme paralele i distribuitei 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 30

    Calcul paralel Calcul paralel i distribuiti 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 31

    Clustere de calculatoareClustere 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 32

    Avantajele clusterelor de calculatoareAvantajele 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 33

    Arhitectura clusterelor de calculatoareArhitectura clusterelor de calculatoare Componentele clusterelor: hardware i software

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

    Reea de interconectare

    PC/Workstation

    Interfata reea

    PC/Workstation

    Interfata reea

    PC/Workstation

    Interfata reea

    Cluster Middleware

    Aplicii secvenialeAplicii secvenialeAplicii secveniale Medii de programare paralel

    Aplicii secvenialeAplicii secvenialeAplicii paralele

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 34

    Componentele hardware ale clusterelorComponentele 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 35

    Componentele software ale clusterelorComponentele 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 36

    Imagine de sistem unicImagine de sistem unic SSI (Single Sistem Image)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 37

    Categorii de middleware Categorii de middleware n clusteren 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 38

    Sisteme Grid 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 electricconsumatorilor, 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 39

    Sisteme Sisteme Cloud ComputingCloud 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 40

    1.1.77 Scurt istoric al dezvoltarii Scurt istoric al dezvoltarii sistemelor paralele sistemelor paralele i distribuitei 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 SymmetryNCUBE-1, NCUBE-2CM-1, CM-2, CM-5iPSC/1, iPSC/2

    Generatia actualde 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, FujitsuSisteme GridCloud Computing

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 41

    Primele calculatoare paralelePrimele 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 42

    GeneraGeneraia actualia actual de sisteme paralele de sisteme paralele i distribuite i distribuite ((11))Lista primelor 5 supercalculatoare din top500/noiembrie 2012

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 43

    GeneraGeneraia actualia actual de sisteme paralele de sisteme paralele i distribuite i distribuite ((22)) 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 44

    GeneraGeneraia actualia actual de sisteme paralele de sisteme paralele i distribuite i distribuite ((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 uniti de prelucrare (cores) se folosesc ca i co-procesoare 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 45

    1.1.88 ReReele de interconectare ele de interconectare n calculatoarele paralelen 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 (link-

    uri), 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 46

    ReReele de interconectare dinamiceele 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)

    Element de comutare

    Pp-1

    P0

    P1

    M1M0 Mn-1

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 47

    ReReeua magistraleua magistral (bus)(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

    Magistrala

    Procesor Procesor Procesor

    Bloc de Memorie

    SubsistemIntrare/Ieire

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 48

    Retele multietaj 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).

    Crossbar Multietaj MagistralCost

    Numr de procesoare

    Magistral

    Multietaj

    Crossbar

    Performae

    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 49

    Exemplu: Exemplu: rereeauaeaua dinamicdinamic multietaj Omegamultietaj 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)Etaj 1Etaj 2 Etaj 0

    76

    5

    4

    3

    2

    10

    76

    5

    4

    3

    2

    10

    7 (111)6 (110)

    5 (101)

    4 (100)

    3 (011)

    2 (010)

    1 (001)0 (000)

    (111) 7(110) 6

    (101) 5

    (100) 4

    (011) 3

    (010) 2

    (001) 1(000) 0 c20

    c21

    c22

    c23

    Intrri Ieiri

    c10

    c11

    c12

    c13

    c00

    c01

    c02

    c037 6

    5

    4

    3

    2

    1 0

    7 6

    5

    4

    3

    2

    1 0

    7 6

    5

    4

    3

    2

    1 0

    7 6

    5

    4

    3

    2

    1 0

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 50

    ReReeleele statice de interconectarestatice 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 | 0

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 51

    ReReeaua complet conectateaua complet conectat i rei reeaua steaeaua 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

    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

    (a)

    (b)

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 52

    ReReelele lanelele lan i ineli 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

    (b)(a)

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 53

    ReReelele grilelele gril i tor (1)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

    (a) (b)

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 54

    ReReelele grilelele gril i tor (2)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).

    n

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 55

    ReReeaua arbore (1)eaua 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).

    Nivel 313 14121110987

    6543

    21

    0Nivel 0

    Nivel 1

    Nivel 2

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 56

    ReReeaua arbore (2)eaua 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 57

    Reteaua hipercub (1)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..a1a0b = bd-1 bd-2 ..bi bj..b1b0sunt 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 dou hipercuburi d-dimensionale

    00

    10

    01

    11

    Hipercub0-D

    0 1

    Hipercub1-D

    Hipercub2-D

    010

    001

    101

    000

    100

    011

    111110

    Hipercub3-D

    Dim 0

    Dim 1

    Dim 2

    Dim 0

    Dim 1

    Dim 0

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 58

    ReReeaua hipercub (2)eaua hipercub (2)

    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.

    0010

    0101

    0000

    0100

    0011

    01110110

    1010

    1001

    11011100

    11111110

    0001 1000

    0111

    1011

    Constructia hipercubului 4-dimensional din 2 hipercuburi 3-dimensionale

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 59

    1.9 1.9 ReReele de interconectare ele de interconectare n clustere de calculatoaren clustere de calculatoareReteaua 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 60

    ReReeaua Infiniband eaua 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).

    La o codare 8B/10B se obtin viteze: 2 Gigabit/sec (SDR); 4 Gigabit/sec (DDR); 8 Gigabit/sec (QDR).

    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;

    Nod

    Switch

    Switch Switch

    Switch

    Nod

    Nod

    Nod

    Nod

    Nod

    Nod

    Nod

    Nod

    Nod

    Nod

  • Prof. Felicia Ionescu Calcul paralel - Cap. 1 61

    ReReeaua Myrineteaua 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)

    Capitolul 1- Arhitecturi pentru calculul paralel1.1 IntroducereCreterea performanelor calculatoarelor secvenialeCreterea vitezei de operare a procesoarelor Introducerea paralelismului n interiorul procesoarelorTehnica pipeline (1)Tehnica pipeline (2)Procesarea vectorial pipelineProcesoare VLIWProcesoare superscalareProcesoare multi-coreProcesoare SCMP (Single Chip Message Passing)Acceleratoare hardware Procesoare GPU (Graphical Processing Unit)Evoluia performanelor procesoarelor Calculatoare paralele (1)Calculatoare paralele (2)1.2 Clasificarea calculatoarelor dup mecanismul de controlCalculatoare SISDCalculatoare MISDCalculatoare SIMDCalculatoare MIMDComparaie SIMD - MIMD1.3 Clasificarea calculatoarelor paraleledup organizarea memorieiModele cu acces neuniform la memorie (NUMA)Arhitectura cu transfer de mesaje 1.4 Clasificarea calculatoarelor MIMD1.5 Granularitatea calculatoarelor paralele1.6 Sisteme paralele i distribuiteCalcul paralel i distribuitClustere de calculatoareAvantajele clusterelor de calculatoareArhitectura clusterelor de calculatoareComponentele hardware ale clusterelorComponentele software ale clusterelorImagine de sistem unic SSI (Single Sistem Image)Categorii de middleware n clustereSisteme Grid Sisteme Cloud Computing 1.7 Scurt istoric al dezvoltarii sistemelor paralele i distribuitePrimele calculatoare paraleleGeneraia actual de sisteme paralele i distribuite (1)Generaia actual de sisteme paralele i distribuite (2)Generaia actual de sisteme paralele i distribuite (3)1.8 Reele de interconectare n calculatoarele paraleleReele de interconectare dinamiceReeua magistral (bus)Retele multietaj Exemplu: reeaua dinamic multietaj OmegaReele statice de interconectareReeaua complet conectat i reeaua steaReelele lan i inelReelele gril i tor (1)Reelele gril i tor (2)Reeaua arbore (1)Reeaua arbore (2)Reteaua hipercub (1)Reeaua hipercub (2)1.9 Reele de interconectare n clustere de calculatoareReeaua Infiniband Reeaua Myrinet