Zum 01. September 2024 ging der Geschäftsbetrieb der MicroConsult Microelectronics Consulting & Training GmbH über an die MicroConsult Academy GmbH. Diese wird das Geschäft in vollem Umfang, mit dem bewährten Personal und mit der gewohnten hohen Qualität weiterführen. Ihre Fragen beantworten wir gerne unter kontakt@microconsult.com.

Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Multithread-/Multicore-Programmierung - Live-Online-Training

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Das Training Multithread-/Multicore-Programmierung macht Sie fit, die Eigenschaften von Multithreading-Systemen zielgerichtet in Ihren Projekten einsetzen.

Sie wissen, welche Probleme gelöst werden müssen, um die Prozessorleistung - insbesondere bei modernen Multicore-Systemen - bestmöglich nutzen zu können.

Damit können Sie existierende Applikationen optimieren und implementieren oder neue Applikationen hinsichtlich effizienter Nutzung der Multicore-Architektur entwerfen.

Mit der allgemein gültigen Behandlung der Themen im Seminar Multithread-/Multicore-Programmierung sind Sie imstande, das erworbene Wissen prinzipiell auf jede Multithreading- oder Multitasking-Plattform anzuwenden.

Mit der Fülle an konkreten C- und C++-Codebeispielen verfügen Sie über einen Pool an Anwendungsbeispielen, die sowohl plattformspezifische Lösungen basierend auf Windows (Win32/64), .NET (C++/CLI) und Linux als auch plattformunabhängige Lösungen auf Basis von Pthreads, Boost, QT und C++11 enthalten.

Software-Entwickler, Software-Architekten und Projektleiter, die die Multithread-Programmierung unter bestmöglicher Ausnutzung der Prozessorleistung in Multicore-Systemen einsetzen wollen.

Kenntnis der Programmiersprache C. Da auch viele C++-Beispiele gezeigt werden, sind C++-Kenntnisse hilfreich, aber nicht Voraussetzung. Somit eignet sich dieses Training auch für Teilnehmer, die ausschließlich mit C programmieren.

Einführung

  • Software früher und heute
  • Prozessorarchitektur: Singlecore/ Multicore/ Manycore, Hyperthreading
  • Systemarchitektur: AMP-/SMP-Systeme

Multithreading

  • Task und Scheduler
  • Zuordnung von Code und Daten
  • Prozesse und Threads
  • Scheduling-Modelle
  • Singlecore-Multithreading/ Multicore-Multithreading
  • Zeitscheibenverfahren
  • Nebenläufige Ausführung/ parallele Ausführung

Thread-Programmierung

  • Thread-Zustände
  • Prioritäten, Prioritätsboost, Scheduling
  • Threads und Funktionen; Reentrancy
  • Threads und Objekte
  • Thread-Erzeugung
  • Thread-Unterbrechung
  • Thread-Beendigung

Synchronisation

  • Speichermodelle
  • Polling
  • Events
  • Race Conditions
  • Mutexe/ Locks/ Semaphore:
  • Rekursiver Zugriff, Scoped Locking, Fairness, Prioritätsinversion, Reader-/Writer-Locks, Deadlock/ Livelock
  • Condition Variable
  • Atomare Zugriffe
  • Lockfreie Programmierung
  • Barrieren
  • Einmal-Initialisierung

Kommunikation

  • Möglichkeiten der Kommunikation
  • Charakteristische Eigenschaften
  • Typische Implementierungen:
  • Message Queues, Pipes, FIFO, Netzwerk-Sockets

Multicore-Programmierung

  • Wann lohnt sich Multicore?
  • Amdahl'sches Gesetz
  • Arten der Parallelität
  • False Sharing
  • Prozessor-Affinität
  • Spinlocks
  • Numerische Berechnungen
  • Portierung

Applikationsdesign

  • Thread-basiert: Thread-Pools
  • Pattern-basiert: Loop Parallelism, Master/Worker, Divide And Conquer, Fork/Join, Geometric Decomposition, Pipeline Pattern
  • Bibliotheks-/Framework-basiert: OpenMP, Threading Building Blocks (TBB), Task Parallel Library (TPL)
  • Generelle Vorgehensweise (Best Practices)

Praktische Übungen im Kurs Multithread-/Multicore-Programmierung

  • Multithread-/ Multicore-Applikationsentwicklung
  • Zuverlässige Applikationsbeendigung
  • Threadlokaler Speicher
  • Aufspüren der Multithread-Probleme einer vorgegebenen Applikation sowie deren Behebung mithilfe unterschiedlicher Synchronisationsmechanismen
  • Entwurf und Implementierung einer Client-/Server-Anwendung mithilfe geeigneter Kommunikationsmechanismen
  • Optimierung eines sequenziell strukturierten Programms zur Nutzung der Rechenleistung eines Multicore-Systems
  • Entwicklung einer Multithread-Applikation auf der Basis eines Design Patterns
  • Laufzeitmessungen und Effizienzanalysen
  • Die Übungen werden wahlweise unter Windows mit Visual Studio oder unter Linux mit Eclipse durchgeführt.

