Risposte:
Opterons e Nelahem (55xx e successivi) Xeons hanno un'architettura NUMA: ogni socket ha il suo bus di memoria e c'è un collegamento tra i socket. Questo collegamento si chiama Hypertransport su sistemi Opteron e Quickpath su Xeons. Il G5 precede Nelahem e utilizza ancora il vecchio Front Side Bus, che non è un'architettura NUMA.
Opterons e Xxx 35xx / 55xx o successivi possono utilizzare una modalità di indirizzamento NUMA pura, in cui la memoria di ciascun socket vive in una sezione contigua dello spazio di indirizzi fisico. Se si desidera eseguire un'applicazione in grado di riconoscere NUMA (ad es. Supporto per l'affinità del processore), è possibile configurare il sistema per l'esecuzione in questa modalità.
I sistemi di questo tipo hanno anche una modalità legacy in cui le singole pagine 4K si alternano tra i socket, quindi l'accesso alla memoria viene mischiato finemente tra i socket. Questo ha un leggero sovraccarico prestazionale in quanto la metà di tutti gli accessi alla memoria deve passare attraverso il bus Hypertransport verso l'altro socket (Quickpath nel caso di Xeons). Tuttavia, la maggior parte degli accessi verrà memorizzata nella cache, pertanto il sovraccarico delle prestazioni è relativamente ridotto.
Questa modalità consente ai sistemi di eseguire in modo efficiente applicazioni non compatibili con NUMA ed è in genere la modalità predefinita in cui si avvia il sistema. Normalmente è possibile configurarla nel BIOS.
Il tuo G5 non funzionerà in modalità NUMA perché ha un'architettura bus frontale. L'FSB è un singolo bus condiviso dalla memoria e da tutti i socket del processore, quindi ha caratteristiche di accesso alla memoria uniformi , cioè non NUMA. Non sono a conoscenza di applicazioni per architravi o architravi che dipendono da un'architettura NUMA; è probabile che l'applicazione non necessiti di NUMA ma la supporterà se presente. Probabilmente puoi ancora eseguire l'applicazione sul tuo vecchio sistema G5. La pertinenza dipende dall'applicazione e da ciò che si desidera ottenere.
Supporto NUMA nelle applicazioni
Alcune applicazioni (ad esempio SQL Server) possono ottenere significativi vantaggi in termini di prestazioni ottimizzando la memoria, l'utilizzo degli I / O e la pianificazione in modo da ridurre al minimo le penalità per l'accesso non locale. L'implementazione del supporto NUMA in un'applicazione richiede che le strutture di supporto siano disponibili dal sistema operativo, come:
Affinità del programmatore: un thread può essere inserito in un pool che preferisce pianificare su uno o un gruppo di processori. Si noti che NUMA può avere più di un processore su un singolo bus di memoria - nel caso di un Opteron multi-core o Xeon i core su un singolo die condividono tutti lo stesso bus. Ciò consente al thread di richiedere memoria locale o utilizzare pool di memoria locali nel pool di CPU. Inoltre, quando un thread viene mantenuto su una CPU locale, riduce al minimo il thrashing della cache man mano che il thread è programmato: il working set è solo il working set di thread che utilizza quel particolare core.
Affinità di memoria: un thread può richiedere memoria e specificare che deve o deve essere disponibile dalla memoria locale a un socket. Mantenere l'utilizzo della memoria e della CPU sullo stesso bus riduce al minimo il sovraccarico dell'accesso alla memoria non locale. Il sovraccarico non è eccezionale sui moderni sistemi NUMA, ma l'accesso non locale era molto più lento su sistemi più vecchi come i primi equipaggiamenti Sequent.
Affinità I / O: i bus periferici possono essere collegati a una CPU locale, quindi la gestione degli I / O può essere programmata su processori vicini all'I / O. La maggior parte dei sistemi NUMA ha più bus I / O, quindi la pianificazione di gestori di interrupt e DMA nella memoria locale offre alcuni vantaggi in termini di prestazioni I / O.