Parallel ExtensionsBei den Parallel Extensions (parallele Erweiterungen), auch bekannt als Parallel Framework Extensions (PFX), handelt es sich um eine Bibliothek zur Unterstützung der parallelen Programmierung bei Verwendung des Managed Code des Microsoft .NET-Frameworks. Die Parallel Extensions bestehen grundsätzlich aus zwei Teilen: Parallel LINQ (PLINQ) und der Task Parallel Library (TPL).[1][2] Die Bibliothek verfügt über verschiedene Datentypen (referenzierte Objekte) und Funktionen zur Verwaltung und Steuerung von parallelen Prozessen während der Laufzeit.[3] Die Bibliothek erschien erstmals (als CTP) am 29. November 2007[4] und wurde im Dezember 2007 sowie im Juni 2008 aktualisiert.[3] Seit der Version 4.0 des .NET-Frameworks sind die Parallel Extensions fester Bestandteil des Frameworks und können in allen .NET-Sprachen verwendet werden.[5] Parallel LINQParallel LINQ (PLINQ) bietet die Möglichkeit, LINQ-Abfragen parallel auszuführen, sofern es gegenüber einer sequentiellen Abfrage einen Zeitvorteil (SpeedUp) schaffen kann. Dabei werden entweder mehrere LINQ-Abfragen parallel aufgerufen oder die Datenmenge selbst parallel zusammengetragen. Das Ziel von PLINQ dabei ist, die Rechenzeit für die Abfragen zu minimieren. In der Regel funktioniert die Parallelisierung mit allen Abfragearten. PLINQ kann über das Interface IParallelEnumerable verwendet werden. Intern verwendet PLINQ die TPL für die Parallelisierung.[3][6] Task Parallel LibraryDie Task Parallel Library (TPL) ist die Kernkomponente für die Parallelisierung innerhalb des .NET-Frameworks.[7] Sie ermöglicht es außerdem, bestimmte Bereiche als Task oder Future zu maskieren. Ein Task ist ein Abschnitt, der unabhängig (und somit parallel) vom Rest des Programms ausgeführt werden kann. Die TPL erstellt für dieses einen eigenen Thread, welcher jedoch von der TPL selbst verwaltet wird und somit keinen unnötigen Overhead (wie er sonst benötigt wird) erzeugt. Der Entwickler selbst muss sich weder um die Verwaltung der einzelnen Threads noch um die Anzahl der Prozessorkerne kümmern, da dies vollständig von der TPL verwaltet wird.[2] Die TPL erkennt mögliche parallel auszuführende Aufgaben (Tasks) mittels bestimmter Code-Abschnitte (z. B. Schleifen wie Als Future wird ein Task bezeichnet, der ein Ergebnis zurückliefert, welches in einem parallelen Prozess berechnet wurde. Das Ergebnis wird dann bei Fertigstellung vorgehalten, bis es abgerufen wird.[2] Sollte das Ergebnis vor Fertigstellung abgefragt werden, wird der anfragende Thread angehalten, bis das Ergebnis berechnet wurde.[7] Die TPL kann über die Parallel-Klasse verwendet werden. Diese Klasse stellt drei statische Methoden zur Verfügung:
DataflowDataflow[8][9] ist eine .NET-Bibliothek auf Basis von TPL mit vordefinierten Blöcken für die datenstromorientierte Programmierung. ArchitekturDas Konzept der Parallel Extensions in .NET basiert darauf, bestimmte Code-Abschnitte in einen Siehe auch
Einzelnachweise
|
Portal di Ensiklopedia Dunia