Intel Xeon X5570 'Nehalem' test

18 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Native quad-core
  3. 3. HyperThreading
  4. 4. Geïntegreerde geheugencontroller
  5. 5. QuickPath
  6. 6. Power controller
  7. 7. Turbo modus
  8. 8. Diepere duik in de architectuur
  9. 9. Branch prediction en execution units
  10. 10. Geheugenmanagement
  11. 11. Virtualisatie
  12. 12. Modellen
  13. 13. ASUS platform
  14. 14. Benchmarks
  15. 15. Benchmarks: HPC
  16. 16. Benchmarks: HPC (2)
  17. 17. Bechmarks: 3D-rendering
  18. 18. Benchmarks: MySQL
  19. 19. Benchmarks: Geheugen
  20. 20. Stroomverbruik
  21. 21. Performance per Watt
  22. 22. Toekomst
  23. 23. Conclusie
  24. 24. Besproken producten
  25. 25. Reacties

Inleiding

Vandaag introduceert Intel een nieuwe generatie Xeon-processors op basis van de Nehalem-architectuur. In de desktop wereld wist deze architectuur in de vorm van de Core i7 processor al ieder prestatierecord te verbreken. Weet Intel hetzelfde te bereiken in de server wereld?

Met de veelsproken tick-tock strategie verplicht Intel zich ieder jaar tot het doen van een grote introductie: het ene jaar een nieuw productieprocedé, het ander jaar een nieuwe processorarchitectuur. Een ander aspect van Intels strategie van de afgelopen jaren is dat men nieuwe architecturen niet voor slechts één marktsegment ontwikkelt. Sinds de Core-architectuur is het doel om vergelijkbare technologie te plaatsen in alle apparaten variërend van notebooks, tot desktops tot high-end servers. Die strategie werpt de laatste jaren zijn vruchten af. Waar het voorheen bij een notebook louter ging om zo laag mogelijk energieverbruik, terwijl bij een server alleen zo hoog mogelijke prestaties maatgevend waren, geldt tegenwoordig voor alle markten dat de prestaties en de energiebehoefte van chips met elkaar in verhouding moeten zijn. Zowel bij de in 2006 geïntroduceerde Core-architectuur als de nieuwe Nehalem-architectuur stond de Intel ingenieurs één belangrijk doel voor ogen: hoe kunnen we ervoor zorgen dat onze processors enerzijds sneller worden en anderzijds minder stroom gaan verbruiken?

Core i7

Intels nieuwste processorarchitectuur werd eind vorig jaar geïntroduceerd, in eerste instantie in versies voor high-end desktop PC's. De Core i7 processor is daar inmiddels redelijk ingeburgerd en heeft Intel - als we alleen naar prestaties kijken - een bijna niet meer in te halen voorsprong op concurrent AMD opgeleverd. Dankzij het nieuwe ontwerp verschilt de Core i7 op heel veel vlakken van zijn voorloper, de Core 2 Quad. De belangrijke vernieuwingen zijn ondermeer een geïntegreerde geheugencontroller, de aanwezigheid van vier cores op één enkele chip, een nieuwe cache-architectuur, een nieuwe bus met de naam QuickPath, een geoptimaliseerde pipeline, de terugkeer van HyperThreading, de komst van een Turbomodus en een speciaal ontwikkelde power controller. Al deze zaken hebben Intel in het desktopsegment een flinke prestatiewinst opgeleverd, maar wie wat dieper de materie in duikt, komt er al snel achter dat het gros van de nieuwe technologieën juist in het serversegment, waar twee of vier processors in één systeem zitten, pas écht tot wasdom komt. Dat moment is vandaag aangebroken...

Intel Xeon X5570
Twee Intel Xeon X5570 'Nehalem' processors

Xeon 5500 reeks

Intel heeft vandaag een twaalftal nieuwe Xeon-processors geïntroduceerd, alle gebaseerd op de Nehalem-architectuur en zodoende broertjes van de Core i7. De nieuwe Xeons zijn te herkennen aan modelnummers beginnend met 55. Wij gingen aan de slag met het topmodel voor servers , de Xeon X5570, gebruikmakend van een barebone server van ASUS. Vanzelfsprekend maken we een vergelijking met de bestaande generatie Xeons (codenaam Harpertown) en AMD's recent geïntroduceerde 45 nm quad-core AMD Opteron ‘Shanghai' processors. Eerst nemen we opnieuw een duik in de Nehalem-architectuur en bekijken we hoe deze bij servers wordt ingezet.

Native quad-core

De nieuwe Xeon processors hebben alle vier cores aan boord. Toch is er een belangrijk verschil met de huidige quad-core Xeons: zowel bij de Xeon 5300 reeks (Clovertown chip, 65 nm.) als de Xeon 5400 reeks (Harpertown chip, 45 nm.) bestond een quad-core processor in feite uit twee dual-core chips, die naast elkaar in een verpakking waren geplaatst. De vier cores bij de nieuwe Xeon 5500 (codenaam Gainestown) bevinden zich daadwerkelijk in één chip. Concurrent AMD introduceerde daar eerder de term ‘native quad-core' voor.

Het productieprocedé van de Xeon 5500 is identiek aan dat van zijn voorloper: men maakt gebruik van 45 nanometer transistors. Daarvan vinden we er ongeveer 820 miljoen terug in de nieuwe chip. Ter vergelijking: de bestaande generatie quad-core Xeons heeft ongeveer 731 miljoen transistors aan boord.

Het feit dat de vier cores nu daadwerkelijk in één chip zijn geïmplementeerd, betekent natuurlijk dat deze onderling sneller kunnen communiceren en zodoende beter kunnen ‘samenwerken'. Het heeft echter ook gevolgen voor de cache architectuur. Bij de bestaande Harpertown Xeons heeft iedere core 32 kB eigen L1-cache en is er verder per twee cores 6 MB aan gedeelde L2-cache. Bij de nieuwe CPU's is de verdeling anders: zowel de L1- als de L2-cache zitten direct aan een rekeneenheid: iedere core heeft 64 kB eigen L1-cache en 256 kB eigen L2-cache. Intel heeft echter een derde cacheniveau toegevoegd: de Xeon 5500 chips hebben 8 MB (of 4 MB bij enkele instapmodellen) onder vier cores gedeelde L3-cache.


De indeling van de Nehalem chip met vier cores in één die.

Doordat iedere core een eigen stuk L2-cache heeft, is deze zeer snel te benaderen. In de meeste gevallen bedraagt de toegangstijd ongeveer 10 klokslagen. Doordat de L3-cache wordt gedeeld door alle cores, is deze vanzelfsprekend langzamer dan de L2, maar nog altijd relatief snel. Wanneer een core data uit L3 wil halen, kost dat in de regel ongeveer 35 a 36 klokslagen. De L3-cache is een 16-way ontwerp, wat betekent dat bij een quad-core processor iedere kern vier parallelle ingangen tot het cachegeheugen heeft.

De L3-cache is inclusive, want betekent dat alle data die in de L1 en L2 cache staat, ook verplicht in de L3-cache aanwezig moet zijn. Dat lijkt op het eerste gezicht onlogisch, want het vermindert de feitelijk beschikbare hoeveelheid cache. Toch is een inclusive cache slim, omdat je op die manier direct een snoop filter cadeau krijgt. Immers, als één van de cores een stuk data in zijn L1- of L2-cache aanpast, wordt dit direct doorgevoerd naar L3-niveau en is de nieuwe versie van de data ook beschikbaar voor andere cores. Zodoende hoeven de cores nooit in elkaars L1 of L2 te snoopen.

Vanwege verregaande architecturale vernieuwingen - zoals de op de volgende pagina's besproken geïntegreerde geheugencontroller en de nieuwe QuickPath bus - zijn de nieuwe Xeons niet geschikt voor bestaande moederborden. De processorvoet van de Xeon 5500 reeks is identiek aan die van de Core i7 desktop processors: Socket 1366. Aangezien een Xeon 5500 twee geactiveerde QuickPath bussen heeft en de Core i7 slechts één - hierover verderop meer - zal een Core i7 processor echter niet in een Xeon 5500 bord werken en vice versa.

