Non-Uniform Memory Access: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m robot Modifico: nl:NUMA (computersysteem) |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(65 versioni intermedie di 44 utenti non mostrate) | |||
Riga 1:
'''Non-Uniform Memory Access
L'architettura NUMA è il logico passo successivo delle architetture [[Multiprocessore simmetrico|SMP]].
== Concetti basilari ==
Le moderne [[CPU]] sono molto più veloci delle memorie a cui accedono. All'inizio degli [[anni 1970|anni
La chiave per ottenere elevate prestazioni con i moderni supercomputer
L'architettura NUMA cerca di porre rimedio a questo problema fornendo a ogni processore una piccola zona di memoria ad accesso esclusivo e veloce in modo da evitare la creazione di colli di bottiglia. Nel caso di applicazioni che richiedono la condivisione di dati come nel caso di [[server]] e simili l'architettura NUMA migliora le prestazioni se si suddivide la memoria centrale in diversi banchi e si assegna ad ogni banco un numero ridotto di processori.
Naturalmente i dati non sono realmente separati nelle memorie dei singoli processori e se dei dati devono essere elaborati da più processori questo è possibile. In questo caso l'architettura NUMA prevede che il software o dei dispositivi hardware provvedano a spostare i dati da un banco a un altro. Questa copia dei dati rallenta i processori e quindi l'efficienza delle
== 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
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
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 provvenodo a invalidare le cache se uno dei processori modifica una di queste zone di memoria controllate.▼
▲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
Per questa ragione le architetture NUMA forniscono delle prestazioni scarse se i processori accedono alle stesse zone di memoria in rapida successione.
I [[sistema operativo|sistemi operativi]] che sopportano le architetture NUMA cercano di ridurre il problema allocando i processi in modo da sfruttare la divisione dell'architettura e fornendo algoritmi di gestione e di bloccaggio della memoria in modo da ridurre gli accessi contemporanei alla stessa zona di memoria.
== 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
==
* {{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}}
* [[Multiprocessore simmetrico]] (SMP)▼
== Voci correlate ==
* [[Computer cluster]]
* [[Supercomputer]]
* [[Silicon Graphics
== Altri progetti ==
{{Interprogetto|preposizione=sulla}}
== Collegamenti esterni ==
* {{FOLDOC}}
* {{
* {{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ì}}
* {{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}}
[[Categoria:
[[Categoria:Supercomputer]]
[[Categoria:Calcolo parallelo]]
▲[[en:Non-Uniform Memory Access]]
|