Parallell C-kod automatiskt
Vi har hört det många gånger förr – ett verktyg ska låta dig skriva seriell programkod precis som förr och själv ta hand om parallelliseringen för multikärnor. Men forskare från tyska Saarland-universitetet har hittat ett nytt angreppssätt som de nu försöker kommersialisera.På det viset hoppas forskarna komma runt problemet, att det är omöjligt att veta innan man känner till indata till en algoritm, hur den effektivast ska parallelliseras. Samtidigt slipper man slösa tid på komplex analys under programkörningen.
Det finns dessutom möjligheter för programmeraren att styra parallelliseringen, baserat på förslag från verktyget.
Att parallellisera programkod innebär att stoppa in extra instruktioner som administrerar hur kod och data ska fördelas mellan processorkärnor och hur resultaten ska sammanställas. Dessa instruktioner kan lätt bli större än den ursprungliga seriella koden. Dessutom kan instruktionerna i sig innehålla buggar, som dessutom är av en komplex typ där nya faktorer som synkronisering spelar in.
Till råga på allt kanske all denna extra kod inte har någon effekt, eller till och med negativ effekt om indata är så litet att de administrativa instruktionerna stjäl mer tid än man sparar på parallellismen.
Forskarna presenterar sitt verktyg – Sambamba – på Cebitmässan, som börjar på måndag i Hannover.
Verktyget baseras på LLVM, ett öppenkodsprojekt för kompilatorer med stöd för bland annat x86, ARM, PowerPC och MIPS.
En av forskarna heter Hack i efternamn.