Multi-Core Programmierung für Embedded-Realtime-Systeme

Moderne Technologien und praxiserprobte Software-Architekturen

In Zusammenarbeit mit der Gesellschaft für Informatik (GI)

Auf einen Blick

3 Tages-Seminar
23.04.2018 - 25.04.2018
9:00 Uhr
in Ostfildern

Technische Akademie Esslingen
An der Akademie 5
73760 Ostfildern

Preis: 1.970 EUR(MwSt.-frei)

bis zu 50% Zuschuss möglich!

Veranstaltung Nr. 35017.00.002


Inhouse Training anfordern

Infomaterial anfordern

Seminar weiterempfehlen


Referent:
Dipl.-Math. M. Abu-Khalil, M.Comp.Sc.
Siemens AG, Energy Management Division, Berlin

Teilnehmer dieser Veranstaltung interessierten sich auch für

Beschreibung

Embedded-Realtime Systeme benötigen Multi-Core CPUs, um im IoT Umfeld bestehen zu können. Parallele Programmierung ist daher heute die Schlüsseltechnologie für Performance und Skalierbarkeit. In diesem Seminar wird Design und Implementierung paralleler Software für Embedded-Realtime-Systeme von Grund auf erschlossen. Das Seminar vermittelt sowohl den theoretischen Hintergrund als auch die konkrete praktische Anwendung, durch reale Projektbeispiele und Programmierübungen.

Ziel des Seminars

> Grundlagen und praktische Anwendung der Parallelen Programmierung beherrschen
> Herausforderungen der Parallelität in Embedded Realtime-Systemen mit Multicore-CPUs kennen
> moderne Parallelisierungstechnologien und ihre Relevanz für Realtime-Systeme beurteilen können
> Hardwarespezifika und Memory-Modelle aktueller Multicore-CPUs korrekt nutzen
> Software-Architekturen und Migrationskonzepte für die Einführung von Multi-Core-CPUs in Embedded-Realtime-Systemen bewerten können

Methodik
> Das Seminar ist interaktiv, die aktuellen Projekte der Teilnehmer werden thematisiert.
> Der Praxistransfer wird durch zahlreiche Programmierübungen sichergestellt (wahlweise C++ mit Realtime-Linux oder Realtime-Java).

Sie erhalten Qualität
Das Qualitätsmanagementsystem der Technischen Akademie Esslingen
ist nach DIN EN ISO 9001 und AZAV zertifiziert.

Teilnehmerkreis

> Entwickler und Software-Architekten, die parallele Software für Realtime-Systeme mit Multi-Core-CPUs entwickeln oder dies planen
> kein Vorwissen über Parallele Programmierung erforderlich
> auch für Entwickler von Nicht-Echtzeit-Systemen geeignet

Seminarthemen im Überblick

Montag, 23. bis Mittwoch, 25. April 2018
9.00 bis 12.15 und 13.45 bis 17.00 Uhr

Folgende Themenfelder werden behandelt:
1. Programmierung von Threads in Echtzeit-Systemen
2. Moderne Parallelisierungsparadigmen in Echtzeit-Systemen
3. Hardwarenahe Aspekte der Parallelität in Multicore-CPUs
4. Software-Architekturen und Migrationskonzepte für Multicore-CPUs in Echtzeit-Systemen

1. Programmierung von Threads in Echtzeit-Systemen

