Fehler im Multithread-Code aufspüren: Thread Checker

veröffentlicht von am 27. November 2008

Beim Erstellen von parallel programmiertem Quellcode treten im Gegensatz zu seriellem Sourcecode zwei mögliche Probleme sehr viel häufiger auf: Race Conditions und Dead Locks. Beide sind mit herkömmlichen Mitteln nicht aufspürbar, so dass ein spezielles Tool erforderlich ist, dass diese Aufgaben erledigen kann. Dieses Software-Werkzeug nennt sich Thread Checker und ist Bestandteil des VTune Performance Analyzer, der sich wiederum vollständig in Visual Studio integrieren lässt.

Damit steht der Thread Checker in der bekannten Entwicklungsumgebung zur Verfügung. Eine Einschränkung gibt es allerdings: Es lassen sich nur nativ programmierte Anwendungen mit dem Thread Checker überprüfen, also nur C++ und Visual Fortran. .NET-Entwickler bleiben derzeit leider außen vor. Dies wird sich allerdings mit Visual Studio 2010 ändern, das ja Ende nächsten Jahres auf den Markt kommen soll.

Exkurs: Race Conditions und Dead Locks
Race Conditions treten vor allem dann auf, wenn ein parallel programmiertes Programm zur Laufzeit zwei Thread generiert, die beide auf ein gemeinsames Datum zugreifen und davon nichts wissen. So erzeugt Thread A beispielsweise ein Datum X und speichert es, was Thread B genauso tut, ohne darüber Bescheid zu wissen, dass Thread A das Datum X gerade geändert. Dies kann natürlich zu unvorhergesehenen Problemen und Fehlern im weiteren Programmablauf führen.

Bei Dead Locks hingegen verhält es sich genau umgekehrt: Dort warten zwei Threads gemeinsam auf eine bestimmtes Ereignis, das aber niemals eintreten wird. Folge: Das Programm begibt sich in eine Endlosschleife, aus der es nicht mehr herausfindet.

Der Intel Thread Checker ist also ein hoch entwickelter Debugger, der Multithread-Fehler aufspürt, die mithilfe von Windows-, POSIX- und OpenMP-Thread-Tools sowie den Threading Building Blocks erzeugt wurden. Und das gilt nicht nur für aktuelle Fehler, sondern auch für potenzielle, die der Thread Checker bei seinen Untersuchungen finden kann. Das Intel-Analysetool gibt es sowohl für Windows XP und Vista in der 32- und 64-Bit-Variante als auch für Linux, allerdings nicht für Itanium-Plattformen.

Webast-Tipp: Auf der Webseite der SOS Software Service GmbH findet sich ein sehr fundiertes Videotutorial zum Thema Thread Checker. In diesem Webcast wird auch ein weiteres Analyse-Tool von Intel besprochen, nämlich der Thread Profiler.


Keine ähnlichen Artikel.
Kategorien : Multicore Tags : , ,

Kommentare

Keine Kommentare vorhanden.


Beitrag kommentieren.

Sie müssen angemeldet sein um diesen Beitrag zu kommentieren. [Login | Registrieren]

(erforderlich)

(erforderlich)