Sunteți pe pagina 1din 37

1. INTRODUCERE 1.1.

Definirea calculului paralel


"The rapid progress made in hardware technology has significantly increased the economical feasibility of building a new generation of computers adopting parallel processing. However, the major barrier preventing parallel processing from entering the production mainstream is on the software and application side."
K.Hwang, "Advanced Computer Architecture. Parallelism, Scalability, Programability", McGraw-Hill, New York, 1993 p.13..

Creterea continu a complexitii aplicaiilor executate de sistemele de calcul a impus cutarea unor soluii adecvate pentru asigurarea unor performante corespunztoare. Reducerea timpului de execuie s-ar putea realiza prin folosirea unei tehnologii mai rapide, a unei arhitecturi paralele, a unor algoritmi mai performani (paraleli) sau o combinaie a tuturor acestor elemente [5]. Limitele tehnologiei sunt puse n evident de observaia c pe parcursul a 25 ani, dintr-un factor de cretere a performantelor de 106, contribuia tehnologiei este de numai 160 (lund ca referin supercalculatorul CRAY-1) [13]. Conceptul de paralelism aplicat la un sistem de calcul se refer la execuia a ct mai multor operaii n acelai timp. Iniial implementat la nivel aritmetic, prin execuia operaiilor aritmetice cu toi biii operanzilor simultan, paralelismul s-a extins continuu. O prim etap a fost marcat de introducerea paralelismului funcional, prin apariia coprocesoarelor (de I/E, de calcul n virgul mobil etc.). La nivel aritmetic, paralelismul a fost extins prin proiectarea unitilor de calcul pipeline, cte una pentru fiecare operaie aritmetic elementar [14]. Conceptul de prelucrare pipeline a fost aplicat si pentru accelerarea fazelor de extragere, decodificare i execuie a instruciunilor. Urmtorul nivel de paralelism a fost atins prin multiplicarea unor procesoare elementare, fie simple uniti RALU bit-slice, fie uniti centrale complete care coopereaz la rezolvarea aceleai probleme.

12

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

Conceptul de paralelism presupune n general: mprirea unui task n mai multe subtask-uri de dimensiuni mai reduse; asignarea subtask-urilor la mai muli executani care vor lucra n paralel; coordonarea executanilor;

evitarea descompunerii task-ului iniial n subtask-uri de dimensiuni prea mici, pentru ca nu cumva timpul n care li se comunic executanilor ce au de fcut, s devin mai mare dect timpul pe care-l consum acetia lucrnd efectiv. Exemple: construirea imobilelor, fabricarea de automobile, activitatea din cadrul unor organizaii mari, etc. Calculul paralel constituie o modalitate atractiv de rezolvare rapid a unor probleme de complexitate ridicat (volum mare de date i de calcule necesare), ca de exemplu: modelarea i simularea diferitelor fenomene (planificarea economic, fizic nuclear, chimie molecular, meteorologie, astronomie, seismologie); proiectarea asistat de calculator: construcii de automobile, de avioane; proiectarea automata a circuitelor integrate probleme de optimizare; prelucrarea imaginilor. recunoaterea vorbirii.

1.2. Calculatoare secveniale i calculatoare paralele 1.2.1. Calculatoare secveniale


Avantaje: experiena bogat n programarea secvenial; peste 40 de ani n dezvoltarea de compilatoare si instrumente de lucru; Limitri: performana procesoarelor este aproape de limita sa asimptotic;

1. NOIUNI INTRODUCTIVE

13

costul mare necesar fabricrii unor procesoare de nalt performan.

1.2.2. Calculatoare paralele


Calculatorul paralel (main paralel) este un calculator care conine procesoare multiple i este capabil s prelucreze informaia prin manevrarea concurent a datelor. Mainile paralele constituie singura modalitate de a satisface cerinele mereu n cretere ale puterii de calcul. Avantaje: rezolvarea unor clase de aplicaii imposibil de abordat cu calculatoarele tradiionale; costuri reduse prin utilizarea eficient a mai multor procesoare ieftine pentru a rezolva mpreun o anumit problem; scalabilitate; integrarea progresului tehnologic obinut n domeniul microprocesoarelor i reelelor de interconectare. Dezavantaje: lipsa de experien n programarea paralel; necesitatea de a dezvolta noi compilatoare si instrumente de lucru; imposibilitatea de a reutiliza unele aplicaii. Calculul paralel implic: mai multe procesoare; o reea de interconectare; un mediu de creare i dezvoltare a programelor; sistem de operare specific; paradigma de programare paralel care presupune: comunicare prin mesaje (message passing): MPI, MPL, PVM; paralelism de date: Fortran 90, High Performance Fortran, DataParallel C. un algoritm paralel; un program paralel.

14

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

Un program paralel presupune: descompunerea algoritmului sau a datelor n mai multe pri; distribuirea acestora la mai multe procesoare care vor opera simultan; coordonarea activitii i comunicrii ntre procesoare. Programele paralele au o portabilitate sczut deoarece ele depind direct de caracteristicile constructive i de organizarea hardware a maini. Programe eficiente nu pot fi obinute dac se ignor aceste caracteristici. Activitatea de programare paralel trebuie s in cont de: caracteristicile arhitecturii paralele utilizate; caracteristicile reelei de interconectare a procesoarelor.

Sarcina proiectantului unui sistem de calcul paralel este mult mai dificil dect cea a unui realizator de sistem secvenial. El are de-a face cu un model complex, ce prezint cel puin patru nivele. Acestea corespund etapelor parcurse n rezolvarea unei aplicaii: nivelul algoritmului; nivelul limbajului de nivel nalt; nivelul sistemului de operare; nivelul masinii propriu-zise. Eficiena de ansamblu depinde de corespondena ntre aceste nivele (modele), de ct de bine reprezint un model de calcul, la un anumit nivel, actiunile vecinilor. n plus, proiectantul trebuie s stabileasc momentul la care sunt precizate toate detaliile de implementare, de la toate nivelele, urmat de verificarea consistenei lor.

1.3. Arhitecturi paralele


Performantele calculatoarelor au crescut exponenial, n medie de 10 ori la fiecare 5 ani, ncepnd cu 1945. Supercalculatoarele ale cror viteze sunt > 10 Gflops (1 GFlops este egal cu execuia a 109 operaii n virgul mobil ntr-o secund). Tehnologii noi (VLSI creterea performanelor este ns limitat fizic de viteza de propagare a semnalelor, numrul de microcomponente de pe o anumita suprafa, etc.)

