方向転換:単体プロセッサからマルチプロセッサへ
keywords
並列処理
パイプライン処理
命令レベル並列性
電力の壁にぶつかったため、コンピュータメーカーの対応は変わってきた
2006年時点では全てのメーカーが1つのチップに複数のプロセッサ(コア)を載せた「マルチコア・マイクロプロセッサ」を出荷するようになった
コア数の増大の恩恵を受けるためにはプログラマはそのためのプログラミングをしなければならない
並列処理自体は昔からコンピュータにとって重要だったが、並列性をプログラマが意識しなければならないほど表に出てくることは少なかった。
パイプライン処理
命令レベル並列性を利用している
ハードウェア上での並列的な動作は抽象化されていて、プログラマもコンパイラもハードウェアは逐次的に命令を実行していると思っていて構わないようになっている
ハードウェアの並列性をプログラマに意識させる仕組みは「タブー」だった。難しすぎるから。
プログラマにとって並列プログラムを明示的に組むことは難しい。なぜか?
そもそも性能を上げるためのプログラミングだから
負荷の平準化や、調整のオーバーヘッドが並列処理の利点を台無しにしないようにアプリケーションを分割しなければならないから
意思疎通と同期のオーバーヘッド
パターソン&ヘネシーのなかで「並列革命」が関連する内容リスト
並列処理と命令:同期
並列処理とコンピュータの算術演算:半語並列性
命令を通じた並列処理
並列処理と記憶階層:キャッシュ・コヒーレンス
並列処理と記憶階層:RAID
第6章そのものを並列処理に費やす
GPU
NVIDIA GPU