Arhitecturi de sisteme multiprocesor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un sistem multiprocesor este un sistem cu mai multe procesoare [1] .

Există multe tipuri de sisteme multiprocesor. Acestea pot fi clasificate în funcție de următoarele caracteristici:

* Multiprocesor „cuplat slab” (cuplat larg)
* Multiprocesor „cuplat strâns”
* Multiprocesor heterogen
* Multiprocesor omogen
* Multiprocesor cu memorie partajată distribuită
* Sistem UMA
* Sistem Cc-NUMA
* Sistem hibrid - memorie partajată pentru date globale, memorie locală pentru date locale.

Sistem cuplat slab

(potrivire largă)

Sistem multiprocesor cuplat slab

Într-un sistem multiprocesor, fiecare procesor are propria memorie locală, canale I / O (intrare-ieșire) și un sistem de operare independent. Procesoarele pot face schimb de date printr-o rețea de conexiune rapidă prin transmiterea mesajelor .

Caracteristicile sistemului

  • Aceste sisteme sunt capabile să execute instrucțiuni multiple pe date multiple (MIMD - Instrucțiuni multiple, date multiple)
  • Acest tip de arhitectură permite calculul paralel ( procesare paralelă )
  • Memoria distribuită permite scalabilitate ridicată.

Sistem cuplat strâns

(strans cuplate)
sau memorie partajată

Sistem multiprocesor cu memorie partajată strâns legată de procesoare.

Un sistem multiprocesor simetric este un sistem cu o memorie centralizată partajată, numită memorie principală (MM), care funcționează sub controlul unui singur sistem de operare cu unul sau mai multe sisteme multiprocesor.

Există două tipuri de sisteme:

  • Sistem UMA
  • Sistem NUMA

Sistem UMA

(Acces uniform la memorie)

Sistem heterogen

Un sistem eterogen se referă la un sistem care conține unități de calcul neomogene ( CPU - Central Processor Unit), procesoare grafice ( GPU - Graphic Processor Unit), procesoare digitale de semnal ( DPS - Digital Processor Unit) sau orice tip de ASIC (aplicație -circuite integrate specifice). Acest tip de arhitectură permite oricărui procesor dedicat, de exemplu un GPU, să funcționeze la același nivel cu procesoarele.

Sistem multiprocesor simetric

Sistem multiprocesor simetric

( Sistem multiprocesor simetric - SMP)

Sistem care funcționează sub un singur sistem de operare cu o memorie centralizată partajată (MM).

Sistemul multiprocesor simetric (SMP-Symmetric Multiprocessor System) este un sistem format dintr-un set de procesoare omogene care funcționează unul independent de celelalte. Fiecare procesor, care rulează programe diferite pe date diferite, are capacitatea de a partaja resurse comune (memorie, periferice I / O, sistem de întrerupere etc.) conectate printr-o magistrală de sistem sau o bară transversală (conexiuni încrucișate) sau un amestec al acestor două abordări , magistrala de adrese și bara transversală de date [2] [3] [4] .

Fiecare procesor are propria memorie cache care acționează ca o punte între procesoare și memoria principală (MM). Funcția memoriei cache este de a accelera accesul la datele MM (creșterea performanței) și foarte important, în sistemele multiprocesor cu memorie partajată, este reducerea traficului sistemului și a magistralei de memorie, care este unul dintre blocajele majore . aceste sisteme. Prin urmare, în aceste sisteme cache-ul este un element esențial

Partajarea memoriei asigură un acces uniform la MM (UMA - Uniform Memory Access Time)

Sistem CC-NUMA

(coerența cache-ului - Acces neuniform la memorie - coerență cache - Acces neuniform la memorie)

Sistem cc-NUMA
Citire memorie la distanță cc-NUMA

Se știe că sistemele SMP sunt limitate în scalabilitate (extinderi incrementale). Pentru a depăși această limită, arhitectura numită cc-NUMA este utilizată în mod normal "

Sistemul cc-NUMA este un grup de sisteme SMP numite „noduri” conectate la o rețea de conexiune rapidă care poate fi o legătură care poate fi un singur inel sau un inel dublu bidirecțional sau o conexiune punctuală multi-inel. - punctul [5] [6] sau un amestec al acestora (de exemplu, IBM Power Systems [5] [7] ), autobuz (de exemplu NUMAq [8] ), traversă, autobuz segmentat (autobuz segmentat) ( NUMA Bull HN ISI ex Honeywell [9] ), router Mesh etc.

Principala caracteristică a acestor sisteme este aceea de a avea o singură memorie partajată distribuită în fiecare nod accesat direct de toate procesoarele tuturor nodurilor.

Într-un sistem cc-NUMA, accesarea unui procesor la memoria la distanță a unui nod la distanță este mai lentă decât accesarea memoriei sale locale. Din acest motiv, acest sistem este numit NUMA (Non Uniform Memory Access).

Sistemul cc-NUMA mai este numit Memorie partajată distribuită (DSM) - memorie partajată distribuită. [10]

Fiecare nod este de obicei un sistem SMP, unde un procesor poate fi un singur procesor sau un procesor multi-core sau un amestec dintre cele două sau orice alt tip de arhitectură. Figura de mai sus este doar un exemplu.

