Cebit

Sambamba soll Teile eines Programms automatisch parallelisieren

Informatiker der Universität des Saarlandes präsentieren auf der CeBIT ein Werkzeug, mit dem sich langfristig beliebige Programme vollautomatisch parallelisieren lassen sollen.

vorlesen Druckansicht 61 Kommentare lesen
Sambamba soll Teile eines Programms automatisch parallelisieren
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Forscher an der Universität des Saarlandes haben ein Werkzeug entwickelt, das Teile eines Softwareprogramms automatisch parallelisiert und so Entwicklern beim Programmieren für Mehrkernrechner unterstützt. Langfristig soll das Sambamba getaufte und auf der CeBIT 2015 in Halle 9, Stand E13, präsentierte System beliebige Programme vollautomatisch parallelisieren können.

Sambamba geht auf die Professoren der Universität Andreas Zeller und Sebastian Hack sowie ihren Doktoranden Kevin Streit, Clemens Hammacher und Johannes Doerfert zurück. Mit dem Werkzeug soll sich auf herkömmliche Weise programmierter Code automatisch in parallel ausführbaren umwandeln lassen. Ziel des Systems ist es, zu jeder Funktion einer Anwendung gleich mehrere Möglichkeiten der Parallelisierung zu finden, aus denen zur Laufzeit des Programms die beste ausgewählt wird.

Sambamba analysiert das Programm vor seiner Ausführung, um Parallelisierungsmöglichkeiten zu entdecken und Programmteile auszuschließen, die sich nicht parallelisieren lassen. Diese Analysen können aber Möglichkeiten zur Parallelisierung, die von der Eingabe des Programms abhängen und nicht in jedem Programmlauf auftreten, nur schwer entdecken. Sambamba besteht daher aus zwei Komponenten: eine Programmanalyse, die das Programm, bevor es läuft, auf sein Parallelisierungspotenzial untersucht. Die zweite Komponente baut auf diesen Ergebnissen auf und optimiert den Code mit Hilfe weiterer Informationen, die während der Laufzeit gewonnen werden. Auf diese Weise lässt sich die Rechenzeit offenbar verkürzen.

Dies klappt anscheinend auch für Programme, die in schwer zu analysierenden, aber weit verbreiteten Programmiersprachen wie C++ geschrieben sind. Da in manchen Szenarien Programmierer selbst entscheiden möchten, welche Parallelisierung durchgeführt werden soll, kann Sambamba mit dem Programmierer "in Dialog treten", in dem das Tool ihm Vorschläge unterbreitet, wo das Programm parallelisiert werden könnte. (ane)