マルチコアプロセッサの普及に伴い、コードを記述してその利点を生かすことが賢明になると思います。私は.NETの開発者であり、どこから始めるべきかわかりません(真剣に、私はの手がかりがありませんどこから始めるか)。助言がありますか?マルチコアプロセッサを使用する.NETアプリケーションの作成方法
答えて
マルチコアプログラミングは、基本的にマルチスレッドプログラミングです。アプリケーションがマルチスレッドである限り、オペレーティングシステムはどのコアをどのスレッドで実行するかを決定します。
それでは、あなたの本当の疑問は、どんな種類のアプリケーションがマルチスレッド化のメリットがあるのでしょうか?そのようなアプリケーションを考え、複数のスレッドをインスタンス化して、問題の同等の部分を解決します。
これはgood starting placeになることがあります。
最善の方法は、parrallel拡張フレームワークの最新のCTPを取得し、サンプルコードを使用して開始することです。
多分、パラレルエクステンションが少し上にあります。手始めにスレッドを手動で開始して、すべての問題を理解し、基本を学ぶべきではありませんか? –
私はこれらを通して学ぶことがより良いと思う傾向がある(したがって、.net 4.0に関する情報を探すための私の答え)。基本的には、すべてをフックする方法に費やす時間が少なくて済み、パラレルがロジックにどのように影響を与えるかに時間がかかります。そして、ソースが利用できない場合は、リフレクターでピークを見ることができます。 – eglasius
ルック。それはそれのための別の構成を追加することになります。
.NETが使用する非同期プログラミングモデルを読んでください。デリゲートをスレッドプールで実行できるようにするBeginXXXとEnxXXXのパラダイムを研究します。
ストリームクラスにはすべて、非同期IOを実行できるBeingXXX、EndXXXメソッド(BeginRead、EndReadなど)があります。 IOベースのものに取り組んでいるなら、これらのメソッドを使用して並列性を高めることが望ましいでしょう。
"続きを読む..."あなたはこれらのパラダイムを理解しています。私が始めることを示す資料はありますか? 感謝! –
http://msdn.microsoft.com/en-us/magazine/cc163467.aspxを見てください 件名にJeffrey Richterが何かを読んでみてください。また、Joe Duffyの記事(http://msdn.microsoft.com/en-us/magazine/cc163467.aspxなど)を探すこともできます。彼はマルチスレッド化に関する優れた本を持っています。 – Sean
私は非常に多くの本を推奨しませんが、Joe DuffyのConcurrent Programming on Windowsは単純に置き換えられません。
プロジェクトを特定の機能を実行するために特化したさまざまなスレッドに分割するだけで、複数のコアを利用できます。 OSは、最も利用可能なプロセッサコアへの異なるスレッドのスケジューリングを処理します。
JaredParのように、Parallel Extensionsはかなり良いです。私はそれらと少し演奏し、彼らは使いやすくパフォーマンスを追加するのが簡単です。
私が大好きな構成は、Parallel.ForEach()とPLinqでした。
Parallel.ForEachは、DotNet 2.0コレクションにあるForEach(デリゲート)関数に似ています。アクションデリゲートをとり、それを並行して実行します。
Plinqを使用すると、通常のLinqクエリを、クエリの最後に.AsParallel()を追加して並列に実行できます。
Jaredが詳細情報を掲載したリンクを確認してください。
- 1. .Net 3.5 on i7マルチコアプロセッサ
- 2. スタンドアロンのautocad .netアプリケーションの作成方法
- 3. .NETでマインドマップベースのツリービューウィンドウベースのアプリケーションを作成する方法
- 4. MongoDBで.NETを使用してインデックスを作成する方法
- 5. .Netを使用してSqlServerデータベースバックアップを作成する方法は?
- 6. .net report viewerを使用してガントチャートを作成する方法?
- 7. .NETコアを使用してWindowsアプリケーションを作成する
- 8. HylaFax、.netアプリケーションからの使用方法
- 9. .Netテクノロジで勝利とWebアプリケーションの試用版を作成する方法
- 10. .netプロジェクト用の.exeファイルの作成方法と使い方は?
- 11. Xcodeアプリケーションで使用するカスタムベクターアイコンを作成する方法
- 12. tinyMCEを使用するSWTアプリケーションの作成方法は?
- 13. ネオンイントリンシックのマルチコアプロセッサですべてのネオンユニットを効率的に使用する方法
- 14. マルチコアプロセッサでCRxレジスタにアクセスする方法
- 15. apiを使用してquickbloxアプリケーションを作成する方法は?
- 16. HTML5を使用してAndroidアプリケーションを作成する方法
- 17. .NET GUIを使用したHaskellアプリケーションの作成
- 18. ダイナミック/バーチャルページを使用した.NET Webアプリケーションの作成
- 19. MATLABコードを使用した.NETアプリケーションの作成
- 20. .NETアプリケーションのネットワーク使用率をプロファイルする方法
- 21. COMオブジェクトを使用する.NETアプリケーションの展開方法
- 22. matlabでDLLを作成し、これらのDLLを.Netアプリケーションで使用する方法
- 23. VB6で.NETアプリケーションで使用するためのDLLを作成する
- 24. Dropwizardアプリケーション用のweb.xmlの作成方法
- 25. .NETアプリケーションでメモリ使用量を判断する方法
- 26. 分散アプリケーションで.Net WorkFlow 4.0を使用する方法
- 27. .NETアプリケーションでApp.Configファイルを使用する時期/方法
- 28. .NET 3.5でアプリケーション設定を使用する方法Windowsフォーム
- 29. 新規作成/アプリケーションのインスタンスを再利用する(Windows、.NET、WPF)
- 30. MVC .net Webアプリケーションをインストールするためのセットアップファイルの作成方法?
開始するには、私は4つのスレッド(私はクワッドコアマシンを持っています)から回転するものを書きますと思います。各スレッドは別々のコンソールアプリケーションを実行し、1〜2分(CPU使用率の急上昇)の計算を強要します。 この場合、100%のCPU使用率が必要ですか? –
それはかなり正確でなければなりません。 –
ありがとうございました!私は今これをかなりよく理解しています。特定の種類のアプリケーションだけでは、4つのコアが軽度に必要であると考えられることは意味があります。 –