sambamba_web

Erleichtern das parallele Programmieren (v.l.n.r.): Professor Sebastian Hack, Kevin Streit, Clemens Hammacher and Professor Andreas Zeller. Foto: Oliver Dietze

„Selbst für Netbooks und Smartphones sind Mehrkern-Architekturen inzwischen wichtig“, erklärt Andreas Zeller. „Die immer kleineren Geräte, die zugleich wenig Energie verbrauchen sollen, machen sie notwendig“, so der Professor für Softwaretechnik an der Universität des Saarlandes. Zusammen mit seinen Doktoranden Kevin Streit und Clemens Hammacher hat er das Werkzeug „Sambamba“ entwickelt, das auf herkömmliche Weise programmierten Code automatisch in parallel ausführbaren Code umwandelt. „Das Ziel unseres Systems ist, zu jeder Funktion einer Anwendung gleich mehrere Möglichkeiten der Parallelisierung zu finden, aus denen zur Laufzeit des Programmes die beste ausgewählt wird“, erklärt Sebastian Hack, Professor für Programmierung an der Saar-Uni. Sein Doktorand Johannes Doerfert und er haben ebenfalls an Sambamba mitgewirkt.

Unter Laufzeit verstehen Informatiker die Zeit, die vom Start eines Programmes bis hin zu seiner Beendigung vergeht. Sambamba analysiert das Programm bereits vor seiner Ausführung, um Parallelisierungsmöglichkeiten zu entdecken und Programmteile, die nicht parallelisiert werden können, auszuschließen. 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 aufwendige Programmanalyse, die das Programm, bevor es läuft, auf sein Parallelisierungspotential untersucht. Die zweite baut auf diesen Ergebnissen auf und optimiert den Code mit Hilfe weiterer Informationen, die während der Laufzeit gewonnen werden“, erläutert Professor Hack.

So umgehen die Saarbrücker Computerwissenschaftler elegant eine Herausforderung, die von der Forschung bisher nicht gelöst werden konnte: Verschiedene Verfahren funktionieren sehr gut für bestimmte Formen von Parallelisierung, jedoch passt kein Verfahren für alle. „Selbst wenn wir einen Übersetzer bauen könnten, der alle bisher erdachten und erprobten Verfahren beherrscht, würde uns ein Kosten-Modell fehlen, um das jeweils beste Verfahren automatisch zu bestimmen“, erklärt Professor Hack. Daher setzen sie auf ihren integrativen Ansatz, versuchen vor der Programmausführung so viele Informationen wie möglich zu verarbeiten, lassen das System seine Schlüsse ziehen und überprüfen diese dann während der Ausführung. Auf diese Weise können sie die Rechenzeit noch mehr verkürzen.

Dies klappt auch für Programme, die in schwer zu analysierenden, aber in der Praxis weit verbreiteten Programmiersprachen wie C++ geschrieben sind. Bei komplexen Programmen ist dann die Bewertung während der Laufzeit besonders wichtig. „Sambamba kann Programme vollautomatisch parallelisieren. In manchen Szenarien möchte der Programmierer selbst entscheiden, welche Parallelisierung durchgeführt werden soll“, so Professor Zeller. „Es kann daher auch mit dem Programmierer in Dialog treten, in dem es ihm Vorschläge unterbreitet, wo das Programm parallelisiert werden könnte“, erklärt Professor Zeller. Auf der Cebit stellen die Forscher nun eine Entwicklungsumgebung vor, in der Sambamba dem Programmierer Hinweise zur Parallelisierung gibt.

Hintergrund Saarbrücker Informatik
Den Kern der Saarbrücker Informatik bildet die Fachrichtung Informatik an der Universität des Saarlandes. In unmittelbarer Nähe forschen auf dem Campus sieben weitere weltweit renommierte Forschungsinstitute. Neben den beiden Max-Planck-Instituten für Informatik und Softwaresysteme sind dies das Deutsche Forschungszentrum für Künstliche Intelligenz (DFKI), das Zentrum für Bioinformatik, das Intel Visual Computing Institute, das Center for IT-Security, Privacy and Accountability (CISPA) und der Exzellenzcluster „Multimodal Computing and Interaction“.

Ein Pressefoto finden Sie unter: www.uni-saarland.de/pressefotos

Ein kurzes Video finden Sie unter: http://www.sambamba.org/

Fragen beantworten:
Professor Andreas Zeller
Fachrichtung Informatik, Universität des Saarlandes
E-Mail: zeller@cs.uni-saarland.de
Tel.: 0681 302-70791

Professor Sebastian Hack
Fachrichtung Informatik, Universität des Saarlandes
E-Mail: hack@cs.uni-saarland.de
Tel.: 0681 302-57520

Redaktion:
Gordon Bolduan
Wissenschaftskommunikation
Kompetenzzentrum Informatik Saarland
Tel: +49 681 302-57520
E-Mail: bolduan@mmci.uni-saarland.de