Met de groeiende behoefte aan computerkracht nemen ook de kosten van warmte en koeling toe die gepaard gaan met het gebruik van krachtiger computersystemen. Een aantal belangrijke spelers op ict-gebied, waaronder Google, heeft publiekelijk de invloed van de stijgende energiekosten op het bedrijfsresultaat erkend. Stroomverbruik wordt een kritieke succesfactor.
Nu het aantal internetgebruikers jaarlijks naar verwachting met 300 miljoen zal stijgen, kan zelfs een kleine verbetering van de energie-efficiëntie van webservers een enorme besparing opleveren. De uitdaging waarmee systeemontwikkelaars momenteel worden geconfronteerd, is daarom niet langer een simpele kwestie van het maximaliseren van de prijs/prestatie-verhouding. Stroomverbruik is inmiddels uitgegroeid tot een kritieke succesfactor binnen de discipline van systeemontwikkeling als gevolg van een onomkeerbare toename van de energiebehoeften van datacenters en de noodzaak om constant draaiende apparatuur en servers te koelen.
De dichtheid van de hittebelasting van hardware is de afgelopen vijf jaar meer dan verviervoudigd. De koelingssystemen voor bestaande datacenters beginnen inmiddels hun capaciteitslimiet te bereiken, en het bouwen van een nieuw datacenter is meestal te duur.
Intussen merken bedrijven dat het stroomverbruik binnen hun datacenter tot een van hun grootste kostenposten aan het uitgroeien is.
Wereldwijde economische en milieubelangen dragen bij aan deze uitdaging. De toekomst van onze aarde staat op het spel. Tenzij we nu beginnen met het ontwikkelen van energie-efficiëntere chips, zullen we met de dag minder in staat zijn om de invloed en risico’s van klimaatveranderingen en duurzame economische ontwikkeling te beperken.
Een aantal voorbeelden: vandaag de dag verbruiken serverprocessors al snel zo’n 150 watt. De meest efficiënte processor verbruikt slechts 70 watt en biedt bovendien een betere prestatie. Een reductie van het stroomverbruik binnen datacenters kan een grote bijdrage leveren aan het oplossen van nationale energieproblemen.
Goed doen door het goed te doen houdt in dat we aanzienlijke kostenbesparingen kunnen realiseren dankzij een grotere energie-efficiëntie binnen het datacenter.
Een voorbeeld: als de helft van alle servers op instapniveau die de afgelopen jaar zijn verkocht zouden worden uitgerust met de meest energie-efficiënte processors, zou de jaarlijkse CO2-uitstoot met 11 miljoen ton kunnen worden teruggebracht. Dit komt overeen met de uitstoot van een miljoen SUV’s. Bovendien zou dankzij de hogere prestatie van processors het aantal webservers dat wereldwijd benodigd is, met de helft kunnen worden gereduceerd.
Er is een aantal nieuwe processors waarmee stroomverbruik mogelijk kan worden gereduceerd. De UltraSPARC T1 van Sun heeft maximaal acht cores en vier threads per core, en biedt een hoge prestatie bij een gangbare belasting van 72 watt en een piekbelasting van 79 watt, ten opzichte van 180 watt in het geval van andere processors. De nieuwste processors van AMD reduceren het stroomverbruik met 40% dankzij hoogwaardiger interne communicatie, een dual core met een lagere frequentie en een 64-bits architectuur.
De energiebesparing die met deze processors wordt gerealiseerd, wordt vermenigvuldigd door de overige apparatuur die binnen datacenters wordt gebruikt. De airconditioning, stroomconversie en de noodstroom van UPS-voorzieningen dragen stuk voor stuk bij aan het energieverbruik. Binnen grote data centers kan er 6 megawatt voor de servers nodig zijn, terwijl het totale energieverbruik maar liefst 14 megawatt is. Als elke server dus 100 watt minder zou gebruiken, is de besparing een veelvoud van die 100 watt per server, door de lagere hoeveelheid energie die nodig is om die servers draaiend te houden.
De opkomst van multi-threadingfunctionaliteit van chips luidt een nieuw tijdperk in van ‘cool computing’, waarbij een ongekende combinatie wordt geboden van hoge doorvoer en laag stroomverbruik. Chipfabrikanten die een hogere prestatie nastreven met traditionele ILP (Instruction Level Parallellism)-technieken zullen ruimschoots achter komen te liggen op de prestatie/stroomverbruik-curve.
Ondanks de duidelijk aanwezige vraag naar koelere automatisering, zijn de vorige en huidige generaties van processors voor het versnellen van toepassingen met één thread sterk afhankelijk van ILP. Deze technologie heeft ten doel om de prestatie te verhogen door in realtime vast te stellen of opdrachten parallel kunnen worden uitgevoerd.
In hun nieuwste ontwerpen van chips die met een systeem zijn uitgerust, baseren ontwikkelaars zich in toenemende mate op multiprocessor-chips of multi-core-processors.
Multiprocessor-chips reduceren de stroomvereisten en verbeteren de efficiëntie door structuren op de chip te delen. Zo kunnen geheugencontrollers bijvoorbeeld onderling tussen de cores worden gedeeld.
Veel van deze ontwerpen blijven voor een verbetering van de prestatie echter afhankelijk van ILP. Als gevolg hiervan gaan deze ontwerpen voorbij aan het belangrijkste kenmerk van commerciële toepassingen, namelijk de vereisten van grote databases en crm-systemen (customer relationship management). Ze mogen dan rijk zijn aan threads, maar lopen achter qua efficiëntie bij het uitvoeren van opdrachten. Als gevolg hiervan loopt hun ontwikkeling achter op de snel stijgende stroomvereisten.
Op het eerste gezicht lijken het verbeteren van de processorprestatie en het reduceren van de stroomvereisten van processors conflicterende activiteiten, maar dat hoeft niet het geval te zijn.
Multi-threading, het uitvoeren van meerdere threads per processor-core, verbergt frequente high-latency-gebeurtenissen en maakt het mogelijk om binnen commerciële toepassingen verschillende taken parallel uit te voeren op threadniveau.
Door eenvoudige multiprocessors met core-chips met multi-threading te combineren, kan het stroomverbruik worden gereduceerd en tegelijkertijd een hogere doorvoer worden geboden. Deze processors met een enkele chip bieden de mogelijkheid om taken parallel uit te voeren op threadniveau met behulp van fijnmazige multi-threadingfunctionaliteit. Deze aanpak, die chip-multithreading wordt genoemd, is zeer geschikt voor commerciële toepassingen.
Op basis van dit ontwerp worden processors die chip-multithreading bieden, uitgerust met meerdere 64-bits cores (uitvoerende pijplijnen). Elke core is in staat een selectie uit meerdere actieve threads te maken. Het resultaat is een processor die het mogelijk maakt om tientallen threads of processen tegelijkertijd op één chip uit te voeren.
De totale doorvoer van dit ontwerp ligt ongeveer 5 tot 15 keer hoger dan huidige processors, zoals de Intel Xeon, AMD Opteron en Sun UltraSPARC III.
Ondanks de veel hogere doorvoer ligt de stroomdichtheid van dit ontwerp veel lager dan bij andere chips, waarmee het beter geschikt is voor dicht op elkaar opgestelde rack-installaties in datacenters.
Ontwerpers kunnen het energiebesparende karakter van de basisarchitectuur van de multithreadingchips verbeteren door extra hardwarefuncties toe te voegen die zijn gericht op twee energieverslindende bronnen. Wanneer er wordt gedetecteerd dat een chip een maximale energielimiet bereikt, is het mogelijk om de stroomtoevoer af te sluiten met behulp van triggermechanismen. Ontwikkelaars kunnen extra energiebesparingen realiseren door de afgiftesnelheden van de cores te verminderen en de activiteit binnen het hoofdgeheugen te beperken.
Het energieverbruik kan ook via software worden gereduceerd. Zo kunnen er additionele stroombeperkingen op de besturingssysteemlaag worden aangebracht.
Er is vaker sprake van idle loops dan u zou vermoeden, vooral in het geval van processors met 32 of meer threads. Om het energieverbruik te reduceren kan het besturingssysteem een thread stopzetten zodra deze een idle loop binnentreedt. De uitvoering zal pas worden hervat wanneer de processor klaar is om nieuwe taken in te plannen.
Daarnaast zijn algoritmen voor de planning van threads belangrijke hulpmiddelen. Hoewel besturingssystemen moeite hebben met het doorgronden van het gedrag van workloads, kunnen ze op basis van beleidsregels bepalen op welke wijze beperkte workloads het beste tussen de verschillende cores kunnen worden verdeeld. Het besturingssysteem kan worden aangemoedigd om threads gezamenlijk uit te voeren, zolang dit geen negatieve gevolgen voor de prestatie heeft.