NUMA ( Non -Uniform Memory Access "nerovnoměrný přístup k paměti" nebo Non-Uniform Memory Architecture "nerovnoměrná paměťová architektura") je schéma implementace počítačové paměti používané ve víceprocesorových systémech , kdy je doba přístupu do paměti určena jejím umístěním ve vztahu k procesoru.
Systémy NUMA se skládají z homogenních základních uzlů obsahujících malý počet procesorů s hlavními paměťovými moduly.
Prakticky všechny architektury CPU využívají malé množství velmi rychlé nesdílené paměti, známé jako mezipaměť , která urychluje přístup k často potřebným datům. V NUMA poskytuje podpora koherence prostřednictvím sdílené paměti významnou výkonnostní výhodu.
Přestože se systémy NUMA s nekoherentním přístupem k paměti snadněji navrhují a sestavují, je extrémně obtížné programovat takové systémy v klasickém modelu von Neumannovy architektury . Výsledkem je, že všechny komerčně dostupné počítače NUMA používají speciální hardwarová řešení k dosažení koherence mezipaměti a jsou klasifikovány jako koherentní systémy s distribuovanou sdílenou mezipamětí neboli ccNUMA .
Obvykle existuje meziprocesorová komunikace mezi řadiči mezipaměti, aby se zachoval konzistentní paměťový vzor ( koherence paměti ), když více než jedna mezipaměť ukládá stejné paměťové místo. To je důvod, proč platformy ccNUMA ztrácejí výkon, když více procesorů v řadě požaduje přístup ke stejnému bloku paměti. Operační systém , který podporuje NUMA, se pokouší snížit frekvenci těchto typů požadavků na přístup přerozdělením procesorů a paměti způsobem, který zabraňuje závodům a zamykání.
Příkladem víceprocesorových strojů ccNUMA řada SGI Origin 2000 Superpočítač ASCI Blue Mountain , jeden z nejvýkonnějších superpočítačů roku 1999 [1] , byl masivně paralelní shluk 48 strojů SGI Origin 2000, každý se 128 procesory. .