Schulung Multi-Threading in .NET mit C#/Visual Basic .NET und/oder C++ und C++/CLI

Beschreibung/Inhalt

- Dieses Schulungsmodul stellt umfassend die Parallelisierungsmöglichkeiten dar, die Sie mit .NET-Sprachen wie C#, C++/CLI und Visual Basic .NET auch unter Einbeziehung von unmnaged Code in C++ haben. Selbstverständlich kann die Schulung nur auf .NET-Sprachen oder nur auf C++ beschränkt werden, wenn Sie dies in Ihrer Anfrage angeben.
- Dieses Schulungsmodul kann mit allen aktuellen ASP.NET Core-Versionen (z.B. 8.0, 7.0, 6.0, 5.0) entsprechend Ihren Wünschen durchgeführt werden.
- Auf Wunsch ist auch eine Schulung mit älteren Versionen / klassischem .NET Framework möglich.

Einführung

  • Warum "Parallelprogrammierung"?

  • Vor- und Nachteile
    Performancesteigerung
    Reaktivität / UI-Entkopplung
  • Grundbegriffe

  • Thread-safe
    Reentrant
    Synchronisation
    Deadlocks
  • Hardware

  • Mehrkernprozessoren
    Mehrere Prozessoren
    NUMA
  • Amdahl’s Gesetz

  • Thread-Erzeugung
    Granularität von Arbeitseinheiten

    Threads mit .NET
  • Erzeugung
  • Datenübergabe
  • Steuerung
  • Beenden von Threads
  • Arbeitsverteilung auf mehrere Threads
  • Synchronisierung ( Semaphoren, Queues, Mutex etc.)
  • Debugging
  • Asynchrone Methoden
  • Asynchroner Datei-IO
  • .NET-Timer


  • Der .NET-ThreadPool
  • ThreadPool-Benutzung
  • Datenübergabe
  • Nachteile und Vorteile
  • Performance


  • Open Multi-Processing (OpenMP) mit C++/CLI
  • Erstellung von Bibliotheken
  • Schleifen mit OpenMP

  • Aufteilung der Teilaufgaben
    Aggregationen
    Anzahl der verwendeten Threads
  • Code-Bereiche mit OpenMP
  • Synchronisierung
  • Aufruf der Bibliotheken aus C# und VB.NET


  • MPI.NET
  • Einführung Message Passing
  • Programmiermodel
  • Send, Receive
  • Datenübergabe


  • Parallel-LINQ (PLINQ)
  • PLINQ mit Objekten
  • PLINQ mit XML
  • IParallelEnumerable


  • Die Task Parallel Library (TPL)
  • Einführung
  • Concurrency Runtime
  • Schleifen

  • Aufteilung der Teilaufgaben
    Aggregationen
    Anzahl der verwendeten Threads
  • Code-Bereiche
  • Tasks
  • Future-Variablen
  • async und await
  • Synchronisierung
  • Exceptions in der TPL
  • TPL und User Interfaces

  • Nicht blockierende User Interfaces
  • Cancellation Framework
  • Parallel-Datenstrukturen
  • Performanceanalysen


  • Berechnungen in der Grafikkarte
  • DirectX
  • CUDA


  • Bibliotheken
  • Intel Math Kernel Library (MKL)


  • Windows und Threading
  • Programmiermodell
  • Der BackgroundWorker
  • Invoke
  • BeginInvoke
  • Zugriff auf Steuerelemente
  • Besonderes mit Windows Forms

  • WindowsForms-Timer
  • Besonderes mit WPF

  • DispatcherObject
    DispatcherTimer
  • Windows-UI und die TPL
  • Probleme


  • Herausforderungen/Stolpersteine und Best Practies bei der Parallelisierung
  • Leistungsfragen (Performance)
  • Data Races
  • Deadlocks erkennen und vermeiden


  • Zusammenfassung
  • Welche Variante wann einsetzen?
  • Was kann man erreichen?
  • Was ist unmöglich?
  • Ausblick auf die Zukunft

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil