Was sind die aktuellen besten Optionen für eine CPU-intensive .NET app Parallelisierung?

stimmen
17

Dies ist eine offene Frage. Welche Ansätze sollte ich beachten?

Veröffentlicht am 04/08/2008 um 17:30
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
8

Ihr erster Schritt ist die Parallelität in Ihrem Problem zu finden und zu verstehen. Es ist wirklich einfach Multi-Threaded - Code zu schreiben , die nicht besser als der Single-Threaded - Code führt sie ersetzt. „Patterns für Parallel Programming“ (Amazon) ist eine großartige Einführung in die wichtigsten Konzepte.

Sobald Sie ein funktionierendes Design haben, starten Sie die Artikel der „Gleichzeitigkeit“ in der MSDN Magazine Archive zu lesen (Link) , vor allem etwas von Jeff Richter geschrieben. Diejenigen , gibt Ihnen die Muttern und Schrauben Material auf den Threading - Konstrukten spezifisch auf Windows und .NET. (Der Multi-Threading - Abschnitt in Richters „CLR via C # (Amazon) ist kurz, aber sehr aufschlussreich - sehr zu empfehlen.)

Beantwortet am 30/08/2008 um 23:32
quelle vom benutzer

stimmen
6

Es gibt einige parallele Erweiterungen zu .NET , die derzeit in der Prüfung sind und verfügbar auf Microsofts Parallel Computing Developer Center . Sie haben ein paar interessanten Artikel , die Sie wie Parallel foreach und eine parallele Version von LINQ erwarten würden PLINQ genannt. Einige der besten Informationen über die Erweiterungen sind auf Channel 9 .

Beantwortet am 04/08/2008 um 17:41
quelle vom benutzer

stimmen
2

@Larsenal

Wenn Sie möchten , außerhalb von .NET verzweigen es viel Diskussion über Intel war Threading Building Blocks , die eine parallele Bibliothek für C ++ ist.

Beantwortet am 04/08/2008 um 18:41
quelle vom benutzer

stimmen
2

Ich denke, wir könnten auch nicht-.NET-spezifische Ansätze umfassen die Verarbeitung parallel, wenn diejenigen unter den besten Optionen sind zu berücksichtigen.

Beantwortet am 04/08/2008 um 18:32
quelle vom benutzer

stimmen
0

Es gibt viele Optionen und die beste Lösung hängt von der Art des Problems Sie versuchen zu lösen. Wenn Sie versuchen , eine lösen embarassingly parallel Problem dann zu teilen und die Aufgaben Parallelisierung wird trivial sein. In diesem Fall kommt die Herausforderung bei der Verteilung und Verwaltung der verwendeten Daten.

Einige Vorschläge wären:

Beantwortet am 30/08/2008 um 23:46
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more