Non-Uniform Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FaleBot (discussione | contributi)
m Bot: Tolgo: fr:NUMA; modifiche estetiche
FrescoBot (discussione | contributi)
m Bot: decadi secondo il manuale di stile
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.
 
L'architettura NUMA è il logico passo successivo delle architetture [[Multiprocessore simmetrico|SMP]]. Questa tipologia di architettura fu sviluppata inizialmente da [[Sequent Computer Systems|Sequent]] e [[Data General]] durante gli [[anni 1990|anni 90novanta]]. Queste tecnologie vennero in seguito adottate da [[VMS]] e da molti sistemi [[Unix]], parzialmente anche nell'architettura di [[Windows NT]] Server dopo la ver. 5.6 e successivi.
 
== Concetti basilari ==
Le moderne [[CPU]] sono molto più veloci delle memorie a cui accedono. All'inizio degli [[anni 1970|anni 70settanta]] quando iniziarono a diffondersi i primi [[supercomputer]] le memorie erano molto più veloci dei processori e quindi problemi di accesso alla memoria non si ponevano. Con il rapido incremento della frequenza di funzionamento delle CPU i tempi di accesso alla memoria divennero un problema sempre più impellente fino a diventare uno dei principali problemi delle attuali generazioni di processori. Molti sistemi sviluppati alla fine degli anni 80 e 90 si concentravano sull'ottenere sistemi di accesso alla memoria molto veloci piuttosto che unità di calcolo veloci dato che l'obiettivo dei sistemi era quello di poter trattare elevate quantità di dati.
 
La chiave per ottenere elevate prestazioni con i moderni supercomputer è quello di limitare l'accesso alla memoria a una limitata quantità di memoria molto veloce. Per realizzare questo vengono utilizzate [[CPU cache|cache]] di dimensioni sempre crescente all'interno dei processori che mantengono i dati utilizzati di frequente. Queste cache vengono aggiornate con algoritmi sempre più avanzati al fine di mantenere solo le informazioni utilizzate effettivamente di frequente. Questi metodi non sono in grado di compensare completamente il continuo aumento di memoria e di dimensione dei programmi e sistemi operativi che riducono le prestazioni delle cache. Nei sistemi multiprocessore questo diventa ancora più evidente dato che solo un processore può accedere alla memoria mentre gli altri processori se devono accedere alla memoria sono costretti ad attendere il loro turno.