NUMA
In informatica , NUMA ( dall'inglese N on -Uniform Memory A ccess , in spagnolo " accesso alla memoria non uniforme " ) è un progetto di memoria utilizzato nel multiprocessing in cui si accede a tutta la memoria in posizioni relative a un altro processo o memoria condivisa tra processi. Sotto NUMA, un processore può accedere alla propria memoria locale più velocemente della memoria non locale (memoria locale di un altro processore o memoria condivisa tra processori).
Storia
Inizialmente le CPU di computer e supercomputer erano più lente delle rispettive memorie, e le loro prestazioni furono superate nel 1970 . Da allora le CPU hanno dovuto attendere il completamento degli accessi alla memoria. Alcuni computer progettati negli anni '80 - '90 si sono concentrati sulla fornitura di accessi alla memoria ad alta velocità a fronte di processori più veloci, consentendo loro di gestire grandi volumi di dati che altri sistemi non potevano. Tra i precursori di tale tecnologia abbiamo Data General , con AViiON e Sequent Computer Systems , attualmente parte di IBM , con la stessa strategia allo stesso tempo. Il sistema con nome in codice "Manx" è stato il primo tentativo, originariamente basato su hardware Pentium e Zenith, ma non è mai stato venduto sul mercato. Tra le apparecchiature sviluppate da Data General possiamo citare il server AV/9500 con 16 CPU e il suo successore, il modello AV 1000, con 32 nel 1995, e l'AV 20000 ("Audubon") che collegava fino a 32 processori Pentium Pro, e AV 25000 ("Audubon 2") fino a 64 Pentium II, Pentium III e Intel Xeon.
Concetti di base
Limitare il numero di accessi alla memoria è la chiave per prestazioni elevate su un computer moderno. Per i processori ciò significa aumentare la memoria cache ad alta velocità e utilizzare algoritmi più sofisticati per evitare perdite di cache. Tuttavia, il notevole aumento delle dimensioni dei sistemi operativi e delle applicazioni che vengono eseguite su di essi ha sopraffatto i miglioramenti nell'elaborazione della cache. I sistemi multiprocessing peggiorano il problema. Ora il sistema deve bloccare più processori contemporaneamente, perché solo un processore alla volta può accedere alla memoria.
NUMA cerca di risolvere questo problema offrendo memoria distribuita per ciascun processore, evitando così di compromettere le prestazioni del sistema quando più processori tentano di accedere alla stessa memoria. Per problemi di propagazione dei dati (comuni nei server e in applicazioni simili), NUMA può migliorare le prestazioni utilizzando una singola memoria condivisa di un fattore pari a circa il numero di processori (o separando i banchi di memoria).
Vedi anche
Collegamenti esterni
- Domande frequenti sulla NUMA
- Memoria condivisa distribuita basata sulla pagina
- Un'API NUMA per LINUX ( collegamento interrotto disponibile su Internet Archive ; vedi cronologia , prima e ultima versione ). - un white paper tecnico di Novell
- Progetto OpenSolaris NUMA
- Video introduttivo all'architettura del sistema Alpha EV7
- Altri video relativi ai sistemi EV7: CPU, IO, ecc.
- Ottimizzazione NUMA nelle applicazioni Windows
- Supporto NUMA in Linux presso SGI
- Intel Tukwila (in inglese)
- Spiegazione Intel CSI
- attuali sistemi Itanium NUMA