並列アルゴリズムの一般的な話だけでなく、具体的なアルゴリズムの逐次版を並列版に変える話が載っていて面白かった。
後半のアルゴリズムの並列化では、ソートやサーチやグラフアルゴリズムについて扱われているが、一目読んだ限りでは簡単でなくてまだ理解できていない。
サンプルコードが色々なスレッドライブラリを使って実装されているのが、少し読みづらかったです。
メモ
並列(parallel)と並行(concurrent)の違い
マルチコア・プロセッサなどで、同時に実行される場合が並列。
マルチスレッドだけどシングルコアなどの場合が並行。
ただし並行は並列を包含する。
言い換えると同時に複数のスレッドが実行状態であれば並行
高速化率
逐次実行時間と並列実行時間の比率。
少ない入力データだと稀に高速化率が並列数を上回る場合もある(キャッシュの影響)
スレッドライブラリ
単純なスレッドの実装を使うよりも、以下の様なライブラリを使うほうが便利。
並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング
- 作者: Clay Breshears,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/12/21
- メディア: 大型本
- 購入: 12人 クリック: 598回
- この商品を含むブログ (36件) を見る