MicroConsult Plus:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.

Im Preis enthalten:
Trainingsdokumentation, Ihr Zertifikat sowie ggf. erforderliche Ziel-HW o.ä.


ALL INCLUSIVE!

Spätestens 3 Wochen vor Trainingsbeginn erhalten Sie eine verbindliche Durchführungsbestätigung.

Einige Tage vor dem Live-Online-Training erhalten Sie von uns E-Mails mit …

  • ausführlichen Infos rund um Ihr Training
  • Ihre Schulungsunterlagen (Download-Link)
  • einer Einladung zu einer optionalen Probesession mit dem Trainer
  • einer Einladung für die Schulungstage, mit Link und Zugangsdaten

Ggf. erforderliche Übungs-HW senden wir Ihnen rechtzeitig vorab zu.


ABLAUF

Verwandte Trainings

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme - Live-Online-Training
Anmeldecode: L-RTOS-AR

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme - Live-Online-Training
Anmeldecode: L-RTOS-RT

Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen - Live-Online-Training
Anmeldecode: L-EMB-C

Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML - Live-Online-Training
Anmeldecode: L-EC++

Embedded C++ für Fortgeschrittene: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ - Live-Online-Training
Anmeldecode: L-EC++FOR

DSP-Grundlagen: Applikationen mit dem Mikrocontroller - Live-Online-Training
Anmeldecode: L-DSP-G

Embedded-Multicore-Mikrocontroller in der Praxis - Live-Online-Training
Anmeldecode: L-µCMULTI

Linux Multithread-/Multicore-Programmierung - Live-Online-Training
Anmeldecode: L-LIN-MMP


Verwandte Trainings

Live Online Training

Dauer
4,5 Tage
Anmeldecode: L-MMP
* Preis je Teilnehmer, in Euro zzgl. USt.

> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Präsenz-Training - Deutsch

Dauer
4,5 Tage  

Multithread-/Multicore-Programmierung - Live-Online-Training

Inhalt

Einführung

  • Software früher und heute
  • Prozessorarchitektur: Singlecore/ Multicore/ Manycore, Hyperthreading
  • Systemarchitektur: AMP-/SMP-Systeme

Multithreading

  • Task und Scheduler
  • Zuordnung von Code und Daten
  • Prozesse und Threads
  • Scheduling-Modelle
  • Singlecore-Multithreading/ Multicore-Multithreading
  • Zeitscheibenverfahren
  • Nebenläufige Ausführung/ parallele Ausführung

Thread-Programmierung

  • Thread-Zustände
  • Prioritäten, Prioritätsboost, Scheduling
  • Threads und Funktionen; Reentrancy
  • Threads und Objekte
  • Thread-Erzeugung
  • Thread-Unterbrechung
  • Thread-Beendigung

Synchronisation

  • Speichermodelle
  • Polling
  • Events
  • Race Conditions
  • Mutexe/ Locks/ Semaphore:
  • Rekursiver Zugriff, Scoped Locking, Fairness, Prioritätsinversion, Reader-/Writer-Locks, Deadlock/ Livelock
  • Condition Variable
  • Atomare Zugriffe
  • Lockfreie Programmierung
  • Barrieren
  • Einmal-Initialisierung

Kommunikation

  • Möglichkeiten der Kommunikation
  • Charakteristische Eigenschaften
  • Typische Implementierungen:
  • Message Queues, Pipes, FIFO, Netzwerk-Sockets

Multicore-Programmierung

  • Wann lohnt sich Multicore?
  • Amdahl'sches Gesetz
  • Arten der Parallelität
  • False Sharing
  • Prozessor-Affinität
  • Spinlocks
  • Numerische Berechnungen
  • Portierung

Applikationsdesign

  • Thread-basiert: Thread-Pools
  • Pattern-basiert: Loop Parallelism, Master/Worker, Divide And Conquer, Fork/Join, Geometric Decomposition, Pipeline Pattern
  • Bibliotheks-/Framework-basiert: OpenMP, Threading Building Blocks (TBB), Task Parallel Library (TPL)
  • Generelle Vorgehensweise (Best Practices)

Praktische Übungen im Kurs Multithread-/Multicore-Programmierung

  • Multithread-/ Multicore-Applikationsentwicklung
  • Zuverlässige Applikationsbeendigung
  • Threadlokaler Speicher
  • Aufspüren der Multithread-Probleme einer vorgegebenen Applikation sowie deren Behebung mithilfe unterschiedlicher Synchronisationsmechanismen
  • Entwurf und Implementierung einer Client-/Server-Anwendung mithilfe geeigneter Kommunikationsmechanismen
  • Optimierung eines sequenziell strukturierten Programms zur Nutzung der Rechenleistung eines Multicore-Systems
  • Entwicklung einer Multithread-Applikation auf der Basis eines Design Patterns
  • Laufzeitmessungen und Effizienzanalysen
  • Die Übungen werden wahlweise unter Windows mit Visual Studio oder unter Linux mit Eclipse durchgeführt.

MicroConsult Plus:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.