Documente Academic
Documente Profesional
Documente Cultură
Calculatoare Vectoriale
Calculatoare Vectoriale
Dintre toate arhitecturile capabile sa exploateze paralelismul la nivel de date, cea mai
mare raspandire au avut-o calculatoarele vectoriale datorita performantelor superioare ale
acestora.
Prelucrarea vectoriala implica date organizate in vectori alcatuiti din n elemente de
acelasi tip.Acesti vectori sunt tratati ca o singura entitate de calcul in timpul prelucrarii
programului. Fiecare instructiune a programului va fi executata pe entitatea vector, eliminand
astfel instructiunile de control de genul buclelor for, care sunt utilizate in prelucrarea scalara.
Pentru a fi posibil acest lucru procesoarele calculatoarelor vectoriale sunt dotate cu registre
vectoriale, care sunt capabile sa memoreze un intreg vector. Caracteristicile specifice
instructiunilor vectoriale fac ca prelucrarea vectoriala sa exploateze la maximum tehnica
pipeline.
Se vor prezenta particularitatile instructiunilor vectoriale, se va stabili care sunt
componentele de baza ale unui calculator vectorial si se vor exemplifica aceste notiuni pe unul
dintre calculatoarele care s-au bucurat de un mare succes de la lansarea primei sale versiuni
CRAY1 in 1976 pana la cele mai recente versiuni.
Dupa tipul operanzilor si a rezultatelor instructiunile vectoriale pot fi clasificate in 4
categorii principale.f1 : V-> V, f2 : V-> V, f1 : V-> V, f1 : VxS-> V, unde V este un operand
vector, iar S este un scalar. Exemple de astfel de instructiuni vectoriale ar putea fi:
- VADD - Z(i) = X(i) + Y(i), i = 1...n. Adunarea a 2 vectori.
- VTEST - Z(i) = 0 daca X(i) < Y(i), Z(i) = 1 in caz contrar, i= 1....n
- SDIV - Z(i) = X(i)/s, unde s este un scalar , i = 1...n impartirea elementelor vectorului cu un
scalar.
Granularitatea
Aceasta desemneaza dimensiunea unitatii de lucru alocate unui procesor. Daca tinem
seama de acest aspect putem clasifica paralelismul in 3 mari categorii:
- paralelism de granula mare sau grosier
- paralelism de granula medie
- paralelism de granula fina
Dimensiunea de lucru a unui procesor, deci tipul granularitatii, va duce la numarul si tipul
de procesoare cu care este dotat un calculator paralel.
Calculatoarele cu granula grosiera au putine procesoare dar acestea sunt in general
procesoare complexe. Unitatea de lucru alocata procesoarelor poate fi in acest caz un proces o
procedura sau corpul unei bucle dintr-un program. Calculatoarele din aceasta clasa au
performante foarte bune, dar si costul lor este deosebit de mare.
Calculatoarele cu granula fina presupun existenta paralelismului la nivelul evaluarii unei
expresii sau chiar a executiei unei instructiuni. Ele pot fi dotate cu mii sau zeci de mii de
procesoare ieftine, care pot executa instructiuni simple, in aceasta categorie intrand
calculatoarele SIMD, ariile sistolice, ariile cu front de unda. Tot in aceasta categorie se
incadreaza si procesoarele super scalare si arhitecturile VLIW. Intre calculatoarele cu granula
grosiera si cele cu granula fina se situeaza calculatoarele cu granula medie. Ele sunt poate cele
mai raspandite calculatoare paralele datorita faptului ca au un raport performanta pret foarte
bun.aceste calculatoare pot fi dotate cu sute de calculatoare ieftine si au performate ridicate.
Procese si fire de executie.
Definitia clasica a unui proces spune ca acesta este un program in executie . Daca
incercam sa caracterizam un proces, trebuie sa aratam ca el are un spatiu de adresa si un punct de
control. Procesul este entitatea fundamentala de planificare. Toate procesele sunt in competitie
pentru a primi acces la anumite resurse ale calculatorului cum ar fi memoria, procesorul,
dispozitivele de I/O.
Crearea unui proces implica o serie de actiuni din partea sitemului de operare:
- crearea si initializarea structurilor interne ale SO referitoare la proces.
- Alocarea unui spatiu de adresa, eventual si rezervarea unui spatiu de
evacuare(SWAP).
- Incarcarea programului in spatiu de adresa alocat.
- Introducerea noului proces creat in coada procese, gata de executie, pentru a putea
fi planificat.
In orice moment procesele se afla intr-o anumita stare. Ca raspuns la diferite evenimente
care apar in sistem procesele pot trece dintr-o stare in alta conform unei diagrame de tranzitie a
starilor. Simplificand lucrurile, identificam 3 stari de baza in care se poate afla un proces :
o Ready - gata de executie: procesul este pregatit pentru executie, dar
momentan procesorul este alocat altui proces.
o Running - in executie: procesul utilizeaza procesorul la momentul actual.
o Blocked blocat : procesul asteapta aparitia unui eveniment extern.
-
Modelul PRAM
Modelul PRAM Paralel Random Access Machine este o generalizare a modelului RAM
(Random Access Machine) de calcul secvential. Pe scurt o masina PRAM poate fi privita ca p
masini RAM, secventiale, ce partajeaza o memorie comuna, fiecare putand accesa memoria
independent si intr-o perioada constanta. Comunicarea intre procesoare are loc prin intermediul
memoriei comune. Orice operatie de comunicare implica o scriere si o citire a unei locatii de
memorie, operatie care are loc de asemenea intr-un timp constant. In fig 2.5 este prezentata
schema de baza a masinii PRAM.
Modelul LogP
Acesta pleaca de la observatia ca in prezent majoritatea calculatoarelor paralele sunt
construite ca un set de procesoare dotate cu memorii locale, interconectate printr-o retea, dupa
cum se poate vedea in figura 2.6.(acesta fiind de fapt modelul general al calculatorului paralel cu
memorie distribuita). LogP este un model de programare pentru sisteme cu memorie distribuita,
in care procesoarele comunica prin schimb de mesaje.
Reteaua de comunicatie este presupusa a avea o capacitate finita, egala cu L/g, deci
numai un numar de cel mult L/g mesaje pot fi in tranzit de la un procesor sursa la unul destinatie.
Orice incercare de a transmite mesaje peste aceasta capacitate va duce la blocarea procesorului in
cauza. In acest model spre deosebire de PRAM procesoarele lucreaza asincron, iar intarzierea in
transmiterea unui mesaj nu este constanta, dar este limitata superior de L. O reprezentare
sugestiva a descrierii unei masini in modelul LogP este redata in figura 2.7.
Modelul BSP
Modelul BSP Bulk Syncronous Parallel a fost propus drept un model punte intre
hardware si software. Un calculator BSP este caracterizat prin:
- Un numar de procesoare fiecare dispunand de o memorie local.
- Retea de interconectare astfel incar un procesor sa poata avea acces la memoria altui
procesor. Acesta este considerata ca o cutie neagra, neluandu-se in seama topologia ei,
prorpietate foarte importanta pentru a asigura portabilitate algoritmilor.
- Un mecanism de sincronizare globala, sincronizare ce are loc la intervale de timp egale cu L,
unde L este un parametru de peridiocitate.
Conform acestui model calculul este privit ca o secventa de superpasi. In fiecare super
pas procesoarele executa calcule locale, transmit si primesc mesaje. La fiecare interval de L
unitati de timp, se face o verificare globala pentru a testa daca superpasul curent a fost terminat
de toate procesoarele. Daca acesta s-a incheiat se continua cu urmatorul superpas, iar daca nu
urmatorul interval de L unitati de timp este alocat superpasilor neterminati.
Termenul Bulk Syncronous provine de la caracterul modelului care se situeaza intre un
model total sincron (PRAM) si unul total asincron in care procesoarele lucreaza independent
unul de altul si se sincronizeaza doar atunci cand are loc un schimb de mesaje. Modelul BSP se
situeaza undeva intre aceste doua extreme: in interiorul unui superpas procesoarele lucreaza
asincron, dar sunt sincronizate la sfarsitul fiecarui superpas.
Exista mai multe variante, usor diferite, pentru calculul complexitatii unui algoritm
paralel folosind modelul BSP, variante din care se va prezenta doar una, datorita simplitatii ei.
Particularitatea aceste variante consta in aceea ca orice algoritm este alcatuit dintr-o secventa de
superpasi in care fiecare procesor, fie calculeaza ceva, fie participa la o relatie h, ambele
urmate de o sincronizare globala. Pe ipoteza ca superpasii sunt destinati fie calculelor, fie
comunicarii, (deci nu putem avea si calcule si comunicare intr-un superpas) se pierde oarecum
ceva din generalitatea modelului, dar se simplifica analiza acestuia. O relatie h este o
procedura de comunicare intre procesoare, in care orice procesor trimite cel mult un numar de
h mesaje catre alte procesoare si primeste cel mult h elemente de date.
Ariile sistolice sunt alcatuite dintr-un set de procesoare care stiu sa execute doar un nr
limitat de operatii simple. Procesoarele sunt interconectate intr-o structura ordonata, cum ar fi un
arbore, o retea bidimensionala sau o structura liniara. Denumirea acestora provine din
asemanarea lor cu sistemul circulator: asa cum inima pompeaza sange in sistemul circulator, asa
ariile sunt compactate? in aria sistolica. Aceste date sunt supuse unor prelucrari de catre fiecare
element de procesoare.
Comunicatia sistemului sistolic cu exteriorul are loc prin intermediul elementelor de procesare
situate la marginea ariei, acestea fiind si singurele elemente de procesare care dispun de
posibilitatea