

Christer Berg Blir programmen snabbare med flera kärnor? Nja, egentligen inte – fast ändå. Multikärnor, det vill säga flera processorer i samma förpackning, har blivit det nya mätetalet som konsumenterna lärt sig fråga efter. Som vanligt är det få som vet varför.
Utvecklingens belackare påpekar att datorer står i vänteläge under merparten av sin påslagna tid. I väntan på användarna. Det gör ingen skillnad om det är en eller sexton kärnor som väntar. De något smartare inser att det finns många beräkningar i ett program som inte behöver göras sekventiellt. Om de görs parallellt blir programmen snabbare, ur användarnas perspektiv.
Tolkare av till exempel java-kod kan förses med intelligens som räknar ut vad som måste tas sekventiellt och vad som kan göras parallellt.
Typiska exempel är renderingar av avancerad grafik eller sökningar i stora mängder data. Här upplever användarna tydliga förbättringar. Att Google kan svara så pass snabbt på en sökning är resultatet av en massiv parallell databearbetning.
Men vad är tanken med att programutvecklare ska sitta och klura ut det som operativsystem kan ta hand om automatiskt?
Leverantörerna av utvecklingsverktyg är just nu inne i en kapplöpning om vem som är vassast på stöd för multikärnor.
Apple har lanserat Grand Central, Microsoft kommer med Axum och Visual Studio 2010 och Sun med Fortress. Intel har tagit täten med Thread Profiler och Parallel Studio. Exempel på andra leverantörer är Cilk Arts, Coverity, Fortify, RapidMind och SureLogic.
Är detta verkligen något som utvecklarna efterfrågat? Det känns lite som tjurrusning efter våghalsliga programmerare.
Häromveckan åt jag lunch med Daniel Akenine, teknikchef på Microsoft. Daniel är ordförande för den svenska grenen av IASA (International Association of Software Architects). I Sverige är det Dataföreningen Kompetens som certifierar flest it-arkitekter, varför vi tillsammans genomför en årlig konferens om trender inom it-arkitektur – under namnet ITARC.
Daniel har en vision för vad programutvecklarna kan göra med tiden när processorkärnorna loopar vänteläge: spekulera. Det ligger i tiden, kan man säga.
I de flesta fall är det nämligen busenkelt att räkna ut vad en användare kan tänkas vilja göra härnäst. Om du kör en powerpoint-presentation, hur stor är sannolikheten att du vill visa nästa bild? Antagligen 99,9 procent. Ändå renderas bilden först när du klickat fram den (vilket kan vara märkbart långsamt, om till exempel ett videoklipp behöver laddas).
Varför görs inte detta medan du pratar till den föregående bilden?
Idén har en enorm potential. I varje givet läge skulle programvaran kunna spekulera vilt i vad du kan tänkas vilja göra. Och exekvera samtliga alternativ.
I nästa nivå kan du i parallella fönster se konsekvenserna av tänkta alternativ och ta ditt beslut utifrån en upplevelse av parallella världar.
Medan du bokar din resa på nätet söker programtjänsten rätt på billigaste hyrbilsalternativet. Eller ännu bättre – innan du hinner trycka "beställ" har din smarta webbläsare redan konstaterat via vädertjänster att du bör välja ett annat resmål. Du är faktiskt redan prelbokad på fem andra resmål, med bilar och allt – det är bara att välja och bekräfta.
Spekulationerna kan ske i det lilla och det stora, lokalt på din klient eller i molnet. Sedan kryddar vi med återkopplad inlärning. Programtjänsterna lär sig successivt vad du brukar göra och vilka beslut du antagligen tar i nya situationer.
När du till exempel skriver, hanterar du ofta dina textdokument på samma sätt. Du slutformaterar med samma mall och typsnitt. Beroende på nyckelord, brukar du skicka till olika grupper av personer. Och lagra på vissa molntjänster. "Vill du ha det som vanligt?" frågar ordbehandlaren när du sparar. Allt är nämligen redan förberett.
Ja, du kan säkert räkna ut vart vi är på väg. Applicera konceptet på värdepappershandel, business intelligence, marknadsanalys, budgetering, poker, gaming... och vi lyfter dagens datorstöd till en helt ny nivå. En vanskligt hög nivå tycker säkert många, men så är det med det mesta till en början.
Det riktigt stora lyftet är spekulativa algoritmer i kombination med tillgången till stora mängder information i realtid via nätet. De handlingsalternativ som dina digitala verktyg utforskar vid varje knapptryckning blir baserade på skarpa data hämtade från verkligheten.
Här har programutvecklarna lite spännande utmaningar framför sig som förhoppningsvis kramar nyttan ur de nya utvecklingsverktygen.
Christer Berg är marknadsekonom och har bevakat it-branschen som trendspanare och omvärldsanalytiker sedan 1990. Idag är Christer ansvarig utgivare för nyhetstjänsterna Trendspaning.se från Dataföreningen Kompetens och DF Redaktionellt från Dataföreningen.