Aceste performane sunt posibile prin:

1. NOIUNI INTRODUCTIVE

15

Inovaii arhitecturale n special prin paralelism.

1.3.1. Paralelismul n arhitecturi clasice


a) Procesoarele I/O au fost folosite pentru prima dat la a doua generaie de calculatore (IBM 709), figura 1.1. Procesorul de intrare-ieire (I/O PROCESOR) lucreaz n paralel cu unitatea central de procesare (CPU) efectund operaii distincte. INPUT OUTPUT

I/O PROCESOR

CPU
Figura 1.1.

MEMORIE

b) Memorii ntreesute Memoria ntreesut este memoria construit din mai multe module, fiecare cu hardware-ul su de adresare. Unitatea de memorie poate fi fr memorie cache (figura 1.2) sau cu memorie cache (figura 1.3), iar modulele de memorie pot fi accesate simultan. De exemplu, calculatorul Cray-2, conine 256 blocuri de memorie i are o vitez de civa Gflops.
Modul de MEMORIE 1 UNITATE de PROCESARE Modul de MEMORIE 2

.... Figura 1.2.


Modul de MEMORIE N

16

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

Modul de MEMORIE

1
UNITATE de PROCESARE MEMORIE CACHE Modul de MEMORIE

2 ....
Modul de MEMORIE N

Figura 1.3.

La acest tip de memorie i ndeosebi la ultima categorie dotat cu memorii cache, timpul de acces scade considerabil. c) Uniti funcionale multiple - mai multe uniti funcionale independente pentru nmulire, adunare, etc. ce pot lucra simultan asupra unor operanzi distinci. De exemplu, calculatoarele CDC 6600 (figura 1.4).
FETCH OPERANZI MPRIRE FETCH OPERANZI NMULIRE Memorie de date

REGISTRE

FETCH OPERANZI ADUNARE

INCREMENTARE ADUNARE
MULTIPLICARE MPRIRE LOGIC DE CONTROL

Memorie de instruciuni

BUFFER INSTRUCIUNI

UNITATE DE DECODIFICARE/ ALOCARE (Scheduler)

Figura 1.4.

1. NOIUNI INTRODUCTIVE

17

d) Procesoare pipeline Sistemul de tip pipeline este compus din mai multe etaje (faze) care pot executa concurent pri (subtask-uri) diferite dintr-un task. Un procesor pipeline este format dintr-o linie de procesoare care i transmit informaia de la unul la altul ntr-o singur direcie (figura 1.5). Structura general a unui calculator secvenial cu procesor pipeline, memorie ntreesut i memorie cache este prezentat n figura 1.5. Un sistem pipeline P este o pereche ordonata <T, S>, unde T este un set de procese sau task-uri, iar S este un set de etaje sau stagii, astfel nct: a. Fiecare task Ti din mulimea T este format din subtask-urile ti1, ti2, , tin care trebuie sa fie procesate secvenial (ieirea calculat de tij reprezint intrarea pentru tij+1): Ti = <ti1; ti2;; tin> (1.1) b. Pentru fiecare task Ti, fiecare subtask tij este procesat de un etaj Sj a lui S, astfel nct subtask-urile ti1, ti2, .., tin ale lui Ti snt procesate, respectiv, de etajele S1, S2, , Sn ale lui S; n aceste condiii, ieirea etajului Sj trebuie s reprezinte intrarea pentru etajul Sj+1. Aceste etaje sau segmente Sj sunt conectate ntre ele formnd o conduct (pipeline) de execuie a fiecrei instruciuni. c. La un moment dat, dou sau mai multe task-uri din mulimea T pot fi procesate simultan n pipeline (etaje diferite pot procesa subtask-uri aparinnd unor task-uri distincte). Memorie Modul 1 Memorie cache Memorie Modul 2 ... SM-1 ... S1 S0 Memorie Modul N

PROCESOR Figura 1.5.

18

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

ntr-un procesor pot exista mai multe nivele de pipelining: A. Pipeline al instruciunilor (la nivel de instruciune) pentru execuia paralel a instruciunilor. De exemplu, un pipeline cu 5 etaje pentru procesarea instruciunilor memorate n memoria principal. Structura de acest tip const n faptul c, faze diferite ale aceleai instruciuni se execut simultan n uniti specializate diferite ale aceleai uniti centrale de procesare. In acest scop trebuie luate n consideraie i analizate principalele faze de execuie ale instruciunilor. O structur pipeline simplificat cu 5 uniti de procesare se prezint n figura 1.6. Pentru a nelege modul de execuie pipeline a instruciunilor se consider urmtoarele uniti: FI AO EI unitatea de ncrcare (fetch) instruciune din memorie; unitatea de calcul a adreselor operanzilor; unitatea de execuie a instruciunii. DI unitatea de decodificare a instruciunii; FO unitatea de ncrcare (fetch) operanzi din memorie; Simultan, mai multe instruciuni se afl n mai multe stadii de execuie n unitile pipeline ale procesorului (figura 1.6). Fluxul de execuie a instruciunilor este urmtorul (figura 1.7): Unitate de ncrcare instruciune - FI Unit. de decodificare instruciune - DI Unitate de calcul adrese operanzi - AO Unitate de ncrcare operanzi - FO Unitate de execuie instruciune - EI

Memoria

Principal

Figura 1.6.

1. NOIUNI INTRODUCTIVE

19
9 10 Timp

I1 I2 I3 I4 I5 I6

FI

DI FI

A O DI FI

FO A O DI FI

EI FO A O DI FI EI FO A O DI FI EI FO A O DI EI FO A O EI FO EI

Instruciuni

Figura 1.7.

FI aduce prima instruciune din memorie i o ncarc n registrele de instruciuni RI; DI ncepe decodificarea instruciunii din RI, iar FI ncarc urmtoarea instruciune; dup decodificare, AO analizeaz prima instruciune pentru a determina adresele operanzilor, n timp ce DI decodific cea de a doua instruciune, iar FI citete urmtoarea instruciune, .a.m.d. Numrul de instruciuni ce se execut n paralel depinde de numrul unitilor specializate ale procesorului. Instruciunile se execut n paralel dar se afl n stadii diferite de execuie. B. Pipeline aritmetic (la nivel de cuvnt) pentru faza de execuie a unei instruciuni. Acest tip descrie segmentarea operaiilor aritmetice, astfel nct, diferite pri ale unei operaii sunt executate de procesoare distincte. De exemplu, pentru adunarea n virgul mobil a dou numere se fac operaiile din figura 1.8.
operanzi
Comparare operanzi
Aliniere virgul operanzi testare rez. ZERO

