– Det var månaden då halvledarindustrin gick över till multicorearkitektur. Nu har alla processortillverkare, utan undantag, bestämt sig för att de ska göra flera processorkärnor på samma chip, säger Erik Hagersten, medgrundare till Acumem, professor på Uppsala universitet och tidigare chefsarkitekt för stora servrar på Sun Microsystems i USA.
Spionerar och tar fingeravtryck Svenska Acumem har utvecklat ett analys- och optimeringsverktyg som avslöjar hur väl ett program utnyttjar en multiprocessorarkitektur. Verktyget hjälper programmeraren att utnyttja cacheminnet i processorn bättre genom att hitta fel i koden och även föreslå förbättringar. När ett program körs i en multicorelösning kan man säga att Acumens verktyg spionerar på vad som händer. Medan programmet körs så går verktyget in och mäter vissa egenskaper. Små sekvenser, kallade fingeravtryck, blir mätresultatet som samlas i en fil på några Mbyte. Fingeravtrycket avslöjar hur det testade programmet använder data, exempelvis avslöjar det hur lång tid det tar innan samma data används igen. Om arkitekturen har flera trådar kontrollerar verktyget vilka trådar som använder data, och om en eller flera trådar använder samma data. Verktyget finns i två varianter – SlowSpotter Pro för experter och SlowSpotter för icke-experter – och är oberoende av programmeringsspråk, processorarkitektur och antal kärnor som processorn har. |
För svenska Acumem var tajmingen perfekt. Två månader efter att Intel tagit klivet lanserade företaget sin första produkt, ett analys- och optimeringsverktyg som hjälper programmerare att skriva effektiva program för multiprocessorarkitekturer.
– Sedan lanseringen har vi blivit nersprugna av företag som vill jobba med oss. De partnerskap som vi hittills har byggt upp är så många som vi orkat med under denna korta tid, säger Erik Hagersten.
Hans ord kan tolkas som snobbiga, men så är det inte. Tvärtom – Erik Hagersten är oerhört tacksam över det gensvar som Acumen fått av de stora företagen i branschen. Men han vill mer.
– En av våra största utmaningar är att nå ut till användarna. Det finns ingen chiptillverkare som ger hög prestanda om man inte går över till multicore. Men hur ska vi se till att programmerare och utvecklingschefer, som just nu brottas med svåra problem kring multicore, ska få reda på att det finns ett effektivt hjälpmedel.
All kod måste skrivas om
Utmaningen som just nu tonat upp sig för användarna kan delas i två nivåer. För det första måste all kod skrivas om för att en processor med flera kärnor ska kunna utnyttjas effektivt. Om det inte sker blir framtidens processorer långsammare än tidigare generationer.
Men vad värre är – det är bara ett fåtal programmerare i världen som har erfarenhet av att skriva program för multiprocessorarkitekturer.
– Slutsatsen är att all programvara ska skrivas om, men nästan ingen vet hur man gör. Det går att fuska sig fram ganska bra när man har två kärnor. Men när man går över till fyra kärnor eller fler, vilket sker nu, går det inte längre, säger Erik Hagersten.
Programvaruverktyget som Acumem utvecklat finns i två varianter, en för experten och en för icke-experter. Allt som krävs av användaren är en knapptryckning. En minut senare kommer en lista med råd om olika åtgärder som bör vidtas och hur viktig respektive åtgärd är för att förbättra programmet.
Den minut det tar att göra analysen kan spara en expert flera månader av insamlande av information, hävdar Acumem. Samtidigt menar företaget att det verkligt speciella är att systemet kan användas för att förklara för icke-experten hur man ska gå tillväga, alltså för mer än 99 procent av alla världens programmerare.
– Att skriva program för ett multicoresystem utan ett verktyg likt Acumens är som att bygga ett elektroniksystem utan ett oscilloskop, förklarar Erik Hagersten.
Gör perfekt mer perfekt
Nyligen blev Acumen uttaget till Hewlett-Packards Multi-core Toolkit. Där har HP satt samman en samling verktyg och teknologier som företaget rekommenderar sina kunder när de går över till multicore. Inom gruppen har Acumem sällskap av bland andra Intel, AMD, Microsoft och Rapidmind.
– När HP utvärderade oss internt tog en av företagets expertprogrammerare ett optimerat perfekt program och skrev sönder det lite grann, sedan körde han vårt verktyg för att testa om det hittade felen, berättar Erik Hagersten.
Verktyget hittade alla delar som HP-experten förstört och påpekade även hur programmet skulle repareras.
– Fast när experten återställt allt fanns det fortfarande råd om förbättringar. Så det perfekta programmet kunde göras ännu bättre, minst 20 procent snabbare faktiskt. Det var inträdesbiljetten till Multi-core Toolkit.
Mellan tummen och pekfingret blir ett icke optimerat program två till tre gånger snabbare när Acumens verktyg använts. Det är också orsaken till partnerskapet med AMD.
– Samarbetet går mest ut på att AMD pekar på oss och säger att vårt verktyg är bra att använda när man ska skriva program till deras processorer.
Amerikanska Sun har också utvärderat Acumems verktyg under lång tid. Och idag använder företaget det internt. Grundversionen av verktyget körs på x86-baserade Linuxmaskiner, men numera finns en Solarisversion framme. Inom kort ska även Microsofts kunder få tillgång till en Windowsversion.
Siktar på telekom
Ett annat spännande samarbete som tagit form i sommar är avtalet med Lifeboat Distribution, en programvarudistributör med över tusen återförsäljare världen över.
– Normalt sett är de inte intresserade av ett litet företag som just släppt en produkt. Men HP har pekat på oss och sagt ”detta är häftig teknologi som vi vill att ni återförsäljer till våra kunder”, säger Erik Hagersten.
Hittills har Acumem främst vänt sig till den lilla skaran programmerare som kan kalla sig experter. Men tiden är mogen för andra segment, exempelvis inbyggnadsområdet. Visserligen har företaget redan kunder där, men med en åtta man stark organisation har det inte funnits resurser för någon aktiv bearbetning ännu. Fast vill man spekulera fritt så bör basstationstillverkare som Ericsson och Huawei passa väl in i Acumems kundkrets.
– Ja, det är precis den typen av företag som skulle kunna dra nytta av vår kunskap, och som nu stöter på problemen med multicore och försöker förstå vad de ska göra, säger Erik Hagersten.
Även konsumentelektronik, som mobiler, kan dra nytta av tekniken. Verktyget kan användas för att optimera programvaran, endera så att samma funktioner kan köras med lägre effektförbrukning eller så att mer funktionalitet kan stoppas in utan att byta processor.
– Mobiltelefoner är intressant. De har ofta flera kärnor i sig, men idag är det inte riktigt den traditionella multicorelösningen. Fast det kommer absolut dit.