Call for Papers

Lockfreie Algorithmen ( Vortrag )

Endlich Mehrkernsoftware ohne Spinlocks und Deadlocks

Referent: Jens Harnisch, Infineon Technologies AG
Vortragsreihe: Multicore
Zeit: 06.12.17 08:50-09:35
Co-Referenten: Dr. Albrecht Mayer, Infineon, Senior Principal Emulation Systems and Modelling (Co-Referent) Gerhard Wirrer, Lead Principal Automotive Microcontroller Software (Co-Autor)

Zielgruppe

Entwicklung

Themenbereiche

Implementierung, Test & Qualitätssicherung, Sichere Software

Schwerpunkt

Methode

Voraussetzungen

Grundlagenwissen

Kurzfassung

Zahlreiche Programmiermuster für Multi-Core Système sind bekannt, zum Beispiel für Queues mit Zugriff von mehreren Kernen. Viele Programmiermuster benötigen Spinlocks, welche bei nicht korrekter Verwendung zu Deadlocks führen können, besonders problematisch bei sicherheitskritischen Systèmen. Dieser Beitrag stellt lockfreie Algorithmen vor. Auch hier müssen atomare Instruktionen genutzt werden, zum Beispiel der altbekannte Swap Befehl. Aber es werden keine Spinlocks konstruiert. Die Performanz von lockfreien Algorithmen wird bewertet. Der Bezug zu anderen Programmierparadigmen wird hergestellt, zum Beispiel zu Logical Execution Time (LET). Es wird gezeigt, dass es keine universell beste Herangehensweise gibt. Die Wahl hängt ab zum Beispiel von Zugriffsmustern der Anwendung, akzeptabler Latenz und verfügbaren Instruktionen auf der Hardware. Präzise Mittel zur Bewertung der Performanz von Multi-Core Software, basierend auf Hardware Tracing, werden ebenfalls vorgestellt.

Gliederung

- Motivation: Probleme der Programmierung mit Spinlocks
- Lösung: Lockfreie Algorithmen
- Bewertung: Vorteile, Performanz, Overhead, Komplexität
- Weitere Alternativen: z.B. Logical Execution Time
- Ausblick: Wait Free Algorithmen
- Zusammenfassung: es gibt keine universell gute Lösung,
aber Kriterien zur Bewertung von Lösungen für eine spezielle Anwendung und Zielarchitektur

Nutzen und Besonderheiten

Die Teilnehmer werden über eine praxiserprobte Alternative in der Entwicklung von Multi-Core Software entwickelt, welche allerdings auch auf Grund der Komplexität noch recht wenig genutzt wird. In kommenden Implementierungen von C++ Bibliotheken werden lockfreie Algorithmen explizit unterstützt und damit Komplexität vorm Anwender versteckt. Allerdings sollte der Anwender den Hintergrund von lockfreien Algorithmen verstehen.

Über den Referenten

- Durchführung des Infineon Seminars zu Embedded Software Modellierung und Programmierung, persönliche Bewertung als Vortragender im letzten Jahr: 5.6 / 6 möglichen Punkten - Verantwortlich für Zusammenarbeit mit Multi-Core Tool Partnern, Beratung von Kunden für Multi-Core Softwareentwicklung auf dem AURIX Microcontroller