| 

.NET C# Java Javascript Exception

4
Hat jemand ein Best Practice wie man eine Baumstruktur rekursiv durchwandert unter Einsatz der TPL (Task Parallel Library) für den möglichst effektiven Durchlauf auf Multi-Core CPU's.

Die Rekursion soll für dabei auch eine Aggregation (Summe) der Daten die am jeweiligen Leaf-Nodes hängen durchführen.

Wie man eine Rekursion durchführt ist mir schon klar, wichtig ist mir wie partitioniere ich die Tasks am besten bei grossen Bäumen? und wie minimiere ich den Concurrent Zugriff auf die Zwischenergebnisse ? Muss ich die Listen aus dem Namespace System.Collections.Concurrent einsetzen für die Zwischenergebnisse? Meine Daten die an den Nodes hängen sind Matrixen also keine native Datentypen.
News:
22.02.2011
stefc 268 1 6
1 Antwort
3
Du könntest dich am MapReduce-Algorithmus orientieren, um deine Tasks zu splitten und zu verarbeiten. Das Aufteilen und Zusammenfügen wird auch das schwierigste an dem Problem sein, denke ich. Ein Beispiel ist hier:
MapReduce-Implementierung für C#

Da das Problem nicht trivial ist, gibt's auch ein Paper zur Verarbeitung von Bäumen mittels MapReduce:
A MapReduce Style Framework for Trees
Vielleicht kannst du dir dort Ideen holen.
23.02.2011
Andy Stumpp 509 1 6
Witzig: Auf die beiden Links bin ich auch schon gestossen. MapReduce ist schon interessant, aber es fehlt mir noch das Missing Link in Richtung TPL und Partitionierung des Trees:(
stefc 23.02.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH