Om de prestaties van moderne computerchips met meerdere kernen volledig te benutten, moeten ontwikkelaars hun programmacode zodanig schrijven dat deze parallel kan worden uitgevoerd. Parallel programmeren is echter moeilijk, gevoelig voor fouten en duur. Informatici van de Fachrichtung Informatik van de Universität des Saarlandes hebben een tool ontwikkeld, die delen van het programma automatisch omzet naar parallelle verwerking en daarmee de ontwikkelaars bij het programmeren ondersteunt. Op de lange termijn moet het Sambamba-systeem willekeurige programma’s automatisch omzetten voor parallel gebruik.
Multicore architecturen zijn inmiddels belangrijk in netbooks en smartphones. De steeds kleiner wordende apparaten, die ook nog minder energie moeten verbruiken, maken dit noodzakelijk. De tool Sambamba zet conventioneel geprogrammeerde code automatisch om naar een parallel uitvoerbare code. Het doel van het systeem is, om voor elke functie van een toepassing tegelijkertijd meerdere mogelijkheden te vinden voor parallel gebruik, waarvoor bij de uitvoering van het programma de beste optie wordt gekozen.
Parallel programmeren
Informatici verstaan onder runtime de tijd, die verloopt vanaf de start van het programma tot aan het einde. Sambamba analyseert het programma al voor zijn uitvoering, om de parallelle mogelijkheden te ontdekken en om programmadelen die nog niet parallel stonden, uit te sluiten. De analyses voor de mogelijkheden voor parallelle uitvoering, die vaak afhangen van de programmering van het programma en niet optreden in elke uitvoering van het programma, zijn lastig te ontdekken.
Sambamba bestaat uit twee componenten. De eerste is een uitvoerige programma-analyse, die het programma onderzoekt op zijn parallel uit te voeren mogelijkheden voordat het wordt uitgevoerd. De tweede stelt de resultaten samen en optimaliseert de code met behulp van aangevulde informatie, die tijdens de uitvoering wordt verkregen.

Op deze manier omzeilen de computerwetenschappers uit Saarbrücken op een elegante manier de uitdaging, die door onderzoek nog niet opgelost kon worden. Sommige processen functioneren goed voor bepaalde vormen van parallelle uitvoering, maar er bestaat nog geen proces voor alles.
Zelfs als de onderzoekers een omvormer zouden kunnen bouwen die alle tot nog toe bedachte en uitgeprobeerde processen beheerst, beschikken ze nog niet over een kostenmodel om telkens het beste proces automatisch vast te stellen. Daarom gaan ze nu uit van een proces van integratie en proberen ze voorafgaande aan de uitvoering van het programma zoveel mogelijk informatie te verwerken.
Dit werkt ook voor programma’s, die moeilijk te analyseren zijn, zoals bij in de praktijk veelgebruikte programmeertalen als C++ . Bij deze complexe programma’s is de beoordeling tijdens de uitvoering bijzonder belangrijk. Sambamba kan programma’s volledig parallel omzetten. In sommige scenario’s kan de programmeur zelf besluiten welke parallel vorm wordt uitgevoerd. Het programma kan daarom ook in een dialoog met de programmeur voorstellen aanreiken, waarbij het programma in parallelvorm kan worden gebracht.
Een korte video met uitleg is te vinden op de website van Sambamba.