22

これは自由回答形式の質問です。どのようなアプローチを検討する必要がありますか?

4

5 に答える 5

10

最初のステップは、問題の並列性を見つけて理解することです。置き換えるシングルスレッド コードよりも優れたパフォーマンスを発揮するマルチスレッド コードを作成するのは非常に簡単です。「Patterns for Parallel Programming」(Amazon)は、重要な概念の優れた入門書です。

実行可能な設計ができたら、MSDN マガジン アーカイブ(リンク)の「同時実行」トピックの記事、特に Jeff Richter によって書かれた記事を読み始めます。これらは、Windows と .NET に固有のスレッド構造に関する基本的な内容を提供します。(Richter の「C# による CLR (Amazon) 」のマルチスレッド セクションは短いですが、非常に洞察力に富んでおり、強くお勧めします。)

于 2008-08-30T22:32:36.390 に答える
6

現在テスト中であり、Microsoft のParallel Computing Developer Centerで入手できる .NET の並列拡張機能がいくつかあります。それらには、Parallel foreach や PLINQ と呼ばれる LINQ の並列バージョンなど、期待される興味深い項目がいくつかあります。拡張機能に関する最良の情報の一部はChannel 9にあります。

于 2008-08-04T16:41:23.410 に答える
2

.NET 固有ではないアプローチを並列処理に含めることもできると思います。

于 2008-08-04T17:32:13.493 に答える
2

@ラルセナル

.NET の外に分岐したい場合は、C++ の並列ライブラリであるIntel のThreading Building Blocksについて多くの議論がありました。

于 2008-08-04T17:41:01.307 に答える
0

多くのオプションがあり、最適なソリューションは、解決しようとしている問題の性質によって異なります。途方もなく並列化された問題を解決しようとしている場合、タスクを分割して並列化することは簡単です。その場合、使用されるデータの配布と管理が課題になります。

いくつかの提案は次のとおりです。

于 2008-08-30T22:46:12.893 に答える