並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング

副題には「実践マルチコア/マルチスレッドプログラミング」とある。帯には「スレッドモンキーへの道」とあって、笑ってしまったが、実際に本書の中にスレッドモンキーの定義が書いてあって少し笑った「コードモンキーが軽蔑の意味も含むのに対し、スレッドモンキーは尊敬の称号です」だそうだ。
まだ最後まで読み切っていない(5章の最後まで、目次はこちらにある)ので、とりあえず現状でのメモ書きに留める。
The Art of Multiprocessor Programming 並行プログラミングの原理から実践までよりも読みやすい(翻訳の違いなのか?)
どういった逐次処理が並行処理へ変更可能なのか丁寧に説明してある。これは良い
逐次処理から並行処理に変更するために、タスク分解とデータ分解に分けて説明してある。データ構造(並列に分けられる処理の塊(チャンク)の形)は参考になった。
Windows/Linuxなど、OSに依存しない説明を心がけている。pthreadの説明に併せてWindowsスレッドの解説がある。こういう視点で書かれた本は貴重かもしれない。
インタリーブ数(複数スレッドを切り替えながら実行する際に、とりうる処理の順番の総数)は、エントロピーに似ている。本書のインタリーブ分析を実践しようと思うとちょっと考える必要がある(インタリーブ数は簡単に増えるので、自分の頭で追える範囲に収めないと)
amdahlの法則の説明は物足りなさを感じたが、要点のみを簡潔に説明してあるので初めて触れる人には親切かもしれない。
こういう感じ。実践的な内容を丁寧に噛み砕いている感じ(実際本書にも「並行プログラミングには一般的な科学よりも技巧的な面があります」とある)でこの手の本では読みやすい方だと思う。