Cum se configurează smartphone-uri și PC-uri. Portal informativ

Arhitectura SMP. Avantaje și dezavantaje

Arhitectura SMP

Arhitectura SMP (symmetric multiprocessing) este o arhitectură simetrică multiprocesare. Caracteristica principală a sistemelor cu arhitectură SMP este prezența unei memorii fizice comune, partajată de toate procesoarele.

Memoria este o modalitate de transfer de mesaje între procesoare, în timp ce toate dispozitivele de calcul, atunci când o accesează, au drepturi egale și aceeași adresare pentru toate celulele de memorie. Prin urmare, arhitectura SMP se numește simetrică.

Principalele avantaje ale sistemelor SMP:

Simplitate și versatilitate pentru programare. Arhitectura SMP nu impune restricții asupra modelului de programare utilizat la crearea unei aplicații: de obicei se folosește modelul ramurilor paralele, când toate procesoarele funcționează complet independent unele de altele - totuși, este posibil să se implementeze modele care utilizează comunicarea interprocesor. Utilizarea memoriei partajate crește viteza unui astfel de schimb; utilizatorul are, de asemenea, acces la întreaga cantitate de memorie simultan. Pentru sistemele SMP, există comparativ mijloace eficiente paralelizare automată.

Ușurință în utilizare. De obicei, sistemele SMP folosesc un sistem de refrigerare bazat pe aer condiționat pentru o întreținere ușoară.

Relativ nu preț mare.

Defecte:

Sisteme cu memorie partajată construite pe magistrala de sistem sunt slab scalabile
Acest dezavantaj important al sistemului SMP nu le permite să fie considerate cu adevărat promițătoare. Scalabilitatea slabă se datorează faptului că magistrala este capabilă să proceseze o singură tranzacție la un moment dat, ceea ce duce la probleme de rezolvare a conflictelor atunci când mai multe procesoare accesează aceleași zone de memorie fizică partajată în același timp.

Arhitectura MPP

Arhitectură MPP (procesare masivă paralelă) - arhitectură masiv paralelă. caracteristica principală o astfel de arhitectură este că memoria este separată fizic. În acest caz, sistemul este construit din module individuale care conține procesor, bancă locală memorie de operare(OP), două procesoare de comunicații (routere) sau un adaptor de rețea, uneori - hard disk-uriși/sau alte dispozitive de intrare/ieșire.

Avantajul principal:

Principalul avantaj al sistemelor cu memorie separată este scalabilitatea bună: spre deosebire de sistemele SMP, în mașinile cu memorie separată, fiecare procesor are acces doar la memoria sa locală și, prin urmare, nu este nevoie de sincronizarea în sensul acelor de ceasornic a procesoarelor. Aproape toate recordurile de performanță de astăzi sunt stabilite pe mașini cu această arhitectură, constând din câteva mii de procesoare (ASCI Red, ASCI Blue Pacific).

Defecte:

Absența memoriei partajate reduce semnificativ viteza de schimb între procesoare, deoarece nu există un mediu comun pentru stocarea datelor destinate schimbului între procesoare. Este necesară o tehnică specială de programare pentru a implementa mesageria inter-procesor.
fiecare procesor poate folosi doar o cantitate limitată din banca de memorie locală.
din cauza acestor neajunsuri arhitecturale, sunt necesare eforturi semnificative pentru a maximiza utilizarea resurselor sistemului. Acesta este ceea ce determină prețul ridicat software pentru sisteme masiv paralele cu memorie separată.

Arhitectura PVP

PVP (Parallel Vector Process) este o arhitectură paralelă cu procesoare vectoriale.
Principala caracteristică a sistemelor PVP este prezența procesoarelor speciale cu pipeline vectoriale, care oferă comenzi pentru același tip de procesare a vectorilor de date independente, care sunt executate efectiv pe dispozitive funcționale pipeline. În mod obișnuit, mai multe astfel de procesoare (1-16) funcționează simultan cu memoria partajată (similar cu SMP) în configurații cu multiprocesor. Mai multe astfel de noduri pot fi combinate folosind un comutator (similar cu MPP). De la transferul de date către format vectorial este mult mai rapid decât în ​​scalar (viteza maximă poate fi de 64 Gb/s, ceea ce este cu 2 ordine de mărime mai rapid decât în ​​mașinile scalare), atunci problema interacțiunii dintre fluxurile de date în timpul paralelizării devine nesemnificativă. Și ceea ce este slab paralelizat pe mașinile scalare este bine paralelizat pe mașinile vectoriale. Astfel, sistemele de arhitectură PVP pot fi mașini scop general(sisteme de uz general). Cu toate acestea, deoarece procesoarele vectoriale sunt foarte scumpe, aceste mașini nu vor fi disponibile publicului.

Arhitectura clusterului

Un cluster este doi sau mai multe computere(numite adesea noduri), unite între ele prin tehnologii de rețea bazat pe o arhitectură de magistrală sau un comutator și prezentat utilizatorilor ca o singură resursă de informații și de calcul. Serverele, stațiile de lucru și chiar computerele personale obișnuite pot fi selectate ca noduri de cluster. Beneficiile pentru sănătate ale grupării devin evidente în cazul unei defecțiuni a unui nod, permițând unui alt nod din cluster să preia sarcina de pe nodul eșuat, iar utilizatorii nu vor observa întreruperea accesului.

Legea lui Amdahl(ing. Legea lui Amdahl, uneori de asemenea Legea Amdahl-Wer) - ilustrează limitarea creșterii performanței sistemului de calcul cu creșterea numărului de calculatoare. Gene Amdals a formulat legea în 1967, după ce a descoperit o limitare în esență simplă, dar de netrecut în conținut, a creșterii productivității atunci când calculele sunt paralelizate: „În cazul în care o sarcină este împărțită în mai multe părți, timpul total de execuție pe un sistem paralel nu poate fi mai puțin fragment”. Conform acestei legi, accelerarea execuției programului datorită paralelizării instrucțiunilor acestuia pe un set de calculatoare este limitată de timpul necesar executării instrucțiunilor sale secvențiale.

Exprimarea matematică

Să presupunem că trebuie să rezolvați o problemă de calcul. Să presupunem că algoritmul său este astfel încât ponderea volumului total al calculelor poate fi obținută numai prin calcule secvențiale și, în consecință, ponderea poate fi perfect paralelizată (adică timpul de calcul va fi invers proporțional cu numărul de noduri implicate ). Atunci accelerația care poate fi obținută pe un sistem de calcul de la procesoare, în comparație cu o soluție uniprocesor, nu va depăși valoarea

Ilustrare

Tabelul arată de câte ori mai rapid va fi executat un program cu o proporție de calcule secvențiale la utilizarea procesoarelor. ... Deci, dacă jumătate din cod este secvenţial, atunci câştigul total nu va depăşi niciodată doi.

] Valoare ideologică

Legea lui Amdahl arată că creșterea eficienței de calcul depinde de algoritmul problemei și este mărginită de sus pentru orice problemă cu. Creșterea numărului de procesoare într-un sistem de calcul nu are sens pentru fiecare sarcină.

Mai mult, dacă luăm în considerare timpul necesar transferului de date între nodurile unui sistem informatic, atunci dependența timpului de calcul de numărul de noduri va avea un maxim. Aceasta impune o limitare a scalabilității sistemului de calcul, adică înseamnă că de la un anumit moment adăugarea de noi noduri la sistem va fi crește timpul de calcul al sarcinii.

Pentru sistemele MIMD, există acum o clasificare general acceptată bazată pe metodele utilizate pentru organizarea RAM în aceste sisteme. Conform acestei clasificări, în primul rând, ei disting sisteme de calcul multiprocesor(sau multiprocesoare) sau sisteme de calcul cu memorie partajată (multiprocesoare, sisteme de memorie comune, sisteme de memorie partajată) și sisteme de calcul multicomputer(multicalculatoare) sau sisteme de calcul cu memorie distribuită (multicalculatoare, sisteme de memorie distribuită). Structura sistemelor multiprocesor și multicomputer este prezentată în Fig. 1, unde este procesorul, este modulul de memorie.

Orez. 1. a) - structura multiprocesorului; b) - structura multicalculatorului.

Multiprocesoare.

În multiprocesoare, spațiul de adrese al tuturor procesoarelor este același. Aceasta înseamnă că, dacă aceeași variabilă apare în programele mai multor procesoare multiprocesor, atunci pentru a obține sau a modifica valoarea acestei variabile, aceste procesoare se vor referi la o celulă fizică a memoriei partajate. Această circumstanță are atât consecințe pozitive, cât și negative.

Pe de o parte, nu este nevoie să mutați fizic datele între programele de comutare, ceea ce elimină timpul petrecut cu comunicarea interprocesor.

Pe de altă parte, întrucât accesul simultan al mai multor procesoare la date comune poate duce la rezultate incorecte, sunt necesare sisteme de sincronizare a proceselor paralele și de asigurare a coerenței memoriei. Deoarece procesoarele trebuie să acceseze memoria partajată foarte des, cerințele de lățime de bandă ale mediilor de comunicații sunt extrem de mari.

Această din urmă împrejurare limitează numărul de procesoare din multiprocesoare la câteva zeci. Acuitatea problemei accesului la memoria partajată poate fi parțial înlăturată prin împărțirea memoriei în blocuri care permit paralelizarea acceselor de memorie din diferite procesoare.

Rețineți încă un avantaj al multiprocesoarelor - un sistem multiprocesor funcționează sub o singură copie a unui sistem de operare (de obicei, asemănător UNIX) și nu necesită personalizare individuală fiecare nod de procesor.

Multiprocesoarele omogene cu acces egal (simetric) la RAM partajată sunt de obicei numite sisteme SMP (sisteme cu arhitectură multiprocesor simetrică). Sistemele SMP au apărut ca o alternativă la sistemele multiprocesoare scumpe bazate pe procesoare vector-pipeline și procesoare vector-paralel (vezi Fig. 2).


Multicalculatoare.

Datorită simplității arhitecturii lor, multicalculatoarele sunt în prezent cele mai răspândite. Multicomputerele nu au memorie partajată. Prin urmare, comunicarea interprocesor în astfel de sisteme se realizează de obicei prin retea de comunicatii folosind mesageria.

Fiecare procesor dintr-un multicomputer are un spațiu de adrese independent. Prin urmare, prezența unei variabile cu același nume în programe diferite procesoare, duce la abordarea unor celule fizic diferite propria memorie aceste procesoare. Această circumstanță necesită mișcarea fizică a datelor între programele de comutare în diferite procesoare. Cel mai adesea, partea principală a apelurilor este efectuată de fiecare procesor în propria memorie. Prin urmare, cerințele pentru mediul de comutare sunt slăbite. Ca urmare, numărul de procesoare din sistemele multicomputer poate ajunge la câteva mii, zeci de mii și chiar sute de mii.

Performanța de vârf a celor mai mari sisteme de memorie partajată este mai mică decât performanța de vârf a celor mai mari sisteme de memorie partajată; costul sistemelor cu memorie partajată este mai mare decât costul sistemelor similare de performanță cu memorie distribuită.

Sunt numite multicalculatoare cu memorie distribuită omogene sisteme de calcul cu arhitectură masiv paralelă(sisteme MPP) - vezi Fig. 2.

Ceva între sistemele SMP și sistemele MPP sunt sistemele NUMA.


Sisteme de clustere (clustere de calcul).

Sisteme de clustere(clusterele de calcul) reprezintă mai mult decât varianta ieftina sisteme MPP. Un cluster de calcul este format dintr-o colecție de computere personale sau stații de lucru), unite printr-o rețea locală ca mediu de comunicare. Clusterele de calcul sunt analizate în detaliu mai târziu.

Orez. 2. Clasificarea multiprocesoarelor și multicalculatoarelor.

sisteme SMP

Toate procesoarele dintr-un sistem SMP au acces simetric la memorie, de ex. Memoria de sistem SMP este memorie UMA. Simetrie înseamnă următoarele: drepturi egale ale tuturor procesoarelor de a accesa memorie; aceeași adresare pentru toate elementele de memorie; timp de acces egal pentru toate procesoarele din sistem la memorie (cu excepția blocajelor).

Structura generală Sistemul SMP este prezentat în Fig. 3. Mediul de comunicare al unui sistem SMP este construit pe baza unei magistrale de sistem de mare viteză sau a unui comutator de mare viteză. în afară de procesoare identiceși dispozitivele M, I/O cu memorie partajată sunt conectate la aceeași magistrală sau comutator.

În spatele simplității aparente a sistemelor SMP, există probleme semnificative asociate în principal cu RAM. Cert este că în prezent viteza memoriei RAM este cu mult în urma vitezei procesorului. Pentru a reduce acest decalaj, procesoarele moderne sunt echipate cu memorie tampon de mare viteză (memorie cache). Viteza de acces la această memorie este de câteva zeci de ori mai mare decât viteza de acces la memoria principală a procesorului. Cu toate acestea, prezența unui cache încalcă principiul accesului egal la orice punct din memorie, deoarece datele din memoria cache a unui procesor nu sunt disponibile altor procesoare. Prin urmare, după fiecare modificare a unei copii a unei variabile aflată în memoria cache a unui procesor, este necesar să se efectueze o modificare sincronă a acestei variabile în sine, aflată în memoria principală. În sistemele SMP moderne, coerența cache-ului este susținută de hardware sau de sistemul de operare.

Orez. 3. Structura generală a sistemului SMP

Cele mai cunoscute sisteme SMP sunt serverele și stațiile de lucru SMP de la IBM, HP, Compaq, Dell, Fujitsu etc. Un sistem SMP funcționează sub un singur sistem de operare (cel mai adesea UNIX și altele asemenea).

Datorită lățimii de bandă limitate a mediului de comunicare, sistemele SMP nu se scalează bine. Momentan în sisteme reale nu se folosesc mai mult de câteva zeci de procesoare.

O proprietate neplăcută cunoscută a sistemelor SMP este că costul lor crește mai repede decât performanța pe măsură ce crește numărul de procesoare din sistem.

sisteme MPP.

Sistemele MPP sunt construite din noduri de procesor care conțin un procesor, o unitate locală de memorie cu acces aleatoriu, un procesor de comunicații sau un adaptor de rețea, uneori hard disk-uri și/sau alte dispozitive de intrare/ieșire. De fapt, astfel de module sunt computere complet funcționale (vezi Fig. 4.). Acces la blocul de RAM a acestui modul are doar procesorul aceluiasi modul. Modulele interacționează între ele printr-un anumit mediu de comunicare. Există două opțiuni pentru operarea sistemului de operare pe sistemele MPP. Într-o variantă de realizare, un complet sistem de operare funcţionează numai pe calculator de control, iar pe fiecare modul individual rulează o versiune puternic tăiată a sistemului de operare, care acceptă doar funcțiile de bază ale nucleului sistemului de operare. În a doua versiune, pe fiecare modul rulează un sistem de operare complet asemănător UNIX. Rețineți că necesitatea unui sistem de operare (sub o formă sau alta) pe fiecare procesor al sistemului MPP face posibilă utilizarea doar a unei cantități limitate de memorie pentru fiecare dintre procesoare.

În comparație cu sistemele SMP, arhitectura sistemului MPP elimină atât problema disputei la accesarea memoriei, cât și problema coerenței cache-ului.

Principalul avantaj al sistemelor MPP este scalabilitatea bună. Deci, super-computerul din seria CRAY T3E este capabil să fie scalabil până la 2048 de procesoare. Aproape toate recordurile de performanță până în prezent au fost stabilite pe sisteme MPP formate din câteva mii de procesoare.

Orez. 4. Structura generală a sistemului MPP.

Pe de altă parte, absența memoriei partajate reduce considerabil viteza de schimb între procesoare în sistemele MPP. Pentru sistemele MPP, această împrejurare aduce în prim plan problema eficienței mediului de comunicare.

În plus, sistemele MPP necesită o tehnică specială de programare pentru a implementa schimbul de date între procesoare. Aceasta explică costul ridicat al software-ului pentru sistemele MPP. Acest lucru explică și faptul că scrierea de programe paralele eficiente pentru sistemele MPP este o sarcină mai dificilă decât scrierea acelorași programe pentru sistemele SMP. Pentru o gamă largă de probleme pentru care sunt cunoscuți algoritmi secvențiali bine dovediți, nu este posibil să se construiască algoritmi paraleli eficienți pentru sistemele MPP.

sisteme NUMA.

Logic acces general la date pot fi furnizate și cu memorie alocată fizic. În acest caz, distanța dintre diferite procesoare și diferite elemente de memorie, în general, este diferită, iar durata de acces a diferitelor procesoare la diferite elemente de memorie este diferită. Acestea. memoria unor astfel de sisteme este memoria NUMA.

Un sistem NUMA este construit de obicei pe baza de noduri de procesor omogene, constând din nu un numar mare procesoare și bloc de memorie. Modulele sunt grupate împreună folosind un fel de mediu de comunicare de mare viteză (vezi Figura 5). Este acceptat un singur spațiu de adresă, accesul la memoria de la distanță este acceptat de hardware, de ex. la memoria altor module. În același timp, accesul la memoria locală se realizează de câteva ori mai rapid decât la memoria la distanță. În esență, un sistem NUMA este un sistem MPP, în care nodurile SMP sunt utilizate ca elemente de calcul separate.

Dintre sistemele NUMA se disting următoarele tipuri de sisteme:

  • Sisteme COMA în care doar memoria cache locală a procesorului este utilizată ca memorie principală (arhitectura memoriei cache-only - COMA);
  • sisteme CC-NUMA, în care coerența memoriei cache locale a diferitelor procesoare (cache-coherent NUMA - CC-NUMA) este asigurată în hardware;
  • Sisteme NCC-NUMA în care hardware-ul nu suportă coerența memoriei cache locale a diferitelor procesoare (non-cache coherent NUMA - NCC-NUMA). LA acest tip de exemplu, sistemul Cray T3E.

Orez. 5. Structura generală a sistemului NUMA.

Disponibilitatea generală logică a memoriei în sistemele NUMA, pe de o parte, vă permite să lucrați cu un singur spațiu de adrese și, pe de altă parte, vă permite să oferiți pur și simplu o scalabilitate ridicată a sistemului. Această tehnologie face în prezent posibilă crearea de sisteme care conțin până la câteva sute de procesoare.

Sistemele NUMA sunt produse în serie de mulți firme de calculatoare ca servere multiprocesor și dețin cu fermitate conducerea în clasa supercalculatoarelor mici.

15.02.1995 V. Pyatyonok

Arhitectură uniprocesor Arhitectură modificată uniprocesor Arhitectură SMP Arhitectura SMP a routerului Wellfleet Privire de ansamblu asupra arhitecturii Detalii de procesare a pachetelor Rezumate Referințe Routerele au evoluat din trei arhitecturi diferite: uniprocesor, uniprocesor modificat și multiprocesor simetric. Toate trei au fost proiectate pentru a suporta aplicații extrem de critice.

În dezvoltarea lor, routerele au folosit trei arhitecturi diferite: uniprocesor, uniprocesor modificat și multiprocesor simetric. Toate trei au fost proiectate pentru a suporta aplicații extrem de critice. Cu toate acestea, nucleul acestor cerințe, și anume performanța ridicată, scalabilă, precum și disponibilitatea ridicată, inclusiv toleranța completă la defecțiuni și recuperarea componentelor ("hot spare"), nu sunt capabile să le satisfacă în aceeași măsură. Acest articol discută avantajele arhitecturii multiprocesor simetrice.

Arhitectura monoprocesor

Arhitectura cu un singur procesor folosește mai multe module de interfață de rețea pentru a oferi flexibilitate suplimentară în configurarea nodurilor. Modulele de interfață de rețea sunt conectate la o singură unitate centrală de procesare printr-o magistrală comună de sistem. Acest singur procesor se ocupă de toate sarcinile de procesare. Și aceste sarcini sunt pentru nivel modern dezvoltare rețele corporative complexe și variate: filtrarea și redirecționarea pachetelor, modificarea necesară a antetelor pachetelor, actualizarea tabelelor de rutare și adresele de rețea, interpretarea pachetelor de control al serviciului, răspunsurile la solicitările SNMP, formarea pachetelor de control, furnizarea altor servicii specifice, cum ar fi spoofing-ul, adică setarea de filtre speciale pentru a obține securitate și performanță îmbunătățită a rețelei.

Această soluție arhitecturală tradițională este cea mai ușor de implementat. Cu toate acestea, nu este greu de imaginat limitările care vor afecta performanța și disponibilitatea unui astfel de sistem.

Într-adevăr, toate pachetele de la toate interfețele de rețea trebuie procesate de o singură unitate centrală de procesare. Pe măsură ce se adaugă interfețe de rețea suplimentare, performanța scade semnificativ. În plus, fiecare pachet trebuie să călătorească de două ori pe magistrală - de la modulul sursă la procesor și apoi de la procesor la modulul destinație. Un pachet parcurge această cale chiar dacă este destinat aceleiași interfețe de rețea din care provine. Acest lucru duce, de asemenea, la o scădere semnificativă a performanței pe măsură ce crește numărul de module de interfață de rețea. Astfel, există un „gât de sticlă” clasic.

Mic și de încredere. Dacă procesorul eșuează, routerul în ansamblu va fi întrerupt. În plus, pentru o astfel de arhitectură este imposibil să se implementeze „recuperarea la cald” dintr-o rezervă de elemente de sistem deteriorate.

În implementările moderne ale acestei arhitecturi de routere, pentru a rezolva limitările de performanță, se utilizează, de regulă, un procesor RISC suficient de puternic și o magistrală de sistem de mare viteză. Aceasta este o încercare pur forță de a rezolva problema - productivitate crescută pentru o investiție inițială mare. Cu toate acestea, astfel de implementări nu asigură scalarea performanței, iar nivelul de fiabilitate a acestora este predeterminat de fiabilitatea procesorului.

Arhitectură uniprocesor modificată

Pentru a depăși unele dintre dezavantajele de mai sus ale arhitecturii uniprocesor, a fost inventată o modificare. Arhitectura de bază este păstrată: modulele de interfață sunt conectate la un singur procesor printr-o magistrală comună de sistem. Cu toate acestea, fiecare dintre modulele de interfață de rețea include un procesor periferic special - pentru a descărca cel puțin parțial CPU.

