© Liashko/Shutterstock.com
Entwickler Magazin
Trace-basiertes Debugging von Multi-Core-Systemen

Neue Ansätze für Tracing

Multi-Core-Prozessoren bieten zwar eine hohe Rechenleistung; allerdings erhöhen sie das Potenzial für Fehler bei der Softwareentwicklung. Viele dieser Fehler sind nur schwer reproduzierbar und gängige Debugging-Methoden sind bei ihrer Behebung unwirksam. Tracing, d. h. die Aufzeichnung des Programmverhaltens, kann hier Abhilfe schaffen. Im High-Performance-Computing ist es ebenso erfolgreich wie in eingebetteten Systemen.

Ronald Strebelow


Ob in Servern, Mobiltelefonen oder im Tablet: Multi-Core-Prozessoren sind heute nicht mehr wegzudenken. Auch in eingebettete Systeme, wie Autos, Telefonanlagen oder Maschinen, halten sie vermehrt Einzug. Eingebettete Systeme zeichnen sich häufig durch ihre Integration in physikalische Prozesse aus. Sie steuern z. B. die Benzineinspritzung oder ganze Roboter. Derartige Systeme müssen mit stark begrenzten Ressourcen auskommen und meist besonders energieeffizient arbeiten. Trotzdem steigen die Anforderungen an die Leistungsfähigkeit der Hardware und Software immer weiter. Die Entwicklung geht einerseits dahin, Funktionen von verschiedenen Geräten auf einem gemeinsamen Gerät zu integrieren, um dadurch Platz und Kosten zu sparen. Andererseits kommen immer aufwändigere Algorithmen zum Einsatz, um Qualität und Komfort zu steigern. Beide Entwicklungen bedingen einen Bedarf an Rechenleistung, der nur durch Multi-Core-Prozessoren bedient werden kann. Die Entwicklung paralleler Softwaresysteme bringt aber auch Probleme mit sich. So werden besonders das Debugging und die Optimierung der Multi-Core-Systeme schwieriger. Deswegen haben sich die Wissenschaftler der Fraunhofer ESK mit geeigneten Tools und Methoden für drei Problemfelder beschäftigt:

Funktionale FehlerProbleme der Leistungsfähigkeit Probleme des Zeitverhaltens

Funktionale Fehler haben z. B. Race Conditions oder Deadlocks zur Folge, können aber auch im Zusammenhang mit Ressourcen auftreten, z. B. wenn ein Speicherbereich fälschlicherweise von verschiedenen Prozessen gleichzeitig genutzt wird. Diese Fehler entstehen bei der Migration älterer Software auf Multi-Core-Systeme und durch nicht bedachte Abhängigkeiten zwischen Anwendungen, Betriebssystem und Hardware. Charakteristisch ist, dass sie nicht von Eingabedaten abhängen, nicht deterministisch und daher schwer reproduzierbar sind. Oft hilft nur, die Software lange genug zu testen, um einen einmal beobachteten Fehler zu reproduzieren. Die Praxis zeigt, dass es im schlimmsten Fall Tage oder sogar Wochen dauern kann, bis ein Fehler erneut auftritt.

Probleme der Leistungsfähigkeit äußern sich durch hohe Latenzzeiten oder einen zu niedrigen Datendurchsatz. In Extremfällen kann hierbei der Vorteil von Multi-Core-Prozessoren vollständig zerstört und ein parallelisiertes Programm sogar langsamer werden als seine sequenzielle Version. Die Ursachen von Performanzproblemen sind in der Regel Engpässe entweder in der Software oder in der Hardware. In der Software entst...

Entwickler Magazin
Trace-basiertes Debugging von Multi-Core-Systemen

Neue Ansätze für Tracing

Multi-Core-Prozessoren bieten zwar eine hohe Rechenleistung; allerdings erhöhen sie das Potenzial für Fehler bei der Softwareentwicklung. Viele dieser Fehler sind nur schwer reproduzierbar und gängige Debugging-Methoden sind bei ihrer Behebung unwirksam. Tracing, d. h. die Aufzeichnung des Programmverhaltens, kann hier Abhilfe schaffen. Im High-Performance-Computing ist es ebenso erfolgreich wie in eingebetteten Systemen.

Ronald Strebelow


Ob in Servern, Mobiltelefonen oder im Tablet: Multi-Core-Prozessoren sind heute nicht mehr wegzudenken. Auch in eingebettete Systeme, wie Autos, Telefonanlagen oder Maschinen, halten sie vermehrt Einzug. Eingebettete Systeme zeichnen sich häufig durch ihre Integration in physikalische Prozesse aus. Sie steuern z. B. die Benzineinspritzung oder ganze Roboter. Derartige Systeme müssen mit stark begrenzten Ressourcen auskommen und meist besonders energieeffizient arbeiten. Trotzdem steigen die Anforderungen an die Leistungsfähigkeit der Hardware und Software immer weiter. Die Entwicklung geht einerseits dahin, Funktionen von verschiedenen Geräten auf einem gemeinsamen Gerät zu integrieren, um dadurch Platz und Kosten zu sparen. Andererseits kommen immer aufwändigere Algorithmen zum Einsatz, um Qualität und Komfort zu steigern. Beide Entwicklungen bedingen einen Bedarf an Rechenleistung, der nur durch Multi-Core-Prozessoren bedient werden kann. Die Entwicklung paralleler Softwaresysteme bringt aber auch Probleme mit sich. So werden besonders das Debugging und die Optimierung der Multi-Core-Systeme schwieriger. Deswegen haben sich die Wissenschaftler der Fraunhofer ESK mit geeigneten Tools und Methoden für drei Problemfelder beschäftigt:

Funktionale FehlerProbleme der Leistungsfähigkeit Probleme des Zeitverhaltens

Funktionale Fehler haben z. B. Race Conditions oder Deadlocks zur Folge, können aber auch im Zusammenhang mit Ressourcen auftreten, z. B. wenn ein Speicherbereich fälschlicherweise von verschiedenen Prozessen gleichzeitig genutzt wird. Diese Fehler entstehen bei der Migration älterer Software auf Multi-Core-Systeme und durch nicht bedachte Abhängigkeiten zwischen Anwendungen, Betriebssystem und Hardware. Charakteristisch ist, dass sie nicht von Eingabedaten abhängen, nicht deterministisch und daher schwer reproduzierbar sind. Oft hilft nur, die Software lange genug zu testen, um einen einmal beobachteten Fehler zu reproduzieren. Die Praxis zeigt, dass es im schlimmsten Fall Tage oder sogar Wochen dauern kann, bis ein Fehler erneut auftritt.

Probleme der Leistungsfähigkeit äußern sich durch hohe Latenzzeiten oder einen zu niedrigen Datendurchsatz. In Extremfällen kann hierbei der Vorteil von Multi-Core-Prozessoren vollständig zerstört und ein parallelisiertes Programm sogar langsamer werden als seine sequenzielle Version. Die Ursachen von Performanzproblemen sind in der Regel Engpässe entweder in der Software oder in der Hardware. In der Software entst...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang