Multiprocesarea este

Multiprocesarea (multiprocesarea) este utilizarea unei perechi sau a mai multor procesoare fizice într-un sistem informatic. Termenul se referă, de asemenea, la capacitatea unui sistem de a suporta mai mult de un procesor și / sau capacitatea de a distribui sarcini între ele. Există mai multe variante ale acestui concept și definiția multiprocessing poate varia în funcție de context, în principal, în funcție de modul în care procesoarele identificate (multe nuclee într-un singur cip. O multitudine de chips-uri într-o singură carcasă, o multitudine de carcase într-un modul de sistem, și așa mai departe. D ) ..







Multiprocesarea este denumită uneori executarea mai multor procese paralele de programe în sistem, spre deosebire de executarea unui proces în orice moment. Totuși, termenii multitasking sau multiprogramare sunt mai potriviți pentru descrierea acestui concept, care este implementat în principal în software. întrucât multiprocesarea este mai adecvată pentru a descrie utilizarea mai multor procesoare hardware. Sistemul nu poate fi multiprocesor și multiprogramat, doar unul dintre cele două, sau nici unul, nici celălalt.

Simetria procesorului

Într-un sistem multiprocesor, toate procesoarele pot fi egale, sau unele pot fi rezervate în scopuri speciale. O combinație de considerații de proiectare pentru hardware și software-ul sistemului de operare determină simetria (sau lipsa acesteia) într-un sistem dat. De exemplu, considerațiile hardware sau software pot necesita ca un singur procesor central să răspundă tuturor întreruperilor hardware, în timp ce toate celelalte lucrări din sistem pot fi distribuite în mod egal între procesoare; sau executarea codului modului privilegiat poate fi limitat la un singur procesor (sau la un procesor specific sau la un singur procesor la un moment dat), în timp ce codul de mod neprivilizat poate fi executat pe orice combinație de procesoare. Deseori, sistemele multiprocesoare sunt mai ușor de proiectat dacă se introduc astfel de restricții, dar ele tind să fie mai puțin eficiente decât sistemele care utilizează toate procesoarele.

Sisteme care procesează în mod egal toate procesoarele se numesc sisteme cu multiprocesare simetrică (SMP). În sistemele în care toate CPU-urile nu sunt egale, resursele sistemului pot fi împărțite în mai multe moduri, inclusiv multiprocesor asimetrică (ASMP), multiprocesor cu memorie de acces neuniforma (NUMA), și grupate multiprocesor (qq.v.).

Comandă și fluxuri de date

Într-un multi-procesare procesoare pot fi utilizate pentru a efectua o secvență de instrucțiuni în mai multe contexte (singură instrucțiune mașină, mai multe date sau SIMD. Adesea utilizate în procesarea vector), secvențe multiple de instrucțiuni într-un singur context ( „flux multiplu-instruire, flux de date unică“ sau MISD arhitectura , utilizat pentru redundanță în sisteme rezistente la erori și uneori folosit pentru a descrie procesoare transportoare sau hiper-filetare) sau multiple secvență e de instrucțiuni în mai multe contexte ( „flux de instrucțiuni multiple, flux de date multiple“ sau MIMD).

Procesoare Conexiuni

Cipurile multi-procesor (multi-core), include mai mult de un procesor, plasate într-o schemă cu un singur cip și pot fi considerate cea mai limitativă formă de multiprocesare cu o comunicare puternică. Sistemele mainframe cu mai multe procesoare sunt adesea sisteme cu comunicații puternice.







Sisteme multiprocesoare cu comunicație flexibilă (sisteme multiprocesoare cuplate în limba engleză), adesea numite clustere. bazată pe mai multe computere independente unice sau duale conectate printr-un sistem de comunicații de mare viteză (de exemplu, Gigabit Ethernet). Clusterul Beowulf care rulează Linux este un exemplu de sistem slab cuplat.

Sistemele cu cuplaje puternice funcționează mai bine și fizic, fiind mai mici decât sistemele legate flexibil, dar din punct de vedere istoric, acestea necesită o investiție inițială mare și pot fi amortizate rapid; nodurile dintr-un sistem legat flexibil sunt de obicei calculatoare necostisitoare și pot fi utilizate ca mașini independente după scoaterea din cluster.