Procesoarele periferice sunt de obicei bit-slaces sau microprocesoare universale care filtrează și direcționează pachetele destinate interfeței de rețea a aceluiași modul din care au intrat în router. (Din păcate, în multe dintre în prezent implementările pot face acest lucru numai pentru anumite tipuri de pachete, cum ar fi cadrele Ethernet, dar nu și IEEE 802.3.

Unitatea centrală de procesare este în continuare responsabilă pentru sarcinile care nu pot fi lăsate în sarcina procesorului periferic (inclusiv rutarea între module, operațiunile la nivel de sistem, administrarea și managementul). Prin urmare, optimizarea performanței obținută în acest mod este destul de limitată (în dreptate, trebuie remarcat că în unele cazuri, cu un design adecvat al rețelei, puteți obține rezultate bune). În același timp, în ciuda unei ușoare scăderi a numărului de pachete transmise prin magistrala de sistem, acesta rămâne încă un blocaj foarte mare.

Includerea procesoarelor periferice în arhitectură nu crește disponibilitatea routerului în ansamblu.

Arhitectura SMP

Arhitectura multiprocesor simetrică este lipsită de dezavantajele inerente arhitecturilor menționate mai sus. În acest caz, puterea de procesare este pe deplin distribuită între toate modulele de interfață de rețea.

Fiecare modul de interfață de rețea are propriul său modul de procesor dedicat care se ocupă de toate sarcinile de rutare. În acest caz, toate tabelele de rutare, celelalte informatiile necesare iar software-ul care implementează protocoalele este replicat (adică copiat) la fiecare unitate de procesor. Când o unitate de procesor primește informații de rutare, își actualizează propriul tabel și apoi propagă actualizările către toate celelalte unități de procesor.

Această arhitectură, desigur, oferă scalabilitate aproape liniară (dacă neglijăm costurile de replicare și lățimea de bandă a canalului de comunicație între module). Aceasta, la rândul său, înseamnă perspectiva unei extinderi semnificative a rețelei fără o scădere vizibilă a performanței. Dacă este necesar, trebuie doar să adăugați un modul suplimentar de interfață de rețea - la urma urmei, pur și simplu nu există un procesor central în această arhitectură.

Toate pachetele sunt procesate de procesoarele locale. Pachetele externe (adică destinate altor module) sunt transmise pe canalul de comunicație între procesoare o singură dată. Acest lucru duce la o reducere semnificativă a traficului în cadrul routerului.

În ceea ce privește disponibilitatea, sistemul nu va eșua dacă un singur modul de procesor se defectează. Această defecțiune va afecta numai acele segmente de rețea care sunt conectate la modulul procesorului deteriorat. În plus, un modul deteriorat poate fi înlocuit cu unul funcțional fără a opri routerul și fără a afecta toate celelalte module.

Beneficiile arhitecturii SMP sunt recunoscute de producătorii de computere. În ultimii câțiva ani, au apărut multe platforme similare și numai număr limitat sistemele de operare standard, capabile să profite din plin de hardware, au împiedicat proliferarea acestora. Alți producători, inclusiv producătorii de dispozitive de rețea active, folosesc, de asemenea, arhitectura SMP pentru a crea dispozitive de calcul specializate.

În restul acestei secțiuni, vom arunca o privire mai atentă asupra detaliilor tehnice ale arhitecturii routerului SMP Wellfleet.

Arhitectura routerului SMP de la Wellfleet

Wellfleet, unul dintre cei mai importanți producători de routere și punți, cu siguranță nu a scutit nicio cheltuială în evaluarea și testarea diferitelor arhitecturi de routere care acceptă diverse la nivel global și rețelele locale peste diverse medii fiziceși conceput pentru conditii diferite trafic. Rezultatele acestor studii au fost formulate sub forma unei liste de cerințe luate în considerare în proiectarea routerelor destinate construirii de medii de rețea corporative pentru aplicații extrem de critice. Iată câteva dintre aceste cerințe – cele care, în opinia noastră, justifică utilizarea unei arhitecturi multiprocesor.

1. Nevoia de performanță scalabilă, disponibilitate ridicată, flexibilitate de configurare dictează utilizarea arhitecturii SMP.

2. Nivelul cerințelor de putere de calcul pentru rutarea multi-protocol (în special atunci când se utilizează protocoale moderne de rutare precum TCP / IP OSPF) poate fi îndeplinit numai de microprocesoare moderne, puternice, pe 32 de biți. Cu toate acestea, deoarece rutarea implică deservirea unui număr mare de solicitări similare în paralel, este necesară comutarea rapidă între diferite procese, ceea ce necesită o latență extrem de scăzută în comutarea contextului, precum și memorie cache integrată.

3. Este necesară o capacitate mare de memorie pentru a stoca software-ul de protocol și control, tabelele de rutare și adrese, statistici și alte informații.

4. Pentru a asigura viteza maxima sunt necesare transmisii între rețele și module de procesare a routerelor, controlere de interfață de rețea de mare viteză și controlere de comunicație interprocesor cu capabilități integrate acces directîn memorie (DMA - Direct Memory Access).

5. Minimizarea latenței necesită date cu lățime de bandă mare pe 32 de biți și canale de adrese pentru toate resursele.

6. Cerințele pentru o disponibilitate sporită includ distribuția puterii de calcul, subsisteme de putere redundante și, ca o caracteristică suplimentară, dar foarte importantă, canale de comunicații interprocesoare duplicate.

7. Nevoia de a îmbrățișa gamă largă medii de rețea - de la un singur site la distanță sau o rețea de grup de lucru la o organizație de înaltă performanță cu Valabilitate ridicată backbone - Necesită o arhitectură multiprocesor scalabilă.

Privire de ansamblu asupra arhitecturii

Figura 2 este o reprezentare schematică a arhitecturii multiprocesor simetrice utilizate în toate routerele modulare fabricate de Wellfleet. Sunt trei principale elemente arhitecturale: module de comunicare, module de procesor și comunicare interprocese.

Modulele de comunicație oferă interfețe de rețea fizice care permit conexiuni la local și rețele globale aproape orice tip. Fiecare modul de comunicație este conectat direct la modulul de procesor dorit printr-o interfață de comunicare inteligentă (ILI - Intelligent Link Interface). Pachetele primite de modulul de comunicație sunt redirecționate către modulul procesor conectat la acesta prin conexiune proprie, directă. Procesorul determină cărei interfețe de rețea sunt destinate aceste pachete și fie le redirecționează către o altă interfață de rețea a aceluiași modul de comunicație, fie, printr-o conexiune interprocesor de mare viteză, către un alt modul de procesor, care va transmite acest pachet către comunicația conectată. modul.

Să aruncăm o privire mai atentă asupra structurii fiecărei componente.

Modulul procesorului include:

Procesorul central propriu-zis;

Memoria locală, care stochează protocoale și tabele de rutare, tabele de adrese și alte informații care sunt utilizate local de CPU;

Memoria globală care joacă rolul unui buffer pentru pachetele de date „de tranzit” care vin de la modulul de comunicație către modulul procesor atașat acestuia sau de la alte module de procesor (se numește globală deoarece este vizibilă și accesibilă tuturor modulelor procesorului);

Procesor OMA, care oferă acces direct la memorie la transferul de pachete între bufferele globale de memorie situate în diferite module de procesor;

Interfață de comunicație care asigură conexiunea la modulul de comunicație corespunzător;

Canale de date interne pe 32 de biți care leagă toate resursele de mai sus pentru a oferi cel mai mare posibil debituluiși latență minimă; sunt furnizate mai multe canale pentru a asigura executare simultană operațiuni de către diferite dispozitive de calcul (de exemplu, procesorul și procesorul DMA) și asigură că nu există blocaje care încetinesc transmiterea și procesarea pachetelor.

Diverse modele de routere Wellfleet folosesc module de procesor ACE (Advanced Communication Engine) bazate pe procesoare Motorola 68020 sau 68030 sau module Fast Routing Engine (FRE) bazate pe MC68040.

Modulul de comunicare include:

Conectori care oferă o interfață către rețele specifice (de ex. sincron, Ethernet, Token Ring FDDI);

Controlere de comunicație care transferă pachete între interfața fizică a rețelei și memoria globală folosind un canal DMA; controlerele de comunicație sunt, de asemenea, proiectate pentru un anumit tip de interfață de rețea și sunt capabile să transmită pachete la o viteză care se potrivește cu viteza unui fir;

Filtre ( oportunitate suplimentară pentru modulele de comunicație pentru FDDI și Ethernet), care prefiltrează pachetele primite, economisind resurse de calcul pentru procesarea semnificativă a fișierelor.

VMEbus-ul standard este adesea folosit ca canal de comunicare interprocesor, oferind un debit agregat de 320 Mbps.

Modelele mai vechi folosesc interfața Parallel Packet Express (PPX) dezvoltată chiar de Wellfleet cu o lățime de bandă de 1 Gbps, folosind patru canale de date independente, redundante de 256 Mbps, cu distribuție dinamică a sarcinii. Acest lucru oferă performanțe generale ridicate și realizează ceea ce arhitectura nu face. un singur punct eșec. Fiecare modul de procesor este conectat la toate cele patru canale și poate selecta oricare dintre ele. Un canal anume este ales aleatoriu, pentru fiecare pachet, care ar trebui să asigure o distribuție uniformă a traficului între toți canalele disponibile... Dacă unul dintre canalele de date PPX devine indisponibil, descărcarea este distribuită automat între celelalte.

Detalii procesare pachet

Pachetele primite sunt primite, în funcție de rețea, de către acest sau acel controler de comunicații. Dacă un filtru suplimentar este inclus în configurația modulului Comms, unele dintre pachete sunt abandonate și cealaltă parte este primită. Pachete acceptate sunt plasate de controlerul de comunicații în memoria tampon globală a modulului procesorului atașat direct. Pentru transferul rapid de pachete, un canal DMA este inclus în fiecare controler de comunicații.

Odată ajunse în memoria globală, pachetele sunt preluate de CPU pentru rutare. CPU detectează interfața de rețea de ieșire, modifică pachetul după caz ​​și îl readuce în memoria globală. Apoi se face unul dintre cele două lucruri:

1. Pachetul este redirecționat către interfața de rețea a modulului atașat direct la acesta. Controlerul de comunicații al interfeței de rețea de ieșire primește instrucțiuni de la CPU pentru a prelua pachetele din memoria globală și a le trimite în rețea.

2. Pachetul este redirecționat către interfața de rețea a altui modul de comunicație. Procesorul DMA primește instrucțiuni de la CPU pentru a trimite pachete către o altă unitate de procesor și le încarcă prin conexiunea interprocesor în memoria globală a unității de procesor atașată la interfața de rețea de ieșire. Controlerul de legătură cu interfața de rețea de ieșire preia pachetele din memoria globală și le trimite în rețea.

Deciziile de rutare sunt luate de CPU independent de alte module de procesor. Fiecare modul de procesor menține o bază de date independentă de rutare și adrese în memoria sa locală, care este actualizată atunci când modulul primește informații despre modificările în tabelele sau adresele de rutare (în acest caz, modificările sunt trimise la toate celelalte module de procesor).

Funcționarea simultană a controlerului de comunicații, procesorului și procesorului DMA permite o performanță generală ridicată. (Subliniem că toate acestea se întâmplă într-un dispozitiv în care procesarea este paralelizată pe mai multe module multiprocesor). De exemplu, imaginați-vă o situație în care controlerul de comunicații împinge pachete în memoria globală în timp ce CPU-ul actualizează tabelul de rutare în memoria locală și DMA împinge pachetul pe legătura interprocesor.

rezumat

Faptul de pătrundere a tehnologiilor informatice dezvoltate pentru un domeniu de aplicare în altele, adiacente, nu este nou în sine. Cu toate acestea, fiecare exemplu concret atrage atenția specialiștilor. În arhitectura routerelor luate în considerare în acest articol, pe lângă ideea de multiprocesare simetrică, concepută pentru a oferi performanțe scalabile și un nivel ridicat de disponibilitate, este utilizat și mecanismul canalelor de date duplicate între procesoare (în aceleași scopuri). , precum și ideea de replicare (sau replicare) a datelor, a căror utilizare este mai tipică industriei DBMS distribuite.

Literatură

Arhitectură simetrică multiprocesor. Wellfleet Communications, 10/1993.

G.G. Baron, G.M. Ladyjenski. „Tehnologia de replicare a datelor în sisteme distribuite”, „ Sisteme deschise", primăvara 1994.

*) Wellfleet a făcut echipă în toamna trecută cu un alt lider în tehnologia de rețea, SunOptics Communications. Fuziunea a dus la crearea unui nou gigant al rețelei - Bay Networks.- Ed.



