Gerald Schut
Het einde van de wet van Moore hoeft niet het einde van de groei in rekenkracht van computers te betekenen. Dat stelt een groep Amerikaanse computerwetenschappers in het artikel ‘There’s plenty of room at the Top: What will drive computer performance after Moore’s law?’ in het wetenschappelijke tijdschrift Science.
Na bijna vijftig jaar is het einde van de wet van Moore in zicht. Nu transistoren op basis van silicium hun fysieke minimumomvang benaderen, kan het aantal transistoren op een computerchip niet meer iedere twee jaar verdubbelen. De beroemde voorspelling van Intel-oprichter Gordon Moore eindigt nu transistoren 10 nm klein zijn, terwijl 2 nm de theoretisch haalbare ondergrens is en 5 nm de economisch haalbare. Nieuwe technologieën als quantumcomputers, fotonica zullen te laat komen om de fysieke groei over te nemen, stelt Charles E. Leiserson
Maar volgens hem kan de exponentieel groeiende rekenkracht van computers, die al decennia zo vanzelfsprekend is, ook op andere manieren bereikt worden. De groei zal weliswaar niet zo regelmatig en voorspelbaar zijn als vroeger, maar computerprestaties kunnen enorm vooruitgaan door doelmatiger software te schijven, nieuwe algoritmes te vinden en de architectuur van chips beter op die software en algoritmes af te stemmen.
Omdat computerchips almaar sneller werden lag de prioriteit van programmeurs niet bij efficiënte software, maar bij snelle, pragmatische software. Daardoor is er veel te winnen bij het schrappen van zogeheten ‘bloat’. Als je bijvoorbeeld een programma wilde schrijven dat ‘ja’ en ‘nee’ herkent, was het vaak sneller om bestaande code te nemen die een veel grotere vocabulaire herkent en die aan te passen om de gewenste twee woorden eruit te filteren. Zelfs als zo’n stap met 80 % efficiëntie gezet kon worden vergt een opeenstapeling van 20 van dit soort stappen al een 100 keer langere rekenduur.
Een ander programmeervoorbeeld: het vermenigvuldigen van twee matrices van 4.096 bij 4.096 duurt in standaard programmeertaal op een snelle chip 7 uur. Door een andere taal te nemen, berekeningen niet serieel, maar parallel uit te voeren en vectoren en geheugenhiërarchieën te gebruiken, kan dit in 0,4 seconde.
Grafische processoren zijn in de loop van de tijd erg gespecialiseerd voor hun taak. GPU’s zijn slecht bruikbaar voor andere taken, maar enorm goed in wat ze doen. Door dit soort domeinspecialisatie ook voor andere functies te ontwikkelen zijn grote stappen te zetten. Maar daarvoor moeten softwarespecialisten, algoritmeschrijvers en hardware architecten samenwerken.