Non-Uniform Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
WikitanvirBot (discussione | contributi)
m r2.7.1) (Bot: Aggiungo: mk:Non-Uniform Memory Access
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(31 versioni intermedie di 18 utenti non mostrate)
Riga 1:
'''Non-Uniform Memory Access''' o '''Non-Uniform Memory Architecture''' ('''NUMA''') è un'architettura di memoria sviluppata per i sistemi [[multiprocessore simmetrico|multiprocessore]] dove i tempi di accesso dipendono dalla posizione della memoria rispetto al processore. Nelle architetture NUMA un processore può accedere rapidamente alla propria memoria locale, più lentamente alle memorie degli altri processori o alla memoria condivisa.
{{nota disambigua|l'agenzia marina|[[National Underwater and Marine Agency]]}}
'''Non-Uniform Memory Access''' o '''Non-Uniform Memory Architecture''' ('''NUMA''') è un'architettura di memoria sviluppata per i sistemi [[multiprocessore simmetrico|multiprocessore]] dove i tempi di accesso dipendono dalla posizione della memoria rispetto al processore. Nelle architetture NUMA un processore può accedere rapidamente alla propria memoria locale, più lentamente alle memorie degli altri processori o alla memoria condivisa.
 
L'architettura NUMA è il logico passo successivo delle architetture [[Multiprocessore simmetrico|SMP]]. QuestaUno dei primi sistemi con questo tipologia di architettura fu sviluppatal'[[Sistema inizialmentemultiprocessore simmetrico|XPS100]] della Honeywell Information Systems [[Italia]] negli anni 80 e fu poi anche sviluppata da [[Sequent Computer Systems|Sequent]] e [[Data General]] durante gli [[anni 1990|anni novanta]]. Queste tecnologie vennero in seguito adottate da [[OpenVMS|VMS]] e da molti sistemi [[Unix]], parzialmente anche nell'architettura di [[Windows NT]] Server dopo la ver. 5.6 e successivi.
 
== Concetti basilari ==
Line 14 ⟶ 13:
 
== Coerenza delle cache e NUMA (ccNUMA) ==
{{vedi anche|Coerenza della cache#Directory-based - Message-passing}}
Oramai qualsiasi processore è dotato di una piccola zona di memoria molto veloce ad accesso esclusivo chiamata cache. Queste cache migliorano le prestazioni del sistema perché sfruttano il [[principio di località]] dei programmi ma la loro gestione introduce un notevole carico di lavoro aggiuntivo all'architettura NUMA.
 
Oramai qualsiasi processore è dotato di una piccola zona di memoria molto veloce e ad accesso esclusivo chiamata [[cache memory|cache]]. Queste cachememorie migliorano notevolmente le prestazioni del sistema perché sfruttano il [[Principio di località (informatica)|principio di località]] dei programmi, ma la loro gestione introduce un notevole carico di lavoro aggiuntivo all'architettura NUMA.
Sebbene semplice da progettare un'architettura NUMA senza cache non viene normalmente implementata date le scarse prestazioni del sistema. Un'architettura NUMA che non mantenga le cache coerenti sarebbe anch'essa semplice da progettare ma la sua programmazione sarebbe praticamente impossibile. Quindi tutte le architetture NUMA hanno al loro interno dei meccanismi hardware che provvedono a gestire la coerenza delle cache; queste architetture sono chiamate '''ccNUMA'''.
 
Sebbene semplice da progettare, un'architettura NUMA senza cache non viene normalmente implementata, date le scarse prestazioni del sistema. Un'architettura NUMA che non mantenga le cache coerenti sarebbe anch'essa semplice da progettare ma la sua programmazione sarebbe praticamente impossibile. Quindi tutte le architetture NUMA hanno al loro interno dei meccanismi hardware che provvedono a gestire la coerenza delle cache; queste architetture sono chiamate '''ccNUMA'''.
 
Questi sistemi normalmente utilizzano comunicazioni interprocesso tra i gestori delle cache che tengono traccia del fatto che più processori abbiano copie della stessa zona di memoria e questi provvedono a invalidare le cache se uno dei processori modifica una di queste zone di memoria controllate.
Line 23 ⟶ 24:
 
== NUMA e cluster ==
L'architettura NUMA può essere vista come una versione ridotta di [[computer cluster|cluster di computer]]. L'aggiunta della [[paginazione]] della [[memoria virtuale]] a un sistema a cluster permette di emulare un'architettura NUMA anche se questa non esiste in hardware. Tuttavia questa soluzione è molto più lenta: la [[Comunicazione tra processi|comunicazione interprocesso]] in un'architettura NUMA software è diversi ordini di grandezza più lenta di una comunicazione interprocesso in un'architettura NUMA hardware.
 
== Bibliografia ==
* {{cita libro|autore=[[Andrew Stuart Tanenbaum]]|titolo=Architettura dei calcolatori. Un approccio strutturale|editore=Pearson Education|città=Milano|anno=2006|url=http://books.google.it/books?id=hK8lJ4BPOYcC|pp=581-589|capitolo=Multiprocessori NUMA|isbn=978-88-7192-271-3|cid=adc}}
 
== Voci correlate ==
* [[cs:Non-Uniform Memory Access]]
* [[Computer cluster]]
* [[MultiprocessoreSistema multiprocessore simmetrico]] (SMP)
* [[Supercomputer]]
* [[Silicon Graphics|SGI]]
 
== Altri progetti ==
{{Interprogetto|preposizione=sulla}}
 
== Collegamenti esterni ==
* {{FOLDOC}}
* {{en}}cita [web|http://lse.sourceforge.net/numa/faq/ |NUMA FAQ]|lingua=en}}
* {{en}} [http://cne.gmu.edu/modules/dsm/yellow/page_dsm.html Page-based distributed shared memory]
* {{cita web|1=http://cne.gmu.edu/modules/dsm/yellow/page_dsm.html|2=Page-based distributed shared memory|lingua=en|accesso=5 gennaio 2006|urlarchivio=https://web.archive.org/web/20051214085335/http://cne.gmu.edu/modules/dsm/yellow/page_dsm.html|dataarchivio=14 dicembre 2005|urlmorto=sì}}
* {{en}} [http://web.archive.org/web/20050210025950/www.linuxgazette.com/node/8843 NUMA article at the Linux Gazette (stored at archive.org)]
* {{cita web|1=http://www.linuxgazette.com/node/8843|2=NUMA article at the Linux Gazette (stored at archive.org)|lingua=en|accesso=3 maggio 2019|dataarchivio=10 febbraio 2005|urlarchivio=https://web.archive.org/web/20050210025950/http://www.linuxgazette.com/node/8843|urlmorto=sì}}
{{Portale|informatica}}
 
Line 40 ⟶ 49:
[[Categoria:Supercomputer]]
[[Categoria:Calcolo parallelo]]
 
[[ar:ذاكرة غير موحدة الوصول]]
[[ca:Arquitectura NUMA]]
[[cs:Non-Uniform Memory Access]]
[[de:NUMA]]
[[en:Non-Uniform Memory Access]]
[[es:NUMA]]
[[fr:Non Uniform Memory Access]]
[[ja:NUMA]]
[[ko:불균일 기억 장치 접근]]
[[mk:Non-Uniform Memory Access]]
[[nl:NUMA (computersysteem)]]
[[pl:Non-Uniform Memory Access]]
[[pt:Acesso não-uniforme a memória]]
[[ru:Non-Uniform Memory Access]]
[[sv:Non-Uniform Memory Access]]
[[tr:NUMA]]
[[uk:NUMA]]
[[zh:非均匀访存模型]]