Parallele Programmierung im .NET Framework

Werbung
Parallele Programmierung im .NET Framework
Präsentation am Beispiel von C-Sharp (C#)
Darmstadt, 08.12.2014
 Wichtige Grundlagen
 Generika, Delegate, Lambda, Erweiterungsmethoden
 Parallele Programmierung
 Basis Features
 LINQ Extensions und PLINQ (Parallel LINQ)
 Task Parallel Library (TPL) und Parallel Namespace
 Asynchrone Programmierung
 Async und Await
Parallele Programmierung im .NET Framework
Grundlagen
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Generika
 Delegate
 Lambda
 Erweiterungsmethoden
Parallele Programmierung im .NET Framework
Grundlagen - Generika
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Generische Klassen und Methoden
 Bekannt aus anderen Programmiersprachen
 Ermöglicht es Klassen und Methoden zu entwerfen in
denen die Angabe eines oder mehrerer Typen bis zur
Instanziierung verzögert wird
Parallele Programmierung im .NET Framework
Grundlagen - Delegate
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Delegate
 Es Referenztyp zum Kapseln anonymer Methoden
 Bekannt aus C++ (Funktionszeiger)
 Im Gegensatz zu Funktionszeigern sind Delegate
typsicher
Parallele Programmierung im .NET Framework
Grundlagen – Generische Delegate
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Generische Delegate
Parallele Programmierung im .NET Framework
Grundlagen – Lambda
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Lambda Ausdrücke
 Eine anonyme Funktion mit der Instanzen von
Delegaten erstellt werden können
 Typen von Lambda Parametern werden automatisch
vom Compiler übersetzt
Parallele Programmierung im .NET Framework
Grundlagen – Erweiterungsmethoden
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Erweiterungsmethoden
 Erlaubt es zu Klassen neue Methoden hinzuzufügen
ohne von diesen abzuleiten oder die Klasse neu zu
kompilieren
Parallele Programmierung im .NET Framework
Grundlagen – Praktisches Beispiel
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Praktisches Beispiel
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
Parallele Programmierung im .NET Framework
Parallele Programmierung
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Parallele Programmierung
 Basis Features
 System.Threading, Mutex, Semaphor, Monitor, ..
 Basis für alle Features der Parallel Library
 (Parallel)-LINQ
 Ein Set von generischen Erweiterungsmethoden zur
parallelen Verarbeitung von Auflistungen
(Datenparallelität)
 Task Parallel Library (TPL)
 Eine Fabrik zur erleichterten Erstellung und Bedienung
von Threads in Form von Tasks
Parallele Programmierung im .NET Framework
Parallele Programmierung – Basis Features
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Basis Features
 Thread, ThreadPool
 Enthält Methoden wie Start, Queue, Abort, Join
 Mutex, Semaphor
 Enthält Methoden wie WaitOne, Release
 Keywords
 Volatile, Synchronized (Annotation), Lock
 Monitor, Barrier, Interlocked, Timer
Parallele Programmierung im .NET Framework
Parallel-LINQ (PLINQ)
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Language-Integrated Query
 Parallelisierbare Abfragesprache
 Auflistungen (In-Memory)
 XML
 SQL
 Nutzt die Daten-Parallelität von Auflistungen zur
Verteilung der Iterationen auf mehrere Threads
 Erkennt und optimiert die Parallelität der
Operation auf Basis von Heuristik
 Code Beispiele..
Parallele Programmierung im .NET Framework
Task Parallel Library (TPL)
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Task Parallel Library (System.Threading.Tasks)
 Der Zweck der TPL ist es, die Produktivität der Entwickler
zu erhöhen, indem das Hinzufügen von Parallelität und
Nebenläufigkeit zu Anwendungen vereinfacht wird
 Die TPL skaliert den Grad der Nebenläufigkeit dynamisch,
um alle verfügbaren Prozessoren möglichst effizient zu
nutzen
 Außerdem behandelt die TPL die Partitionierung der
Arbeit, die Planung von Threads im ThreadPool, die
Abbruchunterstützung, Zustandsverwaltung und andere
Details auf niedriger Ebene
 Code Beispiele..
Parallele Programmierung im .NET Framework
Asynchrone Programmierung
 Grundlagen
 Parallele Programme
 Asynchrone
Progr.
 Asynchrone Programmierung
 Await und Async Keywords
 Code Beispiele..
Herunterladen