CALCULATOARE ȘI TEHNOLOGIA INFORMA ȚIILOR [607005]
UNIVERSITATEA DIN PETRO ȘANI
FACULTATEA DE INGINERIE MECANIC Ă ȘI
ELECTRIC Ă
CALCULATOARE ȘI TEHNOLOGIA INFORMA ȚIILOR
REFERAT
ARHITECTURI PARALELE
Memoria MIMD
Profesor: Student i, Grupa :
Șef lucr. dr. ing. Ursu Dina , C41
Riur ean Simona Udrea Ioan Silviu,C41
Petro șani
2019
CUPRINS
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ……………… 1
CAPITOLUL I Taxonomia lui Flynn. Arhitectura MIMD ………………………….. ………………………….. …. 2
CAPITOLUL II Arhitectura M icroprocesoarelor MIMD cu M emorie P artajată …………………………. 9
CAPITOLUL II I Exemple C alculatoare cu M emorie P artajată ………………………….. …………………….. 17
CAPITOLUL IV Arhitectura Microp rocesoarelor DM -MIMD cu M emorie D istribuit ă …………….. 19
CAPITOLUL V Aplicații și E xemple ………………………….. ………………………….. ………………………….. …… 26
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ……………. 33
1
Introducere
În timp ce diferite probleme de mare i nteres practic cer tot mai multă putere
de calcul, viteza componentelor calculatoarelor se aprop ie de limitele posibile. Este
în general acceptat și chiar dovedit faptul că aceste probleme necesită calcul
intensiv nu v or putea fi rezolvate prin creșterea continuă a performanț elor
calculatoarelo r individuale, ci singura soluție viabilă este folosirea calculului
paralel.
Programarea paralelă este proiectat ă, în general, pentru tipuri spe ciale d e
arhitecturi ș i de aceea mutarea unui program de pe o arhitectur ă pe alta, necesit ă
rescrierea lui aproape în întregime. Singura cale de a depăși această problemă ș i de
a folosi paralelismul pe scară largă, este de a distruge aceast ă conexiune str ânsă
dintre soft și hard.
Scopul principal al paralelismului este performanța, dar aceasta este în
același timp și sursa principală a dificultăților legate de paralelism. Pentru a
proiecta o soluție paralelă eficientă, programatorul trebuie să descompună
problema într -o colecție de procese care se pot executa simultan, să mapeze
procesele pe procesoarele disponibile, să sincronizeze procesele, să organizeze
comunicațiile etc. Pentru acestea s -au dezvoltat numeroase familii particulare de
algoritmi, limbaje și tehnici de implement are, pentru diferite tipuri de arhitecturi.
Spre deosebire de calculatoarele secven țiale unde modelul de calcul von
Neumann este unic și foarte simplu conceptual, în domeniul calculului paralel
coexist ă mai multe modele de arhitecturi care trebuie avute în vedere. Nevoia de
ordonare a determinat, ulterior, propunerea a numeroase clasific ări, câteva dintre
ele fiind consacrate de c ătre comunitatea stiin țifică. Clasificarea propus ă de
Michael J. Flynn este cea mai popular ă, probabil datorit ă simplităț ii ei.
Taxonomia lui Flynn este o clasificare a arhitecturilor computerizate ,
propusă în anul 1966. Cele patru clase de arhitecturi (SISD, SIMD, MISD, MIMD)
definite de Flynn au la bază numărul de fluxuri de instrucțiuni și de date
concur ente disponibile în arhi tectura microprocesoarelor.
2
CAPITOLUL I
Taxonomia lui Flynn
Calcul paralel reprezintă utilizarea mai multor procesoare sau computere
care lucrează împreună pe o sarcină comună. Paralelismul este utilizat mai ales î n
ultimii ani pentru calcul ul de înaltă performanță ; datorita limita rilor fizice care nu
permit creșterea continuă a frecvenț ei microprocesoarelor , paralelismul fiind
utilizat tot mai intens în arhitectură .
• Fiecare procesor functioneaza pe sectiunea sa de pro blema
• Procesoarele pot face schimb de informatii
Propus ă în 1966, de către Mi chael J. Flynn, Taxonomia lui constituie o
tehnică de exploatare a paralelismului datelor și instrucțiunilor. Conform
Taxonomiei lui Flynn , arhitectura microprocesoarelor a fost împărțită în 4 mari
categorii(clase), care la rândul său, au fost divizate mai apoi în alte subclase.
Fig1.1 : Taxonomia lui Flynn
Sursa :[ https://ro.wikipedia.org/wiki/Taxonomia_lui_Flynn ]
• SISD (dinmenglez ă: Single Instruction stream over a Single Data stream ),
flux unic de instrucțiuni cu un singur flux de date ) – repre zintă calculator ul
tradiți onal al arhitecturii von Neumann, cu un singur procesor care efectuează sec –
vențial o instrucțiune după alta de lucru de la un flux de date. Acest tip include
procesoare transportoare , superscalare și procesoare -VLIW .
• SIMD (din englez ă: Single Instructio n stream, Multiple Data stream , un
singur flux de instrucțiuni, fluxul de date multiple ) – una dintre cele mai
comune tipuri de calculatoare paralele. Această clasă include procesoare vectoriale ,
3
procesoare moderne care execută comenzi de extensii vect oriale; procesoare
matrice. Acesta încarcă o comandă, un set de date care efectuează operația descrisă
în această comandă pe întregul set de date simultan.
SM-SIMD (memoria partajată SIMD ) este o subclasă a SIMD cu
memorie partajată din punctul de vedere al unui programator. Aceasta include
procesoare vectoriale.
• DM-SIMD (memorie distribuită SIMD) este o subclasă a SIMD cu
memorie distribuită din punct de vedere al programatorului. Aceasta include
procesoare matrice – un subspeciu special cu un număr ma re de procesoare.
MISD este în esență o clasă ipotetică, deoarece sistemele reprezentative
reale de acest tip nu există încă. Unii cercetători se referă la acesta ca la un
calculator cu benzi transportoare. Cele de mai sus sunt un exemplu de matrice
sistolică a cărei componență în MISD este contestată în legătură cu reprezentarea
datelor de intrare.
MIMD (dinmenglez ă:mMultiple Instruction mflux, Multiple Datamflux), flu
x de instrucțiuni multiple, flux de date multiple , MIMD ) – reprezintă una din
arhitecturile de calcul paral el menționate în taxonomia lui Flynn. Un computer
MIMD are Nmprocesoare , executând independent fluxuri de N comenzi și
procesând N fluxuri de date . Fiecare procesor funcționează sub fluxul propriu de
comenzi, adică un computer MIMD poate executa programe complet diferite în
paralel. De obicei, include mașini tradiționale multiprocesoare , procesoare multi –
core și multi -threaded , precum și grupuri de calculatoare . Există două tipuri de
Fig1.3 : Arhitectura SISD
Sursa: [https://ro.wikipedia.
org/wiki/SISD ]
Fig1. 4: Arhitectura SIM D
Sursa: [https://ro.wikipedia.
org/wiki/SIMD ]
Fig1. 2: Arhitectura MISD
Sursa: [https://ro.wikipedia.
org/wiki/MISD ]
4
arhitectură MIMD : arhitectura MIMD de memorie partajată și arhitectură MIMD
cu memorie distribuită .
Clasificarea Arhitecturii MIMD
Calcula toarele care folosesc MIMD au un număr de procesoare care
funcționează în mod asincron și independent. La orice moment, diferite procesoare
pot executa instrucțiuni diferite pe secțiuni diferite de date. Arhitecturile MIMD
includ un set de procesoare N -individuale, care sunt cuplate strâns și pot fi folosite
într-o serie de domenii de aplicații, cum ar fi proiectarea asistată de calculator /
fabricarea asistată de calculator , simulare , modelare , și switch -uri
(întrerupătoare) de comunicații .
Fig. 1. 5: Rețea de calculatoare conectată la procesoare MIMD
Sursa:[ http://www.ccas.ru/paral/mimd/mimd.html ]
Arhitectura MIMD include procesoare care funcționează independent și
asincron. Diferite procesoare pot efectua diverse instrucțiuni în orice moment pe
diverse date. Adică a ceste mașini execută mai multe fluxuri de instrucțiuni în
paralel pe diferite date. Diferența dintre mașinile cu multiprocesor oare SISD constă
în faptul că instr ucțiunile și datele sunt legate între ele, deoarece reprezintă diferite
părți ale aceleiași sarcini care trebuie executate. Deci, sistemele MIMD pot executa
mai multe sub -sarcini în paralel pentru a scurta timpul până la rezolvare pentru ca
sarcina princip ală să fie executată. Există o mare varietate de sisteme MIMD și în
5
special în această clasă taxonomia Flynn se dovedește a fi destul de largă pentru
clasificarea sistemelor.
Arhite cturile MIMD sunt clasificate în funcție de organizarea fizică a
memoriei, adică dacă procesorul are propria memorie locală și accesează alte
blocuri de memorie folosind o rețea de comutare sau rețeaua de comutare
conectează toate procesoarele la memoria partajată. Bazându -se pe organizarea
memoriei, există următoarele tipuri de arhitecturi paralele: Calculatoarele cu
memorie partajată pot fi de tip ierarhic (HIERCHICAL), extins (EXTENDED)
sau bazat pe magistrală (BUS), pe când cele cu memorie distribuită pot avea
scheme de interconectare de tip hiper -cub(HYPERCUBE) sau plasă (MESH).
Fig. 1.1: Schema generală a Arhitecturii microprocesoarelor MIMD
Sursa: [ https://en.wikipedia.org/wiki/MIMD#/media/File:MIMD.svg ]
6
Rețelele de interconectare MIMD sunt mai complexe decât la sistemele SIMD.
Există următo arele tipuri de rețele:
a) rețele cu magistrală comună: unică sau multiplă ; în acest caz comunicația pe
magistrale este asigurată de arbitri centrali și locali;
b) comutatoare ”crossbar” (cu bare încrucișate) : asigură legătura directă între
toate elementele sistemului; fiecare punct de intersecție al unui comutator trebuie
să fie capabil să comute transmisia paralelă și să rezolve conflictele posibile între
cereri le unităților sistemului (se folosește pent ru un număr mic de procesoare);
c) memorii multiport: fac posibilă construcția rețelelor de interconectare, în
care procesoarele comunică prin intermediul memo riilor, în locul magistralelor;
d) tablouri (“arrays”), arbori (“trees”) și rețele de arbori (“mesh of trees ”): se
bazează pe masive liniare și/sau arbori binari compleți uni sau multidimensionali;
se pun probleme legate de programarea procesoarelor, programarea
interconectărilor și programarea protocolului de I/O;
e) rețele cu etaje multiple (cum sunt cele de tip hypercub, fluture, Benes,
Omega, Banyan, Delta, și altele specifice sau derivate din acestea): sunt rețele
complexe și reconfigurabile.
Rețelele de interconectare MIMD se caracterizează prin modul de ope rare, tehnica
de rutare și tehnica de comutare.
Modul de realizare a accesului la memorie este foarte important pentru
multiprocesoarele cu memorie partajată, datorită faptului că memoria este împărțită
între procesoare.
La sistemele cu memorie distribuită memoriile sunt distincte și accesul se
realizeazå ca și la sistemele uniprocesor. În cazul sistemelor cu memorie partajată,
memoria globală este partiționată într -un număr independent de module de
memorie, în principal pentru a permite accese simultane al e procesoarelor pentru
mai mult decât un modul. În acest caz este de dorit ca accesul la memorie să fie
rapid și cu penalizări de timp cât mai mici. Pentru a preveni întârzierile, se
utilizează memorii intermediare (“cache”). Pentru creșterea eficienței ac cesului la
memoria partajată se folosesc diferite tehnici de adresare întrețesută împreună cu
folosirea unor memorii locale dedicate fiecărui procesor.
Lucrul cu memoria partajată implică rezolvarea unor probleme ce se referă la:
*Disputarea memoriei: mai multe procesoare pot încerca să acceseze același
spațiu de memorie în același timp;
7
*Eficiența accesului procesor -memorie: cu cât sistemul este mai mare, prezența
unei rețele de interconectare între procesoare și memorie, ca și dimensiunea mare a
spațiului de memorie introduc în târzieri în accesarea memoriei;
*Consistența sau coerența memoriei : copiile blocurilor de memorie partajată
există în diferite memorii intermediare în același timp; aceste copii trebuie să fie
consistente pentru ca informația din mem oria intermediară să fie corectă pentru
toate procesoarele.
Soluția problemei de coerență a memoriei poate fi implementată prin
“hardware”, prin “software” sau combinat. Soluțiile “hardware” mențin consistența
memoriei intermediare prin permiterea unor cit iri multiple și a unei singure scrieri
la un moment dat. Ca tehnici există: scriere nevalidată WI (“write -invalidate”) și
scriere actualizată WU (“write -update”).
În cazul WI consistența este asigurată prin invalidarea copiilor blocului de
memorie partajat ă, aflate în diferite memorii intermediare, în momentul când una
din copii a fost actualizată. Tehnica WU menține consistența prin actualizarea
tuturor copiilor blocului de memorie, imediat ce acesta a fost modificat. O tehnică
modernă “hardware” este prot ocolul de evitare a inconsistenței memoriei
intermediare (numit “snoop”), în cadrul căruia se integrează pe procesor o unitate
destinată rezolvării acestei probleme; unitatea urmărește toate accesele la
memoriile intermediare, luând măsuri imediate de rezo lvare a oricăror
inconsistențe.
Soluțiile “software” (prin program) de rezolvare a inconsistenței
memoriei intermediare reduc din complexitatea “hardware” (arhitecturală).
Tehnicile “software” folosesc marcările statice sau dinamice ale variabilelor ca tip
“cache” sau “non -cache” în timpul compilării, ceea ce implică un compilator mai
optimizat.
Sublcasele microprocesoarelor MIMD( Multiple Instruction Multiple Data):
SM-MIMD m(memoria mpartajată MIMD) este o subclasă a memoriei
partajate MIMD din punctul de vede re al programatorului, care i nclude
mașini mmultiprocesor mșimprocesoare mmulti-coremcummemorie mpartajată.
Multiprocesoarele sunt ușor de programat, suport pentru SMP (multiprocesare
8
simetrică) a fost de mult timp prezent e în toate sistemele de operare importante. Cu
toate acestea, aceste computere au scalabilitate scăzută: creș terea procesoarelor din
sistem este încărcată cu capacitate de încărcare ridicată pe magistrala comună.
DSM -MIMD (memorie partajată distribuită MIMD) este subclasa care
constuie memoria vizibilă de către programator ca un spațiu comun al adreselor,
dar fi zic poate fi distribuită pe nodurile sistemului. În această subclasă, fiecare
procesor are propria memorie locală, iar procesorul accesează alte părți ale
memoriei printr -o conexiune de mare viteză. Deoarece accesul la diferite părți ale
memoriei partajat e nu este același, astfel de sisteme se numesc NUMA (Acces
nelimitat în memoria engleză). Există o problemă: este necesar ca procesorul să
vadă în memorie modificările efectuate de alte procesoare. Pentru a rezolva
aceasta, a apărut ccNUMA (prin negocierea cache -ului) și nccNUMA (fără
negocierea cache -ului). Sistemele NUMA au scalabilitate mai mare comparativ cu
multiprocesoare, ceea ce vă permite să creați sisteme de calcul paralel în masă,
unde numărul de procesoare ajunge la câteva mii.
DM-MIMD (memorie distribuită MIMD) este o subclasă a MIMD cu
memorie distribuită din punct de vedere al programatorului. Acestea includ
computere multiprocesor cu memorie distribuită și grupuri de computere, cum ar fi
Beowulf , ca rețea de stații de lucru. Memoria locală a unui singur procesor nu este
vizibilă pentru ceilalți. Fiecare procesor are sarcina proprie. Dacă are nevoie de
date din memoria unui alt procesor, el schimbă mesaje cu el. Astfel de mașini au
scalabilitate ridicată, cum ar fi NUMA.
SPMD (dinmenglez ă: Single Program Multiple Data, un singur program, cu
date multiple ) – un sistem în care toate procesoarele MIMD -mașina rulează un
singur program, iar pe fiecare procesor gestionează diferitele blocuri de date.
MPMD (dinmenglez ă: Multiple Programs, Multiple Data, o varietate de
programe, o mulțime de date , MPMD ) – un sistem în care pe un singur procesor
MIMD al mașini ide calcul rulează programul de master, iar pe de altă parte –
programul subordonat, a cărui activitate este supravegheat ă de un program
de maste r(principiul m master / slave (master/ sclav )msaum master / worker
(master /lucrător ) ); diferite prog -rame care rulează pe diferite noduri MIMD, care
procesează același set de date în mod diferit (principiul coupled analysis ), în cea
mai mare parte lucreaz ă independent unul de celălalt, dar din când în când schimbă
date pentru următorul pas.
9
CAPITOLUL II
Arhitectura M icroprocesoarelor MIMD cu M emorie P artajat ă
Memoria partajat ă este ultimul dintre mecanismele IPC. Permite ca dou ă
procese nelegate ca proces tata/fiu s ă acceseze aceea ți memorie logic ă. Memoria
partajat ă este o modalitate foarte eficient ă de a transfera date î ntre dou ă procese
care ruleaz ă.
O zona de memorie partajată este un spaț iu de adrese ca re este creat pentru
un proces ș i apare î n spaț iul de adrese al acelui proces. Alte procese se pot ataș a la
acele locaț ii de memorie exact ca ș i cum memoria ar fi fost alocată prin utilizarea
malloc.
Dacă un proces scrie î ntr-o zonă de memorie partajată , schimbarea devine
imediat vizibila unui alt proces care are acces la aceeaș i zona de m emorie partajată .
Ceea ce trebuie remarcat este faptu l ca o zona de memorie partajată nu posedă nici
un mecanism de sincron izare. Este resp onsab ilitatea programatorului să asigure
accesul exclusiv la memorie.
CARACTERIS TICILE Memoriei Partajate MIMD:
1.Creează un grup de module de memorie și procesoare.
2. Orice procesor poate accesa direct orice modul de memorie printr -o rețea de
interconectare.
3. Grupul de module de memorie conturează un spațiu de adresă universal care este
împărțitîntreprocesoare.
4. Un avantaj cheie al acestui tip de arhitectură este faptul că este foarte ușor de
programat, deoarece nu există o comunicare explicită între proc esoare cu
comunicații adresate prin magazinul de memorie globală.
10
Computere cu memorie part ajată ( memorie partajată reală )
Toate procesoarele accesează în comun memoria partajată, de obicei printr –
un bus sau o ierarhie bus. Într-un PRAM (model paralel cu acces la întâmplare),
este un model utilizat adesea în studiile teoretice ale algoritmilor paralel, orice
procesor poate accesa simultan orice celulă de memorie. În practică, scalabilitatea
acestei arhitecturi duce, de obicei, la o anumită formă de ierarhie a
memoriei. Frecvența accesării memoriei partajate poate fi redusă prin stocarea
copiilor datelor utilizate frecvent în memoria cache asociată fiecărui
procesor. Accesarea aces tei cache este mult mai rapidă decât accesarea directă a
memoriei partajate.
Multiprocesoarele
Acestea sunt sisteme masiv în care procesoarele pot prelucra fluxuri
independente de instrucț iuni. Multiprocesoarele se refer ă la execuția simultană de
“task” -uri pe un sistem de calcul paralel asincron format din mai multe procesoare,
Figura 2.1 Schemă calculator cu memorie partajată
11
fiecare cu CU și ALU, și module de memorie și I/O. Procesoarele cooperează
strâns, dar independent. Există două modele de bază:
1) Modelul MIMD c u memorie partajată (“shared -memory”)
Sunt sisteme strâns cuplate, în care există o conectivitate completă între
procesoare și modulele de memorie; au următoarea structură :
PE sunt procesoare de execuție nu neapărat identice, cu sau fără memorie
locală. Memoria globală poate fi accesată de către toate procesoarele; creșterea
lățimii de bandă la memoria globală se realizează prin implementarea local la
procesoare a unor memorii intermediare (“cache”).
Într-un sistem multiprocesor, cu memorie partajat ă, un singur sistem de
operare controlează interacțiunile
între procesoare și procese. Fiecare
dintre procesoarele cooperante poate
execută individual calcule.
Coordonarea dintre procesoare este
facilitată de mecanismul de
comunicație între procesoare astf el
încât anumite procesoare pot
întrerupe direct alte procesoare. Este
necesară sincronizarea între
procesoarele cooperante.
În sistemele de calcul cu
performanță ridicată, sistemul de
operare distribuie încărcarea cât mai
uniform posibil pentru toate
procesoarele. Unitățile de intrare/ieșire (I/O) și alte resurse sistem sunt uzual
împărțite între procesoare; totuși, unele resurse pot fi dedicate unor procesoare
specializate.
Limita majoră a multiprocesoarelor cu memorie partajată este posibilitatea
apari ției unor conflicte importante de acces la memorie; această restricție tinde să
impună o limită de sus a numărului de procesoare, care pot fi efectiv încorporate în
sistem și pot fi suportate de un singur sistem de operare.
De exemplu, multiprocesorul CED AR este format din “cluster” -e. Fiecare
“cluster” este constituit într -un multiprocesor Alliant FX/8 modificat, în care PE
Figura 2 .2 Schemă memorie partajată
12
sunt procesoare vectoriale cu unități funcționale multiple, organizate în bandă de
asamblare.
2) Modelul MIMD cu trecere de mesaje ( “message -parsing”)
Fiecare modul sist em are un PE, memorie și interfață de I/O. Comunicația
de date este dată prin mesaje și nu prin intermediul variabilelor partajate ca la
modelul anterior și urmează un protocol de comunicație predeterminat. Gradul de
cuplare este mai mic decât la modelul a nterior. Prin maparea algoritmilor pe o
geometrie particulară de interconectare se obțin performanțe ridicate. Sistemele pot
fi clasificate în funcție de tipol ogia rețelei de interconectare. Ca exemple sunt
multiprocesoarele Hypercube, care pot conține în noduri microsisteme de calcul
(cum ar fi: Intel iPSC /2, AMETEK 2101), sistemele cu transputer (cum ar fi
sistemul Meiko Computing
Surface: este un sistem eterogen
cu PE de tip Intel I860 și Inmos
T800, conectate printr -o rețea
reconfigurabilă topologic și
constituită pe baza canalelor
transputerelor) etc. În acest caz
apar probleme legate de
întârziere , granularitatea
nodului, protocolul d e rutare,
maparea algoritmilor.
Multiprocesoarele cu m emorie
partajată, fiind mai complexe și
având resurse partajate, sunt mai versatile. Cele cu treceri de mesaje sunt mai
simple și mai economice, fiind mai eficiente pentru probleme care pot fi
partiționate în “task” -uri mari care nu interacționează frecven t. În ambele modele
MIMD apar probleme legate de identificarea paralelismului, partiționarea
“task” -ului, alocarea memoriei, accesul la memorie, programare, sincronizare,
echilibrarea sistemului, probleme care sunt rezolvate prin metode specifice.
Computere cu memorie virtuală partajată ( memorie virtuală partajată )
Memoria partajată ca atare lipsește. Fiecare procesor are propria memorie locală și
poate accesa memori a locală a altor procesoare folosind adresa globală. Dacă
Figura 2.3 Schema rețea de interconectare
13
"adresa globală" nu indică memoria locală, atunci accesul la memorie este
implementat utilizând mesajele trimise prin rețeaua de comunicații.
Arhitecturile cu memorie partajată sunt arhitecturi ce se găsesc in
calculatoarele cu memorie partajată, unde există un spațiu comun de memorie
pentru toate procesoarele din sistem. Aceste calculatoare mai sunt numite și
multiprocesoare, iar datorită gradului mare de interacțiune între procesoare, care
împart aceeași memorie și între care există o bună sincronizare, se spune că aceste
sisteme au un cuplaj strâns.
În cazul arhitecturilor cu memorie partajată s -a pornit de la mașina von
Neumann, iar fiecărui procesor i s -a adăugat o memorie cache, pentru un acces mai
rapid la date și instrucțiuni. Deoarece memoria este partajată, dezavantajul major îl
constituie scăderea performanțelor sistemului odată cu creșterea numărului de
procesoare.
Figura 2. 4 Arhitectura cu memorie partajată
În funcție de resurse , există două tipuri de sisteme, care la rândul lor se
împart în următoarele arhitecturi:
• cu resurse globale
1. Arhitectura UMA (Uniform Memory Access )
2. Arhitectura UMA cu memorii cache locale
• cu resurse distribuite (procesoarele au memoriile locale ditribuite din punct
de vedere fizic, însă acestea formează o memorie comună)
14
1. Arhitectura NUMA (Non-Uniform Memory Access )
2. Arhitectura COMA (Cache -Only Memory Access )
3. Arhitectura CC-NUMA (Cache Coherent Non-Uniform Memory -Access )
Arhitectura UMA
Calcul atoarele din această categorie au ca trăsătură esențială faptul că
procesoarele care folosesc o memorie partajată, au același timp de acces la
memorie. Totuși un număr prea mare de procesoare poate i ntroduce întârzieri,
pentru că apare accesul concurent la aceeași resursă. Procesoarele ce comunică cu
memoria sunt conectate prin intermediul unei rețele .
Arhite ctura UMA cu memorii cache locale
Această arhitectură reprezintă o îmbunătățire a versiunii anterioare. Aici
fiecare procesor conține o memorie cache. Dacă datele necesare procesorului se
găsesc în cache -ul aferent acestuia, atunci procesorul le utilizeaza , fără a mai apela
la memoria partajată. Astfel se reduce timpul de acces și se reduce în anumite
proporții si accesul la aceeași resursă aflată în memorie. Dacă unele date din
memoria partajată sunt conținute și în memoriile cache, atunci modificarea date lor
din memoria comună presupune și modificarea datelor din memoriile cache, lucru
necesar pentru asigurarea consistenței.
Figura 2. 5 Arhitectura UMA cu memorii cache locale
15
Arhitectura NUMA
În cazul arhitecturii NUMA, fiecare procesor are asociată o memorie locală,
iar toate memoriile locale forme ază o memorie văzută ca un tot unitar, ca un spațiu
unic de adrese. Atunci când procesorul accesează date din memoria locală, timpul
de acces va fi unul scurt, spre deosebire de cazul în care procesorul accesează date
din memoria locală aferentă altui proc esor. În cel de -al doilea caz timpul va fi mai
mare datorită transportului datelor prin rețeaua de interconectare. O trăsătură
esențială pentru mașinile din această categorie o reprezintă factorul NUMA. Acesta
indică diferențele între accesarea datelor din memoria locală de către un procesor și
accesarea datelor dintr -o altă zonă, care nu este locală, de către același procesor. În
mod normal acest factor se referă la primul și ultimul procesor din cadrul unei
rețele (cele mai îndepărtate procesoare).
Figura 2. 6 Arhitectura NUMA
Arhite ctura COMA
În arhitectura COMA, memoriile cache ale fiecărui procesor vor forma un
spațiu unic de adresare. În cazul de față, există un dispozitiv, numit controler de
memorie , care are rolul de a aduce datele necesare fiecărui procesor în memoria sa
cache locală. O problemă apare în cazul în care un procesor are nevoie de un bloc
de date, însă are memoria cache plină. Deoarece nu există o memorie comună, va
trebui c a datele vechi să fie mutate în memoria altui procesor, pentru ca noile date
16
să poată fi aduse în memoria cache a procesorului care accesează datele.
Controlerul de memorie are printre alte atribuții și aceea de a muta blocurile dintr -o
memorie în alta.
Arhitectura CC -NUMA
Acest model îmbină cele două arhitecturi: NUMA și COMA. Fiecare dintre
procesoare are atât o memorie locală, cât și o memorie cache. Memoria cache este
folosită în cazul în care datele de care are nevoie procesorul nu se găsesc în
memoria locală. Pentru datele necesare procesoarelor se caută mai întâi în
memoriile locale asociate acestora. Dacă datele sunt conținute în aceste memorii,
atunci datele sunt prelucrate de procesor, dacă nu, atunci datele din memoriile
celorlalte proce soare sunt aduse în memoria cache a procesorului care are nevoie
de acele date. Bineînțeles că trebuie să se realizeze o consistență a memoriilor
cache: în cazul în care datele din memoriile locale se modifică, trebuie modificate
și datele care se găsesc î n memoria cache a altor procesoare.
17
CAPITOLUL III
Exemple Calculatoare cu Memorie Partajată
Exemple de mașini de memorie partajată includ:
Sun Microsystems (stații de lucru multiprocesor)
Silicon Graphics Challenge (stații de lucru multiprocesor)
Simetrie secvențială
convex
Cray 6400.
Sun Microsystems
Sun Microsystems, Inc. a fost o companie americana care a vândut
calculatoare, componente de calculator, software și servicii de tehnologia
infor mației și a creat limbajul de programare Java, sistemul de operare Solaris,
ZFS, Network File System (NFS), și SPARC. Sun a contribuit în mod semnificativ
la evoluția mai multor tehnologii -cheie de calcul, printre ele Unix, procesoare
RISC, subțire de calc ul client, și de calcul virtualizat.
Produsele Sun incluse servere si statii de lucru construite pe arhitectura
proprie RISC arhitectura de procesor SPARC, precum și pe procesoare AMD
Opteron si Intel Xeon bazate pe
x86. Sun a dezvoltat, de asemenea,
sistemele sale proprii de stocare și o
suită de produse software, inclusiv
sistemul de operare Solaris,
instrumente de dezvoltare, software –
ul de infrastructură web și aplicații de
management al identitatii.
Cray 6400
Cray Superserver 6400 , sau
CS6400, este un sistem de server
multiprocessor , produs de Cray
Research Superservers, Inc, o filială a
Figura 3.1 Sistemul Cray 6400
18
Cray Research, și lansat în 1993 .
O trăsătură distinctivă importantă a CS6400 care nu a fost împărtășită de
Sun SPARCcenter și SPARCserver a fost că fiecare sistem a f ost invariabil echipat
cu un procesor extern de servicii de sistem (SSP), echipat cu o interfață JTAG
pentru a configure bus-ul intern, celelalte sisteme au o interfață JTAG, dar acesta
nu este utilizat în mod obișnuit. În timp ce CS6400 strict necesită do ar un SSP
atunci când modificările de configurație, (de exemplu, când un procesor este tr as
pentru întreținere) unele modele derivate, în special Sun Enterprise 10000, sunt
inutile fără a SSP lor de potrivire. La achiziționarea Silicon Graphics' a Cray
Research în 1996, afacerea Superserver (de acum Business Systems Division Cray)
a fost vândut la Sun. Aceasta a inclus Starfire, succesorul lui CS6400 apoi în curs
de dezvoltare, care a devenit S un Enterprise 10000.
Convex
Convex Computer Corporation a fo st o companie care a dezvoltat, fabricat și
comercializat minisupercomputers și supercalculatoare pentru întreprinderile mici –
la-mijlocii. Modelele lor mai noi, Exemplar , de mașini de calcul paralel s -au bazat
pe Hewlett -Packard (HP microprocesoare) PA -RISC, și în 1995, HP a cumparat
compania. Mașini le Exemplar au fost oferite spre vânzare de către HP pentru ceva
timp, iar tehnologia Exemplar a fost utilizat în mașinile V -Class HP.
Prima lor mașină a
fost C1, lansat în 1985. C1
a fost foarte similar cu
Cray-1 în design general,
dar procesorul și memoria
principală a fost pusă în
aplicare cu o tehnologie
mai lent ă, dar mai puțin
costisitoare CMOS. Ei au
compensat acest lucru prin
creșterea capacităților
unităților vectoriale, inclusiv
dublarea lungimii regis trelor
vectoriale la 128 elemente de Figura 3. 2: Sitemul Cray 6400
19
64 biți fiecare. Este folosit, de asemenea, memoria virtuală, spre deosebire de
sistemul de memorie statică a mașinilor Cray, care au îmbunătățit de
programare. Acesta a fost, în genera l, evaluat la 20 MFLOPS vârf de precizie
dublă (64 biți) și 40 MFLOPS vârf pentru o singură precizie (32 -bit), aproximativ
o cincime viteza normală a Cray -1. De asemenea, au investit masiv în avansate
compilatoare automate vectorizate, în scopul de a obține performanță atunci când
programe le existente au fost portat la sistemele lor. Mașinile fugit o versiune BSD
Unix cunoscut inițial ca Convex Unix, apoi mai târziu ca ConvexOS din cauza
unor probleme de marcă și de licențiere. ConvexOS are caracteristici de
compatibilitate decembrie VMS, p recum și caracteristici Cray
Fortran. compilatorul lor Fortran a continuat să fie licențiate pentru alte computere,
cum ar fi Ardent calculator și Stellar (și care a fuzionat Stardent).
CAPITOLUL IV
Arhitectura M icroprocesoarelor DM -MIMD cu M emorie Distribuită
Într-o arhitectur ă MIMD cu memorie distribuit ă unitățile de procesare sunt co –
nectate prin tr-o rețea de interconectare. Fiecare unitate de procesare are propria
memorie local ă; dac ă o anumit ă dată memorat ă în memoria unei unit ăți de cal cul
este dorit ă de o alta, atunci data trebuie s ă fie trimis ă explicit de la o unitate de
procesare la cealalt ă. Calculatoarele MIMD cu memorie distribuit ă au c âteva
caracteristici de baz ă care le diferen țiază:
Principala proprietate a sistemelor cu memorie distribuit ă, care le avantajeaz ă
față de cele cu memorie comun ă, este scalabilitatea . Ea refer ă posibilitate a de a
crește eficiența prin creș terea num ărului de procesoare. Deoarece nu exist ă nici un
element care ar putea duce la strangularea comunica țiilor, cum este accesul la
memoria comun ă, sistemele cu memorie distribuit ă pot avea, cel pu țin în principiu,
un număr nelimitat de procesoare. Clasific ări mai detaliate ale acestor calculatoare
sunt date de Hockeney și Bell. Exemple de calculatoare care corespund categoriei
20
MIMD sunt: Cray -2, Cay X -MP, HEp, IBM 370/168 MP, Univac 1100/80 ,
Tndem/16, IBM 3081/3084, i PCS, Sisteme Cluster . Reț elele de calculatoare au
devenit în ultimii ani o alternativ ă foarte atractiv ă pentru înlocuirea costisitoarelor
supercalculatoare. Ele s -au dovedit a fi utile chiar ¸si în domenii ale calculului de
înaltă performanță (“High -Perfor mance mComputing”), unde performan ța este
crucial ă. Sistemele de tip cluster reprezint ă un exemplu de acest tip care a avut un
deosebit succes în ultimul timp. Acestea presupun interconectarea de sta ții de lucru
de performan ță ridicat ă prin intermediul unor strategii clasice de interconectare (de
exemplu: Ethernet sau Linux OS). În anumite cazuri, memoria acestor sta ții de
lucru poate fi gestionat ă în așa fel î ncât tehnici specifice arhitecturilor cu memorie
partajat ă să poate fi folosite. Sistemele cluster sunt sisteme scalabile, pot fi
adaptate în func ție de buget și de nevoile de calcul și permit execuț ia eficient ă atât
a aplica țiilor secven țiale, c ât și a celor para lele. C âteva exemple de asemenea
sisteme sunt: Berkeley NOW, HPVM, Beowulf, Solaris -MC. Poate fi considerat ă o
nouă clasă, hibrid ă, de sisteme paralele: SIMD -MIMD. Aceste sisteme numite și
SAMD (“Synchronous -Asynchronous Multiple Data”), sunt în mod esențial
calculatoare MIMD care au în plus următoarele caracteristici: Permit asigurarea
sincroni zării proceselor. Sincronizarea proceselor poate fi men ținută fără un
consum mare de timp, prin faptul c ă există un “ceas” uniform pentru toate
procesoarele. În timp s -a dezvoltat și o a doua genera ție de abstractiz ări pentru
aceste clase. C âteva dintre ac estea sunt: Relaxarea sistemelor de calcul SIMD
astfel încât sincronizarea s ă nu mai apar ă după fiecare pas -instruc țiune, ci doar
ocazional. Rezultatul este modul de lucru SPMD(“Single Program Multiple Data”),
care se poate executa pe ma șini SIMD, dar poat e fi folosit eficient și pe alte
arhitecturi. Modul de tratare a transmiterii mesajelor, al clasei MIMD cu memorie
distribuit ă, poate fi l ărgit pentru a se permite o dezvoltare mai simpl ă a softului
prin adau garea de concepte cum ar fi: spa ții partajate as ociative (“tuple spaces”)
pentru comunica ție, sau comunica ție mapat ă în memorie astfel î ncât opera țiile
“send” și “receive” se aseam ănă cu accesul la memorie(“put/get”).
Modelul cu memorie distribuită În calculatoarele MIMD cu memorie distribuită,
fiecare procesor are locația sa individuală de memorie, fără a avea acces direct la
memoria altui procesor. Pentru ca datele să poată fi partajate, trebuiesc trecute de
la un procesor la altul sub forma unui mesaj. Deoarece nu există memorie partajată,
disputa pen tru accesul la memorie nu este o problemă la fel de mare pentru aceste
calculatoare. Nu este fezabil din punct de vedere economic să se conecteze un
număr mare de procesoare în mod direct, unul cu celălalt. Un mijloc pentru
21
evitarea multitudinii de conexiu ni directe este conectarea fiecărui procesor cu doar
câteva dintre celalalte. Acest tip de proiectare poate fi ineficientă din cauza
timpului adițional necesar pentru transmiterea unui mesaj de la un procesor la altul
de-a lungul căii de comunicație. Canti tatea de timp necesară pentru ca procesoarele
să execute rutarea simplă a mesajelor poate fi substanțială. Pentru a reduce această
risipă de timp, au fost proiectate scheme de interconectare, dintre care modelul
hiper -cub și cel de tip plasă sunt cele mai populare. Ca exemplu de arhitecturi cu
memorie distribuită, se remarcă: MPP (Massively Parallel Processors) și COW
(Clusters Of Workstations). Prima este complexă și costisitoare: multe super –
calculatoare conectate prin rețele broadband. COW este versiunea "home -made" a
acesteia, dar la o fracțiune din preț.
Procesarea distribuită ia conceptul DM -MIMD cu un pas mai departe: în loc de
multe procesoare integrate într -unul sau mai multe casete, stațiile de lucru,
mainframe -urile etc. sunt conectate prin (Gig abit) Ethernet, FDDI sau altfel și sunt
setate să lucreze simultan același program. Conceptual, acest lucru nu diferă de
calculul DM -MIMD, dar comunicarea dintre procesoare este adesea o ordine de
mărime mai lentă. Multe pachete pentru a realiza computerel e distri buite sunt
disponibile. Exemple mdemacestea msuntmPVM m(în picioare mpentru Parallel Vir-
tual Machine ), și MPI ( Message Passing Interface ). Acest stil de programare,
numit modelul de "transmitere a mesajelor", a devenit atât de mult acceptat că
PVM ș i MPI au fost adoptate de aproape toți furnizorii majori ai sistemelor MIMD
cu memorie distribuită și chiar de sistemele MIMD cu memorie partajată din
motive de compatibilitate. În plus, există o tendință de a clustera sistemele de
memorie partajată, de ex emplu prin canalele HiPPI, pentru a obține sisteme cu o
putere computațională foarte ridicată. De exemplu, NEC SX -6 și Cray SV1ex au
această structură. Deci, în nodurile grupate poate fi folosit un stil de programare a
memoriei partajate, în timp ce între clustere trebuie folosit un mesaj de trecere a
mesajelor. Trebuie spus că PVM nu mai este folosit și că MPI a devenit mai mult
sau mai puțin standardul de facto .
Arhitecturile MIMD cu memorie distribuită pot fi, de asemenea, clasificate
în funcție de lăți mea de bandă a rețelei de comutare. De exemplu, în arhitectură, în
care o pereche de procesoare și module de memorie (element de procesare)
conectate cu topologii de rețea plasă , fiecare procesor are același număr de
conexiuni la rețea, indiferent de numă rul de procesoare din calculator. Lățimea
totală de bandă a unei astfel de rețele crește liniar față de numărul de
procesoare. Pe de altă parte, într -o arhitectură care are o rețea cu topologii hiper –
cube , numărul de conexiuni procesor la rețea este o fun cție logaritmică a
22
numărului de procesoare, iar lățimea de bandă a rețelei crește mai repede decât
liniar în raport cu numărul de procesoare. În topologia clicurilor Fiecare procesor
trebuie să fie conectat la toate celelalte proc esoare.
Fig. 4.1:Reprezen tarea unui multicalculator cu memorie distribuită
*Rețeaua de interconectare hiper -cub
Într-o mașină MIMD cu memorie distribuită, ce conține patru procesoare
interconectate printr -o rețea de tip hiper -cub, un procesor și o memorie sunt plasate
la fiecare n od al unui pătrat. Diametrul sistemului este numărul minim de pași
necesari pentru ca un procesor să trimită un mesaj procesorului care se găsește la
distanța cea mai mare de acesta. Astfel, de exemplu, diametrul unui 2 -cub este 1.
Într-un sistem hiper -cub cu opt procesoare și fiecare procesor și modul de memorie
plasat într -un nod al cubului, diametrul este egal cu 3. În general, un sistem care
conține 2N procesoare cu fiecare procesor conectat direct cu alte N procesoare,
23
diametrul sistemului este egal cu N. Un dezavantaj al sistemului hiper -cub este că
trebuie să fie configurat în puteri ale lui doi, și astfel trebuie construită o mașină de
calcul ce poate avea un număr mai mare de procesoare decât este nevoie pentru
aplicațiile acesteia.
Fig. 4.2: Rețe aua hiper -cub
Sursa:[ http://www.netlib.org/utk/papers/advanced -computers/dm -mimd.html#dm –
mimd ]
*Rețeaua de interconectare de tip plasă
Într-o mașină de calcul MIMD cu memorie distribuită, conectată printr -o rețea de
tip plasă, procesoarele sunt poziționate sub forma unei grile bi -dimensionale.
Fiecare procesor este conectat la cei patru vecini imediați. Muchiile grilei pot fi
conectate împrejur. Un avantaj al rețelei d e tip plasă față de hiper -cub este faptul că
plasa nu trebuie neapărat să fie realizată în configurații de puteri ale lui doi. Un
dezavantaj este ca diametrul rețelei plasă este mai mare decât al hiper -cubului
pentru sisteme cu mai mult de patru procesoare .
FUNCȚII ale arhitecturii DM-MIMD cu memorie distribuită:
1. Clonează perechile de memorie / procesor, cunoscu t ca element de procesare
(PE), mșimlemleagă mutilizând momrețeamdeminterconectare. Fiecare calculator
(PC) mpoate mcomunica mcumalțiimprinmtrimiterea mdemmesaje.
2. Oferind fiecărui procesor o memorie proprie, arhitectura de memorie distribuită
ocolește dezavantajele arhitecturii de memorie partajată. Un procesor poate accesa
24
numai mmem oriamdirect mconectată mlamacesta. În cazul în care un procesor
necesi tă date care se află în memoria procesorului la distanță, procesorul ar trebui
să trimită un mesaj către procesorul de la distanță solicitând datele necesare.
3. Accesul la memoria locală se poate întâmpla mai rapid, spre deosebire de
accesarea datelor pe un procesor la distanță. Mai mult, dacă distanța fizică față de
procesorul de la distanță este mai mare, accesul la datele de la distanță va dura mai
mult timp.
Avantajele sistemelor DM -MIMD:
Problema de lățime de bandă care bântuie sistemele de memorie partajată
este evitată, deoarece lățimea de bandă se măsoară automat cu numărul de
procesoare. În plus, viteza memoriei , care este o altă problemă critică cu sistemele
de memorie partajată (pentru a obține o performanță de vârf comparabilă cu cea a
sistem elor DM -MIMD, procesoarele mașinilor cu memorie partajată ar trebui să fie
foarte rapide, iar viteza memoria ar trebui să se potrivească cu ea) este mai puțin
importantă pentru mașinile DM -MIMD, deoarece mai multe procesoare pot fi
configurate fără problem ele de lățime de bandă menționate mai sus.
Dezavantajele DM -MIMD:
Comunicarea dintre procesoare este mult mai lentă decât în cazul
sistemelor SM -MIMD, astfel încât sincronizarea în cazul sarcinilor de comunicație
este, în general, cu ordin de magnitudi ne mai mare decât în mașinile cu memorie
partajată. Mai mult, accesul la date care nu se află în memoria locală aparținând
unui anumit procesor trebuie să fie obținut din memoria non -locală (sau
amintirile). Acest lucru este din nou în majoritatea sistem elor foarte lent în
comparație cu accesul local la date. Atunci cân d structura unei probleme dictă un
schimb frecvent de date între procesoare și / sau necesită multe sincronizări ale
procesoarelor, este posibil să se obțină doar o foarte mică parte din viteza maximă
teoretică. După cum sa menționat deja, descompunerea da telor și a sarcinilor sunt
factori care tr ebuie rezolvați în mod explicit. Pentru mașinile DM -MIMD, atât
topologia, cât și viteza de datepaths sunt de o importanță crucială pentru utilitatea
practică a unui sistem. Din nou, ca și în secțiunea privind sistemele SM -MIMD ,
25
bogăția structurii de conectare trebuie să fie echilibrată cu costurile. Dintre
numeroasele structuri de interconectare concepute, doar câteva sunt populare în
practică. Una dintre acestea este așa -numita topologie de hypercube.
Fig. 4.3: A 128 way fat tree . Exemplu de rețea folosită adesea
de mașinile DM -MIMD
Sursa:[ http://www.netlib.org/utk/papers/advanced -computers/dm -mimd.html#dm –
mimd ]
26
CAP ITOLUL
Aplicații și Exemple
Cluster ele Beowulf
Cluster ul Beowulf este un cluster de compute re care sunt în mod obișnuit identice,
computere pe bază conectate într -o rețea locală mică , cu biblioteci și programe
instalate, care permit schimbul de date între
ele. Rezultatul este un cluster de calcul paralel
de înaltă perfo rmanță de la mhardware –
ulm ieftinmmalm computerului . Numele Beowulf
sa referit inițial la un comp uter specific construit
în 1994 de Thomas mSterling și Donald m
Becker mde la NASA . Nu există o anumită p iesă
de software care să definească un grup ca un
Beowulf. Grupurile Beowulf rulează în mod
obișnuit un sistem de operare asemă –
nător mUnix ,mcummarmfi BSD , Linux sau Solaris
construite în mod normal din software liber și cu
sursă deschisă . Bibliotecile de procesare paralelă
utilizate în mod obișnuit includ interfața de
transmitere a mesajelor (MPI) și mașină virtuală
paralelă (PVM). Ambele permit progra -matorului
să împartă o sarcină între un grup de computere
în rețea și să colecteze rezultatele
procesării. Exemple de software MPI includ Open
MPI sau MPICH . Există implementări MPI suplimentare. Începând cu
2014, sistemele Beowulf operează în întreaga lume, în principal în
sprijinul cercetării științifice .
ARHITECTURA
Beowulf este o arhitectură cu mai multe calculatoare care poate fi utilizată
pentru calculul paralel . Este un sistem care constă, de obicei, d intr-un singur nod
de server și unul sau mai multe noduri client conectate prin Ethernet sau printr – o
Fig. 5.1: Borg, un cluster
Beowulf de 52 de noduri
folosit de grupul pulsar
al Universității
McGill pentru a căuta
pulsații de la pulsare binare
Sursa: [https://en.wikipedia.
org/wiki/Beowulf_cluster ]
27
altă rețea. Este un sistem construit folosind componente hardware de bază, ca orice
PC capabil să ruleze un sistem de operare asemănător sistemului Unix , cu
adaptoare Ethernet standard și switch -uri. Nu conține componente hardware
personalizate și este trivial reproductibil. De asemenea, Beowulf folosește software
de bază cum ar fi sistemul de operare FreeBSD, Linux sau Solaris, mașină virtu ală
paralelă ( PVM ) și interfață de transmitere a mesajelor ( MPI) ). Nodul server
controlează întregul cluster și servește fișiere la nodurile client. Este, de asemenea,
consola clusterului și poarta de acces către lumea exterioară. Mașinile Beowulf
mari pot avea mai multe noduri de server și, eventual, alte noduri dedicate
anumitor sarcini, cum ar fi consolele sau stațiile de monitorizare. În majoritatea
cazurilor, nodurile clientului într -un sistem Beowulf sunt prost, cu atât mai
bine. Nodurile sunt configurate și controlate de nodul serverului și nu fac decât
ceea ce li se spune. Într-o configurație a unui client fără disc, un nod client nu
cunoaște nici măcar adresa IP sau numele acestuia până când serverul nu -l spune.
Una dintre principalele diferențe dintre Beowulf și un grup de stații de
lucru (COW) este că Beowulf se comportă mai degrabă ca o singură mașină decât
mai multe stații de lucru. În majoritatea cazurilor, nodurile client nu au tas taturi sau
monitoare și sunt accesate numai prin conectare la distanță sau eventual terminal
serial. Beowulf nodurile pot fi considerate ca un pachet CPU + memorie care poate
fi conectat la cluster, la fel ca un CPU sau un modul de memorie poate fi conecta t
la o placa de baza.
Beowulf nu este un pachet software special, cu o topologie de rețea nouă sau
cel m ai recent hack kernel. Este o tehnologie de grupare a computerelor pentru a
forma un supercomputer virtual paralel. Deși există multe pachete software , cum
ar fi modificări de nucleu, biblioteci PVM și MPI, și instrumente de configurare
care fac arhitectura Beowulf mai rapid, mai ușor de configurat, și mult mai ușor
de utilizat, se poate construi o mașină de clasă Beowulf , folosind o distribuție
Linux s tandard , fără nici o suplimentare software – ului.
IBM Scalable POWERparallel
IBM Scalable POWERparallel a fost intro dus în 1993 sub numele SP1 ca
soluție -supercomputer pentru calcule științifice și tehnice. În primele versiuni,
sistemul a fost asamblat din unități care erau un server RS / 6000 Model 370.
Primul client SP1 în septembrie 1993 a fost Argonne National Laboratory , care a
achiziționat un sistem de 128 de noduri. Până la sfârșitul anului, au fost deja
vândute 72 de sis teme. În 1994, sistemul S P2 a fost introdus pe piață, care a folosit
28
un nou tip de noduri și o conexiune de rețea mai rapidă între ele numită
Trailblazer. Până la sfârșitul anului 1994 au fost vândute 352 de sisteme SP2, iar
până la sfârșitul lui 1995, 1023. În 1996, SP2 a fost re denumit cu SP, iar echipa de
dezvoltare sa mutat la departamentul RS / 6000, iar SP a început să fie vândut ca
un sistem segment superior în linia de servere RS / 6000. În același an, nodurile au
început să fie echipate cu mai multe procesoare și au deveni t SMP –
multiprocesoare . Până la sfârșitul anului 1997, 3770 de sisteme RS / 6000 SP au
fost vândute în întreaga lume . RS / 6000 SP de 30 de noduri a servit drept
principalul server web pentru Jocurile Olimpice de Vară din Atlanta din 1996,
precum și Jocu rile Olimpice de iarnă din 1998 din Nagano . În 2001, după
rebranding, linia de supercomputere a fost continuată sub numele de eServer p690.
MEDIUL DE PROGRAMARE
Deoarece primele versiuni ale IBM Scalable POWERparallel au fost
mașini pur paralele în masă cu memorie distribuită (DM -MIMD), singurul model
de programare posibil a fost transmiterea mesajelor . IBM a scris versiunea sa a
pachetului software PVM (Parallel Virtual Machine) numit PVMe special pentru
RS / 6000 SP. De asemenea, a existat o brevet de pr oprietate pentru transmiterea
mesajelor (MPL), care a fost folosit înaint e de apariția specificației MPI ,
implementarea acesteia fiind ulterior integrată în IBM Parallel Environment for
AIX Version 2 Release 1.
NODURILE
Nodurile din supercomputerul RS / 60 00 SP au fost trei opțiuni. Opțiunea
subțire ocupă jumătate din numărul în raft. Versiunea largă a ocupat un rând întreg
în raft. Varianta înaltăocupă două rânduri într -un suport. În rackul standard Tall ,
29
Fig.5.2:Nodurile IBM Scalable POWERparallel Sursa: [Wikipedia.org]
au fost plasate fie 16 noduri subțiri , fie 8 nod uri largi sau 4 noduri înalte . În plus,
nodurile din rack pot fi combinate în versiuni diferite. Sistemul a suportat
configurații de până la 128 de noduri. Cu toate acestea, prin comandă s pecială ar
putea fi crescută la 512 ș i chiar până la 1024 noduri .
Scalable POWERparallel ( SP ) este o serie de supercomputere
de la IBM . Sistemele SP au făcut parte din familia IBM RISC System / 6000 (RS /
6000) și au fost denumite și RS / 6000 SP . Primul model, SP1, a fost intro dus în
februarie 1993 și noile modele au fost introduse pe parcursul anilor 1990 până când
RS / 6000 a fost reușit de către eServer pSeries n octombrie 2000. SP este un sistem
de memorie distribuit , alcătuit din mai multe RS / bazate pe noduri interconectate
de un switch proprietate IBM numit Switch de înaltă performanță (HPS). Nodurile
sunt grupate folosind software -ul numit PSSP, care este scris în principal în Perl.
Cercetătorul de computer Marc Snir a fost distins cu premiul Seymour Cray
Computer Engi neering Award de către Institutul de Inginerie Electrică și
Electronică în 2013 pentru contribuția sa la supercomputere, care a inclus și
lucrările sale pe SP.
Parsytec GC
GC (pentru Giga Cube sau Grand Challenge ) este un calculator paralel de către
compania germană Parsytec și a fost f ăcută la începutul anilor 1990. Ca
30
procesor Transputer T-805 (30 MHz) de la Inmos au fost folosite. GigaCluster
(GC) a fost un calculator paralel care a fost produs la începutul anilor 1990. Un
cluster Giga a fost alcătuit din Cuburi Giga. Fiind proiectat pentru Inmos T9000 –
transputers , acesta nu mai putea fi lansat ca a tare, deoarece transputers Inmos
T9000 în sine nu a ajuns pe piață în timp util. Aceasta a condus la dezvoltarea GC /
PP (PowerPlus) în care au fost utilizate două CPU -uri Motorola MPC 601 (80
MHz), suportate de patru transpuneri T805 (30 MHz). În timp ce GC / PP era un
sistem hibrid, GC ("nivel de intrare") se baza numai pe T805 . GC el trebuia să fie
upgradeabil la transputer -ele T9000 (dacă ar veni destul de devreme), devenind
astfel un GC complet. Dat fiind faptul că T9000 a fost succesorul evolutiv al lui
Inmos pentru T800 , modernizarea a fost planificată ca fiind simplă și simplă
deoarece, în primul rând, ambele transputere au
împărțit aceleași seturi de instrucțiuni și, în al doilea
rând, au avut, de ase menea, o rată de performanță
similară a puterii de calcul față de capacitatea de
comunicare. Prin urmare, un factor teoretic de
accelerare de 10 a fost de așteptat, dar în cele din
urmă nu a fost niciodată atins.
Puterea de procesare a unui procesor a fost de
4,4 megaflopi . Fiecare procesor avea o memorie
locală de 1 megabyte disponibilă. Un producător a
anunțat versiunea GC cu transpondere Inmos T -9000
nu ar putea fi niciodată realizată deoarece procesorul
nu a fost lansat.
Structura rețelei era o rețea bidimen –
sională. Viteza de comunicare a fost de 20 MBit / s.
O excepție pentru timp a fost conceptul
modular al GC. Un modul conținea patru clustere,
fiecare cu 16 transputere și propria sursă de
alimentare, intrări / ieșiri și porturi de comunicație. Prin combinarea modulelor
teoretic, până la 16.384 procesoare ar putea fi interconectate într -un sistem foarte
puternic.
Termenul GC-x indică dimensiunea sistemului. Un GC-1 are 64 procesoare,
un GC-2 256 un GC-3 1024 un GC-4 4096, și GC-5 16.384 procesoare. În timp ce
versiunile mai mici au fost răcite cu aer la GC -3, ar trebui să fie utilizate pentru o
mai bună răcire prin apă. A fost utilizat sistemul de operare PARIX .
Fig. 5.4: GIGACLUSTER,
PARSYTEC
Sursa:[
http://www.geekdot.com/gi
gacube/ ]
31
Consumul de energie al unui sistem cu 1024 de procesoare a fost de
aproximativ 27 kW , greutatea de aproape o tonă. Prețul de achiziție în 1992 a fost
de aproximativ 1,5 milioane DM.
Cele două mari instalații ale GC au avut 1024 procesoare (16 module cu câte
64 transputer) și au fost operate la centrele de date ale unive rsităților
din Köln și Paderborn . Copia Pader born a GC a fost expusă din octombrie 2004
în Heinz Nixdorf MuseumsForum (nu mai este operațional).
GC cu 1024 de procesoare a atins în 1992 o destinați e de plasare
în lista TOP500 a celor mai rapide instalații de supercomputere din lume . În
Germania a ajuns la n umărul 22 al celor mai rapide computere.
Intel Paragon
Este o serie de intrerupte masiv paralele supercalculatoare care a fost produs
de Intel în anii 1990. Paragon XP / S este o versiune experimentală a
sistemului Touchstone Delta care a fost construit la Caltech , lansat în 1992.
Paragon înlocuit mai devreme Intel IPSC / 860 de sistem, la care este strâns legată.
Seria Paragon se bazează pe microprocesorul Intel i860 RISC . Până în 2048
(mai târziu, până la 4096) i860 -urile sunt conectate într -o rețea 2D. În 1993, a fost
anunțată o variantă Paragon XP / E entry -level cu până la 32 de noduri de calcul.
ARHITECTURA
Arhitectura sistemului este un sistem partiționat, majoritatea sistemului
cuprinzând noduri computerizate fără discuri și un număr mic de noduri de servicii
interactive nodu ri I / O. Din moment ce majoritatea nodurilor nu au stocare
permanentă, este posibil ca "partiția roșu / negru" să compară partiția de la
clasificată la neclasificată prin deconectarea unui set de noduri I / O cu discuri
clasificate și apoi conectarea unei partiții I / O neclasificate. Intel a intenționat ca
Paragon să ruleze sistemul de operare distribuit OSF / 1 AD pe toate
procesoarele. Cu toate acestea, acest lucru sa dovedit a fi ineficient în practică și
un kernel ușor numit SUNMOS a fost dezvoltat la Sandia National
Laboratories pentru a înlocui OSF / 1 AD pe procesoarele de calcul ale lui
Paragon.
Laboratorul Național Oak Ridge a operat un paragon XP / S 150 MP , unul
dintre cele mai mari sisteme Paragon, timp de mai mulți ani. Prototipul pentru Intel
Paragon a fost Intel Delta, construit de Intel cu finanțare de la DARPA și instalat
32
operațional la Institutul de Tehnologie din California la sfârșitul anilor 1980, cu
finanțare din partea Fundației Naționale de Științe . Delta era una dintre puținele
computere care se aflau cu mult peste curba legii lui Moore .
Fig3.4:Intel Paragon Sursa: [Wikipedia.org ]
La fel și u rmătoarele computere aparțin clasei de mașini cu memorie
distribuită :
IBM SP1 / SP2
Parsytec gc
CM5
Cray t3d
Paragon (Intel Corp.)
KSR1
Ncube
Meiko CS -2
AVX (Alex Parallel Computers)
IMS B008
33
Bibliografie
1) “Advanced Computer Architecture and Parallel Processing. ”-El-Rewini,
Hesham; Abd -El-Barr, Mostafa (2005). Wiley -Interscien ce.
2) “Advanced Computer Architectures” – D. Sima, T. J. Fountain, P. Kacsuk
3) “CALCUL PARALEL Proiectare și dezvoltare formală a programelor
paralele ”-Virginia Niculescu, 2005
4) “Cataneda ”, R.; Zhang, Xiaodong; Hoover, J. M., Jr. (1997)
5) Revista Informatica Economica, nr. 1/2004
6) “Sisteme Paralele și distribuite ”, Mihai Horia Zaharia, ed. Gh. Asachi, Iași,
2003
7) http://www.ccas.ru/paral/mimd/mimd.html
8) http://www.netlib.org/utk/papers/adva nced -computers/dm -mimd.html
9) https://ru.bmstu.wiki/%D0%A2%D0%B0%D0%BA%D1%81%D0%BE%D
0%BD%D0%BE%D0%BC%D0%B8%D1%8F_%D0%A4%D0 %BB%D0%
B8%D0%BD%D0%BD%D0%B0
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: CALCULATOARE ȘI TEHNOLOGIA INFORMA ȚIILOR [607005] (ID: 607005)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