ADD
Figura 1.8.

Normalizare

20

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

C. Macro-pipeline (la nivel de program). Cunoate dou moduri de abordare ce se pot prezenta astfel: 1. Un numr de procesoare asemntoare sau identice sunt conectate astfel nct informaia este transmis ntr-o singur direcie. Arhitecturile de acest tip sunt destinate rezolvrii unor probleme de interes general. 2. Un numr de procesoare diferite sunt conectate astfel nct informaia este transmis ntr-o singur direcie, fiecare procesor rezolvnd o parte diferit a problemei. Este posibil ca procesoare din pipeline s fie compuse, la rndul lor, din mai multe procesoare care lucreaz n paralel. Arhitecturile de acest tip sunt destinate rezolvrii unor probleme specifice, particulare. Utiliznd tehnica pipeline se reduce timpul mediu de execuie a instruciunilor rezultnd o accelerare a calculelor, numit accelerare pipeline (pipeline speedup). Accelerarea pipeline este dat de raportul dintre timpul mediu de execuie a instruciunilor fr pipeline i timpul mediu de execuie a instruciunilor cu pipeline. Pentru a exemplifica, s considerm un procesor pipeline cu m segmente pipeline, fiecare segment avnd o durat de execuie egal cu unitatea de timp. Fie: timpul de execuie secvenial a n instruciuni (Ts); timpul de execuie pipeline (Tp) pentru acelai numr de instruciuni i accelerarea pipeline (Ap). ntre aceste mrimi exist urmtoarele relaii: T s = nm

= n + m 1 = Ts nm = m Tp n + m 1

(1.2)

Din relaiile de mai sus, se poate observa c, teoretic, dac n >> m, accelerarea maxim pipeline ce se poate obine, ignornd eventualele conflicte de execuie, tinde asimptotic ctre numrul de segmente pipeline ale procesorului. Conceptul de arhitectur pipeline superscalar a fost introdus odat cu procesorul Pentium. Astfel, la varianta de baz au fost introduse dou linii, una pentru ntregi i una pentru aritmetica n virgul mobil (liniile U i V). La versiunile Pentium Pro, II i III se utilizeaz 3 uniti autonome pipeline.

1. NOIUNI INTRODUCTIVE

21

Prima unitate - de extragere i decodificare instruciune - efectueaz extragerea n avans a instruciunilor i apoi transformarea lor n microoperaii. A doua unitate - de dispecerizare i execuie - selecteaz microoperaiile care pot fi executate i le distribuie unei uniti specializate (vezi structura de procesor cu uniti aritmetice specializate). A treia unitate unitatea de retragere - asambleaz rezultatele pariale n ordinea stabilit de program. Un alt tip de structur de procesare paralel se refer la utilizarea procesoarelor specializate care posed un set propriu de instruciuni pentru gestionarea operaiilor de intrare-ieire, de procesare grafic, etc. e) Procesoare vectoriale. n procesoarele vectoriale, aceeai operaie se aplic n paralel unor seturi distincte de operanzi. De exemplu, nmulirea a doi vectori A si B de dimensiune n poate fi organizat ca un pipeline cu m etaje. La un moment dat, diferite etaje execut faze diferite ale aceleiai operaii asupra unor seturi diferite de operanzi (figura 1.9).
Unitate de procesare

faza 1

faza 2

...

faza m

A[m+1] B[m+1]

A[m] * B[m] parial

A[m-1] * B[m-1] parial

...

A[1] * B[1] final complet

Figura 1.9. CRAY-1, CRAY X-MP

1.3.2. Sisteme paralele


Sistemele de calcul secvenial sunt toate implementri ale unui singur model de calcul, cel propus de John von Neumann. Din pcate, arhitecturile paralele care au proliferat sunt extrem de diferite si nu pot fi incluse n acelai model. Pe de alt parte, proiectarea algoritmilor de calcul, a limbajelor si a sistemelor de operare fac apel la modelul sistemului. De aici necesitatea utilizrii unor modele ct mai apropiate de sistemul fizic.

22

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

ntr-un sistem paralel exist mai multe procesoare care colaboreaz pentru a rezolva o anumit problem. Componentele din cadrul sistemului (procesoare, memorii, procesoare de I/O) comunic printr-o reea de interconectare (figura 1.10).

Modul 1 de memorie

Modul 2 de memorie

...

Modul m de memorie

REEA DE INTERCONECTARE PROCESOR 1 PROCESOR 2


Figura 1.10. n general, o reea de interconectare se definete ca un set de elemente de comutaie care permite realizarea diferitelor ci de comunicaie ntre perechi diferite de dispozitive. Topologia unei reele poate fi static sau dinamic. n topologia static circuitele de interconectare ntre perechile de uniti sunt fixe, iar n topologia dinamic cile de interconectare ntre perechi de uniti sunt interschimbabile prin comand.

...

PROCESOR n

Strategii de interconectare:
a) Cu magistral comun, ieftin, dar lent (figura 1.11).

P0

P2

...

Pn-1

Figura 1.11.

b) Sistem complet conectat (figura 1.12). Acesta permite comunicarea instantanee ntre orice pereche de procesoare, multe perechi de procesoare putnd comunica simultan. Pentru interconectarea a n n(n 1) procesoare sunt necesare linii de interconectare. Topologia reelei 2

1. NOIUNI INTRODUCTIVE

23

de interconectare n acest caz este static. Pentru valori mari ale lui n, preul reelei devine foarte ridicat. P0 P4

P1

P2

P3

Figura 1.12. Exemplu de sistem complet conectat cu 5 uniti de procesare. c) Reea crossbar (figura 1.13). Are o topologie dinamic i necesit n m puncte de comutare pentru a conecta n + m procesoare. Astfel de reele au un pre foarte ridicat. P0 P1 P2 P3 P4 P5 P6 P7

Figura 1.13. Reea crossbar cu n + m = 8 procesoare. d) Tabloul liniar. Fiecare procesor Pi este conectat cu vecinii si Pi-1 i Pi+1 printr-o legtur bidirecional (figura 1.14).

24

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

P0

P1

P2
Figura 1.14.

...

Pn-1