UMA - Acces uniform la memorie

5. Arhitectura SMP este utilizată pe servere și pe PC procesoare Intel, AMD, Sun, IBM, HP

(+): simplitate, „elaborat” principii de baza

(-): întregul schimb de procesor m / d și memorie este real. 1 autobuz fiecare - un blocaj de arc-ry - limitare de performanță, scalabilitate.

Exemplu:

MPP - arhitectură: procesare paralelă masivă

Un sistem masiv paralel. S-a bazat pe transputer- un procesor universal puternic, o caracteristică a căruia a fost prezența a 4 legături (canale de comunicare). Fiecare legătură constă din două părți care servesc la transferul de informații în direcții opuse și este folosită pentru a conecta transputere între ele și pentru a conecta dispozitive externe. Arhitectură: multe noduri, fiecare nod - OP + CPU

Arhitectura MPP clasică: fiecare nod este conectat la 4 noduri printr-o legătură punct la punct.

Exemplu: Intel Peragon

Arhitectura clusterului

Implementarea unificării mașinilor, care pare a fi un întreg unic pentru sistemul de operare, software-ul de sistem, programe de aplicație utilizatorilor.

Tipuri de clustere

  1. Sisteme de înaltă disponibilitate (HA).
  2. Sisteme pentru calcul de înaltă performanță (High Performance, HP, clustere de calcul).
  3. Sisteme cu mai multe fire.
  4. Clustere de echilibrare a sarcinii. (distribuția sarcinii de calcul)

Exemplu: arhitectura cluster theHIVE

