Multiprocesoare

Curs
8/10 (1 vot)
Domeniu: Calculatoare
Conține 2 fișiere: doc, ppt
Pagini : 72 în total
Cuvinte : 17800
Mărime: 213.10KB (arhivat)
Publicat de: Ioan Morar
Puncte necesare: 0

Extras din curs

INTRODUCERE

“Necesarul de simulări al Departamentului pentru Energie (DOE) al Statelor Unite depăşeşte cu mult capacitatea celor mai puternice supercomputere din lume. Pentru a satisface aceste necesităţi, DOE a creat Iniţiativa de Calcul Strategic Accelerat (ASCI – Accelerated Strategic Computing Initiative). Acest program accelerează dezvoltarea de noi supercomputere scalabile şi va conduce în următorul secol la un supercomputer care va lucra la o rată de 100 TFLOPS (1014 operaţii în virgulă mobilă pe secundă).” – Mattson 1997.

Nici-o altă industrie nu a cunoscut evoluţie atât de rapidă ca industria calculatoarelor. Se constată practic o dublare a performanţelor la fiecare 18 luni (capacitate de integrare, frecvenţe de ceas). Această observaţie a devenit legea lui Moore (descoperită în 1965 de Gordon Moore, co-fondator al firmei Intel). Software-ul a urmat şi el calea deschisă de progresele din hardware, făcând valabilă legea lui Nathan: “Software-ul este un gaz. Îşi creşte volumul astfel încât să ocupe tot spaţiul pe care îl are la dispoziţie”.

