Dieser Vortrag extrahiert Erfahrungen aus einer Reihe erfolgreicher sowie gescheiterter industrieller Parallelisierungsprojekte, bei denen Embedded-Realtime-Systeme von Single-Core-CPUs auf Multicore-SMP-Plattformen portiert wurden. Dabei werden die typischen Probleme der Parallelisierung von Embedded-Systemen herausgearbeitet, wie die implizite Synchronisation mit Interrupt-Locks, die sich nicht auf Multicore-Hardware übertragen lässt, oder CPU-Affinity-basierte Architekturen, die Performance und Skalierbarkeit beschränken. Anhand der Fallstudien wird herausgearbeitet, welche Design-Entscheidungen zu performanten, skalierbaren und stabilen Parallelisierungen führen und welche Architekturfehler dabei tunlichst zu vermeiden sind. Die erfolgreichen und gescheiterten Projekte werden präsentiert und mit einer "idealen" Parallelisierungsarchitektur verglichen. Die Defizite der jeweiligen Parallelisierungsansätze werden analysiert, verallgemeinert und kategorisiert. Auf dieser Basis werden allgemeingültige Best Practices formuliert, die Parallelisierungsprojekten auch im Nicht-Embedded-Bereich den Weg weisen können.
Die Herausforderungen der ressourcenbeschränkten Embedded-Systeme lassen Parallelisierungsprobleme wie unter einem Vergrößerungsglas erscheinen. Dadurch lernen Programmierer aller Disziplinen qualitätssteigernde Maßnahmen für ihre eigenen Parallelisierungsprojekte kennen.
Vorkenntnisse
Entwickler, Architekten und Entscheider in Projekten mit Multicore- oder Parallelisierungs-Anteil
Lernziele
* Embedded-Entwickler und Architekten lernen die typischen Probleme der Multicore-Migration von Realtime-Systemen sowie erprobte Lösungsstrategien dafür kennen.
* Entwickler anderer Disziplinen verstehen die Auswirkungen ihrer Parallelisierungsentscheidungen auf alle Ebenen des Technologie-Stacks und auf das Verhalten ihrer Systeme.
* Entscheider lernen, die Risiken und das Potential von Multicore-Migrationen einzuschätzen.
// Marwan Abu-Khalil
ist Senior-Software-Architekt für parallele und verteilte Systeme im Forschungsbereich der Siemens AG. Seit über 10 Jahren parallelisiert er Systeme vom Embedded-Device bis zum Server-Cluster. Er unterrichtet parallele Programmierung für namhafte Anbieter (Heise, SIGS) und spricht auf Konferenzen über parallele Softwarearchitekturen. Marwan ist Ausbilder für zertifiziere Software-Architekten der Siemens AG.