CPUフレンドリーなコードを書く:ハードウェアを意識したプログラミングガイド

この記事はドライブスルーレストランのアナロジーを用いて、命令パイプライン、メモリキャッシング、投機的実行という3つの重要なCPUアーキテクチャの概念を説明しています。著者は、これらのメカニズムを理解し、それらと連携して動作するコードを書くこと(ハードウェアを意識したプログラミング)によって、ソフトウェアのパフォーマンスを劇的に向上させることができると主張しています。この記事では、スーパースカラー実行を活用するためのループアンローリング、キャッシュを最大限に活用するためのデータ構造のレイアウトとアクセスパターンの最適化など、コード最適化の手法を詳しく説明しています。最終的に、著者は、効率的なコードを書くことは、まずクリーンで保守しやすいコードを書くこと、次にプロファイリングしてパフォーマンスのボトルネックを特定すること、そして最後にハードウェアを意識したプログラミングの原則を適用してこれらのボトルネックに対処すること、だと強調しています。
続きを読む