News

Parallele Programmierung mit PLINQ und .NET 4.0

09.03.2010 | 15:12 Uhr

Mit Hilfe der bei .NET 4.0 integrierten Task Parallel Library und deren Erweiterungsmethoden lassen sich auch LINQ-Abfragen einfach parallel ausführen. Gerade in diesem Bereich dürfte sich der Umstand, dass eine Abfrage nicht mehr nur auf einem, sondern auf zwei oder mehr Kernen gleichzeitig ausgeführt wird, vorteilhaft auswirken.

von Marc André Zhou

Die Abfragesprache Language Integrated Query (LINQ) war eine der wichtigsten Neuerungen bei .NET 3.5. LINQ bietet eine mächtige Abfragesyntax, die direkt in den Quellcode eingegeben wird, und mit der sich beliebige Collections typisiert abfragen lassen. Mit .NET 4.0 wird LINQ um die Möglichkeit erweitert, nahezu jede LINQ-Abfrage auch parallel auszuführen zu können. Die Grundlage ist die PLINQ Execution Engine (Abbildung 1), die auf der ebenfalls mit .NET 4.0 neu eingeführten Task Parallel Library basiert.

PLINQ besteht aus vier Teilen:

1) Query Analysis: Analyse der Abfrage
2) Data Partitionierung: Algorithmen zur Aufteilung der Datenmenge
3) Operator Type: Abfrage-Operatoren
4) Merging: Zusammenführung der Ergebnisse

Das PLINQ-Programmiermodell ist relativ simpel, die Syntax von LINQ bleibt dabei vollständig erhalten. PLINQ basiert wie LINQ auf Erweiterungsmethoden ( Extension Methods), die von der IEnumerable-Schnittstelle stammen. PLINQ bringt mit ParallelEnumerable eine neue Schnittstelle mit, welche die bereits vorhandenen LINQ-Erweiterungsmethoden noch einmal erweitert.

Listing 1 veranschaulicht den Umgang mit der AsParallel-Erweiterungsmethode.

Listing 1: Paralleles LINQ mit der AsParallel-Methode
static void ListCustomers()
{
var Customers = GetCustomers();
var Orders = GetOrders();
var result = from customer in Customers.AsParallel()
join order in Orders.AsParallel()
on customer.CustomerID equals order.CustomerID
select customer;
foreach (var item in result)
Console.WriteLine("Customer: {0}", item.CustomerName);
}


vergrößern


Abbildung 1: Die PLINQ Execution Engine führt LINQ-Abfragen parallel aus

  Seite 1 von 5 Nächste Seite »


anzeige


anzeige

EMC PARTNERZONE
EMC PARTNERZONE
Hier finden Sie Strategiepapiere und Informationen von EMC zum Thema Backup & Recovery...

» zur Partnerzone
SWISS-IT-INDEX
SWISS-IT-INDEX
Wie investieren Sie in Ihre Zukunft? Die grosse Umfrage. iPhone 4 zu gewinnen!

» zum Artikel
» zur Umfrage
UMFRAGE
Was tun Sie, wenn es bei Ihrem Handy-Provider keine Daten-Flatrate mehr gibt?
Ich wechsle sofort den Provider
Ist mir sehr recht, ich will nur zahlen, was ich verbrauche
Ist mir egal, das zahlt sowieso die Firma
Spielt keine Rolle, ich telefoniere nur
abstimmen
8 Windows-Tricks
8 Windows-Tricks
Richten Sie Windows so ein, dass Ihre Aufgaben im Nullkommanichts erledigt sind.

» zum Artikel
Alles nur geklaut
Alles nur geklaut
Computerworld.ch zeigt, wo Windows von Apple geklaut hat - und umgekehrt.

» zum Artikel
Beliebte iPhone-Apps
Beliebte iPhone-Apps
Hier kommt eine Auswahl der beliebtesten iPhone-Apps

» zum Artikel
Geheimes Windows 7
Geheimes Windows 7
Computerworld stellt 15 geheime Programme und Extras des neuen Betriebssystems vor.

» zum Artikel
Raffinierte Tipps
Raffinierte Tipps
Windows 7 total: Wir haben besonders raffinierte Tricks zusammengestellt...

» zum Artikel
NEWSLETTER
Abonnieren Sie jetzt!
» Infos zum Newsletter
PROMOTION


FCO2 - die kleinste Serienvideokamera der Welt.

» CHF 99.90
ICT-PRESSETICKER