Numele lucrării: Sisteme multiprocesor
Domeniu: Informatică, Cibernetică și Programare
Descriere: 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. O combinație de considerații de proiectare pentru software-ul hardware și software-ul de operare determină simetria sau absența acestuia în sistem. Deseori, sistemele multiprocesoare sunt mai ușor de proiectat dacă se introduc astfel de limitări, dar ele tind să fie mai puțin eficiente decât sistemele în care sunt folosite toate CPU-urile.
Mărime fișier: 31.16 KB Descarcă
Lucrarea a fost descărcată: 54 de persoane.
Din Wikipedia # 151; gratuit enciclopedie
Multiprocesare (multiprocesare, multiprocesare) # 151; 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 numită 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.
- 1 Tipuri
- 1.1 Simetria procesorului
- 1.2 Comenzi și fluxuri de date
- 1.3 Conexiuni procesor
- 2 Implementări programatice
- 2.1 Multiprocesarea cu SISD
- 2.2 SIMD multiprocesor
- 2.3 MISD multiprocesare
- 2.4 MIMD multiprocesor
- 3 Referințe
Î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.
Sistemele care procesează toate procesoarele sunt la fel, se numește un sistem de 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ă. Date multiple sau SIMD. Adesea utilizate în prelucrarea vector), mai multe secvențe de instrucțiuni într-un singur context ( „flux de mai multe instrucțiuni, fluxul de date unică“ sau MISD arhitectura utilizat pentru redundanță în sistemele de toleranță la erori și uneori folosit pentru a descrie procesoarele transportoarelor sau hiper-filetarea) sau multiple secvență e de instrucțiuni în mai multe contexte ( „flux de instrucțiuni multiple, flux de date multiple“ sau MIMD).
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 conexiune puternică. Sisteme mainframe cu mai multe procesoare # 151; adesea sunt sisteme cu cuplare puternică.
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 # 151; un exemplu al unui sistem legat de flexibilitate.
Sistemele cu o cuplare puternică 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; noduri într-un sistem cuplat slab # 151; de obicei computere cu costuri reduse ș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 din 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.
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. exemplu # 151; von Neumann arhitectura.
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 avea probleme de centralizare și concurența pentru resurse ca fluxuri, încercând să obțină acces la resurse, 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 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.
2 Sisteme multiprocesoare
2.1 Descrierea sistemelor multiprocesor
Nevoia de rezolvare a problemelor complexe aplicate cu o cantitate mare de calcul și limitarea fundamentală a vitezei maxime de "clasic" # 150; conform schemei de computere von Neumann, au dus la apariția sistemelor informatice multiprocesoare (MVS). Utilizarea unor astfel de echipamente informatice face posibilă creșterea substanțială a productivității calculatorului la orice nivel existent de dezvoltare a echipamentelor informatice. Totodată, este necesară o generalizare "paralelă" a tehnologiei tradiționale - consecvente pentru rezolvarea problemelor pe calculator. Astfel, în cazul AIM, metodele numerice ar trebui să fie proiectate ca sisteme de procese paralele și care interacționează care pot fi executate pe procesoare independente. Limbile algoritmice aplicate și software-ul de sistem ar trebui să asigure crearea de programe paralele, organizarea sincronizării și excluderea reciprocă a proceselor asincrone etc.
2.2 Cerințe generale pentru multiprocesor
Pentru a compara diferite computere, se folosesc în mod obișnuit metode standard de măsurare a performanței. Aceste tehnici permit dezvoltatorilor și utilizatorilor să utilizeze indicatorii cantitativi care rezultă pentru a evalua soluțiile tehnice, iar în cele din urmă este productivitatea și costul care oferă utilizatorului o bază rațională pentru a decide ce calculator să aleagă.
Fiabilitate și toleranță la defecte. Cea mai importantă caracteristică a sistemelor informatice este fiabilitatea. fiabilitate sporită se bazează pe principiul prevenirii defecțiunilor prin reducerea ratei de eșec și eșecul datorită utilizării circuitelor electronice și a componentelor cu grad ridicat și ultra-înalt de integrare, reducerea nivelului de interferență, moduri ușoare de scheme, asigurând condiții termice ale muncii lor, dar și prin îmbunătățirea tehnicilor de asamblare echipamente . Eroare de toleranță - este o proprietate a sistemului informatic, care prevede o unitate logică, capacitatea de a continua acțiunile de program definite, după apariția defecțiunii. Administrarea reziliență necesită hardware și software redundante. Zonele legate de prevenirea defectelor și a toleranței la defecte - principala problemă în fiabilitate. Conceptul de paralelism și toleranță la defecte a sistemelor de calcul sunt asociate în mod natural unele cu altele, în calitate de componente funcționale suplimentare sunt necesare în ambele cazuri. Deci, de fapt, realizat sistemele de calcul paralel cea mai înaltă performanță și, în multe cazuri, o fiabilitate foarte ridicată. Resursele disponibile redundanță în sistemele paralele pot fi utilizate în mod flexibil atât pentru a îmbunătăți performanța și pentru a îmbunătăți fiabilitatea. Structura sistemelor multiprocesor și multicalculator adaptate la reconfigurarea automată și permite continuarea sistemului după o defecțiune. Trebuie amintit faptul că noțiunea de fiabilitate include nu numai hardware, dar, de asemenea, software-ul. Scopul principal al îmbunătățirii fiabilității sistemelor este integritatea datelor stocate în acesta.
Scalabilitate. Scalabilitatea este capacitatea de a crește numărul și puterea procesoarelor, cantitatea de memorie operațională și externă și alte resurse ale sistemului de calcul. Scalabilitatea ar trebui să fie asigurată de arhitectura și designul calculatorului, precum și de instrumentele software corespunzătoare. Adăugarea fiecărui procesor nou într-un sistem cu adevărat scalabil ar trebui să ofere o creștere predictibilă a performanței și a transferului la un cost accesibil. Una dintre sarcinile principale în construirea sistemelor scalabile este minimizarea costurilor de expansiune a calculatorului și simplificarea planificării. În mod ideal, adăugarea de procesoare în sistem ar trebui să ducă la o creștere liniară a performanței sale. Totuși, acest lucru nu este întotdeauna cazul. Pierderile de performanță pot apărea, de exemplu, dacă lățimea de bandă a magistralei este insuficientă datorită traficului crescut între procesoare și memoria principală, precum și între dispozitivele de memorie și I / O. În realitate, o creștere reală a productivității este dificil de estimat în avans, deoarece depinde în mare măsură de dinamica comportamentului problemelor aplicate. Scalabilitatea sistemului este determinată nu numai de arhitectura hardware, ci depinde de proprietățile încorporate ale software-ului. Scalabilitatea software-ului afectează toate nivelurile sale, de la mecanisme simple de mesagerie la lucru cu obiecte complexe, cum ar fi monitoarele de tranzacții și întregul mediu de aplicații. În particular, software-ul ar trebui să minimizeze traficul de comunicare interprocesor, care poate împiedica creșterea liniară a performanței sistemului. Hardware (procesoare, autobuze și dispozitive I / O) sunt doar o parte a unei arhitecturi scalabile pe care software-ul poate oferi o creștere predictivă a performanței. Este important să înțelegeți că o tranziție simplă, de exemplu, la un procesor mai puternic poate duce la supraîncărcarea altor componente ale sistemului. Aceasta înseamnă că un sistem cu adevărat scalabil trebuie să fie echilibrat pentru toți parametrii.
Compatibilitate și mobilitate software de compatibilitate software-ul obespecheniya.Kontseptsiya pentru prima dată pe scară largă a fost folosit de către dezvoltatorii IBM / sistem 360. Obiectivul principal în proiectarea întregii serii de modele ale acestui sistem a fost de a crea o astfel de arhitectură, care ar fi la fel din punct de vedere al sistemului de utilizator pentru toate modelele, indiferent de performanța prețului fiecăruia dintre ele. avantaje imense ale acestei abordări, astfel încât să se mențină restanțele software-ului existent în timpul tranziției la noul model (de obicei, mai productive) au fost evaluate rapid atât producătorii de calculatoare și utilizatorii, și din acel moment, aproape toate firmele furnizorii de echipamente informatice au adoptat aceste principii oferind o serie de calculatoare compatibile. Trebuie remarcat totuși, că, în timp, chiar și cele mai avansate arhitectura devine în mod inevitabil, depășite și există o nevoie de a face schimbări radicale în arhitectura și metodele de organizare a sistemelor de calcul.