Die Thread-Programmierung ist die Schlüsseltechnologie für die Parallelität und somit für die Ausnutzung einer Multicore-CPU. Die Thread-Programmierung wird von Grund auf erschlossen und die wichtigsten Thread-APIs werden eingeführt (C++11, p-Threads, bei Bedarf auch Threads in Windows, Java, C#, VxWorks Tasks). Die Besonderheiten von Echtzeit-Systemen und hardwarenahe Programmiertechniken für Embedded-Systeme werden gezielt herausgearbeitet. Folgende Aspekte der Thread-Programmierung stehen im Mittelpunkt:

1.1 Parallelität
> Performancesteigerung durch Parallelisierung von Algorithmen
> Performance durch Parallelisierung auf der Ebene der Software-Architektur
> Risiken und Kosten von Threads in ressourcenbeschränkten Embedded-Systems
> Besonderheiten der Parallelität bei prioritätsbasiertem Realtime-Scheduling

1.2 Synchronisation
> Einsatz und Implementierungskonzepte von Synchronisationsprimitiven auf allen Ebenen des Hardware-Software Stacks (z.B. Mutex, Semaphor, Spinlock)
> Ziele der Synchronisation (Datenkonsistenz)
> Risiken der Synchronisation (z.B. Deadlock, Performance-Kosten)
> Spezifika der Synchronisation in Echtzeit-Systemen (z.B. Priority-Inversion, Priority-Inheritance)

1.3 Koordination
> Producer-Consumer-Szenarien
> Ablaufsteuerungen mit dem Monitor-Pattern
> Semantik der Condition-Variable

2. Moderne Parallelisierungsparadigmen in Echtzeit-Systemen

Moderne User-Mode Work-Stealing Task-Scheduler versprechen viele der Probleme klassischer Thread APIs zu lösen, und sie werden von den Betriebssystem-Herstellern in immer mehr Umgebungen unterstützt. Im Seminar wird die Programmierung mit solchen Task-Schedulern anhand von Standards für Embedded-Realtime Systeme (z.B. MTAPI) eingeführt. Es wird aufgezeigt, für welche Architekturen und Anwendungsfälle dieses Paradigma geeignet ist und wo seine Grenzen und Risiken liegen.

3. Hardwarenahe Aspekte der Parallelität in Multicore-CPUs

Um sichere, effiziente und vorhersagbare Software für Multicore-CPUs zu entwickeln, ist es gerade für hardwarenahe Embedded-Entwickler unabdingbar, die Konzepte der Memory-Modelle dieser CPUs zu kennen („Relaxed Consistent Memory Models“). Alle modernen Multicore-CPUs erlauben in gewissem Maße unerwartete Umsortierungen des Programmablaufs beim Zusammenspiel mehrerer Threads, wenn keine geeigneten Maßnahmen in der Software getroffen werden. Im Seminar werden die typischen Memory-Modelle aktueller Multicore-CPUs eingeführt (ARM, Intel), und es wird gezeigt, wie sich auf Software-Ebene die Konsistenz der Speicherzugriffe herstellen lässt (Memory-Barrieres in RISC und CISC CPUs).
Synchronisation und Locking sind ebenfalls nur mit Grundlagen in der Hardware zu verstehen und zu realisieren. Es werden Anwendung und Implementierungskonzepte von Spinlocks und atomaren Instruktionen in Hardware und Software eingeführt und ihre Relevanz für Echtzeit-Systeme erläutert.

4. Software-Architekturen und Migrationskonzepte für Multicore-CPUs in Echtzeit-Systemen

Die meisten heute existierenden Echtzeit-Systeme basieren auf Software-Architekturen, die ursprünglich für Singlecore-CPUs entworfen wurden. Viele dieser Systeme müssen in naher Zukunft auf Multicore-CPUs migriert werden. Tragfähige Software-Architekturen und erfolgreiche Migrationspfade für den Umstieg von Singlecore- auf Multicore-Hardware werden aufgezeigt. Dabei werden unterschiedliche Architektur-Paradigmen verglichen (z.B. SMP vs. AMP) und es wird anhand erfolgreicher sowie gescheiterter realer Projekte aufgezeigt, welche Architektur-Konzepte sich in der Praxis als tragfähig erwiesen haben.

Referenten

Dipl.-Math. Marwan Abu-Khalil, M.Comp.Sc.
Marwan Abu-Khalil ist Software-Architekt für parallele und verteilte Systeme in der Forschung der Siemens AG und Trainer für zertifizierte Software-Architekten. Er ist regelmäßiger Sprecher auf Konferenzen zum Thema Parallelisierung.,

Termine & Preise

Extras
Die Seminarteilnahme beinhaltet Verpflegung und ausführliche Seminarunterlagen.

Die Teilnehmerzahl ist auf 12 Teilnehmer begrenzt, um den optimalen Lernerfolg zu garantieren.

Kosten
Die Kosten betragen pro Teilnehmer 1.970 EUR(MwSt.-frei), inklusive aller Extras.

Fördermöglichkeiten
Für dieses Seminar stehen Ihnen verschiedene Fördermöglichkeiten zur Verfügung.
Weitere Informationen

Die nächsten Termine

Datum / Uhrzeit Seminartitel Ort Preis
23.04.2018, 9:00 Uhr Multi-Core Programmierung für Embedded-Realtime-Systeme Ostfildern 1.970 EUR
15.10.2018, 9:00 Uhr Multi-Core Programmierung für Embedded-Realtime-Systeme Ostfildern 1.970 EUR

© Technische Akademie Esslingen e.V., An der Akademie 5, 73760 Ostfildern  | Impressum