Bevezetés a NUMA világába

Címkék

A 2.5/2.6-os Linux kernel egyik újdonságaként megjelent a NUMA memória architektúra széleskörű támogatása. A NUMA (Non-Uniform Memory Access) egy olyan memória architektúra, amely a többprocesszoros rendszerekben használatos. A processzoroknak saját, a közös rendszer memóriától elkülönített memória területük van, amelyet a saját számításaik elvégzésére használhatnak fel.Mivel a processzorok privát memóriával rendelkeznek, és azon nem kell osztozniuk a többi processzorral, nagyobb hatékonysággal dolgozhat a rendszer.

A NUMA architektúra alapjaiba vezet be minket a Linux Gazette ezen cikke.

Hozzászólások

Kicsit felreertheto a forditas, de az eredeti cikk is. A NUMA gepeken minden memoria processzorokhoz van rendelve. A "local" illetve "remote" kifejezesnek csak egy adott processzorcsoportra vonatkoztatva van ertelme.

A processzorok egyebkent kozvetlenul cimzik a tavoli memoriat is es osztozniuk kell az osszes processzorral, ha nem igy lenne, akkor kozonseges clustereknek minosulnenek (distributed memory).

Az SMP-hez kepest az az elorelepes, hogy a lokalis memoriat a memoriabuszon v. a crossbaron erik el a processzorok, a tavoli memoriat pedig specialis hardverek (memoriarouterek) segitsegevel.

Ami a lenyeg, hogy a memorian tovabbra is osztoznak a procik, a memoriainterfeszek, azok amelyek tehermentesitodnek. Igaz joval tobbet kell a gepbe epiteni, de az integralt memoriavezerlo legtobb modern CPU resze mar (kiveve Intel hehehe :)) ).

Az alapotlet egyebkent onnan szarmazik, hogy bizonyos numerikus-grafikai-szimulacios kodok mar eleve kieheztettek a processzorokat a gyakori memoriahivatkozasokkal. Ezen sokat enyhitett a tobbszintu memoria (L1,L2,L3 cache). Viszont megszulettek azok az implementaciok is, amik a szoftvert igazitottak a hardver lehetosegeihez, es az azonos memoriara vonatkozo irast/olvasast tombositve hajtottak vegre (locality of reference). Ezek utan mar latszik, hogy a NUMA miert epkezlab dontes. Ha egy adott processz eleve a memoria csak egy kis reszet hasznalja, akkor csak ezt a reszt tartsuk kozel hozza, nem gond, ha az a keves tavoli hivatkozast tovabb tart kivitelezni, cserebe az SMP rendszer 64 (extrem esetben 128 lasd AlphaServer) procija helyett akar 1000 CPU-t is kepes hatekonyan kezelni egy kernellel, raadasul LEGO-szeruen bovitheto az egesz cuccos.

Masegyebet nem tudok elmondani, kerem kapcsojja ki! :-)

Andrei