Multicore-processors veroorzaken softwarehoofdpijn

Decennia lang betekende het verbeteren van de processorprestaties dat de kloksnelheid van een chip moest worden verhoogd. De beloning was voor gebruikers meteen duidelijk: applicaties draaiden sneller. Maar een snellere chip verbruikt meer elektriciteit, waardoor de batterijen van mobiele apparaten leeglopen. Dientengevolge zijn chipmakers overgestapt op energiebesparende multicore-ontwerpen, waarbij meerdere energiezuinige processors op een enkele chip worden gecombineerd om de prestaties van een enkele, snellere processor te repliceren (zie Ontwerpen voor Mobiliteit ) .





Helaas worden applicaties op multicore-systemen niet automatisch sneller naarmate er cores worden toegevoegd. Er moet software worden geschreven om te profiteren van de parallelle verwerkingskracht. En het schrijven van programma's die efficiënt en stabiel over meerdere cores draaien, is moeilijk. Tenzij we dit programmeerprobleem oplossen, zegt Prith Banerjee, senior vice president of research van Hewlett-Packard, zullen gebruikers geen snelheidsvoordeel zien in nieuwe microprocessors. Banerjee voegt toe: Dit is een zeer fundamenteel probleem.

GEGEVENSSCHOT

8,2 gigahertz Het huidige snelheidsrecord voor een desktop-microprocessor, behaald door enthousiastelingen die een chip overklokten die ontworpen was om op drie gigahertz te draaien. Om te voorkomen dat de chip zou smelten, werd deze gekoeld met vloeibare stikstof.

Een veelbelovende mogelijke oplossing is om menselijke programmeurs zoveel mogelijk uit de lus te halen: in plaats van individuele programmeurs te laten uitzoeken hoe ze hun applicaties over twee, vier of meer cores kunnen laten draaien, kunnen de rommelige details worden overgelaten aan compilers, de software die wordt gebruikt om programmeertalen op hoog niveau om te zetten in de machinecode die een computer kan begrijpen. Alle grote software- en chipbedrijven, samen met veel academische onderzoekers, werken aan de ontwikkeling van compilers die dergelijke taken aankunnen. Het grootste obstakel is dat het moeilijk is om de onderdelen van een programma te identificeren die niet afhankelijk zijn van andere onderdelen, zodat een kern niet inactief blijft terwijl deze wacht op een bepaald stukje gegevens. Simpelweg ontwikkelaars overtuigen om schonere programma's te schrijven, met goed gedefinieerde interfaces tussen codeblokken, zou het werk veel gemakkelijker maken, zegt Wen-mei Hwu, een professor in elektrische en computertechniek aan de Universiteit van Illinois. Maar hij schat dat het vijf jaar zal duren voordat multicore-vriendelijke compilers en bijpassende programmeerpraktijken zich door de computerindustrie zullen verspreiden.



zich verstoppen