WICHTIG: Eingeschränkter Parkraum. Bitte informieren Sie sich vor Ihrer Anreise über die aktuelle Parksituation. Mehr erfahren
MENU

Multi-Core Programmierung für Realtime-Systeme

Konzepte und Architekturen für die Realtime Parallelität

Angebot runterladen

für

Multi-Core Programmierung für Realtime-Systeme

Ihre Anschrift

Beginn:
18.11.2024 - 09:00 Uhr
Ende:
19.11.2024 - 17:00 Uhr
Dauer:
2,0 Tage
Veranstaltungsnr:
35017.00.012
Leitung
Siemens AG
Präsenz oder Online
EUR 1.280,00
(MwSt.-frei)
Mitgliederpreis
Im Rahmen des Bezahlprozesses können Sie die Mitgliedschaft beantragen.
EUR 1.152,00
(MwSt.-frei)
unterstützt durch:
in Zusammenarbeit mit:
Referent:in

Dipl.-Math. Marwan Abu-Khalil

Herr Abu-Khalil ist Software-Architekt für parallele und verteilte Systeme im Forschungsbereich der Siemens AG, Trainer für zertifizierte Software-Architekten und regelmäßiger Sprecher auf Konferenzen zur Parallelen Programmierung.

Beschreibung

Realtime Parallelität spielt heute eine immer größere Rolle, da sich im allgemeinen IoT-Trend die Realisierung solcher Systeme nicht mehr nur auf den Embedded Bereich beschränkt sondern mit Realtime Linux auch auf vielen Edge Servern zu finden ist. 

In diesem praxisnahen Seminar lernen Sie Realtime-Programmierung auf Basis prioritätsbasierter Betriebssysteme und Mulitcore-CPUs für Ihre Projekte mit den C++ und P-Thread APIs effizient umzusetzen. 



Ziel der Weiterbildung

Wir beginnen mit den Grundlagen der Parallelen Programmierung wie Threads und Synchronisation, und schauen uns dann an, was sich ändert, wenn wir vom gewohnten Zeitscheiben-Scheduling auf ein „hartes“ prioritätsbasiertes Realtime-Scheduling wechseln. Wir sehen, welche spezifischen Herausforderungen (z.B. Priority Inversion) sich in einem Realtime-Umfeld ergeben und wie diese bewältigt werden können. Migrationskonzepte von Single- auf Multicore-CPUs und hardwarenahe Themen wie Memory Model und Memory Barriers ermöglichen Ihnen die direkte Anwendung des Gelernten in Ihren Projekten.

Lernziele sind:

  • Grundlagen und praktische Anwendung der Parallelen Programmierung beherrschen
  • Umgang mit den relevanten APIs in C++ / C beherrschen
  • praktische Auswirkungen des prioritätsbasierten Realtime-Scheduling verstehen
  • Eigenschaften aktueller Multi-Core CPUs und deren Memory-Modelle kennen
  • Migrationskonzepte für die Einführung von Multi-Core-CPUs in 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 (C++ mit Realtime-Linux ).
Programm

Montag, 18. und Dienstag, 19. November 2024
9.00 bis 12.15 und 13.15 bis 17.00 Uhr

Folgende Themenfelder werden behandelt:

1. Programmierung von Threads in Echtzeit-Systemen
2. Hardwarenahe Aspekte der Parallelität in Multicore-CPUs
3. 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 für Realtime-Systeme wichtigsten Thread-APIs werden eingeführt (C++11 Threads, p-Threads). Die Besonderheiten von Echtzeit-Systemen und hardwarenahen Programmiertechniken für Embedded-Systeme werden gezielt herausgearbeitet.

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. 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 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.

3. 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.
Teilnehmer:innenkreis
  • 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
Referent:innen

Dipl.-Math. Marwan Abu-Khalil

Herr Abu-Khalil ist Software-Architekt für parallele und verteilte Systeme im Forschungsbereich der Siemens AG, Trainer für zertifizierte Software-Architekten und regelmäßiger Sprecher auf Konferenzen zur Parallelen Programmierung.

Veranstaltungsort

Technische Akademie Esslingen

An der Akademie 5
73760 Ostfildern
Anfahrt

Die TAE befindet sich im Südwesten Deutschlands im Bundesland Baden-Württemberg – in unmittelbarer Nähe zur Landeshauptstadt Stuttgart. Unser Schulungszentrum verfügt über eine hervorragende Anbindung und ist mit allen Verkehrsmitteln gut und schnell zu erreichen.

Anfahrt und Parken: TAE - Technische Akademie Esslingen
Gebühren und Fördermöglichkeiten

Die Teilnahme beinhaltet Verpflegung (vor Ort) sowie ausführliche Unterlagen.

Preis:
Die Teilnahmegebühr beträgt:
1.280,00 € (MwSt.-frei) pro Teilnehmer vor Ort
1.280,00 € (MwSt.-frei) pro Teilnehmer live online

Fördermöglichkeiten:

Bei einem Großteil unserer Veranstaltungen profitieren Sie von bis zu 70 % Zuschuss aus der ESF-Fachkursförderung.
Bisher sind diese Mittel für den vorliegenden Kurs nicht bewilligt. Dies kann verschiedene Gründe haben. Wir empfehlen Ihnen daher, Kontakt mit unserer Anmeldung aufzunehmen. Diese gibt Ihnen gerne Auskunft über die Förderfähigkeit der Veranstaltung.

Weitere Bundesland-spezifische Fördermöglichkeiten finden Sie hier.

Inhouse Durchführung:
Sie möchten diese Veranstaltung firmenintern bei Ihnen vor Ort durchführen? Dann fragen Sie jetzt ein individuelles Inhouse-Training an.

Weitere Termine und Orte

Datum
Beginn: 18.11.2024
Ende: 19.11.2024
Lernsetting & Ort
Flex: Ostfildern oder Online
Preis
EUR 1.280,00

Bewertungen unserer Teilnehmer

(0,0 von 5)
5 Sterne
(0)
4 Sterne
(0)
3 Sterne
(0)
2 Sterne
(0)
1 Sterne
(0)
0 Sterne
(0)
Noch keine Bewertung vorhanden

TAE Newsletter

Bleiben Sie informiert! Entdecken Sie den TAE Themen-Newsletter mit aktuellen Veranstaltungen rund um Ihren persönlichen Tätigkeitsbereich. Direkt anmelden, Interessensbereiche auswählen und regelmäßig relevante Infos zu unserem Weiterbildungsangebot erhalten – abgestimmt auf Ihren Bedarf.

Jetzt registrieren

Fragen zur Veranstaltung?

Ihr Ansprechpartner für die Veranstaltung

Carmen Fritz, M.Sc.
Carmen Fritz, M.Sc.
Informationstechnik (IT)