e) Tablou bidimensional (figura 1.15. Fiecare nod interior este conectat cu cei 4 vecini ai si printr-o linie de comunicaie bidirecional. La fel ca i la tabloul liniar, reeaua are o structur regulat care poate fi extins utiliznd alte noi noduri. De asemenea, se consider c toate liniile de legtur au aceeai lungime i timpi identici de propagare a informaiei ntre nodurile vecine.

P0,0 P1,0 P2,0 P3,0

P0,1 P1,1 P2,1 P3,1

P0,2 P1,2 P2,2 P3,2

P0,3 P1,3

P2,2 P3,3

Figura 1.15. Tablou bidimensional pentru n = 4 4 procesoare. f) Reeaua arborescent (figura 1.16). Are structur de arbore binar. Procesoarele formeaz un arbore binar complet. Fiecare procesor de pe nivelul i al arborelui, cu excepia rdcinii i a nodurilor frunz, este conectat printr-o legtur bidirecional cu nodul su printe i cu cei doi fii ai si.

1. NOIUNI INTRODUCTIVE

25

Figura 1.16. Reea arborescent cu 4 nivele. g) Conexiunea shuffle-exchange (amestec i schimb), figura 1.17. Se consider date n procesoare P0 , P1 ,. . ., Pn-1 , n fiind o putere a lui 2 astfel nct n=2q procesoare. In conexiunea shuffle procesorul Pi este conectat unidirecional cu Pj, n care:
n dac 0 i 1 2 i 2 j= 2 i + 1 n dac n i n 1 2

(1.3)

n conexiunea shuffle-exchange, fiecare procesor par este conectat bidirecional cu succesorul su (figura 1.17).

P0

P1

P2

P3

P4

P5

P6

P7

Figura 1.17. h) Conexiunea hipercub (figurile 1.18 i 1.19). Are n = 2q procesoare. Fiecare procesor Pi este conectat cu q vecini Pj, astfel nct j n reprezentare binar difer printr-un singur bit de reprezentarea binar a lui i. Dac q = 3 se obine o reea hipercub.

26

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

P011 P010 P110

P111

P001 P000 P100


Figura 1.18. Conexiune cub pentru q = 3.

P101

Figura 1.19. Conexiune cub pentru q = 4.

1.4. Clasificarea arhitecturilor de calculatoare paralele


De-a lungul evoluiei calculatoarelor s-au fcut mai multe clasificri ale calculatoarelor. Cele mai cunoscute dintre acestea sunt: clasificarea lui Flynn; clasificarea lui Hockney; clasificarea lui Schwartz, clasificarea lui Hndler i clasificarea Flynn-Johnson.
1.4.1. Clasificarea Flynn

n anul 1966, Flynn a fcut o clasificare a arhitecturilor de calculatoare dup natura fluxului de instruciuni (FI) i a fluxului de date

1. NOIUNI INTRODUCTIVE

27

(FD). Clasificarea cuprinde 4 tipuri de calculatoare ce vor fi prezentate n continuare. a) Calculatoare SISD (Single Instruction stream, Single Data stream), figura 1.20. Sunt calculatoare secveniale cu arhitectur clasic von Newmann. Este format dintr-o singur unitate de procesare (P) care primete un flux de instruciuni (FI), de la unitatea de control (C). La fiecare pas de execuie, unitatea de control lanseaz o instruciune care opereaz asupra unei date din fluxul de date (FD) obinut de la unitatea de memorie (M). Avnd un singur procesor, el poate efectua o singur instruciune la un moment dat. Algoritmii ce se execut pe aceste calculatoare sunt algoritmi secveniali. Totui, ele nu exclud paralelismul n totalitate (vezi organizrile de tip look-ahead, pipeline sau n blocuri funcionale ale microprocesoarelor moderne). Modelul tablou de procesoare (conine o mulime de procesoare coordonate de un procesor principal) i modele de arhitecturi pipeline fac parte din clasa SIMD. FD

Unitate de procesare (P) FI Unitate de control (C)

Unitate de memorie (M)

Figura 1.20.

Calculatoare MISD (Multiple Instruction stream, Single Data stream), figura 1.21. Structura acestor calculatoare este format din n procesare (P), fiecare cu propria lui unitate de control (C), opereaz cu n fluxuri de instruciuni (FI) i primesc un flux unic de date (FD) de la o unitate de memorie (M). La fiecare pas de execuie, asupra unei date primite din memorie, sunt executate simultan operaii diferite, de ctre toate cele n procesoare, n funcie de instruciunea pe care o primete fiecare de la propria sa unitate de control. Aceast clas pare a fi vid, cu toate c n ea ar

28

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

putea fi cuprinse structuri specializate de procesare. Execuia simultan a mai multor operaii asupra aceleiai date este dificil de definit: poate fi stabilit o ordine de execuie a operaiilor i care este rezultatul final ? P0 FD P1 ... Pn-1 Figura 1.21. b) Calculatoare SIMD (Single Instruction stream, Multiple Data stream), figura 1.22. n aceast structur exist n procesoare (P) identice, fiecare cu memoria sa local n care se pot memora date sau programe. Procesoarele opereaz sincron sub controlul unui singur flux de instruciuni (FI) i a unei singure uniti de control (C), procesoarele executnd aceeai instruciune asupra unor date diferite din fluxul de date multiple (FD). Procesoarele pot comunica prin intermediul unei memorii comune i/sau a unei reele de interconectare. P0 P1 ... Pn-1 Figura 1.22. FD0 FD1 ... FDn-1 Memorie partajat i /sau Reea de interconectare FIn-1 FI0 FI1 C0 C1 ... Cn-1

FI

1. NOIUNI INTRODUCTIVE

29

n aceast clas se pot ncadra att calculatoarele vectoriale, ct si masivele de procesoare. Un masiv de procesoare (MPP, CM-2, ICL DAP etc.) este format dintr-o unitate de control care decodific instruciunile i lanseaz semnale de control ctre procesoare (PE - processing elements), care opereaz asupra datelor locale. Sistemul mai include scheme de mascare ce autorizeaz funcionarea unor submulimi de procesoare i funcii de rutare realizate pe reeaua de interconectare a procesoarelor. d) Calculatoare MIMD (Multiple Instruction stream, Multiple Data stream), figura 1.23. n aceast structur sunt n procesoare (P), n fluxuri de instruciuni (FI) i n fluxuri de date (FD). Fiecare procesor are propria sa unitate de control (C) i propria sa memorie local (M), astfel nct, fiecare procesor opereaz sub controlul unui flux de instruciuni furnizat de unitatea sa de control (procesoarele opereaz n mod tipic asincron), executnd, n general, programe diferite (proprii) asupra unor date diferite (proprii). Procesoarele pot comunica prin intermediul unei memorii partajate i reea de interconectare sau numai a unei reele de interconectare. Aceast clas include toate formele de configuraii multiprocesor, de la reelele de calcul de uz general pn la masivele de procesoare. FI0 FD0 Memorie partajat FD1 i /sau Reea de interconectare FDN-1

