Entry

今日届いた本 - 『Patterns For Parallel Programming』

2011年05月30日

先日,XLsoft さんの Intel 開発製品セミナーに参加させてもらったんですけれど,そこでのネタ元本とゆことで購入しました。

Patterns for Parallel Programming (Software Patterns Series)
Timothy G. Mattson Beverly A. Sanders Berna L. Massingill
Addison-Wesley Professional
売り上げランキング: 11139

セミナーの話を少し書いておくと,タイトルが「並列プログラミングパターン」とゆことで応募者も多く,キャンセル待ちが出るほどの満員御礼だったんだとか。少し駆け足だったけれども,実際非常にためになりました。

特に参考になったのは,タスク分割の基準についてです。チャンク単位でデータを分割し,それに対応するタスクにスレッドを割り当てる方法は,大抵どこでもやってると思うんだけれども,IA 上のプログラミングでは,R/W するデータをキャッシュラインに乗せたり,SIMD 命令も利用できるようにチャンクを割り振ることで,(理論上)さらにパフォーマンスの向上を期待できるらしい。こちとら正直,スレッドプールの実装で手一杯になってしまって,そこまでは頭が回っていませんでした。処理系と CPU の相場を見ると,そろそろ Sandy Bridge の AVX 命令もお手頃になってきた頃だし,もう一度自分のコードを見直すことにします。

で,本書。今日届いたばかりなので,今回は「届いたよ」としか言えないんですけれど,パラパラと読む限り面白い。読み入ってしまって,時間が経つのを忘れてしまった。

本書はいわゆるデザパタ本で,並列プログラミングのデザインパターンを集めたものです。デザパタには GoF やら J2EE パターンやらいろいろと領分があるんだけれども,並列プログラミングに関するパターンを集めたものは,洋書でちらほら出ているものの邦書では皆無に等しいです。Appendix を除くと,本文は 252頁と少ないので,分量的にはお手軽。しかしその割に $66.99 とややお高めの価格設定になっているので,今後邦訳されるかは微妙なところです(邦訳されると6000円以上になってしまうんじゃないだろうか)。円高の今が買い時だと思う。

本書で特徴的なのは,処理系をほとんど選んでいないこと。ま,パターン本だから処理系やプラットフォームにべったり依存されると困ってしまうんだけれども,低レベルのマルチスレッドプログラミングでは,どうしても一部でプラットフォーム依存になってしまいがちです。この点,本書では,Java と MPI それに OpenMP を使い分けて,パターンを説明していて,「パターンを理解する」という目的においては,本書が掲げる言語/ライブラリでほぼすべての言語に対応できると思います。C++0x では thread ライブラリも標準でできたんですけれど,間に合わなかった様子。問題はあまりないけれど,少し口惜しい。

Sandy Bridge には Turbo Boost 2.0 が実装されたものの,やはり今後は動作クロックよりもコア数を増やすことで CPU の性能を向上させる動きが主流になるのだと思います。HPC なんかに手を出さない限り,並列プログラミングで特別なことができる必要はないのだろうけれども,対応できないところはそれなりに淘汰されるはず(とゆことは再三言っている)。64bit 化も含めて,そろそろ対応しないと,本格的に取り戻せないロスになる可能性があるんでねいか,とかとか。ま,他のとこの事情は知ったこっちゃないんですけど,比較的処理速度が求められるパッケージを作ってるとこでは,もうそゆのが常識だったりして(他のとこもそうか)。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN