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