C0

P0

C1 ... Cn-1

FI1 P1 ... FIn-1 Pn-1

Figura 1.23.

30

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

1.4.2. Clasificarea Hockney

Clasificarea de tip Hockney se refer numai la calculatoarele de tip MIMD. Conform acesteia, calculatoarele MIMD se mpart n dou clase (figura 1.24): conectate; reele. n calculatorul MIMD conectat, procesoarele i memoria sunt legate printr-un ntreruptor prin care fiecare procesor poate comunica cu un alt procesor avnd acces la datele din memorie. Din punct de vedere arhitectural, o problem care se ridic n acest caz este aceea de a gsi un comutator rapid i ieftin. n calculatorul MIMD de tip reea, memoria este distribuit, iar maina este format dintr-un numr de procesoare identice care comunic prin mesaje. Procesoarele sunt conectate ntre ele conform modelelor de reele regulate (ierarhic, gril, cub, reconfigurabil). La acest tip de calculator trebuie gsit acea arhitectur care este cel mai uor de implementat, cel mai uor de programat i care este capabil s echilibreze cel mai bine performana procesoarelor cu viteza de comunicare a mesajelor.
MIMD

CONECTATE

PIPLINE

REELE
IERARHIC

Memorie partajat Memorie distribuit

GRIL CU
RECONFIGURABIL

(oricare)

Figura 1.24. Clasificarea Hockney

1. NOIUNI INTRODUCTIVE

31

1.4.3. Clasificarea Schwartz

n clasificarea Schwartz se utilizeaz noiunea de granularitate se refer la numrul de procesoare care intr n structura unui calculator paralel. Din acest punct de vedere, calculatoarele paralele se pot mpri n trei categorii principale ce vor fi prezentate n continuare. 1. Calculatoare cu granularitate mare, grosier (coarse-grain) dac acestea sunt compuse dintr-un numr mic de procesoare foarte puternice. Un exemplu de astfel de calculator este calculatorul CRAY Y-MP care conine 8 16 procesoare puternice cu o vitez de procesare de circa 10 GFlops. 2. Calculatoare cu granularitate mic, fin (fine-grain) dac acestea sunt compuse dintr-un numr mare de procesoare mici. Ca exemple se pot aminti: calculatorul Connection Machine 2 (CM-2) care este format din 65536 procesoare de un bit; calculatorul MasPar (MP-1) format din 16484 procesoare de patru bii. 3. Calculatoare cu granularitate medie (medium-grain) dac acestea sunt compuse din cteva sute, cteva mii sau zeci de mii de procesoare de putere medie. Astfel, calculatorul iPSC/860 conine 128 procesoare I860, calculatorul nCUBE-2 conine 8192 procesoare RISC specializate, calculatorul Connection Machine 5 (CM-5) conine 16384 procesoare SPARC. Diferite tipuri de aplicaii sunt adecvate pentru calculatoare paralel cu diferite grade de granularitate. Astfel, aplicaiile cu grad redus de paralelism trebuie executate pe calculatoare cu granularitate, de asemenea, redus, i invers. Cu alte cuvinte, trebuie s se realizeze un optim ntre gradul de paralelism al unui algoritm paralel i granularitatea calculatorului paralel pe care va fi implementat i executat.
1.4.4. Clasificarea Hndler

Clasificarea Hndler are la baz o notaie propus de Hndler n anul 1977 pentru reprezentarea pipeline-ului i paralelismului. Conform acesteia, pipeline-ul i paralelismul poate apare pe trei nivele ale unui sistem de calcul, astfel: Unitatea de Control a Procesorului UCP; Unitatea de Calcul Aritmetic i Logic UAL;

32

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

Circuitul Logic la nivel de Bit CLB;

Un PCL corespunde unui procesor, un ALU corespunde unei uniti funcionale sau unui element de procesare dintr-un procesor tablou, iar CLB corespunde execuiei operaiilor la nivel de bit n UAL. Conform acestei notaii, un calculator se poate descrie prin intermediul a trei perechi de ntregi, astfel: T(C) = < K*K, D*D, W*W > (1.4) n care: K reprezint numrul de UCP; K numrul de UCP care pot fi legate prin pipeline; D numrul de UAL controlate de fiecare UCP; D numrul de UAL care pot fi legate prin pipeline; W numrul de bii ntr-un UAL sau un cuvnt al unui element de procesare; W numrul de segmente legate prin pipeline n toate UAL sau ntr-un singur procesor. Dac valoarea celui de-al doilea element din fiecare pereche este egal cu 1, el este omis. Operatorul * este folosit pentru a descrie un sistem de calcul care conine diferite tipuri de procesoare. Cu ajutorul acestei notaii poate fi descris ntr-un formalism matematic orice structur de calculator.

1.4.5. Clasificarea Flynn-Johnson

Categoria MIMD include o larg clas de calculatoare. n anul 1988, E.E. Johnson a propus o clasificare suplimentar a acestor maini bazat pe structura memoriei (global sau distribuit) i mecanismul utilizat pentru comunicare / sincronizare (variabile partajate sau comunicare de mesaje). Clasificarea Flynn-Johnson este prezentat n figura 1.25. El a mprit clasa calculatoarelor MIMD n 4 subclase: GMSV(Global Memory and Shared Variables) memorie global i variabile partajate; GMMP(Global Memory and Message Passing) memorie global i comunicare de mesaje; DMSV(Distributed Memory and Shared Variables) memorie distribuit i variabile partajate; DMMP(Distributed Memory and Message Passing) memorie distribuit i comunicare de mesaje. Dintre acestea subclasa GMMP nu este larg utilizat.

1. NOIUNI INTRODUCTIVE

33

Flux de date (s) Singular Multiplu

Flux de instruciuni (s) Multiplu Singular

SISD
(uniprocesor)

SIMD
(arie de procesoare)

MISD

memorie partajat multicalculatoare cu distribuit memorie distribuit


Variabile partajate Transmisie de mesaje

Comunicare / Sincronizare

Figura 1.25. Clasificarea Flynn - Johnoson

1.5. Modele de arhitecturi paralele


