Nogen tror, at man trykker på en knap, og så kommer der en sekvens ud, så der er i hvert fald behov for noget forventningsafstemning,
Software kører på hardware og når det kommer til den sandhed har rigtig mange herinde meldt sif på det virtuelle "flarearth"-team. (Provokende åbning, der aktiverer læserne, sorry ;-)
Præcis hvor meget bedre software kan blive afhænger naturligvis både af handwaren og af den opgave software skal løse. Jeg testet opgaver, som lod sig optimere mellem 1000 og 10000 %. Der findes uden tvivl opgaver, hvor software ikke lader sig optimere; de fleste opgaver rummer rigtig mange gentagelser (af kode) - dem kan man forbedre med "løkkesegmentering" - måske f.eks. gensekventering. Uden at vide specielt meget om gensekventering, vil jeg gætte på at gentagelse af store (mange instruktioner) spillæer en rolle her.
Der er ingen mystik her: det handler om hvor godt koden var skrevet i første omgang. Intel Corp har fremstillet Math Kernel Library (MKL), som MIT har vist at de kan komme op på mellem 40 of 45 % af teoretisk maximum (uden down-clocking). Man kan måske komme højere op, men jeg tvivler på at disse programmer udfører nyttigt arbejde. (Blandt fordi moderne processorer nedsætter deres klokhastighed (down-clocking), når de bliver for varme.)
Statisk optimering (løkkesegmentering med fast bundtstørrelse (FBS)) har jeg testet med mellem 10x og 20x køretidsforbedring (uden down-clocking). Det findes både en statisk og en dynamisk optimeringstype. Men da den sidste type måske kan misbruges til "dårlige" formål, kommer jeg ikke til at sige mere om den her. Statisk optimering (løkkesegmentering med fast bundtstørrelse (FBS)) har jeg testet med mellem 10x og 20x forbedring.