Snabbare processorutveckling med IBMs kompilatorer
| 2008-02-09 06:54
- Computer Sweden:
Nya datorer kräver parallellt tänkande
Av
|
Forskning
Det krävs en stor mental omställning för programmering av processorer med många kärnor. Forskare på IBM utvecklar därför nya kompilatorer som tänker parallellt, inte linjärt. Inte nog med det: de utvecklar program som utvecklar sådana kompilatorer.

David Bernstein, Ayal Zaks och Bilha Mendelson från IBMs forskningslaboratorium i Haifa utvecklar kompilatorer för flerkärniga processorer.
Avancerade processorer med många kärnor finns snart i mobiltelefoner, tv-apparater, spelkonsoler och konsumentelektronik.
Uppgifter som tidigare krävde forskningsdatorer kan snart lösas av tv:n eller mobiltelefonen.
Vi får intelligent belysning som anpassar ljusnivån och stänger av sig själv, vi får ansiktsigenkänning i hemmalarm och bilar – bilen låser upp sig själv när ägaren kommer gående.
Mer påtaglig nytta får de kraftfulla processorerna inom medicinsk bildbehandling:
– Det finns gränser för hur mycket röntgen man kan exponera kroppen för. Med smartare datorer kan man få fram mer information med lägre röntgendos.
Det säger Bilha Mendelson, som är ansvarig för kompilatorutvecklingen på IBMs forskningslabb i Haifa, Israel.
Hon är i Göteborg tillsammans med sin chef David Bernstein och sin kollega Ayal Zaks för att delta i konferensen Hipeac. Det är en europeisk konferens för forskare som arbetar med flerkärniga processorer för användning i inbyggda system – sådana processorer som finns i allt från bilar till kameror.
Digital tv i olika former är en av utmaningarna.
– Inbyggda högprestandaprocessorer blir hjärtat i framtidens hemunderhållningssystem, säger David Bernstein.
Ett exempel är Cellprocessorn, utvecklad av IBM, Sony och Toshiba. Det är en processor i superdatorklass, men den räknas som en inbyggd processor – den används i hemelektronik och spelkonsoler. Toshiba har anpassat den för hd-tv.
Gränsen mellan processorer för vanliga datorer – avsedda för att köra vilka program som helst som användaren väljer – och för inbyggda system blir allt mindre.
– Men det finns skillnader mellan inbyggda och vanliga processorer, säger David Bernstein.
– Det är flera skillnader i hur man optimerar. Höga prestanda är viktiga, det finns ofta realtidskrav och i mobiltelefoner krävs låg strömförbrukning.
Att programmera ”för hand”, till exempel att skriva i assembler, ger snabba program, men är ingen realistisk lösning.
– Man måste vara snabbt ute på marknaden, säger Bilha Mendelson.
– En ny generation av mobiltelefoner måste vara klar på tre till sex månader, och den måste klara både gamla och nya applikationer.
– Förr kodade man krävande tillämpningar för hand, men det tar för lång tid.
Och så är vi mitt i övergången till en ny typ av processorer.
Processortekniken har gått in i en vägg. Visserligen går det, rent tekniskt, att bygga processorer som är snabbare än de vi har i dag – med klockfrekvens på 3 till 4 GHz – men bara till priset av skenande strömförbrukning, allt kostsammare kylning och risk för brännskador på låren om man använder bärbar dator.
Lösningen är processorer med många kärnor. Det är billigare att låta många relativt långsamma kärnor (en kärna är en komplett processor som är hopbyggd med andra kärnor i samma kapsel) göra beräkningen än att använda en supersnabb processor med bara en kärna.
Problemet är att programmera för sådana processorer – att hålla alla kärnorna sysselsatta samtidigt. Generationer av systemutvecklare har linjär programmering i ryggmärgen – dela upp uppgiften som programmet ska lösa i småbitar som får ställa sig i kö. En i taget.
Det linjära tänkandet brukar märkas redan i kravspecen och följer med hela vägen ner till körbar kod.
– Vi människor har begränsningar när det gäller parallellt tänkande. Vi försöker därför automatisera upptäckten av parallellismer, säger Bilha Mendelson.
– Det behövs nytänkande i hela industrin, betonar hon.
– Sofistikerad manuell programmering kan visserligen höja prestanda, säger David Bernstein, men det blir för långa ledtider.
– Du kanske kan göra det, men när du är färdig är det redan föråldrat, säger Ayal Zaks.
Kompilatorer är lösningen.
– Framtidens trend är inte ett nytt programspråk, säger David Bernstein.
– Vi ska inte byta ut C mot något annat. I stället måste vi höja abstraktionsnivån. Vi kanske programmerar direkt i uml. Vi får exekverbara program direkt.
– Det innebär att ämnesexperter kan skriva programmen.
– Flerkärniga processorer ökar kompilatorns betydelse. När processerna blir mer komplexa blir det svårare för mjukvaran att utnyttja hårdvaran effektivt.
Även en gammaldags processor med en enda kärna går sällan för full fart.
Kör man traditionella program i ett flerkärnigt system är risken att det mesta av jobbet läggs på en enda kärna.
Utmaningen är att urskilja hur arbetsuppgiften kan delas upp i smådelar som kan lösas parallellt.
– Det är en så komplicerad uppgift att vi experimenterar med maskininlärning för att lösa den, berättar Bilha Mendelson.
David Bernstein, gruppens chef, gör en jämförelse som visar vad som kan hända.
Han berättar att han tidigare var med i Israels landslag i schack. Han är fascinerad av schackdatorer och av hur de gör drag som verkar meningslösa för mänskliga schackspelare.
Men det är inga misstag.
Datorns enorma minneskapacitet låter den pröva möjligheter som mänskliga spelare aldrig har tänkt på.
– Så blir det när vi utvecklar kompilatorer också, säger David Bernstein.
OBS! Denna artikel är mer än tio dygn gammal och är därför stängd för vidare debatt.