Parallele Programmierung mit PLINQ und .NET 4.0

  

» Von Peter Monadiemi, 09.03.2010 15:12.

Kosten-Nutzen-Analyse

Wird eine LINQ-Abfrage durch AsParallel zu einer parallelen Abfrage, bedeutet dies aber nicht zwingend, dass eine parallele Ausführung stattfindet. PLINQ durchläuft vor der Ausführung eine ,,Query Analysis"-Phase. In dieser Phase prüft PLINQ, ob eine parallele Ausführung für die aktuelle Abfrage überhaupt eine verbesserte Laufzeitgeschwindigkeit erzielen würde. Endet diese Prüfung negativ, wird die Abfrage weiterhin sequentiell ausgeführt. Basis der Entscheidung ist nicht, was naheliegend wäre, die Datenmenge, sondern die Struktur der Abfrage. Verwendet die Abfrage z.B. Operatoren wie Take, SkipWhile, Group by, wird die Abfrage mit höherer Wahrscheinlichkeit sequentiell und nicht parallel ausgeführt. Wenn es sein muss, kann PLINQ über die WithExectionMode mit der Einstellung ParallelExecutionMode.ForceParallelism zu einer parallelen Ausführung gezwungen werden.

Ein weiterer wichtiger Punkt, der in diesem Zusammenhang beachtet werden muss, betrifft die Reihenfolge der Ausgabeelemente. Bei einer rein sequentiell ausgeführten LINQ-Abfrage bleibt die Reihenfolge von Ein- und Ausgabeelemente gleich. Das erste Element einer Datenquelle wird als erstes verarbeitet und zurückgegeben. Bei PLINQ findet eine parallele Ausführung statt, daher kann die Reihenfolge, in der die einzelnen Elemente verarbeitet werden, im Vorfeld auch nicht vorhergesagt werden. Mit Hilfe der Methode AsOrdered bleibt die ursprüngliche Reihenfolge der Elemente bei der Ausgabe erhalten. Der Nachteil: Darunter leidet die Verarbeitungsgeschwindigkeit, da die Elemente vor der Ausgabe wieder korrekt eingeordnet werden müssen. Parallele Programmierung bedeutet daher iauch, Kompromisse zu schließen.

Über den Autor


Marc André Zhou ist Dipl. Inf. (FH) und erwarb zusätzlich den Titel Master of Science. Derzeit ist er für die Logica Deutschland GmbH & Co. KG als Senior Consultant tätig.
Weitere Informationen finden Sie auf seinem Blog unter www.sw-consultant.de.

Werbung

KOMMENTARE

Keine Kommentare

KOMMENTAR SCHREIBEN

*
*
*
*

Alles Pflichfelder, E-Mail-Adresse wird nicht angezeigt.

Die Redaktion hält sich vor, unangebrachte, rassistische oder ehrverletzende Kommentare zu löschen.
Die Verfasser von Leserkommentaren gewähren der IDG Communications AG das unentgeltliche, zeitlich und räumlich unbegrenzte Recht, ihre Leserkommentare ganz oder teilweise auf dem Portal zu verwenden. Eingeschlossen ist zusätzlich das Recht, die Texte in andere Publikationsorgane, Medien oder Bücher zu übernehmen und zur Archivierung abzuspeichern.