26.11.2012 Aufrufe

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Die Institute der <strong>Fakultät</strong> und ihre Forschungsvorhaben<br />

Dynamische Wettlauferkennung: Helgrind+<br />

(A. Jannessari Ladani)<br />

Heutzutage ist die Fehlersuche und im Besonderen die Wettlauferkennung in parallelen<br />

Programen sehr bedeutsam. In jüngster Vergangenheit wurden verschiedene Paradigmen<br />

und Bibliotheken <strong>für</strong> die parallele Programmierung eingeführt, wodurch Programmierer in<br />

die Lage versetzt werden, ihre Programme <strong>für</strong> parallele Plattformen zu entwickeln. Nach<br />

wie vor besteht jedoch ein großer Mangel an fortgeschrittenen und zuverlässigen<br />

Werkzeugen <strong>für</strong> die Wettlauferkennung. Heutzutage erkennen Werkzeuge zu viele vermeintliche<br />

Fehler. In manchen Fällen verpassen sie sogar Wettläufe, so dass auf den Einsatz<br />

solcher Werkzeuge verzichtet wird.<br />

Hauptsächlich liegen diese Probleme daran, dass die Werkzeuge gar nicht alle<br />

Synchronisierungen in Programmen erkennen können. Dazu zählen unter anderem benutzerdefinierte<br />

Synchronisierungen oder Synchronisierungsprimitiven in Bibliotheken, die<br />

dem Werkzeug unbekannt sind und somit nicht gefunden werden können.<br />

Wir haben das Werkzeug Helgrind+ entwickelt, ein universeller, dynamischer<br />

Wettlauferkenner basierend auf dem Lockset-Algorithmus und der „Geschieht-vor“-<br />

Relation. Diese Analyse eliminiert die erwähnte Unzulänglichkeit. Helgrind+ berücksichtigt<br />

die Tatsache, dass die Synchronisierungsoperationen letztendlich einfache<br />

Warteschleifen (engl. Spin Locks) verwendet , die auf das Eintreffen eines Ereignisses wartet.<br />

Deswegen kann Helgrind+ verschiedene Synchronisierungsoperationen detektieren, die<br />

in Programmen vorkommen. Unsere empirischen Ergebnisse zeigen, dass Helgrind+ <strong>für</strong><br />

real bestehende Applikationen praktikabel ist und sowohl die Zahl vermeintlicher Fehler<br />

als auch die Zahl verpasster Weltläufe deutlich verringert.<br />

Echtzeitwettlauferkennung mit TachoRace<br />

(J. Schimmel, V. Pankratius)<br />

Dynamische Wettlauferkenner bremsen die Geschwindigkeit einer parallelen Anwendung<br />

oft deutlich aus, da sie alle Speicherzugriffe einzeln überwachen. Darüber hinaus treten<br />

viele Wettlaufsituationen erst zur Laufzeit im Produktivbetrieb auf. Wir haben explorativ<br />

mehrere Ansätze evaluiert, die Wettlauferkennung und Fehlerkorrektur während der<br />

Programmlaufzeit ermöglichen. Es wurde ein erster Prototyp namens TachoRace implementiert.<br />

Spracherweiterungen zur Entwicklung von Multicore-Applikatione<br />

(F. Otto, V. Pankratius)<br />

Die Entwicklung paralleler, performanter Software ist bisher ein schwieriges und fehleranfälliges<br />

Unterfangen. Vorherrschende Programmiersprachen wie C++ oder Java bieten<br />

Parallelität meist nur auf niedriger Abstraktionsebene in Form von Ausführungsfäden.<br />

Damit besteht zum einen ein hohes Risiko an schwer zu findenen Synchronisierungsfehlern,<br />

zum anderen gestaltet sich der Prozess der Performanzoptimierung sehr aufwändig. Um<br />

dieses Problem zu lösen, werden am Lehrstuhl Spracherweiterungen <strong>für</strong> das objektorien-<br />

84

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!