Diferența de timp de acces între local și la distanță poate fi, de asemenea, de un ordin de mărime, în funcție de tipul de rețea de conexiune utilizată (mai rapid în magistrala segmentată, transversală sau interconectare punct-la-punct, mai lent în conexiunea inelului serial).

Exemple de interconectare

Inel dublu-invers
Autobuz segmentat
Bară transversală

Pentru a depăși această limitare se folosește în mod normal o memorie cache mare. (consultați Memoria cache la distanță ). Cu această soluție, sistemul cc-NUMA devine similar cu un sistem SMP extins.

Arhitecturi slab cuplate vs. arhitecturi strâns cuplate

Ambele arhitecturi au avantaje, iar compromisul dintre cele două poate fi rezumat mai jos:

  • Arhitecturile cuplate slab permit performanțe ridicate pentru fiecare procesor individual, dar nu pot realiza echilibrarea ușoară a sarcinii în timp real între procesoare.
  • Pe de altă parte, arhitecturile cuplate strâns (strâns cuplate) sunt capabile să asigure un echilibru ușor, dar suferă de „blocaje” rezultate din partajarea resurselor comune printr-unul sau mai multe autobuze (care sunt și resurse comune) [11] .

Sistem multiprocesor cu duplicare de date globale

(Sistem multiprocesor care înmulțește multiplicarea globală a datelor)

Sistem multiprocesor cu multiplicare globală a datelor

Acest sistem este o abordare intermediară între cele două arhitecturi anterioare, având resurse comune și resurse locale și memorie locală (LM) în fiecare procesor. Resursele comune sunt accesibile de către toate procesoarele prin intermediul magistralei de sistem, în timp ce resursele locale sunt accesibile doar procesorului lor local. Amintirile cache pot fi văzute în această perspectivă ca amintiri locale.

Acest sistem (brevetat F. Zulian [12] ) utilizat în sistemele Unix DPX / 2 300 (Bull Hn Information Systems Italia (ex Honeywell)) [13] [14] este un amestec între sisteme cuplate strâns și sisteme cuplate slab a căror caracteristică este oferă toate avantajele acestor două arhitecturi.

Multiprocesor de sistem Feraturing Global Data Multiplation - Global Data Write-Broadcasting

Memoria locală este împărțită în două secțiuni, date globale (Glabal Deta - GD) și date locale (date locale - LD)

Conceptul de bază al acestei arhitecturi este de a avea date globale, care sunt informații care pot fi modificate de toată lumea, care pot fi accesate de toate procesoarele la nivel local, deoarece aceste informații sunt duplicate în fiecare memorie locală a fiecărui procesor.

Ori de câte ori aceste date sunt modificate într-o memorie locală, o operație de scriere globală este trimisă pe magistrala de sistem către toate celelalte memorii locale (scriere-difuzare) pentru a menține coerența datelor globale. Astfel, datele globale pot fi citite local de fiecare procesor fără a fi nevoie să accesați magistrala de sistem. Autobuzul de sistem este accesat numai atunci când datele globale ale unei memorii locale sunt modificate, pentru a actualiza copia acestor date stocate în celelalte memorii locale.

Datele locale, pe de altă parte, pot fi schimbate într-un mod similar cu sistemul slab cuplat prin transmiterea mesajelor.

Notă

  1. ^ http://www.cs.vu.nl/~ast/books/mos2/sample-8.pdf
  2. ^ Sistem multiprocesor cu memorie partajată - http://www.freepatentsonline.com/5701413.html
  3. ^ Metodă pentru transferul de date într-un sistem de calcul multiprocesor cu unitate de interconectare transversală - https://www.google.it/patents/EP0923032A1?cl=en
  4. ^ Specificația și verificarea protocolului de arbitraj PowerScale Bus: Un experiment industrial cu LOTOS, Cap. 2, Pagina 4 - ftp://ftp.inrialpes.fr/pub/vasy/publications/cadp/Chehaibar-Garavel-et-al-96.pdf
  5. ^ a b AMD Opteron Shared Memory MP Systems - http://www.cse.wustl.edu/~roger/569M.s09/28_AMD_Hammer_MP_HC_v8.pdf
  6. ^ Introducere în interconectarea Intel® QuickPath - http://www.intel.ie/content/dam/doc/white-paper/quick-path-interconnect-introduction-paper.pdf
  7. ^ Prezentare generală a sistemelor IBM POWER , la computing.llnl.gov . Adus la 1 septembrie 2018 (arhivat din original la 27 mai 2010) .
  8. ^ SourceForge - http://lse.sourceforge.net/numa/faq/system_descriptions.html
  9. ^ Bull HN F. Zulian - brevet A. Zulian - Sistem computerizat cu o magistrală având o structură segmentată - http://www.freepatentsonline.com/6314484.html
  10. ^ NUMA Architecture - http://www.dba-oracle.com/real_application_clusters_rac_grid/numa.html
  11. ^ https://techdifferences.com/difference-between-loosely-coupled-and-tightly-coupled-multiprocessor-system.html
  12. ^ https://www.google.ch/patents/US4928224
  13. ^ http://www.feb-patrimoine.com/english/unix_and_bull.htm
  14. ^ http://www.feb-patrimoine.com/english/bull_dpx2.htm
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT