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)
Cost: Gratis

Extras din document

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

Placa de Baza

De mai bine de 20 de ani placa de baza a fost parte integranta a majoritatii calculatoarelor personale reprezentand infrastructura transferului de...

Calculatoarele din Familia Apple Mackintosh

1. De unde totul s-a început la APPLE Logo-ul firmei Apple Apple, Inc. (până în ianuarie 2007 Apple Computer, Inc.) este o companie din Silicon...

Laptopul

I. Introducere V-ati fi gandit acum cativa ani ca veti putea sa va desfasurati activitatea de birou de oriunde va aflati sau ca va puteti consulta...

Top 10 Supercomputere

I. Introducere Un supercomputer este un computer special complex, compus din mai multe procesoare care acceseaza aceeasi memorie centrala si care...

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...

Arhitecturi de Calcul Paralel

Sisteme abstracte de calcul parallel • Un sistem abstract de calcul paralel (SACP) este un ansamblu de module de calcul (unitati de procesare a...

Informatica Cuantica

Presa de specialitate ne-a informat, de curand, despre efectuarea primilor pasi ai ordinatorului cuantic. In legatura cu aceasta este util sa ne...

Ai nevoie de altceva?