1k likes | 1.18k Views
TIPURI DE MULTICALCULATOARE. PROCESOARE MASIV PARALELE SISTEME CU TRANSPUTERE CLUSTERE DE STATII DE LUCRU. PROCESOARE MASIV PARALELE (MPP). Procesoarele masiv paralele MPP (Massively Parallel Processors ) : - cost foarte mare (de ordinul milioanelor de dolari) ;
E N D
TIPURI DE MULTICALCULATOARE • PROCESOARE MASIV PARALELE • SISTEME CU TRANSPUTERE • CLUSTERE DE STATII DE LUCRU
PROCESOARE MASIV PARALELE (MPP) Procesoarele masiv paralele MPP (Massively Parallel Processors) : -cost foarte mare (de ordinul milioanelor de dolari); -utilizari speciale (cercetari ştiinţifice, industrie pentru calcul intensiv, prelucrare a unor baze de date imense); -procesoare standard (Intel Pentium, Sun UltraSparc, DEC Alpha); -reţeaua de interconectare: de firma, foarte performanta, foarte scumpa; -capacitate enorma de I/E; -tolerante la erori (defecte): hardware şi software speciale pentru monitorizarea sistemului, detectând şi recuperând erorile.
Cray T3E -continua linia de supercalculatoare începuta la mijlocul anilor ’60; -max. 2048 de procesoare; -DEC Alpha 21164: -RISC superscalar (4 instrucţiuni / ciclu de ceas); -frecvenţe de 300, 450, 600 MHz; -64 de biţi; -adresele virtuale pe 43 de biţi; -adresele fizice pe 40 de biţi -> 1 TB memorie fizica; -doua niveluri de memorie cache: -nivelul 1: 8 kB pentru date şi 8 kB pentru cod; -nivelul 2: 96 kB de memorie cache date şi cod; -memoria locala RAM maxim 2 GB / procesor => 4 TB de memorie; -procesorul + circuit special “shell” (memoria, procesorul de comunicaţie şi 512 registre E speciale); -reg E: se încarca cu adrese de memorie la distanţa -> citire/scriere cuvinte sau blocuri de memorie la distanţa - nu cu instrucţiuni “load” şi “store”); -coerenţa memoriei: datele citite din memoria la distanţa nu sunt pastrate în cache.
Conectarea nodurilor: -tor 3D duplex (exemplu:sistem cu 512 noduri -> cub de 8x8x8 => fiecare nod având sase legaturi cu alte noduri vecine, rata de transfer 480 MB/s ); -subsistem de I/E de banda foarte larga, bazat pe comutarea de pachete, cu unul sau mai multe inele Giga Ring: pentru comunicaţia între noduri şi cu echipamentele periferice. Tipuri de noduri: -noduri utilizator (nu executa întregul S.O., ci numai un nucleu simplificat); -noduri dedicate S.O. (Unix); -noduri de rezerva: la fiecare 128 de noduri -> un nod de rezerva.
Intel/Sandia Option Red • Departamentele de Apărare şi Energie ale SUA -> program supercalculatoare MPP de 1-100 TFLOPS. • Intel: primul contract la Sandia National Laboratories Option Red (1TFLOPS)! (următoarele două contracte: IBM - Option Blue şi Option White). Sistemul Option Red: -4608 noduri - reţea plasă 3D; -două tipuri de plăci: -plăci Kestrel (noduri de calcul); -plăci Eagle (servicii, disc, reţea şi ca noduri de pornire). => 4536 de noduri de calcul, 32 de noduri de servicii, 32 de noduri disc, 6 noduri reţea şi 2 noduri de pornire.
Placa Kestrel: -două noduri, fiecare cu două procesoare Pentium Pro la 200 MHz; -memorie partajată de 64 MB; -magistrală locală de 64 de biţi; -interfaţă de reţea (NIC) ->modulele NIC legate între ele, dar numai unul este conectat la reţea. Placa Eagle: -două procesoare Pentium Pro şi I/E.
-plăcile interconectate în reţea de tip grilă cu 32x38x2 noduri; -în fiecare: cip pentru dirijare cu şase legături (est, vest nord, sud, celălalt plan şi la o placă Kestrel sau Eagle conectată la punct); -fiecare legătură: 400 MB/s în fiecare sens.
Partiţii (din punct de vedere logic): -nodurile de servicii: maşini universale Unix; -nodurile de calcul: aplicaţiile numerice complexe; -nodurile de I/E: 640 de discuri (>1 TB): -set de noduri de I/E pentru aplicaţii secrete; -set pentru aplicaţii civile (la un moment dat ataşat un singur set); -nodurile sistem: pornirea sistemului.
Sistemele IBM SP • Arhitectura IBM Power • 1990: statiile de lucru superscalare si serverele din familia RISC System/6000 (RS/6000): • -RISC = Reduced Instruction Set Computer; • -Superscalar = unitati multiple in cip (unitati de v.m, v.f., load/store, etc.) care executa simultan instructiuni in fiecare ciclu de ceas; • -POWER = Performance Optimized With Enhanced RISC. • Initial Power1: 25 MHZ, cate o unitate de v.m. si de v.f., performante de 50 MFLOPS.
SP1 =>primul sistem SP (Scalable POWER parallel). Inovatii: -suprafata ocupata redusa: masinile POWER1 puse intr-un singur dulap (rack); -mentenanta redusa: intregul sistem gestionat de administrator de la o singura consola; -comunicatie performanta interprocesor printr-o retea interna de comutatoare; -software Parallel Environment pentru dezvoltarea si rularea de aplicatii paralele (cu memorie distribuita); -SP1 POWER1: 62.5 MHz, 125 MFLOPS.
SP2 => 1993 cu procesoare POWER2.Caracteristici: - cate doua unitati de v.m. si v.f.; -marirea cache-ului de date; -cresterea ratei de transfer memorie – cache; -66.5 MHz, 254 MFLOPS; -set imbunatatit de instructiuni. Imbunatatirile SP2 (pentru o mai buna scalabilitate): -software performant de sistem si de gestiune a sistemului; -imbunatatirea Parallel Environment; -rata crescuta in reteaua de comutatoare.
P2SC => 1996, POWER2 SuperChip (~POWER2), dar cu 160 MHz si dublul performantelor POWER2. PowerPC => 1993, parteneriat IBM, Apple, Motorola. Include majoritatea instructiunilor POWER, in plus instructiuni pentru SMP. Varianta finala 604e. Avantaje: -CPU-uri multiple; -frecventa mai mare de ceas; -cache L2; -memorie marita, discuri, I/E. PowerPC 604e: SMP cu 4 procesoare, 332 MHz => realizarea sistemului ASC Blue-Pacific (cel mai puternic sistem la vremea respectiva).
POWER3 => 1999, fuziune intre POWER2 uniprocesor si PowerPC multiprocesor. Avantaje: -arhitectura pe 64 biti; -frecventa mai mare de ceas; -memorie, cache, disc, I/E marite; -numar mai mare de procesoare. => ASC White (bazat pe POWER3 Nighthawk-2). POWER4 => 2001, blocul de baza: cip cu doua procesoare SMP, 4 cipuri = 1 modul cu 8 procesoare. Se pot combina module pentru masini SMP cu 16, 24, 32 procesoare. Imbunatatiri: -cresterea numarului de procesoare: maxim 32 de procesoare / nod; -frecventa de ceas peste 1 GHz; -cache L2, disc, I/E crescute; -cache L3 partajata intre module.
POWER5 => introdus in 2004; asemanator POWER4, dar cateva imbunatatiri: -maxim 64 procesoare / nod; -ceas 2.5 GHz; -cache L3 mai mare, mai rapid si pe cip; -largime de banda cip-memorie 16 GB/s (4x POWER4); -multithreading (2 thread-uri simultane per procesor); -gestiune de putere dinamica (cipurile neutilizate consuma mai putin si degaja mai putina caldura). Exemplu: ASC Purple.
POWER6 => introdus in 2007
Dezvoltari : -POWERx evolutie in continuare: -2008 POWER7 (in dezvoltare, din aprilie 2006); -2010 POWERn... -BlueGene: arhitectura noua, peste 106 procesoare, fiecare cu 1 GFLOPS => 1 PFLOPS (BlueGene/L de la Lawrence Livermore National Laboratory a atins pentru benchmark Linpack performanta de 280.6 TFLOPS).
Hardware SP Componentele unui sistem SP: -„frames”: o unitate constand dintr-un rack pentru plasarea calculatoarelor, surse, echipamente de racire, comunicatii; -„nodes”: statii de lucru AIX RS/6000 impachetate pentru a fi plasate intr-un frame SP. Nu dispun de display, tastatura; -„switch”: mediul retea interna pentru comunicatie de viteza mare intre noduri. Fiecare frame are o placa de switch-uri pentru interconectarea nodurilor proprii, dar si pentru conectarea la placi de switch-uri ale altor frame-uri; -„switch adapter”: conecteaza fizic fiecare nod la reteaua de switch-uri; -„control workstation” (CWS): este o statie de lucru AIX independenta cu display si tastatura care controleaza intregul sistem.
Frame-urile Un sistem SP compus din unul sau mai multe frame-uri, racire cu aer: -1-16 noduri / frame; Tipuri de noduri: -„thin”: ocupa un slot in frame; -„wide”: ocupa 2 sloturi adiacente orizontale; -„high”: ocupa 2x2 sloturi; -„mixed”.
Nodurile SP Un nod = masina independenta, plasata intr-o cutie, pusa in frame. Fiecare nod are hardware propriu: -I/E, inclusiv discuri; -adaptoare de retea; -memorii (placi si memorii cache); -alimentare si echipament de racire. Exista o copie a S.O. AIX pentru fiecare nod, chiar si pentru nodurile SMP.
Noduri POWER3 -nod = SMP cu 2-16 procesoare; -64 biti; -4 tipuri de noduri POWER3: Winterhawk-1, Winterhawk-2, Nighthawk-1, Nighthawk-2; -frecventa 200-450 MHz; -cache L1: 64 kB date, 32 kB cod; -cache L2: 4 sau 8 MB, cu magistrala proprie; -maxim 64 GB memorie partajata; -magistrale separate de date si adrese; -structura superscalara: 8 unitati de executie: -2 unitati v.m. (FPU); -3 unitati v.f. (FXU); -2 unitati load/store (LS); -unitate de ramificatie; -unitate registru de conditie.
Noduri POWER4 -nod = SMP cu 8-32 procesoare; -64 biti; -frecventa ceas 1-1.9 GHz; -blocul de baza: modul = 4 cipuri cu cate 2 procesoare (8 procesoare) => 4 module formeaza un SMP cu 32 procesoare; - cache L1: 64 kB date, 32 kB instructiuni/procesor; -L2: 1.5 MB/cip; -L3: 32 MB/cip => L2 si L3 partajate de toate cipurile din modul; -rata cip-cip: 35 GB/s; -memorie partajata de maxim 1024 GB/nod; -interfata rapida I/E (magistrala rapida Gxx) de 1.7 TB/s; -superscalar: 2 FPU, 2 FXU, 2 LS, „Branch Resolution Unit”, „Condition Register Unit”.
Noduri POWER5 -dual-core; -maxim 64 procesoare / nod; -arhitectura 64 biti; -superscalar, executie out-of-order, cu unitati functionale multiple (inclusiv doua unitati v.f. si doua unitati v.m.); -ceas 2.5 GHz; -cache: -controller cache si director L3 pe cip; -L1 date 32 KB/procesor, bloc (linie) 128 octeti, set asociativ dim. 4; -L1 cod 64 KB/procesor; -L2 1.9 MB/cip (partajata intre procesoarele duale); -L3 36 MB/cip (partajata intre procesoarele duale); -memorie 1-256 GB; -largime de banda cip-memorie 16 GB/s (4x POWER4); -multithreading (2 thread-uri simultane per procesor) => aceeasi idee la Intel IA32 „hyperthreading”; -gestiune de putere dinamica (cipurile neutilizate consuma mai putin si degaja mai putina caldura).
Comparatie privind organizarea memoriei la POWER4 si POWER5:
-module: -DCM („Dual-chip Module”): un cip dual core si cache L3; -QCM („Quad-chip Module”): 2 cipuri dual core si 2 cache-uri L3; -MCM („Multi-chip Module”): 4 cipuri dual core si 4 cipuri cache L3;
-modulele se pot combina pentru a forma SMP-uri mai mari: -2xMCM => bloc „book” cu 16 SMP-uri; -4x”book” => 64 SMP-uri;
Reteaua de comutatoare -este bidirectionala: oricare conexiune intermediara contine doua canale full-duplex; -interconectare multinivel: pentru sistemele mari (>80 noduri) se adauga switch-uri intermediare; -componentele principale: -placa de comutatoare (o placa / frame) contine 8 cipuri de switch-uri logice, cu 16 cipuri fizice (pentru toleranta la defecte) => formeaza un crossbar 4x4; -adaptorul de comunicatii: pentru fiecare nod un adaptor ocupand un slot de extensie de I/E al nodului, adaptorul cablat la placa de comutatoare in portul corespunzator.
-in functie de utilizare placa de comutatoare: -NSB (“Node Switch Board”): 16 porturi pentru conectarea nodurilor si 16 porturi pentru conectarea la switch-uri din alte frame-uri; -ISB (“Intermediate Switch Board”): toate porturile utilizate pentru conectarea la alte placi de comutatoare Sistem cu 96/128 de noduri
Protocoale de comuncatie la switch-uri -US („User Space Protocol”): performante mai bune; -IP („Internet Protocol”): mai lent, utilizat pentru comunicatii de job-uri care implica sisteme IBM SP multiple. Performantele comunicatiei:
CWS -utilizat de administratorul sistemului pentru monitorizare, intretinere si control; -nu face parte din sistemul SP; -este un RISC System / 6000; -se conecteaza la fiecare frame prin: -linie seriala RS232C; -LAN Ethernet extern; CWS: punct singular de cadere pentru intregul sistem SP => HACWS („High Availibility CWS”), cu doua CWS (primar si backup) !
Software -S.O. AIX (Unix System V); -fiecare nod SP -> copia sa AIX (o singura copie partajata de toate procesoarele SMP ale nodului); -Parallel Environment (IBM)=> mediul de dezvoltare pentru sistemele IBM SP(C/C++ si Fortran); -biblioteci matematice: -ESSL („Engineering Scientific Subroutine Library”); -PESSL („Parallel ESSL”, subset cu partea paralela a bibliotecii); -MASS („Math Acceleration Subsystem”, continand versiunile de mare performanta ale celor mai multe functii intrinseci, cu versiune scalara si versiune vectoriala).
Blue Gene/L Blue Gene = supercalculator masiv paralel bazat pe tehnologia IBM sistem-pe-un-cip (SoC: system-on–a-chip). -configuratie maxima : 65536 noduri biprocesor, performanta de 360 TFLOPS. -tehnologie de integrare de nivel foarte inalt; -experienta altor sisteme de scop special (exemplu: QCDSP – „quantum chromodynamics on digital signal processors”): foarte bun raport performanta/cost pentru un domeniu restrans de probleme.
=> Consum scazut de putere! Eficienta pe unitatea de putere consumata: (albastru=IBM, negru=alte masini SUA, rosu=masini Japonia) Un supercalculator cu procesoare conventionale de 360 Tflops => consuma aproximativ 10-20 MW.
Alt criteriu la proiectare: reteaua de interconectare => scalare eficienta (din p.d.v. al performantei si impachetarii). Reteaua: -mesaje foarte mici (pana la 32 de octeti); -suport hardware pentru operatii colective (broadcast, reducere, etc.) Alt element: sistemul software si monitorizarea => modelul de programare transfer de mesaje, cu memorie distribuita (biblioteca MPI., disponibila in limbajele C, C++ si Fortran). Sistemul destinat in mod special unor aplicatii: -simularea fenomenelor fizice; -prelucrarea datelor in timp real; -analiza offline de date.
Componentele sistemului -maxim 65536 de noduri, fiecare nod = ASIC cu doua procesoare si 9 DDR-SDRAM-uri (maxim 18); -nodurile interconectate prin cinci retele (c. m.importanta: retea tor tridimensionala 64x32x32); -interconectarea este virtual simetrica (un nod poate comunica cu nodurile vecine de pe aceeasi placa sau intr-un alt dulap cu aceeasi rata si aproape aceeasi latenta). -impachetarea sistemului: 512 noduri de prelucrare cu o rata de varf de 5.6 Gflops pe o placa de 20x25 in („midplane”). Cele doua procesoare dintr-un nod pot opera intr-unul din doua moduri: -„virtual node mode”:fiecare procesor isi gestioneaza comunicatiile proprii; -„communication coprocessor mode”:un procesor este dedicat pentru comunicatii si celalalt pentru calcule.
-noduri de I/E pentru comunicatia cu sistemul de fisiere; -calculator host extern (sau chiar doua): pentru sistemul de fisiere, compilare, diagnostic, analiza si service. -gestionarea de utilizatori multipli simultan: partitionarea spatiului masinii astfel incat fiecare utilizator sa dispuna de un set dedicat de noduri pentru aplicatia sa, inclusiv resurse dedicate de retea. Partitionarea: prin cipuri de legatura („link chips”). Cip de legatura= ASIC cu doua functii: -comanda semnalele prin cabluri intre placi, refacand forma semnalelor distorsionate de cablurile lungi; -redirectioneaza semnalele intre diferite porturi => partitionarea sistemului BG/L in mai multe sisteme logice separate.
Link chip: 6 porturi; -porturile A si B conectate direct la nodurile dintr-un midplane; -porturile C, D,E si F conectate la cabluri => se pot conecta oricare doua porturi intre ele.
O posibila partitionare a sistemului: (liniile = cabluri conectand midplane-urile prin intermediul cipurilor de legatura,partitiile utilizatorilor prin culori diferite)
Retelele Blue Gene/L Tor 3D: pentru majoritatea aplicatiilor de transfer de mesaje (comunicarea oricarui nod cu oricare nod). Fiecare nod conectat la sase vecini imediati. Latenta hardware: 100 ns/nod =>in configuratie max. 64K noduri (64x32x32) in cazul c.m.defavorabil se tranziteaza 32+16+16 = 64 noduri => latenta = 6.4 μs.
Retea colectiva ("collective network") se extinde peste intreaga masina BG/L: -un nod -> toate (broadcast) sau un nod -> subset de noduri (latenta<5 μs); -fiecare legatura are o rata de 2.8 Gb/s (atat pentru transmisie cat si pentru receptie). -operatii intregi de reducere (min, max, suma, sau-biti, si-biti, sau-ex-biti) implementate cu hardware aritmetic si logic inclus in reteaua colectiva => cresterea vitezei de executie (intarzieri < de zeci-100 de ori decat in alte supercalculatoare tipice) a aplicatiilor cu operatii colective (exemplu: insumare globala).