Intel Xeon X5570
De nieuwe Xeons maken gebruik van dezelfde Socket 1366 voet als Core i7.

HyperThreading

Binnen de cores van de Xeon 5500 CPU's vinden we net als bij de Core i7 de HyperThreading technologie terug. Dat betekent dat iedere core gelijktijdig kan werken aan de instructies van twee programmathreads. Het besturingssysteem ziet een quad-core Xeon 5500 processor dus in feite als een acht-core CPU. Bij een dual-CPU configuratie zijn voor het besturingssysteem 16 virtuele processorkernen beschikbaar.

Eerder al toonden we in het artikel aan dat HyperThreading bij de Core i7 voor een flinke prestatiewinst weet te zorgen, mits workloads opschalen naar acht threads. Bij consumententoepassingen zijn goed schalende applicaties dun gezaaid, maar bij serverapplicaties is het eerder regel dan uitzondering. Goede voorbeelden zijn uiteraard web- en database-server applicaties, die over het algemeen voor iedere client een losse thread aanmaken. Dergelijke software schaalt makkelijk naar 16 threads op een dual Xeon 5500 systeem.

Afhankelijk van de workload ligt de prestatiewinst volgens Intels eigen metingen ergens tussen de 0 en 35 procent. Het interessante aan de HyperThreading technologie is dat deze volgens Intel slechts ongeveer 5% extra die-size en daardoor ook ongeveer 5% extra stroomverbruik kost. Verder geeft Intel aan dat er een belangrijk verschil is tussen de HyperThreading implementatie die men tegenwoordig gebruikt en degene die we jaren geleden terug vonden in de op Pentium 4 technologie gebaseerde Xeons. Destijds kon HyperThreading er bij sommige workloads ook voor zorgen dat de prestaties juist flink kelderden. Volgens Intel is dat euvel opgelost en kan dat tegenwoordig (bijna) niet meer voorkomen. De technologie in de BIOS van een server uitschakelen kan nog steeds, maar heeft eigenlijk geen nut.

Geïntegreerde geheugencontroller

Misschien wel de meest verstrekkende vernieuwing bij de nieuwe Xeons is dat Intel de geheugencontroller heeft verplaatst van de chipset naar de processors. Concurrent AMD nam dit besluit al in 2003 en dat heeft ze geen windeieren gelegd. Intel heeft gekozen voor een triple-channel DDR3-geheugencontroller. Waar de Core i7 desktop-CPU geschikt is voor ‘normale' DDR3 modules, dient bij de Xeon versie gebruik gemaakt te worden registered varianten. Het hele concept van energieslurpende fully buffered DIMM's, zoals dat nu in Intel servers wordt toegepast, is overboord gegooid.

Iedere CPU ondersteunt per kanaal maximaal drie geheugenmodules. Dat betekent in totaal dus maximaal negen modules per chip of achttien modules in een dual-CPU configuratie. Met moderne 8 GB DIMM's kun je op die manier 144 GB geheugen in een server plaatsen. De ondersteunde snelheid voor het geheugen is afhankelijk van het type Xeon 5500 processors. De topmodellen ondersteunen 1333 MHz bij één module per kanaal, 1066 MHz bij twee modules per kanaal en 800 MHz bij drie modules per kanaal.

Doordat het geheugen rechtstreeks met de processor verbonden is en geheugenaanvragen dus niet meer via de chipset hoeven te lopen, is de totale toegangstijd van het geheugen flink verkort. Intel maakt echter ook een flinke sprong wat betreft geheugenbandbreedte. Door de integratie van de geheugencontroller schaalt het aantal beschikbare geheugenkanalen immers met iedere geplaatste processor. In dual-CPU configuraties is er dan ook feitelijk een zes-kanaals geheugencontroller aanwezig. Intels chipset voor de quad-core Xeon-processors uit de Core-generatie is beperkt tot vier kanalen.


De geheugencontroller zit in het zogenaamde uncore gedeelte van de nieuwe Xeons.

De theorie voorspelt al veel goeds: de maximale geheugenbandbreedte voor vier-kanaals DDR2-800 geheugen bij Intels bestaande Xeon-platform is 25,6 GB/s. Een AMD Opteron systeem waarbij twee CPU's elk twee DDR2-1066 kanalen aansturen heeft in theorie een bandbreedte van 34,1 GB/s. Twee Xeon 5500 chips gecombineerd met DDR3-1333 geheugen zouden in theorie 64 GB/s moeten kunnen uitwisselen.

Nu ook Intel processors een geïntegreerde geheugencontroller hebben, ontstaat er bij multi-processor systemen een zogenaamde NUMA (Non-uniform Memory Access) geheugen architectuur. Software die fysiek op een bepaalde processor draait, kan het best gebruik maken van het geheugen gedeelte dat direct aan de betreffende processor verbonden is, aangezien dat met de laagste toegangstijd benaderd kan worden. Om een andere geheugenpartitie te benaderen, moet er immers via een andere CPU gecommuniceerd te worden. Het besturingssysteem moet hier rekening mee houden en het geheugen zo slim mogelijk indelen.

Hier kan Intel profiteren van de wet van de remmende voorsprong. AMD heeft immers met haar Opterons al enkele jaren een NUMA geheugen architectuur, met als resultaat dat alle besturingssystemen (Windows, Linux, etc.) er al volledig voor zijn geoptimaliseerd. Intel profiteert daar nu direct van. Interessant is overigens dat zelfs wanneer er gebruik gemaakt wordt van geheugen dat aan een andere processor hangt, de totale wachttijd nog altijd lager is dan bij het huidige Intel platform.

QuickPath

De volgende grote vernieuwing binnen de nieuwe Nehalem-gebaseerde Xeon-CPU's is het afscheid van de frontside bus en de komst van de QuickPath interface. QuickPath is een nieuwe chip-to-chip interface die in eerste instantie met maximaal 6,4 Gigatransfers per seconde werkt en in twee richtingen 16 datapaden heeft, wat resulteert in een bandbreedte van 12,8 GB/s in beide richtingen. Het grote verschil tussen de frontside bus en QuickPath wordt duidelijk in onderstaande afbeelding.

Bij Intels huidige dual-CPU platform heeft iedere CPU een eigen verbinding met de chipset, waarin de geheugencontroller is geplaatst. Alle data die de processors met het geheugen willen uitwisselen moeten via de chipset lopen en wanneer de cores van de twee verschillende CPU's informatie moeten uitwisselen, loopt die verbinding ook via de chipset. De Xeon 5500 CPU hebben echter twee QuickPath interfaces aan boord en zijn daarmee niet alleen direct verbonden met de chipset, maar ook met elkaar. Op die manier kunnen twee CPU's vliegensvlug data uitwisselen.


Links: het bestaande Xeon platform met frontside bus. Rechts: het nieuwe platform met QuickPath.

De in de afbeelding getoonde opzet met één I/O HUB zal in de praktijk het vaakst gebruikt worden, maar een tweede mogelijkheid is om op iedere CPU een eigen chipset aan te sluiten. Op die manier kan het aantal beschikbare PCI-Express lanes binnen een server eenvoudig vergroot worden.

In de desktop wereld, waar slechts met één CPU wordt gewerkt, heeft QuickPath geen gigantisch voordeel boven de bestaande frontside bus technologie. Nu de Nehalem architectuur voor servers wordt ingezet, gaat dit wél direct een rol spelen. En in de toekomst wordt het nog mooier: wanneer Intel ook met 4-weg Xeon systemen op Nehalem-basis komt, wordt het aantal geheugenkanalen natuurlijk verhoogd tot 12 en zorgt QuickPath er opnieuw voor dat alle CPU's rechtstreeks met elkaar in verbinding staan.

