Sunteți pe pagina 1din 12

4/29/2013

Monitorizarea proceselor industriale


C9

Arhitectura Von Newman (neparalel)


Un singur procesor, o singura memorie organizat pe locaii de lungime fix Limbajul main este de nivel sczut, cu operanzi elementari Operaiile elementare secveniale Operaii de intrare-ieire lente

4/29/2013

Cresterea vitezei de calcul


Cresterea performantelor procesoarelor secventiale:
Dezavantaje: cost mare al fabricarii unui procesor de inalta performanta, Limitari tehnologice la un moment dat

Paralelism in arhitecturi clasice:


Procesoare pipeline Mai multe UAL Coprocesoare specializate (matematice, grafice, I/O)

Calcul paralel: Utilizarea in paralel a mai multor CPU


Avantaje: cost - utilizarea mai multor procesoare ieftine fiecare in parte. Dezavantaje: necesitatea de a dezvolta noi medii de lucru, noi algoritmi

Paralelism
In general, structurile cu arhitecturi paralele au indici de performant diferiti pentru diverse categorii de probleme, motiv pentru care s-au dezvoltat maini dedicate aplicaiilor.

Algoritm

Pro ble ma

de imple menta re

Limbaj de progra mare

Resur S.O. se hard

4/29/2013

Domenii de aplicatii
Aplicatii tipice: cele care necesita procesari complexe pe volum mare de date Modelare si simulare: prognoza meteo, dinamica moleculara Inteligenta artificiala: retele neuronale, cautare Grafica Multimedia, realitate virtuala, cinematografie Motoare de cautare (ex: AltaVista 10 procesoare)

Precizari
Algoritmii paraleli se construiesc reproiectnd algoritmii seriali astfel ca s foloseasc resursele specifice ale sistemului de calcul paralel. Nu toi algoritmii seriali pot fi paralelizai. O analogie exemplificativ: o femeie nate un copil n decursul a nou luni, dar nou femei nu pot nate un copil n decurs de o lun. n practic este foarte dificil de obinut o mrire linear a vitezei de calcul, proporional cu numrul de procesoare. Aceasta deoarece cei mai muli algoritmi sunt prin natura lor secveniali. Unele probleme pot beneficia de pe urma paralelismului de tip "n secven" (pipeline ), atunci cnd sunt adugate noi procesoare. n acest caz, pentru a submpri problema se folosete abordarea de tip "linie de asamblare". Dac problema poate fi mprit n n etape i un rezultat parial este pasat de la etap la etap, atunci pot fi folosite n paralel tot n procesoare, dar cea mai nceat etap le va frna pe celelalte, i deci cele n procesoare se vor folosi doar rareori la capacitatea lor total teoretic maxim.

4/29/2013

Axiomele puterii de calcul


Nu conteaza cat de rapid este calculatorul cel mai performant de la un moment dat, cineva va dori sa utilizeze unul mai rapid Exista intotdeauna probleme importante care cer mai mult decat puterea de calcul disponibila la un moment dat Cu cat puterea de calcul creste mai mult cu atat mai multe probleme nerezolvate apar la orizont

Terminologie
Task: o seciune logic independent dintr-o problem de rezolvat, programat pe un calculator aproape ca un program de sine stttor. Sincronizare: coordonarea sarcinilor simultane (task-urilor) pentru a evita dezordinea n recepionarea rezultatelor pariale, i pentru a asigura corectitudinea rezultatului final. Speedup (pronunie aproximativ: 'spiid-'ap): denumit i parallel speedup, arat de cte ori este mai rapid un algoritm paralel dect algoritmul serial corespunztor. Scalabilitate: abilitatea unui sistem de calcul paralel de a-i mri viteza total de calcul atunci cnd se adaug procesoare suplimentare. n general nu se atinge o scalabilitate perfect, proporional cu numrul total de procesoare.

4/29/2013

Programare n calcul paralel


n programarea paralel exist dou tipuri de abordare a problemei:
paralelism implicit, unde sistemul (compilatorul sau alt program) descompune problema i aloc sarcinile fiecrui procesor n mod automat. n acest caz compilatorul ine de compilatoarele de paralelizare automat; paralelism explicit, unde programatorul trebuie s precizeze explicit n programul su modul cum va fi partiionat problema de rezolvat.

Muli factori tehnici au impact asupra performanei atinse de programarea paralel. Astfel, sarcina de echilibrare automat a procesoarelor paralele ncearc s in toate procesoarele la fel de ocupate, mutnd la nevoie sarcinile curente de la procesoarele mai ncrcate la cele mai puin ncrcate. Unii consider programarea n calcul paralel ca fiind sinonim cu programarea concurent. Alii fac deosebire ntre programarea n calcul paralel, pe de-o parte, care folosete abloane bine definite i structurate de comunicaie ntre procese i se axeaz pe execuia n paralel a proceselor, i pe de alt parte programarea concurent, care de obicei implic definirea de noi abloane de comunicaie ntre procese care au fost fcute concurente. n ambele cazuri comunicaia se face ori prin memoria partajat ori prin schimburi de mesaje corespunztoare ntre sarcini. Programele care lucreaz corect ntr-un sistem cu un singur procesor ar putea s nu funcioneze bine ntr-un mediu paralel. Aceasta pentru c multiple copii ale aceluiai program pot interfera ntre ele, de exemplu accesnd aceeai zon de memorie n acelai moment. De aceea ntr-un sistem paralel este necesar o programare deosebit de acurat (sincronizare).

Calcul paralel Calcul distribuit


Sistem de calcul paralel
Procesoarele sunt, de obicei, de acelasi tip Procesoarele sunt, de obicei, distribuite pe o arie geografica mica Scopul: executarea unor calcule mai rapid decat cu un singur procesor

Sistem distribuit
Procesoarele sunt, de obicei, eterogene Procesoarele sunt, de obicei, distribuite pe o arie geografica mare Scopul: utilizarea in comun a resurselor disponibile, transmiterea informatiilor. Probleme specifice: fiabilitate, securitate

4/29/2013

Modele de calcul paralel


1. RAM (Random Access Machine) 2. Pipeline 3. Procesoare de vectori 4. Procesoare masive 5. Multiprocesoare cu memorie divizata 6. PRAM (Parallel RAM) 7. Multiprocesor cu transfer de mesaje 8. Procesoare sistolice 9. Procesoare de tip data flow
Single Instruction Multiple Data sau SIMD (instruciune simpl / date multiple): dac toate procesoarele execut n toate momentele aceeai instruciune, dar avnd ca obiect date diferite Multiple Instruction Multiple Data sau MIMD (instruciuni diferite / date multiple): dac fiecare procesor execut instruciuni diferite.

Alta clasificare: 1. SISD 2. SIMD 3. MISD 4. MIMD

RAM (Random Access Machine)


Maina de baz este un monoprocesor Se foloseste pentru dezvoltarea de algoritmi i analiza lor Punctul de plecare pentru calcul paralel
X1 X2 Program counter Program Y1 Y2 Yn RAM={S, , , f, S0, Z} Xn M
S-multimea finita a starilor
-alfabetul finit al datelor de intrare -alfabetul finit al datelor de iesire f-functia de tranzitie partial definita S0-starea initiala Z-multimea starilor finale

4/29/2013

Pipeline
Cuprinde doua submodule; se poate si pe ambele nivele
UCP UAL UAL UCP UCP

UAL M Pipeline la nivel de operatie aritmetica

UCP UAL M Pipeline la nivel de instructiune

Procesoare de vectori
Contin seturi de intructiuni ce trateaza vectorii ca un operand simplu; trebuie sa existe UAL pipeline si registre vectori
SIMD
Port1 Port1 M
Reg.

Unitate comanda
Port1 M

Unitate comanda

Reg. Reg. Reg.