S-a creat deci aşa numitul cerc virtuos: progresele tehnologice au dat calculatoare mai ieftine şi mai bune, ele au permis aplicaţii noi, nebănuite altă dată (cine ar fi gândit în anii `50 la jocuri 3-D şi comerţ electronic?), iar aplicaţiile au deschis pieţe noi cu cerinţe sporite.

Gama calculatoarelor s-a diversificat enorm: de la calculatoare încorporate în jucării, bunuri de uz casnic (telefoane, maşini de spălat, de gătit etc), maşini unelte, la calculatoare portabile şi reţele de supercalculatoare. Toate acestea, în următorii zece ani vor face foarte probabil parte toate din Internet.

Deşi progresul a fost şi continuă să fie dramatic, cerinţele au continuat şi ele să crească într-un ritm la fel de ameţitor: se doresc maşini de uz caznic comandate prin voce, automobile care să urmeze itinerarii stabilite pe hartă, simularea exploziilor nucleare sau a marii explozii iniţiale de la începutul universului, prelucrarea datelor seismice sau a fotografiilor de satelit în locul explorărilor geologice directe. Chiar dacă simulările costă enorm (hardware şi software), ele sunt totuşi mult mai ieftine.

Deşi frecvenţele de ceas şi densităţile de integrare au crescut şi continuă să crescă continuu, totuşi lucrurile nu vor putea evolua la nesfârşit pe calea aceasta. Viteza luminii e deja o limită care trebuie luată în considerare, iar la un moment dat fiecare tranzistor va avea atât de puţini atomi încât efectele cuantice vor deveni o problemă majoră (ex. principiul incertitudinii lui Heisenberg).

Din toate aceste motive, pentru a rezolva problemele tot mai complexe, arhitecţii de calculatoare se îndreaptă tot mai insistent spre calculatoarele paralele. Dacă până în `90 procesoarele şi sistemele uniprocesor au egalat şi depăşit arhitecturile multiprocesor, treptat în proiectarea procesoarelor a trebuit să se facă apel la principii arhitecturale din sistemele paralele (arhitecturi pipeline, superpipeline şi superscalare etc).

1. PROBLEMELE ARHITECTURILOR PARALELE

Când proiectăm un nou sistem de calcul paralel, trebuie să răspundem la următoarele întrebări fundamentale:

1. Tipul, numărul şi dimensiunea procesoarelor;

2. Tipul, dimensiunea şi repartiţia modulelor de memorie, modul de partajare a datelor;

3. Modul de interconectare şi sincronizare a procesoarelor şi a modulelor de memorie.

Deşi există variaţii mari în numărul şi dimensiunea procesoarelor şi a modulelor de memorie, totuşi, soluţiile de conectare sunt cele care fac să difere esenţial modelele de arhitecturi paralele.

Din punctul de vedere al aplicaţiilor executate pe arhitecturile paralele, avem două categorii:

1. Time-sharing, partajarea în timp a procesorului de mai multe programe independente (ex. Unix). Un multiprocesor realizat cu mai multe procesoare este mai potrivit pentru astfel de sarcini, decât să construieşti uniprocesoare tot mai sofisticate. Serverele de fisiere, de baze de date, de Web sunt standardizate pe multiprocesoare şi deţin un segment semnificativ din piaţa de calculatoare.

2. Parallel processing program (program de prelucrare paralelă), un singur program care ruleaza pe mai multe procesoare simultan. Istoria calculatoarelor a demonstrat că este foarte greu să scrii programe concurente bune, care să meargă bine pe orice arhitectură paralelă (să exploateze la maximum paralelismul oricărei maşini, adică să fie portabil).

Paralelismul poate fi exploatat la diferite niveluri:

- nivel bit: aritmetică pe biţi paraleli; elementele de procesare sunt construite să opereze simultan pe mai mulţi biţi (4, 8, 16, 32, 64 sau 128); cel mai scăzut nivel de paralelism, asigurat de toate procesoarele actuale;

- nivel variabilă sau instrucţiune: mai multe variabile pot fi calculate simultan (vector sau scalari); procesoare construite să execute simultan mai multe instrucţiuni prin suprapunerea fazelor de execuţie (pipeline = linie de asamblare cu unităţi specializate, 5-12 etape) şi prin suprapunerea execuţiei instrucţiunilor de acelaşi tip sau diferite (superscalar = mai multe unităţi de acelaşi tip sau de tip diferit, 2-6); transparent pentru programator, nivel asigurat de majoritatea procesoarelor actuale;

- nivel proces: grupuri de instrucţiuni (rutine) ale aceluiaşi task pot fi executate în paralel pe mai multe procesoare, colaborând strâns pentru obţinerea rezultatului; ex. prelucrarea unei imagini de către mai multe procesoare; nivel asigurat de multiprocesoarele actuale prin planificare statică (utilizator sau compilator) sau dinamică (sistem de operare);

- nivel task: execuţia în paralel a mai multor sarcini ale aceluiaşi program (ex: prelucrarea datelor de la senzori, calcule de poziţie şi viteză şi comanda motoarelor articulaţiilor unui robot; prelucrarea şi servirea a mii de cereri în paralel într-un server de comerţ electronic);

- nivel job: execuţia simultană, independentă a mai multor programe diferite (time-sharing).

1.1. Modele de comunicare

Pentru a înţelege importanţa comunicaţiilor dintre procese (arhitectura interconexiunilor) e suficient să ne imaginăm ce comunicaţii sunt necesare pentru a repartiza sarcinile şi a sincroniza lucrările de construire a unei case de catre 1 lucrător, 10, 100, 1000 sau 1000000 de lucrători. De fapt această problemă a comunicaţiilor nu e nouă, ea e semnalată şi de Biblie, prin pilda celebră a Turnului Babel.

Sunt două modele de comunicare: procesoare cu memorie partajată (multiprocesoare) şi procesoare cu transfer de mesaje (procesoare cu memorie distribuită sau multicalculatoare).

1.1.1. Sisteme cu memorie partajată

Toate procesoarele partajează o memorie fizică comună (fig. 1). Procesele care lucrează pe un multiprocesor partajează un spaţiu de adrese unic. Procesele comunică prin variabile partajate în memoria comună (ex. unul scrie datele în memorie, iar celălalt le citeşte). Accesul la variabile este simplu: execuţia instrucţiunilor LOAD (încarcă) şi STORE (salvează), iar sincronizarea proceselor se poate face prin bariere, zăvoare, semafoare, regiuni critice şi monitoare. Memoriile cache minimizează comunicaţiile pe magistrală sau reţea. Sunt necesare protocoale de asigurare a coerenţei cache-urilor.

Este un model uşor de înţeles pentru programatori şi are o gamă foarte largă de aplicaţii.

Preview document

Multiprocesoare - Pagina 1
Multiprocesoare - Pagina 2
Multiprocesoare - Pagina 3
Multiprocesoare - Pagina 4
Multiprocesoare - Pagina 5
Multiprocesoare - Pagina 6
Multiprocesoare - Pagina 7
Multiprocesoare - Pagina 8
Multiprocesoare - Pagina 9
Multiprocesoare - Pagina 10
Multiprocesoare - Pagina 11
Multiprocesoare - Pagina 12
Multiprocesoare - Pagina 13
Multiprocesoare - Pagina 14
Multiprocesoare - Pagina 15
Multiprocesoare - Pagina 16
Multiprocesoare - Pagina 17
Multiprocesoare - Pagina 18
Multiprocesoare - Pagina 19
Multiprocesoare - Pagina 20
Multiprocesoare - Pagina 21
Multiprocesoare - Pagina 22
Multiprocesoare - Pagina 23
Multiprocesoare - Pagina 24
Multiprocesoare - Pagina 25
Multiprocesoare - Pagina 26
Multiprocesoare - Pagina 27
Multiprocesoare - Pagina 28
Multiprocesoare - Pagina 29
Multiprocesoare - Pagina 30
Multiprocesoare - Pagina 31
Multiprocesoare - Pagina 32
Multiprocesoare - Pagina 33
Multiprocesoare - Pagina 34
Multiprocesoare - Pagina 35
Multiprocesoare - Pagina 36
Multiprocesoare - Pagina 37
Multiprocesoare - Pagina 38

Conținut arhivă zip

  • Multiprocesoare
    • CursArh9.doc
    • CursArhCap9-1.ppt

Alții au mai descărcat și

Multiprocesoare vs Multicalculatoare

În ultimii ani calculatoarele au devenit, indiscutabil, componente vitale ale societăţii, fiind prezente în activităţi din cele mai diverse în...

AutoCad

APERTURE - controleazã mãrimea cursorului selector, caracteristic modului object snap. ARC - traseazã un arc de cerc de orice dimensiune. A -...

Biblioteca de Șabloane Standard

Biblioteca de Sabloane Standard (STL) asigura o abstractizare standardizata a datelor prin intermediul containerelor si o abstractizare procedurala...

Clase Derivate

1. Clase derivate. Prin mostenire, atributele unei clase de baza sunt transmise unor clase derivate. Derivarea permite definirea unor clase noi,...

Clase în Java

Clase pentru miniaplicatii Miniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet...

Clase

1. Programare procedurala –Programare orientata pe obiecte. Limbajul C, ca si Pascal, utilizeaza modelul programarii structurate procedurale, care...

Comunicații internet

2.1. Stilurile caracterelor {n sfirsit pagina dvs. contine ceva, chiar daca este vorba numai de un nume. Vom analiza in continuare elementele de...

Crearea unei aplicații independente în Java

Toate aplicatiile Java contin o metoda main(), spre deosebire de miniaplicatii. class FirstApp { public static void main( String argsst) {...

Te-ar putea interesa și

Proiectarea Sistemelor Informatice Financiar Contabile

CAPITOLUL I. SISTEMUL INFORMAŢIONAL CONTABIL 1.1. Dezvoltarea tehnicii de calcul şi creşterea nevoii de informaţii Noi toţi trăim în prezent...

Comunicarea în rețea - aplicație client-server

CAPITOLUL 1. INTRODUCERE Încă din 1945, când a început era calculatoarelor şi până în 1985, calculatoarele erau foarte mari şi costisitori. Chiar...

Sisteme Informatice Aplicate în Industrie și Economie - Sisteme ERP

1. Introducere Economia este strâns legată de tipul de societate în care se desfăşoară. Dacă în era agricolă majoritatea lucrătorilor erau...

Proiectarea Sistemeor cu Multiprocesoare - ATV Robot Line Follower cu ATmega 16

ATmega 16 este un microcontroler CMOS de 8 – biţi de mică putere bazat pe arhitectura RISC AVR imbunataţita. Dispune de un set de 131...

Evoluția Supercalculatoarelor

Introducere Odată cu progresul ştiinţific au evoluat şi s-au multiplicat problemele ce afectează întreaga societate. Evoluţia furtunoasă a...

Multiprocesoare vs Multicalculatoare

În ultimii ani calculatoarele au devenit, indiscutabil, componente vitale ale societăţii, fiind prezente în activităţi din cele mai diverse în...

Mecanisme de Sincronizare a Proceselor la Calculatoare Multiprocesor

Introducere Procesarea paralela a aparut datorita cerintelor crescande de performanta , a mentinerii unor costuri reduse a procesarii si nevoii de...

Arhitecturi Paralele

Examen Arhitecturi Paralelle Subiectul 1: Descrieti cele patru clase arhitecturale introduse de M. Flynn în 1972. Michael Flynn introduce o...

Ai nevoie de altceva?