Sistemele cu cuplaj puternic tind să fie mult mai eficiente din punct de vedere energetic. decât clustere. Eficiența energetică semnificativă se realizează datorită faptului că componentele în astfel de sisteme sunt proiectate să funcționeze într-un anumit sistem, în timp ce sistemele legate în mod flexibil utilizează adesea componente concepute pentru a lucra într-o clasă mai largă de sisteme.

Implementarea de software

Multiprocesare cu SISD

Într-un computer cu un singur flux de comandă și un singur flux de date, un procesor procesează comenzile succesiv; fiecare instrucțiune a mașinii procesează un element de date. Un exemplu este arhitectura von Neumann.

SIMD multiprocesor

Într-un computer cu un singur flux de comandă și un flux de date multiple, un procesor procesează fluxul de instrucțiuni, fiecare dintre acestea putând efectua calcule paralele pe o multitudine de date.

SIMD multiprocesare este bine adaptată procesării paralele sau vectoriale, în care un set mare de date poate fi împărțit în părți care sunt procesate de operații identice, dar independente. Un flux de comandă unic direcționează [unde? ] funcționarea modulelor de multiprogramare pentru efectuarea simultană a unor manipulări similare pe cantități potențiale mari de date.

Pentru anumite tipuri de aplicații de calcul, acest tip de arhitectură poate genera o creștere semnificativă a productivității în ceea ce privește timpul petrecut. Cu toate acestea, dezavantajul acestei arhitecturi este acela că majoritatea sistemului începe să stea inactiv când rulează programe sau sarcini de sistem care nu pot fi împărțite în module (subtascuri) care pot fi procesate în paralel.

Multiprocesarea SIMD este folosită pe scară largă în anumite domenii, cum ar fi modelarea pe calculator. dar nu este de folos într-un calculator desktop universal și sarcini de afaceri.

MISD multiprocesor

Multiprocesare multiple singur flux de date flux de instrucțiuni și oferă avantajul de redundanță, în principal, deoarece modulele multiprogramming efectua o sarcină pe aceleași date, reducând posibilitatea de rezultate incorecte în cazul în care un modul eșuează. Arhitectura MISD vă permite să comparați rezultatele calculelor în scopul detectării defecțiunilor. În plus față de redundanța și toleranța la erori, acest tip de multiprocesare are puține avantaje. În plus, acesta cântărește foarte mult. Nu crește performanța.

MIMD multiprocesor

Arhitectura MIMD multiprocesare este potrivită pentru un număr mare de sarcini diferite, în care se realizează executarea complet independentă și paralelă a comenzilor referitoare la diferite seturi de date. Din acest motiv și pentru că este ușor de implementat, MIMD este predominantă în procesul multiprocesării.

Procesarea este împărțită în mai multe fire, fiecare având starea sa hardware-ul propriu-zisă a procesorului, într-un singur proces definit de proces sau în mai multe procese. Deoarece sistemul are fire multiple care așteaptă să fie executate (fire de sistem sau de utilizator), această arhitectură utilizează efectiv resurse hardware.

În MIMD, pot exista probleme de blocare reciprocă și de concurență pentru posesia de resurse, deoarece fluxurile care încearcă să acceseze resursele se pot confrunta cu un mod imprevizibil. MIMD necesită o codificare specială în sistemul de operare al computerului, dar nu necesită modificări ale programului de aplicare, cu excepția cazurilor când programul se utilizează mai multe fluxuri (MIMD este transparent pentru programele pe un singur fir care rulează cele mai multe sisteme de operare, în cazul în care programele nu renunta la partea de management de mediu). Este posibil ca software-ul de sistem și de utilizator să fie nevoit să utilizeze constructori de software, cum ar fi semaphorele. Pentru a preveni ca un fir să interfereze cu altul, dacă acestea conțin o referință la aceleași date. Această acțiune crește complexitatea codului, reduce performanțele și mărește în mod semnificativ cantitatea de teste necesară, deși, de obicei, nu este atât de mult încât să neglijeze beneficiile multiprocesării.

Conflicte similare pot apărea la nivel hardware între procesoare și ar trebui rezolvate de obicei prin hardware sau cu o combinație de software și hardware.







Trimiteți-le prietenilor: