BT

Microsoft .NETでの並列プログラミング

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 猪股 健太郎 フォローする 0 人のフォロワー 投稿日 2010年10月13日. 推定読書時間: 2 分 |

原文(投稿日:2010/09/02)へのリンク

Patterns&Practicesチームが、.NETで並列プログラムを書くためのガイダンスである『Microsoft .NETでの並列プログラミング』という書籍をリリースした。この本には、並列プログラミングのための6つのデザインパターンがサンプルコード付きで収録されている。

『Microsoft .NETでの並列プログラミング』は、1つの課題を並列に実行できる複数のタスクに再構成し、並列プログラムのパフォーマンスに劇的な影響を与えてしまいかねない同期処理を避けるために、並列タスクを連携させたりタスク間でデータを共有したりするといった困難な作業に取り組んでいる。そのために、この本では.NET 4のタスク並列ライブラリ (TPL)やPLINQを使った6つのデザインパターンを紹介している。

  1. 並列ループ (Parallel Loops) : 複数の同じようなデータ入力に対し同じ処理を適用したい場合に使用する。
  2. 並列タスク (Parallel Tasks) : 複数の異なるデータ入力に対しそれぞれ異なる処理を適用したい場合に使用する。
  3. 並列集約 (Parallel Aggregation) : “並列集約は、部分的な処理結果をマージするアルゴリズムに特別な処理ステップを追加するものです。このパターンは縮退処理を表現しており、Map/Reduceはこのパターンの変化形の1つです。”
  4. 先物 (Futures) : データフローと制御フローを統合する場合に使用する。“先物 (Futures)とは、最初は計算結果が不明ですが後になって結果を利用できるようになるような場合に、計算結果の代わりとするものです。結果を計算するプロセスは他の計算処理と並列で動作させることができます。”
  5. 動的タスク並列処理 (Dynamic Task Parallelism) : 再帰的分解という名前でも知られるパターンで、計算処理の実行中に動的に生成されたタスクを追加できる。
  6. パイプライン (Pipelines) : このパターンは並列タスクの概念を並行キューの概念と結合するもので、プログラムはデータ入力のタスクを並行に実行できるが、データが処理される順番は尊重する。

各々のデザインパターンにはC#VB.NETF#のコードサンプルが用意されており、すべてのコードサンプルはCodePlexにある『Microsoft .NETでの並列プログラミング』プロジェクトからダウンロードできる。このプロジェクトは、並列パターンライブラリ(PPL)非同期エージェントライブラリを使っているC++開発者のために関連書籍を作ろうとしているpatterns & practicesチームの意図に言及している。

このガイドには、並列デザインパターンをFaçadeパターンやDecoratorパターンやRepositoryパターンといった他のOOPパターンと統合することについてのアドバイスが含まれている。また、Visual Studio 2010で並列アプリケーションをデバッグしたりプロファイリングしたりする方法も説明している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT