Extras din proiect
Introducere
Procesarea paralela a aparut datorita cerintelor crescande de performanta , a mentinerii unor costuri reduse a procesarii si nevoii de productivitate pentru aplicatiile reale. Paralelismul poate imbraca diverse forme de la multiprograme respectiv multiprocesoare si pana la termenul mai complex de multicomputing.
Desi din punct de vedere hardware evolutia tehnologica permite proiectarea si implementarea de sisteme paralele deosebit de performante, discrepenta cu care software-ul specific acestor sisteme evolueaza, limiteaza implementarea acestora. De asemenea dezvoltatorii de software trebuie sa tina cont de o serie de aspecte ca in programarea secventiala nu reprezentau probleme si nume: nondeterminism la nivelul algoritmului, comunicarea si sincronizarea necesara proceselor din sistem, echilibrarea incarcarii si toleranta la erori, utilizarea mecanismelor de programare folosind memoria partajata sau-si distribuita a sistemului.
Analiza problemei complexe a paralelismului presupune studiul formelor posibile de paralelism la doua niveluri: la nivelul arhitecturii si la nivelul algoritmului.
- la nivelul arhitecturii trebuie sa se studieze modul de organizare a memoriei , tipurile de procesoare utilizate, mecanisme specifice multiprocesarii multicomputerelor si procesarii masiv paralalele.
- la nivelul algoritmului trebuie sa precizam faptul ca acest tip de paralelism presupune dezvoltarea si utilizarea unor limbaje paralele.
Este cunoscut faptul ca notiunea de arhitectura a unui calculator modern implica nu doar elemente hardware ale masinii de calcul, setul de instructiuni, ci si mecanismele- suport la nivelul sistemului de operare, programele de aplicatii, interfetele utilizator, deci practic o structurare in mai multe niveluri de analiza intre care exista interferente multiple.
Evident, un algoritm paralel, în care anumite calcule independente se realizeazã simultan, va fi mai rapid decât algoritmul serial (uzual) corespunzãtor. Studiul algoritmilor paraleli este un domeniu prolific al informaticii. Mai mult, au apãrut limbaje specifice, care pot paraleliza algoritmi seriali, pot exploata paralelismul arhitecturii sau paralelismul problemei. Pentru majoritatea algoritmilor recent elaborati, cercetãtorii sunt preocupati de gãsirea unor variante paralele.
MODELE de ARHITECTURI:
- SISD( single instruction stream- single data strea) - arhitectura clasica fara elemente de paralelism
- SIMD( single instruction stream - multiple data stream) - model intalnit in literature sub denumirea de calculator vectorial
- MISD(multiple instruction stream – single data stream) – acest model architectural este cunoscut si sub numele de tablou systolic, deoarece acelasi flux de data este folosit de catre instructiuni diferite,
- MIMD(multiple instruction stream - multiple data stream) – este modelul arhitecutural cunoscut sub numele de calculator paralel
Cele mai cunoscute arhitecutri paralele sunt cele care implementeaza cele doua modele binecunoscute de procesare paralela si anume modelul cu memorie partajata, respective modelul cu memorie distribuita.
Daca interactiunea intre elementele de procesare se realizeaza folosind o memorie partajata(“shared memory”), atunci arhitecutra paralela este de tip multiprocesor, iar comunicarea se realizeaza prin variabile partajate din memoria comuna.
Daca interactiunea intre elementele de procesare se realizeaza prin interconectare utilizand o retea de interconectare, atunci arhitectura este de tip multicomputer, fiecare calculator din sistem are o memorie locala pe care nu o partajeaza cu celelalte, iar comunicarea se realizeaza prin mesaje.
Preview document
Conținut arhivă zip
- Mecanisme de Sincronizare a Proceselor la Calculatoare Multiprocesor.doc