5.Arhitectura NUMA Acces neuniform la memorie - acces neuniform la memorie

Fiecare procesor are acces la memoria proprie și a altcuiva (pentru a accesa memoria altcuiva, se folosește o rețea de comutare sau chiar un procent din nodul altcuiva). Accesul la memoria unui nod străin poate fi suportat de hardware: special. controlorii.



-: scump, scalabilitate slabă.

Acum: NUMA a realizat accesul la memoria străină în mod programatic.

Sistem de calcul NUMA constă dintr-un set de noduri (conține unul sau mai multe procesoare, pe care rulează o singură copie a sistemului de operare), care sunt interconectate printr-un comutator sau o rețea de mare viteză.

Topologia legăturii este împărțită în mai multe niveluri. Fiecare strat oferă conexiuni în grupuri cu un număr mic de noduri. Astfel de grupuri sunt considerate ca noduri unice la un nivel superior.

OP este distribuit fizic, dar logic public.

În funcție de calea de acces la elementul de date, timpul petrecut cu această operațiune poate varia semnificativ.

Exemple de implementări specifice: cc-NUMA, SOMA, NUMA-Q

Exemplu: HP Integrity SuperDome

Diagrame bloc simplificate ale SMP (a) și MPP (b)

  1. Cinci arhitecturi principale ale aeronavelor de înaltă performanță, lor o scurtă descriere a, exemple. Comparație între arhitectura cluster și NUMA.

Într-un cluster, fiecare procesor are acces doar la propria memorie, în NUMA nu numai la propria sa, ci și la a altcuiva (pentru a accesa memoria altcuiva, se folosesc o rețea de comutare și un procesor al unui nod străin).

  1. Arhitectura SMP. Principii de organizare. Avantaje dezavantaje. Scalabilitate în sensul „îngust” și „larg”. Domeniul de aplicare, exemple de aeronave pe SMP.

Arhitectură SMP (multiprocesare simetrică)- arhitectura multiprocesor simetrica. Caracteristica principală a sistemelor cu arhitectură SMP este prezența unei memorii fizice comune, partajată de toate procesoarele.

1. Un sistem SMP este construit pe baza unei magistrale de sistem de mare viteză, la sloturile căreia sunt conectate trei tipuri de blocuri funcționale: procesoare (CPU), Berbec(OP), subsistem intrare/ieșire (I/O).

2. Memoria este o modalitate de a transfera mesaje între procesoare.

3. Toate dispozitivele de calcul, la accesarea memoriei, au drepturi egale și aceeași adresare pentru toate celulele de memorie.



4. Această din urmă împrejurare face posibilă schimbul de date foarte eficient cu alte dispozitive de calcul.

5. SMP este utilizat în servere și stații de lucru bazate pe procesoare Intel, AMD, Sun, IBM, HP.

6. Sistemul SMP rulează sub un singur sistem de operare (fie UNIX sau Windows). Sistemul de operare distribuie automat procesele între procesoare (în timpul funcționării), dar uneori este posibilă și legarea explicită.

Principii de organizare:

Un sistem SMP constă din mai multe procesoare omogene și o serie de memorie partajată.

Una dintre abordările adesea folosite în arhitecturile SMP pentru a forma un sistem scalabil de memorie partajată este organizarea uniformă a accesului la memorie prin organizarea unui canal scalabil de procesor de memorie.

Fiecare operație de acces la memorie este interpretată ca o tranzacție de la procesor la memorie.

În SMP, fiecare procesor are cel puțin un cache propriu (și posibil mai multe). Putem spune că un sistem SMP este un computer cu mai multe procesoare peer-to-peer.

Coerența cache-ului este suportată de hardware.

Orice altceva este într-o singură instanță: o memorie, un subsistem I/O, un sistem de operare.

Cuvântul „peer” înseamnă că fiecare procesor poate face tot ceea ce oricare altul. Fiecare procesor are acces la toată memoria, poate efectua orice operație I/O, poate întrerupe alte procesoare.

Scalabilitate:

În sens „îngust”: capacitatea de a conecta hardware în anumite limite (procesoare, memorie, interfețe).

În sensul „larg”: creșterea liniară a metricii de performanță cu creșterea hardware-ului.

Avantaje:

Simplitate și versatilitate pentru programare. Arhitectura SMP nu impune restricții asupra modelului de programare utilizat la crearea unei aplicații: de obicei se folosește modelul ramurilor paralele, când toate procesoarele funcționează complet independent unele de altele - totuși, este posibil să se implementeze modele care utilizează comunicarea interprocesor. Utilizarea memoriei partajate crește viteza unui astfel de schimb; utilizatorul are, de asemenea, acces la întreaga cantitate de memorie simultan.

Ușurință în utilizare. De obicei, sistemele SMP folosesc un sistem de refrigerare bazat pe aer condiționat pentru o întreținere ușoară.

Pret relativ mic.

Avantaj de concurență. Transferul implicit de date între cache prin hardware SMP este cel mai rapid și mai ieftin mediu de comunicare din orice arhitectură paralelă de uz general. Prin urmare, în prezența unui număr mare de tranzacții scurte (tipice, de exemplu, aplicațiilor bancare), când este necesară sincronizarea frecventă a accesului la datele partajate, arhitectura SMP este cea mai buna alegere; orice altă arhitectură funcționează mai rău.

Arhitectura SMP este cea mai sigură. Acest lucru nu înseamnă că transferul de date între cache este de dorit. Un program paralel se va executa întotdeauna mai rapid cu cât părțile sale interacționează mai puțin. Dar dacă aceste părți trebuie să interacționeze frecvent, atunci programul va rula mai repede pe SMP.

Defecte:

Sistemele SMP sunt slab scalabile:

1. Busul de sistem are o lățime de bandă limitată (deși mare) și un număr limitat de sloturi, așa-numitul „gât de sticlă”.

2. La un moment dat, magistrala este capabilă să proceseze o singură tranzacție, în urma căreia apar probleme de rezolvare a conflictelor atunci când mai multe procesoare accesează simultan aceleași zone ale memoriei fizice partajate. Când apare un astfel de conflict, acesta depinde de viteza de comunicare și de numărul de elemente de calcul.