UAL

sau

4/29/2013

Procesoare masive
Sunt UAL multiple supervizate de o singura unitate de comanda; SIMD
P1 Unitate comanda P2 SW M M

Pn

Multiprocesoare cu memorie divizata


Fiecare procesor are propria unitate de prelucare si memorie si comunica cu celelalte prin memoria divizata Fiecare procesor executa propriul set de instructiuni din memoria locala sau memoria divizata U. cd. UAL U. cd. UAL U. cd. UAL
M loc.

M1

M loc.

M2 SW

M loc.

Mn

4/29/2013

PRAM
Memoria este accesibila tuturor programelor Are submodule EREW (exclusive Read exclusive Write), CREW (concurent Read exclusive Write), ERCW i CRCW; apare nesiguranta datelor in memorie se poate scrie simultan in aceeasi locatie de memorie Ca si RAM este folosita numai la proiectarea algoritmilor si analiza lor (nu este realizabila fizic) X1 X2 X3 Xn

PC1 PC1 PC1

Prog1 Prog1

Prog1

Y1 Y2 Y3

Yn

Multiprocesor cu transfer prin mesaje


Seamana cu modelul cu memorie divizata cu observatia ca in loc de Sw are un mecanism de comunicare prin mesaje si nu mai are memoria divizata extern ci numai memorie locala fiecarui procesor. Mecanismul de comunicare poate fi o retea de comutare mesaje.

4/29/2013

Procesoare sistolice
Elemente de procesare identice asezate intr-o structura pipeline Stie sa faca operatii de forma: yout=yin+ax
a yin P x yout
a33

5 4 3 2 1

a33 a31 a21 a11 a22 a12

a23 a13

y03 y02 y01 P P P x3

y3 y2 y1

1, 2, 3,4 momente de timp

x1

x2

Procesoare Data Flow


Efectueaza operatia numai cand operanzii sunt disponibili la elementele de procesare si acestia devin disponibili Elimina necesitatea unui program counter; se lucreaza cu token si cu notiunea de data pura token-ul si data pura sunt date direct unei instructiuni ce se va executa Nu necesita adrese pentru memorarea variabilelor

10

4/29/2013

Procesoare Data Flow


Exemplu: z=y(x+1) Se reprezinta printr-un grafic tip data flow ce arata interdependenta intre 1 operatii Dupa ce se fac atribuirile x=4 si y=5, x si y au token-ul, datele devin disponibile. Cand datele sunt disponibile, adica au token-ul pe ele, se efectueaza operatia Reyzultatul are token-ul pe el cand il au si toate datele de intrare (nu si invers) x

Comparatie V. Neumann, Pipeline si SIMD-MIMD


X=(X1, X2, , Xn); Y=(Y1, Y2, ., Yn); Z=X+Y xi+yi se imparte in 4 operatii: comparatie caracteristica, deplasare caracteristica si mantisa, adunare mantisa, normalizare rezultat; pp ca operatiile dureaza acelasi timp.
1 2 3 4
z1=x1+y1

Pipeline
1 2 3 4
z2 z3 z4

1 2 3 4

1 2 3 4 1 2 3 4
zn

1 2 z1=x1+y1 3 4

V. Neumann
1 2 3 4
z1=x1+y1

MIMD/SIMD
1 2 3 4 1 2 3 4
zn=xn+yn

1 2 z2=x2+y2 3 4 1 2 zn=xn+yn 3 4

T=4nt

z2=x2+y2

T=(n+3)t

T=4t

11

4/29/2013

Performan versus costuri


Deoarece un sistem de calcul paralel cu n procesoare este mai puin eficient dect un singur procesor de n-ori mai rapid, rezult c sistemul de calcul paralel trebuie s fie mai ieftin de construit. Calculul paralel este folosit pentru probleme care necesit foarte multe calcule i deci dureaz foarte mult, dar care pot fi mprite n subprobleme independente, mai simple.

12

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