Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Linux Multithread-/Multicore-Programmierung

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Dieses Training zeigt, wie die Prozessorleistung von Linux-Systemen - insbesondere bei modernen Multicore-Architekturen - bestmöglich genutzt werden kann. Er richtet sich an Softwareentwickler, die neue Applikationen entwickeln oder existierende Anwendungen optimieren müssen, und eignet sich insbesondere auch für die Anwendung unter Embedded-Linux. Schwerpunkt des Trainings ist die Vorstellung des Pthread-APIs der NPTL-Bibliothek (Native Posix Threads Library). Dabei wird nicht nur der Funktionsumfang der Threadbibliothek eingehend behandelt, sondern auch auf mögliche Probleme und Lösungen sowie auf Richtlinien für einen guten Softwareentwurf eingegangen. Darüber hinaus zeigt das Training aber auch, um wie viel einfacher eine Multithread-Applikationsentwicklung mithilfe von OpenMP sein kann, und bietet somit einen Einblick in eine völlig andere Art der Softwareentwicklung für Multithreading-Systeme.

Software-Entwickler, Software-Architekten, Projektleiter

Kenntnis der Programmiersprache C.

Einführung

  • Prinzipielle Funktionsweise eines Threads
  • Zuordnung von Code und Daten
  • Threads vs. Prozesse
  • Der Posix Standard und das Pthread API
  • Das NPTL-Thread-Modell
  • Schedulingkonzepte
  • Threadzustände

Threads

  • Prioritäten und Scheduling
  • Timesharing-Threads
  • Realtime-Threads

Synchronisation

  • Mutex
  • Rekursiver Ressourcezugriff
  • Fairnessverhalten
  • Deadlocks
  • Prioritätsinversion
  • Prioritätsvererbung
  • Ceiling-Priorität

Multicore-Programmierung

  • Wann lohnt sich Multicore?
  • Amdahl’sches Gesetz
  • Ansätze zur Leistungsoptimierung
  • False Sharing
  • Prozessor-Affinität
  • Spinlocks
  • Richtlinien für einen guten Applikationsentwurf

OpenMP

  • Was ist OpenMP?
  • Beispiel: Multithreadprogrammierung ohne (explizite) Threads

Praktische Übungen

  • Entwicklung von Anwendungsprogrammen zur Analyse des Laufzeitverhaltens von Timesharing- und Realtime-Threads unter verschiedenen Bedingungen
  • Entwicklung einer Multithread-Applikation, die vom Benutzer zu beliebigen Zeiten zuverlässig beendet werden kann.
  • Aufspüren der Multithread-Probleme einer vorgegebenen Anwendung, sowie deren Behebung mithilfe geeigneter Synchronisationsmechanismen
  • Parallelisierung einer sequenziellen Applikation mit OpenMP
  • Laufzeitmessungen und Effizienzanalysen


Im Preis enthalten:

Mittagessen, Getränke, Trainingsunterlagen und Teilnahmezertifikat


Für Personalabteilungen

Sie können in unserem Online-Formular bis zu 5 Teilnehmer auf ein Training buchen.
Möchten Sie mehrere Teilnehmer auf verschiedene Trainings buchen, kontaktieren Sie uns bitte!

Bitte beachten Sie auch unser Bonusprogramm bei der gleichzeitigen Buchung von mehreren Trainings und/oder Teilnehmern.

Für Personalabteilungen

Verwandte Trainings

Multithread-/Multicore-Programmierung
Trainings-Code: MMP

C++11 Multithreading
Trainings-Code: C++11-MT

Linux-Schulung: Systemprogrammierung
Trainings-Code: LINUX-SYS

Embedded-Linux-Schulung: Embedded-Echtzeit-Linux vom Bootloader bis zum Realtime-System (Linux-RTOS)
Trainings-Code: LINUXE-RTD

Embedded-Linux-Architektur: Kernel-Treiberentwicklung
Trainings-Code: LINUXE-AR

Embedded-Linux-Training: Für Tester, Support und Service
Trainings-Code: LINUXE-T

Yocto Schulung: Grundlagen und Anwendung
Trainings-Code: YOCTO

Linux Multithread-/Multicore-Programmierung
Trainings-Code: LINUX-MMP

Softwarerecht: Haftungsrisiken beim Einsatz von Embedded-Software und Open-Source-Software
Trainings-Code: SW-RECHT


Verwandte Trainings

Offenes Training

Preis *Dauer
-3 Tage
Anmeldecode: LINUX-MMP

* Alle Preise zzgl. der gesetzlichen USt.


> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Inhouse Training

In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

> Trainingsbeschreibung als PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Coaching: (Embedded) Linux-Programmierung

Linux Multithread-/Multicore-Programmierung

Inhalt

Einführung

  • Prinzipielle Funktionsweise eines Threads
  • Zuordnung von Code und Daten
  • Threads vs. Prozesse
  • Der Posix Standard und das Pthread API
  • Das NPTL-Thread-Modell
  • Schedulingkonzepte
  • Threadzustände

Threads

  • Prioritäten und Scheduling
  • Timesharing-Threads
  • Realtime-Threads

Synchronisation

  • Mutex
  • Rekursiver Ressourcezugriff
  • Fairnessverhalten
  • Deadlocks
  • Prioritätsinversion
  • Prioritätsvererbung
  • Ceiling-Priorität

Multicore-Programmierung

  • Wann lohnt sich Multicore?
  • Amdahl’sches Gesetz
  • Ansätze zur Leistungsoptimierung
  • False Sharing
  • Prozessor-Affinität
  • Spinlocks
  • Richtlinien für einen guten Applikationsentwurf

OpenMP

  • Was ist OpenMP?
  • Beispiel: Multithreadprogrammierung ohne (explizite) Threads

Praktische Übungen

  • Entwicklung von Anwendungsprogrammen zur Analyse des Laufzeitverhaltens von Timesharing- und Realtime-Threads unter verschiedenen Bedingungen
  • Entwicklung einer Multithread-Applikation, die vom Benutzer zu beliebigen Zeiten zuverlässig beendet werden kann.
  • Aufspüren der Multithread-Probleme einer vorgegebenen Anwendung, sowie deren Behebung mithilfe geeigneter Synchronisationsmechanismen
  • Parallelisierung einer sequenziellen Applikation mit OpenMP
  • Laufzeitmessungen und Effizienzanalysen

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.