parallele programmierung im.net framework darmstadt, 08.12.2014 präsentation am beispiel von...
Post on 06-Apr-2015
104 Views
Preview:
TRANSCRIPT
Parallele Programmierung im .NET Framework
Darmstadt, 08.12.2014Präsentation am Beispiel von C-Sharp (C#)
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
Generika
Delegate
Lambda
Erweiterungsmethoden
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen - Generika
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
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen - Delegate
Delegate Es Referenztyp zum Kapseln anonymer Methoden
Bekannt aus C++ (Funktionszeiger)
Im Gegensatz zu Funktionszeigern sind Delegate
typsicher
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Generische Delegate
Generische Delegate
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Lambda
Lambda Ausdrücke Eine anonyme Funktion mit der Instanzen von
Delegaten erstellt werden können
Typen von Lambda Parametern werden automatisch
vom Compiler übersetzt
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Erweiterungsmethoden
Erweiterungsmethoden Erlaubt es zu Klassen neue Methoden hinzuzufügen
ohne von diesen abzuleiten oder die Klasse neu zu
kompilieren
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Praktisches Beispiel
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Grundlagen – Praktisches Beispiel
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Parallele Programmierung
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
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Parallele Programmierung – Basis Features
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
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Parallel-LINQ (PLINQ)
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..
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Task Parallel Library (TPL)
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..
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
Parallele Programmierung im .NET Framework
Asynchrone Programmierung
Asynchrone Programmierung Await und Async Keywords
Code Beispiele..
4 Grundlagen4 Parallele Programme4 Asynchrone Progr.
top related