2008-08-04 6 views

Antwort

6

Es gibt einige parallele Erweiterungen zu .NET, die derzeit getestet werden und bei Microsofts Parallel Computing Developer Center verfügbar sind. Sie haben ein paar interessante Elemente, die Sie erwarten würden, wie Parallel foreach und eine parallele Version von LINQ namens PLINQ. Einige der besten Informationen zu den Erweiterungen finden Sie unter Channel 9.

2

Ich denke, wir könnten auch nicht-.NET-spezifische Ansätze für die parallele Verarbeitung einschließen, wenn diese zu den besten Optionen gehören, die berücksichtigt werden müssen.

2

@Larsenal

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

8

Ihr erster Schritt ist es, die Parallelität in Ihrem Problem zu finden und zu verstehen. Es ist wirklich einfach, Multithread-Code zu schreiben, der nicht besser als der Singlethread-Code ist, den er ersetzt. "Patterns for Parallel Programming" (Amazon) ist eine gute Einführung in die Schlüsselkonzepte.

Sobald Sie ein funktionsfähiges Design haben, lesen Sie die Artikel im Thema "Concurrency" in den MSDN Magazin-Archiven (link), insbesondere alles von Jeff Richter geschrieben. Diese werden Ihnen die Schrauben und Muttern in den Threading-Konstrukten für Windows und .NET geben. (Der Multi-Threading-Abschnitt in Richters "CLR über C# (Amazon) ist kurz, aber sehr aufschlussreich - sehr empfehlenswert.)

0

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

Einige Vorschläge wären:..