Power controller

Naast betere prestaties, moeten de nieuwe op Nehalem-architectuur gebaseerde Xeons bovenal ook een betere performance per Watt verhouding brengen. Om dat te bewerkstelligen, heeft Intel een aantal verregaande nieuwe mogelijkheden op het vlak van stroombesparing ingevoerd. De belangrijkste is de implementatie van een speciale power control unit in de processor. Deze meet continu ondermeer de temperatuur en het stroomverbruik van alle cores en overlegt op basis van al deze informatie met het besturingssysteem op welke snelheden de verschillende cores moeten draaien. Daarnaast stelt de power control unit ook op ieder moment in overleg met de VRM's op het moederbord het ideale voltage in. De komst van zo'n power control unit is uniek: tot nu toe gebeurde het verwerken van temperatuur- en stroomgegevens nog softwarematig. In feite berekenden de cores dus zelf hun eigen werkwijze, wat de effciëntie niet ten goede kwam.

Een andere belangrijke vernieuwing is de mogelijkheid om cores afzonderlijk geheel uit te schakelen. Dat kan bij bestaande Xeon processors ook al, maar vanwege de kleine transistors blijft ook dan het stroomverbruik onevenredig hoog, vanwege lekstroom. In Nehalem wordt een nieuw soort schakelaars gebruikt, waardoor niet gebruikte cores geheel van de stroomtoevoer worden afgesloten. Op die manier is er geen lekstroom meer en is het verbruik van uitgeschakelde cores verwaarloosbaar. Dankzij deze technologie zou het idle stroomverbruik van een Xeon 5500 slechts rond de 10 Watt bedragen. Bij een huidige processor uit de 5400 reeks is dat al snel zo'n 20 Watt bij de 65 nm Xeon 5300 reeks was het zelfs circa 50 Watt.


De geïntegreerde power controller kan niet gebruikte cores volledig uitschakelen.

Turbo modus

De power controller speelt ook een rol bij een andere vernieuwing binnen de processors, de zogenaamde Turbo Boost Technology. Deze technologie laat de processor vanzelf sneller gaat werken, wanneer het stroomverbruik en de temperatuur ruim binnen de maximumgrenzen liggen. Deze versnelling vindt plaats door de multiplier van de cores één of meerdere stappen te verhogen. Iedere stap betekent een 133 MHz hogere klokfrequentie. Een Xeon X5570 processor die standaard op 2,93 GHz werkt, kan dus op sommige moment op ook bijvoorbeeld 3,2 GHz werken (+ 266 MHz).

Er bestaat een belangrijk verschil tussen de turbo modus van de Core i7 en de turbo modus van de Xeon 5500. Bij de Core i7 wordt er nooit versneld wanneer alle cores in gebruik zijn; wanneer er twee cores idle zijn krijgen de overgebleven cores er maximaal één stap bij (133 MHz) en wanneer er drie cores idle zijn krijgt de enig overgebleven core er maximaal twee stappen bij (266 MHz).

De werking van de turbo modus bij de Xeon 5500 processor verschilt daarentegen per type. De instapmodellen moeten de technologie in zijn geheel missen. Bij de overige E en L modellen en bij de op workstations gerichte W-variant kan er maximaal 1 stap (133 MHz) bij wanneer er 0 of meer cores idle zijn en maximaal 2 stappen (266 MHz) bij wanneer er twee of meer cores idle zijn. Bij de speciale X-modellen kunnen er twee stappen (266 MHz) bij wanneer 0 of meer cores idle zijn en zelfs drie stappen (400 MHz) bij 2 of meer cores idle.

Ofwel, zo lang de koeling het toe laat kunnen de nieuwe Xeon processors zichzelf versnellen, ook wanneer ze volledig in gebruik zijn. Dat heeft onder meer tot gevolg dat wanneer je twee verschillende servers met dezelfde processors vergelijkt, het goed mogelijk is dat de machine met de beste koeling in de praktijk betere prestaties levert. Nooit eerder lag er op een serverfabrikant een dusdanige druk om de koeling te optimaliseren.


Dankzij de turbo modus gaan de nieuwe Xeon processors sneller werken als het stroomverbruik dat toe laat.

Diepere duik in de architectuur

Tot zover de meest in het oog springende vernieuwingen in de Nehalem gebaseerde Xeon 5500 processors. Om de dieper verscholen verschillen tussen Penryn en Nehalem boven water te krijgen, werpen we een blik op het blokdiagram van de nieuwe architectuur. Het blok linksboven zorgt voor het ophalen, queuen en decoderen van alle binnenkomende instructies. De Rename/Allocate en Reservation Station blokken daaronder passen de volgorde van de instructies daarna zo aan, dat deze op een zo efficiënt mogelijke volgorde kunnen worden uitgevoerd. De daadwerkelijke berekeningen worden uitgevoerd door de execution units. Zoals op het schema te zien, is de weg van het bovenste blok tot en met het reservation station zogenaamd 4-wide, wat betekent dat er telkens vier instructies per klokslag doorgevoerd kunnen worden. Naar de execution units kunnen zelfs zes instructies per klokslag worden doorgestuurd, wat één van de eerste architecturale verbeteringen ten opzichte van Penryn is. Hier komen we later op terug. 

In het blokschema zien we verder dat de instructie fetchers zijn verbonden met 32 kB L1 instructiecache en verbonden aan de executions units zien we juist 32 kB L1 datacache. Beide caches staan weer in verbinding met 256 kB L2-cache die iedere core exclusief tot zijn beschikking heeft. Die L2-cache dient weer als buffer voor de onder alles cores gedeelde L3-cache. 


Het blokschema van de pipeline van de Nehalem chip.

Slimmer omgaan met instructies

Een van de nieuwe eigenschappen van de Core architectuur was de komst van macrofusion, het samensmelten van twee of meer x86 instructies tot één complexere instructie, waardoor deze in één klap kunnen worden uitgevoerd. Zo kan de core architectuur bijvoorbeeld een compare en branch instructie laten samensmelten, zonder dat de programmeur of compiler daar iets voor hoeft te doen. Het is bewezen dat dit in veel gevallen voor een aardige prestatiewinst kan zorgen.

Er kleefde één groot nadeel aan de macrofusion in de Core architectuur van de bestaande Intel Xeon processors: deze blijkt alleen maar te werken als de processor in 32-bit modus werkt. Zodra de overstap gemaakt wordt naar een 64-bit OS - eerder regel dan uitzondering in de server wereld - werkt sommige software op bestaande Intel processors ineens een aantal procenten langzamer. Bij de Nehalem architectuur werkt de macrofusion echter ook probleemloos in 64-bit modus.

Een andere flinke verbetering ten opzichte van de Core architectuur zit hem in de zogenaamde Loop Stream Detector. Ook dit is een technologie die bij de Core architectuur voor het eerst werd geïntroduceerd. De courante Intel processors kunnen loops in programmacode van maximaal 18 instructies herkennen. Zodra zo'n loop is gedetecteerd, worden de instructies niet telkens opnieuw uit de cache of geheugen opgehaald, maar worden ze direct van een loop buffer aan de decoder doorgevoerd, zoals te zien in onderstaande afbeelding.


De loop stream detector van de huidige generatie Xeons.

Bij Nehalem zit die loop detector een stuk slimmer in elkaar, zoals te zien in de tweede afbeelding. Hij heeft immers een plek áchter de instructiedecoder gekregen. Loops worden zodoende nu herkend op micro-op niveau. Dat betekent dat de instructies niet telkens opnieuw hoeven te worden gedecodeerd wanneer een processor met een programmaloop bezig is, wat heel wat overhead weghaalt en daardoor voor een aardige prestatiewinst kan zorgen. Daarnaast herkent de nieuwe loop detector series tot maximaal 28 micro-ops. Aangezien in de praktijk in de meeste gevallen iedere x86-instructie (macro-op) wordt omgezet naar één micro-op, mag je met een schuin oog dit getal vergelijken met het bovengenoemde aantal van de Core architectuur. Ofwel, de nieuwe loop detecter haalt niet alleen een extra stuk overhead weg, maar werkt ook met langere stukken code. Opnieuw werkt deze optimalisatie onafhankelijk van de compiler.


De loop stream detector van de Nehalem architectuur zit verder in de pipeline.

Branch prediction en execution units

Een belangrijke manier om de prestaties van een processor te verbeteren is het zo goed mogelijk voorspellen van vertakkingen in programmatuur. Immers, moderne out-of-order processors verwerken instructies niet noodzakelijkerwijs in de volgorde waarin ze binnenkomen en daardoor kan het zijn dan er al gewerkt moet worden aan instructies die nog afhankelijk zijn van een eerdere instructie, die pas op een later tijdstip wordt uitgevoerd. Wanneer er in zo'n geval een vertakking in een programma ontstaat, zal de processor zo goed mogelijk een gok doen welke tak de meeste kans van slagen heeft. Branch predictors zijn tegenwoordig zo goed dat er nog maar zelden mis gegokt wordt. Dat is maar goed ook, want een branch miss betekent dat de hele pipeline vol kan zitten met instructies die niet meer nodig zijn, zodat het heel wat klokslagen kan duren eer weer een juiste instructie uit de processor rolt.

Intel heeft op een aantal manieren de branch prediction in Nehalem verder verbeterd. Een van de belangrijkste manieren bestaat uit het al beginnen met het voorspellen zodra instructies in L2-cache aankomen. Op dit niveau heeft de processor een breder kijkveld en kan er zodoende een nog betere beslissing worden genomen.

Dan de execution units; zoals eerder in dit artikel al beschreven is er bij Nehalem een zesvoudig pad van het reservation station naar de daadwerkelijke rekeneenheden van de core. Bij de Core architectuur waren dat er vier. Achter elk van deze zes ingangen, zit één of meerdere rekeneenheden. Poort 2, 3 en 4 zijn alleen geschikt voor geheugenadres operaties, poort 0, 1 en 5 zijn ook geschikt voor integer of floating point berekeningen, zoals ook te zien in onderstaande afbeelding.


De zes execution units binnen iedere core zijn geschikt voor verschillende instructies.

Het doel is natuurlijk om te allen tijde alle vier poorten gevuld te hebben. (Het vullen van vijf of zes is in de praktijk vrijwel onmogelijk, aangezien er tot aan het reservation station slechts vier instructies per klokslag kunnen worden doorgestuurd.) Dat betekent dat de processor in het ideale geval op ieder moment aan de slag moet kunnen vier verschillende bewerkingen, die naast elkaar in de verschillende execution units moeten passen. Geen wonder dat een processor de volgorde van instructies omhusselt om deze in een optimale volgorde uit te voeren. 

Om in zoveel mogelijk gevallen alle execution units bezig te houden, is bij Nehalem het aantal instructies, dat een core tegelijkertijd in zijn vizier kan houden om in geoptimaliseerde volgorde uit te voeren, flink verhoogd. Twee generaties geleden was het maximum 64 instructies, bij de Core architectuur werd dat aantal verhoogd naar 96 en nu bij Nehalem zelfs naar 128. Een verhoging van 33% dus. De ruimte in het reservation station is toegenomen van 32 naar 36 instructies. 

Het aantal buffers voor load en store operaties is nog meer toegenomen. Het aantal load buffers gaat van 32 naar 48, het aantal store buffers van 20 naar 32. Opnieuw kan dit allemaal in veel gevallen voor aardige prestatiewinsten zorgen.

Met dit verhaal van de verschillende execution units in het achterhoofd, wordt ineens duidelijk hoe HyperThreading verschilt van de implementatie in de Pentium 4, en hoe de moderne Nehalem variant door het gelijktijdig verwerken van instructies van twee programmathreads hogere prestaties kan bieden. We schreven immers dat een processor er alles aan moet doen om te allen tijde vier execution units bezig te houden. Wanneer een programma echter een hele rits instructies van hetzelfde type achter elkaar heeft staan, bijvoorbeeld een aantal floating point optel-instructies, kan slechts één execution unit worden bezig gehouden en staat een groot gedeelte van de core werkeloos in de coulissen. Wanneer er dan ook instructies van een andere programmathread gebruikt kunnen worden, kunnen de executions units vaak wel optimaal gevuld worden en zal de processor zodoende efficiënter zijn werk doen.

Geheugenmanagement

Ook op het vlak van geheugenmanagement zijn er flinke verbeteringen. Een enigszins verborgen verbetering ten opzichte van Penryn, die we kunnen zien in het eerder getoonde blokschema is een tweede TLB (Translation Lookaside Buffer). Zo'n TLB wordt gebruikt om eenvoudig een omrekening te kunnen maken tussen de geheugenadressen waar een programma mee werkt, naar daadwerkelijk fysieke adressen in het RAM-geheugen van de PC. De tweede TLB is nieuw in Nehalem. Deze is weliswaar iets langzamer, maar ook een stuk groter dan de primaire TLB. Wanneer een benodigd geheugenadres niet in de standaard TLB aanwezig is, is de kans bij Nehalem aanzienlijk dat de CPU dit wel snel in de tweede TLB kan opvragen. Zodoende hoeft in minder gevallen een tijdrovende en daarmee prestaties beperkende berekening te worden uitgevoerd.

De tweede verbetering op het vlak van geheugenmanagement is wat complexer. Binnen x86 zijn er twee manieren om meerdere stukken data uit het geheugen op te vragen, aligned en non aligned. Aligned wil in dit geval zeggen dat de gewenste data fysiek achter elkaar in het geheugen terug te vinden is. 

Wanneer de compiler 100% zeker weet dat dit bij een bepaalde operatie altijd het geval is, kan er gebruik gemaakt worden van aligned load-operaties. Wanneer die zekerheid er niet is, moet er worden gekozen voor de unaligned variant, die een stuk langer duurt en daarna implicaties heeft op de prestaties. Helaas nemen deze unaligned functies ook meer tijd in beslag wanneer de data uiteindelijk toch in de juiste volgorde in het geheugen blijkt te staan. Dát is bij Nehalem verleden tijd. Het gebruik van een unaligned instructie op data die toch aligned is, duurt exact even lang als wanneer er van een aligned instructie gebruik wordt gemaakt. Deze potentiële bottleneck is dus helemaal weggenomen. Ondermeer de nieuwste Intel compilers houden hier nu al rekening mee voor Nehalem.

Prefetchers

Een van de eigenschappen die ervoor zorgden dat de op Core-architectuur gebaseerde Xeon processors veel sneller waren dan hun voorlopers, is de implementatie van hardware prefetchers. Deze voorspellen welke data de processor in de nabije toekomst nodig heeft en kopiëren die alvast van het relatief langzame RAM-geheugen naar het cache geheugen van de processor. In sommige gevallen wisten hardware prefetchers op zichzelf al zo'n 20 tot 30 procent prestatieverbetering te bewerkstelligen bij server workloads ten opzichte van de voorgaande Xeon generatie. 

Een nadeel van de hardware prefetchers is dat ze bij veel software telkens de mist in gaan door steeds de verkeerde data naar de cache halen. In dergelijke gevallen hebben ze juist een negatieve invloed op de prestaties. Hoewel het om uitzonderingsgevallen gaat, is er juist bij server toepassingen een aantal applicaties aan te wijzen waar de technologie roet in het eten gooit. Vandaar dat veel systeembeheerders bij hun servers de hardware prefetching min of meer gedwongen uitzetten. Met als onvermijdelijk gevolg dat potentiële prestatiewinst gemist wordt bij software waar de techniek wél goed werkt.

Ook hier heeft Intel wat op bedacht. De vernieuwde prefetchers in de Nehalem architectuur controleren de hele tijd hoe goed de resultaten zijn die ze afleveren. Wanneer blijkt dat ze het bij een bepaalde programmathread continu mis hebben, wordt de werking van de prefetchers op een lager pitje gezet. Ofwel, de prefetchers zijn zelfregulerend en zetten zichzelf uit wanneer ze slecht werk afleveren. Op die manier wordt het potentieel van flinke prestatieverbeteringen behouden, terwijl het risico op een beperking van de prestaties aanzienlijk beperkt is.

Virtualisatie

Ook op het vlak van ondersteuning voor virtualisatie zijn er onder de motorkap flinke verbeteringen. Intel heeft opnieuw getracht om de overhead van het gevirtualiseerd draaien van besturingssystemen zo veel mogelijk terug te dringen. Hiervoor heeft men een aantal interessante vindingen uitgedokterd. Deze komen voornamelijk voort uit de eerder in dit artikel besproken verbeteringen van de de Translation Lookaside Buffers (TLB's).

In een gevirtualiseerde omgeving heeft iedere virtual machine immers zijn eigen set TLB informatie. Dat betekent in de praktijk dat, wanneer er wordt omgeschakeld van de ene VM naar de andere, de hele inhoud van de TLB moet worden weggeschreven naar RAM-geheugen en daarna de TLB informatie van de andere VM moet worden ingeladen. Deze acties kosten heel wat klokslagen en zijn daarmee een groot gedeelte van de overhead bij het gevirtualiseerd draaien van besturingssystemen.

Bij de Nehalem architectuur krijgt iedere virtual machine een zogenaamd virtual processor ID toegewezen. Alle combinaties in de TLB worden vervolgens getagd met dat VPID. Op die manier weet de processor exact welk gedeelte van de TLB bij welke virtual machine hoort en hoeft de TLB nooit meer te worden weggeschreven of opnieuw ingelezen.

Hypervisor software moet overigens wel hiervoor geschikt gemaakt worden, maar Intel heeft al aangekondigd dat ondermeer VMware deze processorextensies versie 4 van de ESX HyperVisor zal ondersteunen. Ook Xen komt spoedig met een geschikte versie, Microsoft houdt voor wat betreft HyperV de kaken nog stevig op elkaar.

Het aantal VPID's is in de huidige generatie beperkt tot 64, ofwel er zijn 6 tagging-bits toegevoegd aan iedere entry van de TLB-registeren. Dat is theoretisch een beperking, maar in de praktijk zijn er nog geen voorbeelden waarbij iemand een dusdanig aantal virtuele machines op één server gaat draaien. Daarnaast in VMware op dit moment sowieso softwarematig beperkt tot maximaal 16 virtuele machines op één systeem.

 Volgens Intel is de tijdsduur van het overschakelen tussen twee VM's bij de afgelopen processorgeneraties dankzij dergelijke verbeteringen flink gedaald. Penryn schijnt al zo'n 40% minder overhead te hebben dan de eerste processors met de Core architectuur. Bij Nehalem heeft Intel de overhead opnieuw met zo'n 33% ingeperkt.

Nieuwe instructies

Om het verhaal volledig te maken, mogen we ook de nieuwe instructies van de Nehalem architectuur niet vergeten. In totaal zijn er zeven nieuwe instructies, die alle vallen onder de naam SSE 4.2. Vijf van de zeven instructies zijn speciaal bedacht om het verwerken van XML te versnellen. Zo zijn er instructies die het zoeken binnen strings flink kunnen versnellen. Voor veel internet servers kan dat met de juiste software voor een aardige winst zorgen. 

De zesde instructie telt het aantal enen in een register, nuttig bij toepassingen waar patroonherkenning een rol speelt. De laatste nieuwe instructie kan in één klap de CRC32 hash van een stuk data bepalen. Deze instructie is ondermeer toegevoegd om de drivers van iSCSI hardware flink te versnellen. De nieuwste versie van Intels eigen compiler kan al SSE 4.2 code produceren.


De nieuwe instructies binnen de Nehalem architectuur.

Modellen

Intel introduceert vandaag direct een twaalftal Xeon 5500 modellen, in klokfrequentie variërend van 1,86 tot 3,2 GHz. De verschillende chips zijn gesegmenteerd naar gebruiksdoel. De standaardvarianten hebben een modelnummer beginnend met een E en hebben een maximaal stroomverbruik (TDP) van 80 Watt. De speciale L-versies zijn zogenaamd low-power en doen hun werk met een stroomverbruik dat binnen de 60 Watt grens blijft. De drie X-varianten zijn bedoeld voor servers waar extreem veel rekenkracht is vereist; deze CPU's werken op hogere kloksnelheden, met als prijs een hogere TDP van 95W. Tenslotte is er een 3,2 GHz topmodel dat met een 130 Watt TDP in feite puur is gericht op workstations. Deze chip is dan ook te herkennen aan een modelnummer beginnend met een W.

Belangrijk is dat niet alle geïntroduceerde Xeon 5500 modellen de beschikking hebben over HyperThreading en de Turbo Boost technologie. De instappers moeten deze technieken missen en hebben daarnaast slechts 4 MB in plaats van 8 MB L3-cache. Ook de maximale snelheid voor het DDR3-geheugen is afhankelijk van het type chip. Hoewel Intel er geen specifieke mededelingen over heeft gedaan, gaan we ervan uit dat we in alle gevallen met dezelfde chip van doen hebben, maar dat bij de instapmodellen sommige functies zijn uitgeschakeld.

Een compleet overzicht van alle modellen vind je terug in onderstaande tabel.

Model Klokfrequentie Turbo Boost Hyper- Threading L3 cache Cores TDP QPI DDR3
W5580 3,20 GHz Ja Ja 8 MB 4 120 W 6,40 GT/s 1333, 1066, 800
X5570 2,93 GHz Ja Ja 8 MB 4 95 W 6,40 GT/s 1333, 1066, 800
X5560 2,80 GHz Ja Ja 8 MB 4 95 W 6,40 GT/s 1333, 1066, 800
X5550 2,66 GHz Ja Ja 8 MB 4 95 W 6,40 GT/s 1333, 1066, 800
E5540 2,53 GHz Ja Ja 8 MB 4 80 W 5,86 GT/s 1066, 800
E5530 2,40 GHz Ja Ja 8 MB 4 80 W 5,86 GT/s 1066, 800
L5520 2,26 GHz Ja Ja 8 MB 4 60 W 5,86 GT/s 1066, 800
E5520 2,26 GHz Ja Ja 8 MB 4 80 W 5,86 GT/s 1066, 800
L5506 2,13 GHz - - 4 MB 4 60 W 4,80 GT/s 800
E5506 2,13 GHz - - 4 MB 4 80 W 4,80 GT/s 800
E5504 2,00 GHz - - 4 MB 4 80 W 4,80 GT/s 800
EE502 1,86 GHz - - 4 MB 2 80 W 4,80 GT/s 800

Chipset

Een geheel nieuw type processors vraagt om een nieuwe moederbord chipset. Intel heeft twee varianten beschikbaar, de 5520 en 5500. Het belangrijkste verschil tussen beide is dat de 5520 een controller voor 36 PCI-Express 2.0 lanes aan boord heeft, terwijl de 5500 beperkt is tot 24 PCI-Express 2.0 lanes. Beide chipsets worden gecombineerd met de ICH10(R) south bridge die we al kennen van desktop systemen. Deze south bridge biedt ondermeer 6x SATA300 met software RAID en 12x USB 2.0 .

Zoals eerder besproken in dit artikel, biedt de QuickPath interface de mogelijkheid om een server moederbord van twee chipsets te voorzien. Door twee 5520's te combineren, kunnen er zodoende 72 PCI-Express 2.0 lanes gerealiseerd worden. Voldoende om in een workstation een viertal videokaarten elk van de volledige bandbreedte van 16 PCI-Express lanes te voorzien.

ASUS platform

Voor onze tests maakten wij gebruik van een ASUS R700-E6 1U server barebone, uitgerust met twee Xeon X5570 (2,93 GHz) processors en 24 GB registered DDR3-1333 geheugen in de vorm van zes modules van elk 4 GB.

De ASUS R700 barebone geeft direct aan dat het stroomverbruik van de nieuwe Nehalem gebaseerde Xeons beperkt genoeg is om in een 1U formfactor geplaatst te worden. De server van ASUS is full-featured met ondermeer vier hotswappable SATA/SAS drivebays, een optie voor een tweede redundante voeding en twee posities voor uitbreidingskaarten (PCI-Express x16 en x8). De server is voorzien van dual Gigabit LAN gebaseerd op Intel chips en verder alle functionaliteit die je van een serieuze server mag verwachten, zoals console toegang, uitgebreide sensormogelijkheden, en zo verder. Een hardwarematige RAID-controller is standaard niet voorhanden, maar daarvoor biedt ASUS een optionele uitbreidingskaart. De aansluitingen voor deze uitbreiding zijn al op het moederbord ondergebracht.


ASUS R700-E6 Nehalem barebone server voorzien van 2x X5570 en 24 GB DDR3-1333.

Omdat onze vergelijkende benchmarks met Xeon Harpertown en AMD Opteron processors zijn gedaan op een los bord in plaats van in een ‘complete' server, zijn we voor deze test van de nieuwe Xeon 5500 processor ook nog aan de slag gegaan met ASUS' Z8NA-D6 moederbord. Dit is een zeer bijzonder moederbord: het is ASUS gelukt om een complete dual-Xeon opstelling met zes geheugensloten (één per kanaal) onder te brengen op een bord van standaard ATX-formaat. Dat betekent dat je een op Nehalem processors gebaseerde dual-CPU workstation of pedestal server kunt onderbrengen in een normale, betaalbare ATX-behuizing. Ideaal voor wie bijvoorbeeld een razendsnelle videobewerkings PC wil samenstellen. Het bord biedt een enkel PCI-Express x16 slot en daarnaast twee keer PCI-Express x8, één keer PCI-Express x1 en één keer PCI. De speciale sloten aan het eind van het bord zijn voor het plaatsen van een optionele SAS-controller, waarvan de aansluitingen al op het bord zijn onder gebracht. De basis wordt gevormd door de 5520 chips, welke zit verstopt onder een flink koelblok. Het bord heeft verder eveneens dual Intel Gigabit LAN en dezelfde remote management en monitoring functies als de R700-E6 barebone.

Asus Z8NA-D6
ASUS Z8NA-D6: dual Nehalem op ATX-formaat

Skulltrail opvolger?

De ASUS Z8NA-D6 is trouwens al een eerste hint naar een mogelijke inzet van de nieuwe Xeon-processors in de desktop wereld. Eerder al bracht Intel onder de naam Skulltrail een dual Xeon platform als Core 2 Quad Extreme Edition op de markt, waarbij men speciaal voor consumenten veel overklokmogelijkheden toevoegde. De Z8NA-D6 heeft geen enkele overklokmogelijkheid aan boord en ook nog geen ondersteuning voor twee of meer videokaarten, maar is wel een eerste stap in de juiste richting. Wellicht dat een Core i7 gebaseerde Skulltrail opvolger inmiddels al in een vergevorderd stadium bij Intel op de tekentafel ligt.

Asus Z8NA-D6

Benchmarks

Om een beeld te krijgen van de prestaties van de nieuwe Nehalem based Xeons, hebben we een aantal uiteenlopende tests uitgevoerd. Alle benchmarks zijn uitgeboerd onder Windows Server 2008 Standard x64. De twee Xeon X5570 CPU's testten we zoals gezegd in combinatie met het ASUS Z8NA-D6 moederbord, 24 GB DDR3-1333 geheugen. Omdat met slechts één uitzondering de benchmarks niet afhankelijk van de prestaties van de storage zijn, hebben we deze beperkt tot een standaard Samsung Spinpoint F1 1TB SATA-schijf. Alleen voor de SQL-benchmark hebben we een extra Intel X25-E enterprise grade SSD toegevoegd als dataschijf. Als voeding kozen we een Cooler Master Real Power M850.

Ter vergelijking hebben we de Intel Xeon Harpertown X5470 (3,33 GHz, 120W) en L5430 (2,66 GHz, 50W) meegenomen in de test. Deze hebben we getest op een Intel S5000PSL moederbord in combinatie met 16 GB FB-DIMM DDR2-800 (8 DIMM's). Van AMD namen we de Opteron 2356 (65 nm Barcelona, 2,3 GHz, 95W) en de Opteron 2384 (45 nm Shanghai, 2,7 GHz, 75 W) mee in de testresultaten. Deze zijn getest op een ASUS KSN5-D moederbord in combinatie met 16 GB DDR2-800 (8 DIMM's). De storage componenten, voeding en software-installatie zijn bij alle platformen identiek.

Een belangrijke noot met betrekking tot het geheugen. Vanwege de zes geheugen kanalen van het nieuwe Xeon platform is het niet mogelijk de testplatformen van exact evenveel geheugen te voorzien. De nieuwe Xeon-machine heeft met 24 GB iets meer geheugen dan de andere twee machines, maar we hebben er uitdrukkelijk voor gewaakt dat geen enkele van de geteste workloads ook maar in de buurt van de 16 GB geheugengebruik komt. Ook het aantal DIMM's (6 in plaats van 8) zorgt ervoor dat het nieuwe platform een (kleine) voorsprong heeft in de stroomverbruiktests. Ook dit is een compromis: als we twee modules per kanaal hadden geplaatst zouden we op 12 modules uitkomen, wat een groter verschil met 8 modules oplevert. Dit is in ieder geval iets om bij het bekijken van de grafieken rekening mee te houden.

In alle grafieken zijn de prestaties van het nieuwe Nehalem-gebaseerde Xeon X5570 duo rood gekleurd. Bestaande Intel CPU's zijn blauw, AMD processors zijn groen.

Benchmarks: HPC

SunGard AA 4.0

SunGard Adaptiv Analytics is een benchmark gebaseerd op de in de financiële wereld veel gebruikte software van SunGard. De door ons gebruikte benchmark is een gestripte versie van het volledige pakket. De software berekent op basis van het veel gebruikte Monte Carlo algoritme de toekomstige waarde van een fictieve aandelen portfolio. De resultaten van deze benchmark zijn een maat voor de prestaties voor servers zoals die bij grote financiële instellingen worden ingezet voor zware berekeningen.

Met twee Xeon X5470 Harpertown CPU's konden we de demo-workload in 180,1 seconden doorrekenen. De Nehalem machine doet het met 132,6 seconden een stuk sneller.

FlamMap FSPRO

Een andere benchmark die we onder het kopje HPC kunnen scharen is FlamMap FSPRO. Deze software wordt gebruikt om de verspreiding van bosbranden door te rekenen. Ook dit is een taak waar servers flink hun tanden in kunnen zetten. Bij deze speciale testversie wordt een kleine workload doorgerekend. Onderstaande grafiek toont de resultaten.

Opnieuw een flinke prestatiewinst. Op de snelste Xeon Harpertowns (de X5470's) neemt de berekening 309 seconden in beslag. De Xeon X5570 machine klaart - ondanks een lagere klokfrequentie! - dezelfde klus in 256 seconden: zo'n 18% sneller.

Benchmarks: HPC (2)

Half-Life 2 Build Map

Wees gerust, we gebruiken niet het spel Half-Life 2 om een server te benchmarken. Maar wél een afgeleide ervan: van Valve, de makers van Half-Life 2, ontvingen we een benchmark gebaseerd op de code om de levels voor het populaire spel te compileren op basis van alle daarvoor genodigde data, zoals plattegronden, textures, belichtingsinformatie, en zo verder. Dit zijn workloads waarvoor ook bij Valve een rek servers staat te snorren. De benchmark bestaat uit alle berekeningen nodig voor een zeer klein level.

Opnieuw weet de Nehalem architectuur z'n spierballen te tonen. Waar de combinatie van twee X5470's in totaal 75 seconden nodig had voor het compileren van het level, deed onze Nehalem testopstelling hetzelfde in 54 seconden. Een winst van 28%!

Euler 3D

De Caselab Euler3D benchmark is gebaseerd op de gelijknamige software die gebruik wordt voor berekeningen aan fluid dynamics. De maker van de benchmark omschrijft hem op deze manier:

"The benchmark testcase is the AGARD 445.6 aeroelastic test wing. The wing uses a NACA 65A004 airfoil section and has a panel aspect ratio of 1.65, taper ratio of 0.66, and a quarter-chord sweep angle of 45º. This AGARD wing was tested at the NASA Langley Research Center in the 16-foot Transonic Dynamics Tunnel and is a standard aeroelastic test case used for validation of unsteady, compressible CFD codes. The CFD grid contains 1.23 million tetrahedral elements and 223 thousand nodes. The benchmark executable advances the Mach 0.50 AGARD flow solution."

Fluid dynamics is één van de veel gebruikte toepassingen waarvoor servers binnen HPC omgevingen worden ingezet. In onderstaande grafiek vind je de resultaten van de benchmark:

Het feit dat de AMD Shanghai machine in deze benchmark relatief goed scoort, geeft wel aan dat Euler 3D extreem afhankelijk is dan een snelle geheugentoegang. De score van de Xeon X5570 is bijna te mooi om waar te zijn: 27,1 seconden, waar Intels op de Core architectuur gebaseerde platform 64,2 seconden nodig heeft.

Bechmarks: 3D-rendering

Cinebench 10

Hoewel zeker geen server benchmark, hebben we ook twee 3D-rendering tests op de machines losgelaten. De reden is tweeledig; allereerst weten benchmarks als Cinebench en PovRay als geen ander het onderste uit de kan te halen qua processorprestaties. Verder zijn ze volledig multi-threaded, tot een vrijwel oneindig aantal cores. Op die manier blijven de tests een mooi beeld schetsen van CPU prestaties. Daar komt nog eens bij dat servers in de praktijk wel degelijk ook voor 3D berekeningen worden ingezet: denk aan de beroemde films van bijvoorbeeld Pixar en Dreamworks, waar rijen vol met servers weken, zo niet maanden lang op aan het zwoegen zijn. In onderstaande grafiek de resultaten van de bekende Cinebench 10 benchmark:

We zien een nieuwe recordscore. Met twee Xeon X5470 processors haalden we eerder een score van 24642 punten. Met de twee X5570 processors komen we op 29420 punten, een winst van 19%.

PovRay 3.7

In PovRay hebben we de Chess2 afbeelding gerenderd in een resolutie van 1280x1024 pixels. Onderstaande afbeelding toont het resultaat:

Ook hier een nieuw prestatierecord. Het bestaande Intel platform klaart de klus in 48,1 seconden, de Nehalem machine doet er slechts 35,3 seconden over. Bijna 27% sneller.

Benchmarks: MySQL

In onze vorige serverprocessortest introduceerden we een op MySQL gebaseerde databasetest, gebruik makend van frontend queries van de Hardware.Info Prijsvergelijker. Deze queries bestonden uit het opvragen van prijsinformatie voor willekeurig gekozen producten uit een lijst van exact 50.000 stuks. Voor elk van deze producten werd via de koppeltabel de juiste prijsinformatie verzameld in een grote tabel met circa 2.500.000 prijslinks van de door Hardware.Info geïnventariseerde winkels. Tenslotte werd binnen de query voor de producten de gemiddelde prijs, de laagste prijs, het aantal shops en het aantal shops met voorraad bepaald. Hiertoe installeerden we MySQL versie 5.0.67 op de testsystemen, waarbij we query cache uitdrukkelijk hebben uitgeschakeld. Om te voorkomen dat storage een bottleneck vormt, hebben we de servers voor deze test voorzien van een Intel X25M 80GB SSD.

Een mooie test, maar tijdens het testen van het Nehalem platform liepen we tegen het probleem aan dat in deze test de client machine de bottleneck begon te vormen en niet langer de server. Daarom hebben we een tweede versie van onze database benchmark ontwikkeld, welke is gebaseerd op backend queries van de prijsvergelijker. Er worden zo snel mogelijk diverse queries achter elkaar uitgevoerd, alle dermate lastig, dat uitvoeren de nodige seconden per stuk vergt. In de benchmark gebruiken we verschillende queries, ondermeer exemplaren om diverse overzichten of statistieken binnen de prijsvergelijker te berekenen. Zonder uitzondering bevatten de queries vele joins, gebruiken ze temp-tables in het geheugen en bevatten ze berekeningen op database niveau. Ergo: de benchmark is bijna een ‘worst case scenario' voor de CPU- en geheugenload van een database server.

De basis is een dump van de Hardware.Info database van halverwege maart, wederom ingelezen in MySQL 5.0.67 draaiend op Windows Server 2008 met query cache uitgeschakeld. Vanaf een client vuren we daarna met behulp van het programma Transaction Generator zo snel mogelijk de queries op de server af. Deze benchmark weet op de server zowel de processors als het geheugen flink te belasten, tot 100% aan toe. We hebben de test uitgevoerd met concurrency 4, 8 en 16. Ofwel, er worden telkens het genoemde aantal queries tegelijkertijd opgevraagd. Alle tests hebben we een kwartier lang laten draaien en binnen deze periode het gemiddeld aantal afgeronde transacties per seconde bepaald. Deze test hebben we wegens omstandigheden alleen kunnen uitvoeren op de Xeon X5470 en Xeon X5570 processors.

Aangezien de machine met twee X5470 processors in totaal 8 cores heeft, ligt voor deze CPU's de maximale score ook bij concurrency 8. De server levert dan gemiddeld 10,85 transacties per seconde af. De Nehalem gebaseerde machine met twee X5570 processors heeft dankzij HyperThreading zestien virtuele cores en zet zodoende bij concurrency 16 het beste resultaat neer. Deze database test blijkt uiteindelijk een best case scenario om de kracht van de nieuwe architectuur aan te tonen. Hij is immers zeker rekenintensief, schaalt uitstekend naar 16 threads en kan extreem profiteren van snelle geheugentoegang. Het resultaat in indrukwekkend: met concurrency 16 levert de Nehalem machine gemiddeld 21,35 transacties per seconde af, ongeveer het dubbele van de Harpertown machine!

Benchmarks: Geheugen

Stream x64

Om een goed beeld te krijgen van de geheugendoorvoersnelheid hebben we op servervlak zeer gerespecteerde Stream benchmark gedraaid. Helaas hadden we niet de beschikking over een voor Harpertown geoptimaliseerde variant van deze test, zodat we alleen resultaten hebben van de AMD machines en de Xeon X5570. Waar AMD een bandbreedte tot boven de 21 GB/s wist te behalen, gaat Intel daar glansrijk aan voorbij. In de Copy benchmark meten we 36,7 GB/s.

SiSoft Sandra Memory Benchmark

De SiSoft Sandra 2009 geheugen benchmark toont opnieuw aan dat de behaalde geheugenbandbreedte van Intel superieur is dankzij de zes beschikbare kanalen.

Stroomverbruik

Prestaties is één, stroomverbruik is natuurlijk minstens net zo belangrijk. Met behulp van gekalibreerde EMU stroommeters hebben we het verbruik van de testopstellingen gemeten in een aantal scenario's: idle, 100% CPU-load (Cinebench 10), 100% geheugenload (SiSoft Sandra geheugentest) en tijdens onze database benchmark.

Om te beginnen met het stroomverbruik in idle stand: AMD blijft op dit vlak de beste. Maar Intel lost wel een belofte in: het idle-verbruik van de nieuwe 5500 reeks is veel lager dan z'n voorlopers. We meten 119 Watt voor de complete machine, terwijl de Xeons uit de 5400 reeks niet onder de 165 Watt uitkomen.

Wat je je bij deze grafiek moet realiseren is dat menig server in productieomgeving het gros van de tijd weinig tot niets te doen heeft en op nieuwe input wacht. De gemiddelde bedrijfsserver heeft tussen 17:00 en 9:00 geen werk, maar wordt niet uitgezet. Een webserver heeft in de nachtelijke uren een load die naar idle neigt. Hoe lager het idle stroomverbruik, hoe lager de energierekening. En zeker wanneer we over veel servers in een datacenter praten, kan dat aardig in de papieren lopen.

Bij volledige CPU-belasting (met behulp van Cinebench 10) blijkt dat de nieuwe Nehalem architectuur wel meer stroom vergt dan de voorgaande: we meten een maximaal verbruik van 320 Watt. Ter vergelijking, de X5470 machine kwam niet boven de 277 Watt en de AMD Shanghai machine bleef zelfs op 197 Watt steken.

Ook het stroomverbruik tijdens de geheugentests is duidelijk hoger dan bij de andere server architecturen.

Het gemiddelde stroomverbruik tijdens de database test is eigenlijk nog het meest interessant, aangezien alle onderdelen van de server dan in gebruik zijn (CPU, geheugen, I/O, storage). We meten gemiddeld 273 Watt met de X5470 machine en gemiddeld 328 Watt met de X5570 machine.

Performance per Watt

Het stroomverbruik is dus niet bepaald gedaald, maar één ding is nog belangrijker: de prestaties van een server in relatie tot het stroomverbruik, ofwel performance per watt. Die hebben we op basis van een tweetal tests bepaald. Allereerst hebben het de Cinebench 10 score gedeeld door het gemiddelde stroomverbruik tijdens deze test. De gekunstelde uitkomst van "Cinebench punten per Watt" is een prima maat voor de performance per watt bij HPC-achtige applicaties, waarbij voornamelijk de processor volledig belast wordt.

Het nieuwe Nehalem platform behaalt 91,9 punten per Watt, iets meer dan de bestaande Harpertown platformen. Met 98,3 punten per Watt blijft het AMD Opteron Shanghai platform echter de beste performance per watt bieden in deze test.

Eenzelfde berekening hebben we gedaan voor de MySQL benchmark. We hebben het aantal afgewerkte transacties per uur bij de best presterende concurrency gedeeld op het stroomverbruik. Hier blijkt dat Intel een sprong maakt van 144 trans/hr/Watt naar 234,3 trans/hr/Watt. Een flinke winst!

Toekomst

De volgende stap voor Intel wordt natuurlijk het introduceren van de Nehalem architectuur voor het MP serversegment, ofwel machines met vier processors of meer. Traditiegetrouw zit er relatief lange tijd tussen de introductie van een nieuwe Xeon DP en een nieuwe Xeon MP, waarbij de reden altijd is geweest dat voor een vierweg server een compleet andere chipset moest worden ontworpen. Door de introductie van QuickPath zou dat deze keer nog wel eens een stuk sneller kunnen gaan; de huidige 5500 en 5520 chipsets zijn immers ook prima geschikt voor 4-weg systemen en ook aan de processor zélf hoeft in feite niets veranderd te worden. De introductie van 4-weg sytemen hangt in feite dus op het doen van voldoende grondige validatietests. Het mooie van de QuickPath architectuur is dat Intel nu ook eenvoudig 8-weg servers met Xeon-processors kan maken. Daarnaast krijgen serverfabrikant zeer veel flexibiliteit op het vlak van het aantal I/O-HUB's en dergelijke die in een chipset kunnen worden ondergebracht. Intel heeft helaas nog geen introductiedatum bekend gemaakt voor Nehalem EP.


Een van de verschillende manieren waarop een 4-weg Nehalem EP systeem geconfigureerd kan worden.

Eind van dit jaar gaat Intel de overstap maken naar 32 nm transistors en zodoende zullen er begin 2010 weer opvolgers komen van de bestaande Xeon 5500 processors, waarbij de naam Xeon 5600 natuurlijk voor de hand ligt. De overstap naar 32 nm zal het stroomverbruik van de chips verder moeten doen afnemen, maar zet voor Intel ook de deur open om de eerste 8-core processors te introduceren. In de loop van 2010 is een dual-socket server met 16 echte cores en 32 virtuele cores geen toekomstmuziek meer.

Conclusie

De nieuwe Nehalem architectuur bevat een flinke lijst met vernieuwingen ten opzichte van Intels bestaande processors. Bij de Core i7 desktop processor konden we al voor het eerst kennis maken met de nieuwe technologieën, maar het blijkt dat de meeste zaken juist in servers echt tot hun recht komen. Op alle fronten zet Intel veel betere scores neer dan met de bestaande CPU's en zeker bij workloads die profiteren van een hoge geheugenbandbreedte zijn de verschillen groot. In onze complexe database benchmark presteert de server met twee X5570's zelfs twee keer zo snel als de machine met twee X5470. In één woord: indrukwekkend.

De nieuwe power controller zorgt er enerzijds voor dat het idle stroomverbruik flink is gedaald - onze tests bewijzen dat - maar ook dat de CPU's in gebruik automatisch worden ‘opgevoerd' tot hun maximale verbruik. Dat resulteert in uitstekende prestaties, maar absoluut gezien kunnen we zeker niet spreken van een gedaald energieverbruik. De performance-per-watt van de nieuwe Xeons is wel duidelijk beter dan de vorige generatie, maar concurrent AMD heeft hier nog steeds een streepje voor.

Qua ruwe prestaties zet Intel een nooit eerder vertoonde stap vooruit. Onze tests wijzen uit dat wie servers voor HPC- of database-achtige workloads gaat inzetten, met Intels nieuwste architectuur een flinke prestatiewinst en/of een ruimte voor serverconsolidatie in huis haalt.


Besproken producten

Vergelijk  

Product

Prijs

Asus Z8NA-D6

Asus Z8NA-D6

  • ATX
  • Socket 1366
  • Intel 5500
  • DDR3
Niet verkrijgbaar
Intel Xeon E5502 Boxed

Intel Xeon E5502 Boxed

  • Socket 1366
  • 1.86 GHz
  • 2 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5504 Boxed

Intel Xeon E5504 Boxed

  • Socket 1366
  • 2 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5506 Boxed

Intel Xeon E5506 Boxed

  • Socket 1366
  • 2.13 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5520 Boxed

Intel Xeon E5520 Boxed

  • Socket 1366
  • 2.26 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5530 Boxed

Intel Xeon E5530 Boxed

  • Socket 1366
  • 2.4 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon E5540 Boxed

Intel Xeon E5540 Boxed

  • Socket 1366
  • 2.53 GHz
  • 4 cores
  • 80 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon L5506 Boxed

Intel Xeon L5506 Boxed

  • Socket 1366
  • 2.13 GHz
  • 4 cores
  • 60 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon L5520 Boxed

Intel Xeon L5520 Boxed

  • Socket 1366
  • 2.26 GHz
  • 4 cores
  • 60 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon W5580

Intel Xeon W5580

  • Socket 1366
  • 3.2 GHz
  • 4 cores
  • 130 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5550 Boxed

Intel Xeon X5550 Boxed

  • Socket 1366
  • 2.66 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5560 Boxed

Intel Xeon X5560 Boxed

  • Socket 1366
  • 2.8 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
Intel Xeon X5570

Intel Xeon X5570

  • Socket 1366
  • 2.93 GHz
  • 4 cores
  • 95 W
  • 45 nm
Niet verkrijgbaar
0
*