a) Masivele de procesoare. Sunt calculatore SIMD (uneori fiecare unitate de procesare (P) are propria sa unitate de control (C), dar toate unitile P execut sincron aceeai instruciune). Fiecare unitate P poate fi programat astfel nct s ignore anumite instruciuni. Aceste echipamente se utilizeaz, n special, la rezolvarea unor probleme care implic operaii ciclice asupra unor date cu structur regulat (calcul matricial, prelucrarea imaginilor, recunoaterea formelor, etc.). Un exemplu din aceast categorie calculatorul ILLIAC IV, Connection Machine. b) Multiprocesoarele. Sunt calculatoare de tip MIMD cu un spaiu global de adrese. Exist dou posibiliti de cuplare: puternic cuplate; slab cuplate.

Distribuit

DMSV

MIMD

DMMP

Memorie

procesoare cu memorie partajat

Global

GMSV

GMMP

34

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

Multiprocesoarele puternic cuplate (figura 1.26) au spaiu de adrese comun realizat printr-o memorie global unic la care este conectat fiecare procesor (cu acelai timp de acces). Fiecare procesor poate avea n plus i propria sa memorie local. Un exemplu din aceast categorie este calculatorul Cedar, Cray, C.mmp (16 procesoare conectate printr-o reea de tipul crossbar la o memorie global). Multiprocesoarele slab cuplate nu au o memorie global unic. Fiecare procesor are o memorie local care poate fi accesast i de celelalte procesoare prin intermediul reelei de interconectare. Timpul de acces la o dat depinde de localizarea acesteia (n memoria proprie procesorului sau n memoria altui procesor). Programarea acestor calculatoare trebuie s in seama de principiul localizrii datelor. MEMORIE PARTAJAT

SISTEM DE INTERCONECTARE

P0

P1 Figura 1.26.

...

Pn-1

c) Multicalculatoarele. Sunt calculatoare MIMD la care procesoarele nu partajeaz un spaiu comun de adrese. Comunicarea ntre procesoare se realizeaz prin mesaje transmise printr-o reea de interconectare. Un exemplu de astfel de calculatoare este calculatorul Intel iPSC/2, NCUBE. d) Calculatoarele vectoriale (figura 2.27) includ n setul de lor instruciuni, pe lng instruciunile scalare, instruciuni care opereaz asupra vectorilor (un vector se consider un set ordonat de elemente scalare omogene: ntregi, caractere, numere reale, etc.). Aceste calculatoare pot avea o structur bazat pe masive de procesoare (SIMD), sau calculatoare SISD avnd UAL cu pipeline. Arhitectura acestor calculatoare se bazeaz pe prezena unor regitri vectoriali.

1. NOIUNI INTRODUCTIVE

35

instruciuni

Unitate scalar instruciuni procesare scalari Regitri scalari date scalare Unitate de procesare l Unitate de control Memorie date vectoriale

Unitate vectorial

Regitri vectoriali
instruciuni procesare vectori

Unitate de procesare vectorial

ALU

Figura 1.27. Unitatea vectoriala are n componena sa: n regitri vectoriali Ri, 0 i n 1 , caracterizai prin lungimea maxim a vectorului cu care se poate opera; un registru VL care conine lungimea l a vectorului curent ( 0 l s ); un registru de masca M cu s bii care permite realizarea instruciunilor vectoriale n mod mascat (doar pentru acele elemente ale vectorului pentru care bitul corespondent din M este 1). Instruciunile tipice pentru aceste calculatoare sunt:

36

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

LOAD STORE R A(x1:x2:incr) LOAD A(x1:x2:incr) R STORE R MASKED_LOAD (A) A MASKED_STORE (R) R INDIRECT_LOAD (A(X)) A(X) INDIRECT_STORE (R) Aritmetice i logice R R op_b R R S op_b R R op_u R M R op_rel R WHERE (M) R

S este un scalar R op_b R

nlnuire (chaining). Operaiile vectoriale se lanseaz nainte ca cele anterioare s fie complet terminate. Deci, se executa n paralel: R2 R0 + R1 (dup ce primul element din R2 s-a calculat, R3 R2 * R4 se nmulete cu elementul corespunztor din R4)

e) Arhitecturi non von Neumann: - calculatoare dataflow - ex: Manchester DataFlow Machine; - maini de inferen - ex: PIM-R; - arhitecturi sistolice.

1.6. Organizarea spaiului de adres al memoriei


Principala problem care trebuie rezolvat n cazul sistemelor multiprocesor este comunicaia ntre procesoare. Pornind de la modul cum se rezolv aceast cerin, arhitecturile paralele se mpart n dou mari categorii: - arhitecturi cu memorie partajat; - arhitecturi cu transfer de mesaje.
1.6.1. Arhitecturi cu memorie partajat

n arhitecturile cu spaiul de adres partajat al memoriei (sharedaddress-space architectures), procesoarele comunic ntre ele prin date memorate ntr-un spaiu unic i partajat al memoriei.

1. NOIUNI INTRODUCTIVE

37

Calculatoarele MIMD cu memorie partajat, cunoscute i sub numele de multiprocesoare sau sisteme puternic cuplate datorit gradului ridicat de partajare a resurselor. Se cunosc mai multe modele de sisteme cu memorie partajat care difer ntre ele prin modul n care memoria i resursele periferice sunt partajate i distribuite. Aceste modele vor fi prezentate n continuare.
A. Modelul cu acces uniform la memorie (UMA)

n modelul cu acces uniform la memorie (Uniform Memory Access UMA), spaiul memoriei fizice este partajat uniform de toate procesoarele (P) pentru citire i scriere, i de asemenea, timpul de acces al tuturor procesoarelor la toate cuvintele de memorie partajat (MP) este acelai. Arhitectura general a modelului este prezentat n figura 1.28. Un sistem multiprocesor n care toate procesoarele au timp de acces egal la resurse (memorie i echipamente periferice) i toate pot executa programe, funcii de intrare-ieire i funcii ale sistemului de operare, poart numele de multiprocesor simetric. P0 P1 ... Pn-1

REEA DE INTERCONECTARE

MP0

MP1

...

MPm-1

1.28. Modelul cu acces uniform la memorie (UMA) Un multiprocesor n care numai unul sau o parte din procesoare (procesoare master) sunt capabile s execute funcii de intrare-ieire i funcii ale sistemului de operare, poart numele de multiprocesor asimetric. Celelalte procesoare (procesoare ataate) pot executa numai programe utilizator sub controlul procesoarelor master. Un dezavantaj major al acestor modele, care este cu att mai suprtor cu ct numrul de procesoare crete, este legat de faptul c n fiecare ciclu de memorie, fiecare procesor poate solicita accesul la o locaie

