Fra UMA til NUMA
Ikke nok med, at Windows og Linux for tiden tager de første, spæde skridt ind i en 64-bit verden. Nu vil de også levere NUMA - Non-Uniform Memory Access. Som leverandør af highend styresystemer kan man ikke tillade sig at ignorere det ustandselige indhug, som Windows og Linux gør i porteføljen af teknologier.
En computer med en enkelt processor og et enkelt hukommelsesområde er nem at forstå. Og når man vil have en højere ydelse, end processoren kan levere, er det oplagt at putte flere processorer i samme computer. Så har man Symmetric Multi Processing (SMP) med Uniform Memory Access (UMA).
Men der kommer et punkt ved 8-12 processorer, hvor det ikke kan betale sig at lade flere processorer slås om det samme hukommelsesområde.
Bussen mellem processorerne og hukommelsen overbelastes, og processorerne står i tomgang og venter. Grænsen for SMP/UMA skalerbarhed er nået, og der må nytænkning til.
Non-Uniform Memory Access (NUMA) deler hukommelsen op, så den følger et passende antal processorer. Et NUMA-system består af et antal noder, hver med et antal processorer, et stykke hukommelse og eventuelt et I/O-system.
Noderne kommunikerer via en intern bus kaldet en interconnect, og et styresystem med NUMA vil sørge for, at et programs tråde så vidt muligt holder sig til den lokale nodes processorer og hukommelse - den såkaldte local memory.
Fattes der ressourcer, kan programmet altid få tildelt adgang til andre noder, hvilket kaldes remote memory. Men der er en tidsforskel i brugen af lokal- og fjernhukommelse. Adgangstiden er Non-Uniform og deraf navnet NUMA.
Proprietære Unix'er som IBM's AIX, Sun's Solaris og HP's HP-UX er andet og mere end 64-bit platforme med Symmetric Multi Processing (SMP) og NUMA. Der er store områder såsom volume-management, scheduling og I/O-systemer, hvor hverken Windows eller Linux kan følge med - endnu.
Går man endnu højere op, vil en sammenligning med mainframe styresystemer som OS/390 være meget ulig, men med et 64-bit adresseringsområde og de skaleringsmuligheder, som NUMA tilbyder, er de to mest fremtrædende pc-styresystemer trådt et skridt nærmere datacenteret.
Windows Server 2003
Der er både fordele og ulemper ved UMA og NUMA. Et UMA-system kan sætte flere uafhængige processorer til at arbejde på det samme datasæt. Ulempen er, at processorerne skal synkroniseres for at undgå, at de manipulerer med de samme data på samme tidspunkt.
Desuden kræver UMA, at adgangshastigheden til alle dele af hukommelsen skal være ens. Jo større computeren fysisk bliver, des sværere bliver det at holde al hukommelsen i præcis samme afstand til alle processorerne.
NUMA-konceptet er smukt, for hver node kan ses som en SMP/UMA-enhed - altså en computer - i sig selv. Især hvis noden har eget I/O-system. Et cluster kan i princippet beskrives som et NUMA-system, hvor hver computer er en node.
De enkelte SMP/UMA-enheder kan placeres i vilkårlig afstand fra hinanden, og al tilgang til andre noders hukommelse foregår via et protokolsystem. Dette gør NUMA-systemer nemmere at bygge, men sværere at programmere.
Microsoft har altid solgt ideen om, at flere små maskiner i et cluster er bedre end en enkelt, stor maskine, et såkaldt "big iron". Nu er piben ved at få en anden lyd, og det skal naturligvis ses i lyset af, at man ikke har kunnet sælge, hvad man ikke havde.
I Windows Server 2003, der udkommer den 24. april, er understøttelsen af blandt andet NUMA dog på plads, og den nye Windows ligger i øjeblikket på ottendepladsen på TPC's Top 10 over ikke-clusterede maskiner. Rekorden, som er mere end en fordobling af den hidtidige Windows-rekord på en Unisys ES7000 med 32 Xeon-processorer, blev sat med SQL Server 2000 Enterprise Edition 64-bit på en NEC Express5800 med 32 Itanium 2-processorer.
Windows Server 2003 udkommer i flere udgaver, men det er kun Enterprise Edition og Datacenter Edition, der har NUMA-teknologi og understøtter 64-bit Itanium-processorer. De kan begge adressere 32 gigabyte ram, men hvor Enterprise Edition understøtter 8 processorer, kommer Datacenter Edition helt op på 64. Styresystemet kommer også i en version til AMD's Opteron.
Næste Linux
I januar måned accepterede Linus Torvalds et sæt NUMA-patches fra Martin Bligh, der arbejder som kernel-udvikler på IBM Linux Technology Center. Disse patches udvidede Linux' scheduling-mekanisme med NUMA-funktionalitet.
Sådanne NUMA-patches har været sendt til Linus Torvalds før, men de har altid haft en negativ indvirkning på enkeltprocessor-systemer. Først nu, takket været Martin Blich, Erich Focht og Michael Hohnbaum, lades enkeltprocessor-systemer i fred.
De nye patches er foreløbig testet tilfredsstillende på et IBM NUMA-Q-system, et standard SMP-system, enkeltprocessor-systemer og NEC's IA64 NUMA-system.
De nye NUMA-patches er kørt ind i udviklingstræet for Linux 2.5, hvor de finpudses og testes sammen med de mange andre nye faciliteter, der tilsammen skal udgøre Linux 2.6.
Inden man haster ud og installerer Linux 2.5 skal man huske, at Linux-kerner med ulige versionsnumre (såsom 2.5) er udviklingsversioner. Brug altid den nyeste kerne med et lige versionsnummer til produktionsmaskiner - i dette tilfælde version 2.6, som kommer senere på året.
Med udgivelsen af Windows Server 2003 og Linux 2.6 skal der nok også komme mere gang i hardware-markedet. Indtil videre er der ikke mange maskiner, styresystemerne for alvor kan få lov at boltre sig på.
Der er stor debat om, hvilken arkitektur der i sidste ende vil dominere, og der er stadig lang tid til, at Windows og Linux kan overflødiggøre Unix og andre high-end-systemer i datacenteret. Men de er godt på vej.
Denne artikel stammer fra den trykte udgave af PC World, nummer 4/2003.