NUMA ( Non - Uniform Memory Access "ujævn hukommelsesadgang" eller Non-Uniform Memory Architecture "ujævn hukommelsesarkitektur") er et computerhukommelsesimplementeringsskema , der bruges i multiprocessorsystemer , når hukommelsesadgangstiden bestemmes af dens placering i forhold til processoren.
NUMA-systemer består af homogene basisknuder, der indeholder et lille antal processorer med hovedhukommelsesmoduler.
Stort set alle CPU- arkitekturer bruger en lille mængde meget hurtig ikke-delt hukommelse, kendt som en cache , som fremskynder adgangen til ofte nødvendige data. I NUMA giver understøttelse af sammenhæng gennem delt hukommelse en betydelig ydeevnefordel.
Selvom NUMA-systemer med usammenhængende hukommelsesadgang er nemmere at designe og bygge, bliver det ekstremt vanskeligt at programmere sådanne systemer i den klassiske von Neumann-arkitekturmodel . Som følge heraf bruger alle kommercielt tilgængelige NUMA-computere specielle hardwareløsninger for at opnå cache-sammenhæng og klassificeres som distribuerede delte hukommelses-cache-kohærente systemer eller ccNUMA .
Typisk er der interprocessorkommunikation mellem cache-controllere for at opretholde et konsistent hukommelsesmønster (hukommelseskohærens ), når mere end én cache gemmer den samme hukommelsesplacering. Dette er grunden til, at ccNUMA-platforme mister ydeevne, når flere processorer i træk anmoder om adgang til den samme hukommelsesblok. Et operativsystem, der understøtter NUMA, forsøger at reducere hyppigheden af disse typer adgangsanmodninger ved at omallokere processorer og hukommelse på en måde, der undgår racer og låse.
Et eksempel på ccNUMA multiprocessormaskiner SGI Origin 2000ASCI Blue Mountain supercomputeren , en af de mest kraftfulde supercomputere i 1999 [1] , var en massivt parallel klynge af 48 SGI Origin 2000 maskiner med 128 processorer hver. .