Toate acestea inhibă câștigurile de performanță pe măsură ce crește numărul de procesoare și numărul de utilizatori conectați. În sistemele reale, nu pot fi utilizate în mod eficient mai mult de 8-16-32 de procesoare.

Zona de aplicare: a lucra cu aplicatii bancare

Exemplu: Arhitectura Sun Fire T2000. Arhitectura UltraSPARC T1.

  1. Arhitectura SMP. Îmbunătățirea și modificarea arhitecturii SMP. SMP în modern procesoare multi-core... Coerența cache.

Arhitectură SMP (multiprocesare simetrică)- arhitectura multiprocesor simetrica. Caracteristica principală a sistemelor cu arhitectură SMP este prezența unei memorii fizice comune, partajată de toate procesoarele.

Îmbunătățirea și modificarea SMP:

Exemplu: Arhitectura QBB a sistemelor de server din seria GS DEC

Pentru a crește performanța magistralei, s-a încercat eliminarea magistralei, dar lăsați accesul la memoria partajată -> tranziția și înlocuirea magistralei partajate comutator local(sau un sistem de comutatoare): fiecare procesor este conectat la 4 bănci de memorie la un moment dat.

Fiecare procent funcționează cu un fel de bancă de memorie,

Comută la o altă bancă de memorie

Începe să lucreze cu o altă bancă de memorie.


Orez. 3.1.

Memoria servește, în special, pentru transferul de mesaje între procesoare, în timp ce toate dispozitivele de calcul, la accesarea acesteia, au drepturi egale și aceeași adresare pentru toate celulele de memorie. Prin urmare, arhitectura SMP se numește simetrică. Această din urmă împrejurare face posibilă schimbul de date foarte eficient cu alte dispozitive de calcul. Sistemul SMP este construit pe baza unei magistrale de sistem de mare viteză (SGI PowerPath, Sun Gigaplane, DEC TurboLaser), la sloturile cărora sunt conectate blocuri funcționale de următoarele tipuri: procesoare (CPU), subsistem de intrare/ieșire ( I / O), etc. modulele I / O folosesc magistrale mai lente (PCI, VME64). Cele mai cunoscute sisteme SMP sunt serverele și stațiile de lucru SMP bazate pe procesoare Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu etc.) Întregul sistem rulează sub un singur sistem de operare (de obicei, asemănător UNIX, dar Windows). NT este acceptat pentru platformele Intel). Sistemul de operare distribuie automat procesele între procesoare (în timpul funcționării), dar uneori este posibilă și legarea explicită.

Principalele avantaje ale sistemelor SMP:

  • simplitate și versatilitate pentru programare. Arhitectura SMP nu impune restricții asupra modelului de programare folosit la crearea unei aplicații: este de obicei un model de ramură paralelă, când toate procesoarele funcționează independent unul de celălalt. Cu toate acestea, este posibil să se implementeze modele folosind comunicarea interprocesor. Utilizarea memoriei partajate crește viteza unui astfel de schimb; utilizatorul are, de asemenea, acces la întreaga cantitate de memorie simultan. Pentru sistemele SMP, există mijloace destul de eficiente de paralelizare automată;
  • ușurință în utilizare. De obicei, sistemele SMP folosesc un sistem de aer condiționat bazat pe aer răcit, care facilitează întreținerea acestora;
  • pret relativ mic.

Defecte:

  • sistemele de memorie partajată se scalează slab.

Acest dezavantaj semnificativ Sistemele SMP nu le permit să fie considerate cu adevărat promițătoare. Cauza de rău scalabilitate este că în acest moment magistrala este capabilă să proceseze o singură tranzacție, în urma căreia apar probleme de rezolvare a conflictelor atunci când mai multe procesoare accesează simultan aceleași zone memorie fizică partajată... Elementele de calcul încep să interfereze unele cu altele. Când apare un astfel de conflict, acesta depinde de viteza de comunicare și de numărul de elemente de calcul. În prezent, pot apărea conflicte cu 8-24 de procesoare. În plus, magistrala de sistem are o lățime de bandă (PS) limitată (deși mare) și un număr limitat de sloturi. Toate acestea împiedică în mod evident câștigurile de performanță pe măsură ce numărul de procesoare și numărul de utilizatori conectați crește. În sistemele reale se pot folosi maximum 32 de procesoare. Pentru a construi sisteme scalabile bazate pe SMP, se folosesc arhitecturi cluster sau NUMA. Când lucrați cu sisteme SMP, așa-numitele paradigma de programare cu memorie partajată (paradigma memoriei partajate).

Arhitectura MPP

MPP (procesare paralelă masivă) - arhitectură masiv paralelă... Caracteristica principală a acestei arhitecturi este că memoria este separată fizic. În acest caz, sistemul este construit din module separate care conțin un procesor, o bancă de memorie de operare locală (OP), procesoare de comunicare(routere) sau adaptoare de rețea , uneori hard disk și/sau alte dispozitive de intrare/ieșire. De fapt, astfel de module sunt computere complet funcționale (vezi Figura 3.2). Doar procesoarele (CPU) din același modul au acces la banca OP din acest modul. Modulele sunt conectate prin special canale de comunicatie... Utilizatorul poate identifica numărul logic al procesorului la care este conectat și se poate organiza schimb de mesaje cu alte procesoare. Există două variante de funcționare a sistemului de operare (OS) pe mașinile cu arhitectură MPP. Într-una cu drepturi depline sistem de operare(OS) rulează numai pe mașina de control (front-end), o versiune puternic tăiată a sistemului de operare funcționează pe fiecare modul individual, asigurând funcționarea doar a ramurii aplicației paralele aflată în acesta. În a doua versiune, fiecare modul rulează un sistem de operare complet asemănător UNIX, care este instalat separat.


Orez. 3.2.

Principalul avantaj al sistemelor de memorie split este bun scalabilitate: spre deosebire de sistemele SMP, la mașinile cu memorie separată, fiecare procesor are acces doar la propria sa memorie locală, și, prin urmare, nu este nevoie de sincronizarea în sensul acelor de ceasornic a procesoarelor. Aproape toate recordurile de performanță de astăzi sunt stabilite pe mașini cu această arhitectură, constând din câteva mii de procesoare (

Top articole similare