38

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

din memoria partajat, prin intermediul reelei de interconectare, ceea ce impune ca banda de comunicaie a reelei s fie foarte mare. De asemenea, datorit faptului c datele citite, respectiv scrise n memorie trebuie s traverseze unul sau mai multe etaje din reeaua de interconectare, timpul de acces este mai mare i poate afecta serios performanele sistemului.
B. Modelul cu acces neuniform la memorie (NUMA)

n modelul cu acces neuniform la memorie (NonUniform Memory Access NUMA), timpul de acces nu este constant. El depinde de localizarea cuvntului de memorie la care se solicit accesul. Acest model are dou variante: a) Modelul cu memorie local nepartajat i memorie global partajat ce este prezentat n figura 1.29. n acest model, fiecare procesor (P) are ataat un modul de memorie local (ML) n care sunt memorate programele i datele locale ale fiecrui procesor, n timp ce memoria global partajat este format dintr-un numr de module (MGP) n care sunt memorate datele partajate ce pot fi accesate de toate procesoarele sistemului prin reeaua de interconectare. b) Modelul cu memorie partajat distribuit ce este prezentat n figura 1.30. Acest model are memoria distribuit fizic procesoarelor sub forma unor module de memorie partajat (MPD) care formeaz un spaiu unic de adrese accesat de toate procesoarele. Timpul de acces la modulul propriu, ataat procesorului, este mai redus dect timpul de acces la modulele de memorie din alte noduri deoarece, n aceste cazuri, este nevoie de traversarea reelei de interconectare. P0 ML0 P1 ML1 ... Pn-1 MLn-1

REEA DE INTERCONECTARE

MGP0

MGP1

...

MGPm-1

1.29. Modelul cu acces neuniform la memorie (NUMA)

1. NOIUNI INTRODUCTIVE

39

P0

MPD0

P1

MPD1

...

Pn-1

MPDn-1

REEA DE INTERCONECTARE 1.30. Modelul cu acces neuniform la memorie (NUMA). Sistem cu memorie partajat distribuit (MPD)
C. Modelul cu acces partajat prin memoria cache (COMA)

n acest model (Cache-Only Memory Access - COMA), prezentat n figura 1.31., memoria ataat fiecrui procesor este un modul de memorie local cache (C) dar, toate aceste module formeaz mpreun un spaiu global de adrese. Accesul oricrui procesor la oricare modul nelocal de memorie cache se face prin reeaua de interconectare i este asistat de un bloc de memorie cu rol de director (D), avnd funcia de a menine consistena datelor n memoria cache. REEA DE INTERCONECTARE

D0 C0 P0

D1 C1 P1 ...

Dm-1 Cm-1 Pm-1

1.31. Modelul cu acces partajat prin memoria cache (COMA)


1.6.2. Arhitecturi cu transfer de mesaje

n arhitecturile cu transfer de mesaje (message-passing architectures), a cror arhitectur tipic este prezentat n figura 1.32, procesoarele (P) sunt conectate ntre ele tot printr-o reea de interconectare

40

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

ca la modelele prezentate anterior. Este o arhitectur cu memorie distribuit i spaii multiple de adres. Fiecare procesor are propria sa memorie local (M) care nu poate fi accesat de nici unul din celelalte procesoare. REEA DE INTERCONECTARE

P0 M0

P1 M1

...

Pn-1 Mn-1

1.32. Arhitectura cu transfer prin mesaje Procesoarele interacioneaz ntre ele numai prin intermediul mesajelor transmise prin reeaua de interconectare. Calculatoarele MIMD cu transfer prin mesaje poart numele de multicalculatoare sau sisteme slab cuplate (loosely-coupled systems), ntru-ct, gradul de partajare al resurselor este redus.

1.7. Sisteme paralele i sisteme distribuite


n ceea ce privete calculatoarele paralele i distribuite nu exist nc o terminologie unic utilizat de toi specialitii n domeniu. Exist multe clasificri, termeni i definiii mai mult sau mai puin diferite, funcie de autori i perioade. Avnd n vedere cele prezentate mai sus, se poate face o clasificare a calculatoarelor MIMD, pornind de la modul de organizare a spaiului de adres al memoriei (unic sau multiplu) i de la modul de amplasare fizic a memoriei (centralizat sau distribuit), n patru subclase arhitecturale conform figurii 1.33. Conform definiiei dat de S. Akl n 1989, un sistem distribuit este un calculator paralel cu arhitectura MIMD avnd memorie distribuit n care exist i o distribuie fizic a amplasrii unitilor acesteia. Tanenbaum, n 1995, consider un sistem distribuit ca o colecie de calculatoare independente care apar utilizatorului ca un singur calculator. De asemenea, acelai autor consider c n categoria multicalculatoarelor cu memorie distribuit sunt incluse i reelele de staii (work-stations)

1. NOIUNI INTRODUCTIVE

41

conectate ntr-o reea local LAN, iar calculatoarele MIMD sunt tot sisteme distribuite. Se constat c este foarte dificil s se fac o distincie clar ntre categoriile de sistem paralel i sistem distribuit avnd n vedere aspectul constructiv i modul de utilizare. Noiunile de sistem paralel i sistem distribuit sunt strns legate una de alta, chiar dac se poate considera c, n general, noiunea de sistem distribuit este mai cuprinztoare nglobnd i pe aceea de sistem paralel.
Multiprocesoare cu memorie partajat centralizat (UMA)

Puternic cuplate Multiprocesoare Memorie partajat cu spaiu unic de adres

Multiprocesoare cu memorie partajat distribuit (NUMA)

Calculatoare MIMD
Slab cuplate Multicalculatoare Memorie cu spaii multiple de adres i transfer de mesaje

Multicalculatoare cu memorie centralizat

Multicalculatoare cu memorie distribuit

Figura 1.33. Clasificarea calculatoarelor MIMD

1.8. Modele teoretice de calculatoare paralele


Evaluarea limitelor teoretice ale performanelor algoritmilor paraleli sau estimarea complexitii VLSI a dispozitivelor, naintea fabricrii acestora, a impus crearea i dezvoltarea unor modele teoretice de calculatoare paralele. Aceste modele sunt, de fapt, abstractizri ale modelelor fizice reale prezentate n capitolul anterior. Ele reprezint un cadru de lucru idealizat, fr s ia n consideraie detaliile concrete de

42

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

implementare sau constrngerile fizice. Se vor prezenta n continuare dou modele teoretice de calculatoare. A. Modelul RAM de calculator secvenial. Sheperdson i Sturgis au modelat calculatoarele secveniale (1963) convenionale ca maini cu acces aleator (Random Access Machine RAM). In figura 1.34 se prezint structura unui astfel de model. Dup cum se observ, el este constituit dintr-o unitate de band de intrare avnd acces numai pentru citire (read-only), o unitate de band de ieire avnd acces numai pentru scriere (write-only) i un program ce nu poate fi modificat. Structura i modul de lucru se prezint pe scurt n continuare. Banda de intrare conine un ir de numere ntregi i de fiecare dat cnd se citete o valoare de intrare, banda avanseaz cu o poziie. Similar, banda de ieire avanseaz cu o poziie dup fiecare operaie de scriere. Memoria este format dintr-un numr foarte mare de registre (r0, r1, r2, ...) n care sunt memorate numere ntregi, r0 fiind registrul acumulator n care se efectueaz calcule. Tipurile de instruciuni ale programului RAM sunt similare celor din calculatoarele convenionale (ncrcare, memorare, citire, scriere, adunare, scdere, nmulire, mprire, testare, salt, oprire). x0 x0 ... xn-1 Banda de intrare (read-only)

PROGRAM

r0 r1 r2 r3 ....... Memorie

Acumulator

y0

y1

x0

Banda de ieire (write-only)

1.34. Modelul RAM de calculator secvenial

1. NOIUNI INTRODUCTIVE

43

Timpul mediu de execuie a unui program este dat de timpul mediu de execuie a programului pentru toate cele n date de intrare. Timpul de execuie n cazul cel mai defavorabil a unui program este o funcie f(n), dat de timpul maxim de execuie a programului pentru toate cele n date de intrare. B. Modelul PRAM de calculator paralel. Fortune i Wyllie au dezvoltat modelul PRAM (Parallel Random Access Machine) pentru modelarea unui calculator paralel idealizat considernd costul suplimentar (overhead) de sincronizare i acces la memorie ca fiind nul. Acest model este utilizat pentru analiza principalilor parametri de performan a calculului paralel: timp de execuie, accelerare, eficien i scalabilitate. Modemul PRAM, a crui structur general este prezentat n figura 1.35, conine p procesoare (P0, P1, ..., Pp-1), o memorie partajat (MP) ce poate fi centralizat sau distribuit. Procesoarele opereaz sincron ntr-o secven de cicluri de citire din memorie, calcule, scriere n memorie. Trebuie remarcat faptul c modelul PRAM este ndeprtat de realitate, dar el este creat nu pentru a modela o main real, ci pentru ai permite proiectantului unui algoritm paralel s se concentreze ndeosebi asupra aspectelor legate de concuren. Modelul PRAM are urmtoarele opiuni de acces concurent al procesoarelor la memoria partajat: ER (Exclusive Read) citire exclusiv, prin care, ntr-un ciclu, cel mult un procesor are dreptul s citeasc dintr-o anumit locaie de memorie; EW (Exclusive Write) scriere exclusiv, prin care, ntr-un ciclu, cel mult un procesor are dreptul s scrie ntr-o anumit locaie de memorie; CR (Concurrent Read) citire concurent, prin care, n acelai ciclu, mai multe procesoare au dreptul s citeasc dintr-o anumit locaie de memorie; CW (Concurrent Write) scriere concurent, prin care, n acelai ciclu, mai multe procesoare au dreptul s scrie ntr-o anumit locaie de memorie.

44

I.POPA - INTRODUCERE N CALCULUL PARALEL I DISTRIBUIT. ALGORITMI

P0

P1 Sincronizare ntre procesoare Memorie Partajat (MP)

... Pp-1

1.35. Modelul PRAM cu p procesoare i memorie partajat Combinnd opiunile prezentate mai sus, rezult mai multe variante ale modelului PRAM. Importante sunt variantele care se deosebesc ntre ele prin modul n care ele rezolv conflictele de acces la scriere concurent (accesul concurent la citire nu creeaz conflicte). Aceste variante sunt: EREW -PRAM (Exclusive Read and Write) citire i scriere exclusiv, prin care, este interzis ca mai mult de un procesor s aib dreptul s acceseze pentru citire sau scriere, simultan, aceeai locaie de memorie (este cel mai restrictiv model PRAM); CREW -PRAM (Concurrent Read and Exclusive Write) citire concurent i scriere exclusiv, prin care, conflictele de scriere n memoria partajat sunt evitate prin excludere mutual, iar accesele concurente de citire ale mai multor procesoare la aceeai locaie de memorie sunt permise; ERCW -PRAM (Exclusive Read and Concurrent Write) citire exclusiv i scriere concurent, care se permit accese exclusive la citire i accese concurente la scriere; CRCW (Concurrent Read and Concurrent Write) citire i scriere concurent, prin care sunt permise accese concurente de citire i de scriere la aceeai locaie de memorie. Aceast variant poate fi clasificat n funcie de modul de rezolvare a scrierilor concurente, astfel:

1. NOIUNI INTRODUCTIVE

45

Modul comun (Common - PRAM) operaiile de scriere memoreaz aceeai valoare la locaia accesat simultan (permit scrieri concurente doar ale aceleiai valori); Modul arbitrar (Arbitrary - PRAM) una, oricare din valori ce se ncearc a se scrie concurent, este memorat, iar toate celelalte sunt ignorate; Modul minimal (Minimum - PRAM) numai procesorul cu indexul cel mai mic are dreptul de acces la scriere; Modul prioritar (Priority - PRAM) se memoreaz o valoare obinut prin aplicarea unei funcii asociative (o combinaie cum ar fi nsumarea) a tuturor valorilor ce se ncearc a se nscrie concurent n aceeai locaie de memorie. Pornind de la cele prezentate mai sus, se poate remarca urmtoarele: modelul EREW este cel mai slab; modelul prioritar este cel mai puternic i ofer timpul de execuie cel mai scurt; orice algoritm EREW se poate executa cu acelai timp de execuie ntr-un model CREW, prin simpla ignorare a facilitii de acces concurent de citire i ntr-un model CRCW, prin simpla ignorare a facilitii de acces concurent pentru citire i scriere; modelul prioritar cu p procesoare poate fi simulat printr-un model EREW cu p procesoare, iar timpul de execuie crete cu un factor egal cu log p.

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