Multithread-/Multicore-Programmierung - Seminar / Kurs von MicroConsult GmbH

Multithread-/Multicore-Programmierung

Inhalte

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:

  • Alle Lösungen und verwendeten Methoden werden vom Trainer individuell mit den Teilnehmern besprochen. Ferner bekommen Sie von MicroConsult einen kostenlosen USB-Stick und können darauf alle Ihre erstellten Übungsbeispiele und Musterlösungen speichern. Damit stehen Ihnen alle praktischen Lerninhalte für den Einsatz bei Ihren Entwicklungen zur Verfügung.

Lernziele

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.

Zielgruppen

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

Termine und Orte

Datum Dauer Preis
München, DE
16.11.2020 - 20.11.2020 36 h Jetzt buchen ›

SG-Seminar-Nr.: 5330813

Anbieter-Seminar-Nr.: MMP

Termine

  • 16.11.2020 - 20.11.2020

    München, DE

Preise inkl. MwSt. Es können Gebühren anfallen. Für eine exakte Preisauskunft wählen Sie bitte einen Termin aus.

Jetzt buchen ›
Seminar merken ›

Semigator berücksichtigt

  • Frühbucher-Preise
  • Last-Minute-Preise
  • Gruppenkonditionen

und verfügt über Sonderkonditionen mit einigen Anbietern.

Der Anbieter ist für den Inhalt verantwortlich.

Über Semigator mehr erfahren

  • Anbietervergleich von über 1.500 Seminaranbietern
  • Vollständige Veranstaltungsinformationen
  • Schnellbuchung
  • Persönlicher Service
Datum Dauer Preis
München, DE
16.11.2020 - 20.11.2020 36 h Jetzt buchen ›