性能評価・プロファイリング

あるプログラムが計算律速かメモリ律速かを確かめる方法として、CPUの周波数を変えて実行時間を測った。メモリ律速なら一般にどのような結果になるか。

  1. A周波数に反比例して、実行時間が短くなる
  2. B周波数を上げても実行時間はあまり短くならない
  3. C周波数を上げると、実行時間が長くなる
答えと解説を見る

正解:B. 周波数を上げても実行時間はあまり短くならない

計算律速のプログラムは、CPUの中の計算に時間を使っているので、周波数を1.5倍にすると実行時間はほぼ1/1.5になります。メモリ律速のプログラムは、主記憶からデータが届くのを待つ時間が大部分で、その待ち時間はCPUの周波数を上げても変わらないので、実行時間はあまり変わりません。性能カウンタと合わせてこの性質を使うと、どちらの改善に力を入れるべきかが分かります。

  • A. それは計算律速の場合の結果です。
  • B. 正しい。メモリの速さはCPUの周波数で変わらないからです。
  • C. 周波数を上げて遅くなることは普通ありません。
この分野を解く 分野ページへ

性能評価・プロファイリングのほかの問題

  1. Rooflineモデルで、ある処理がメモリ帯域で制限される領域にあると分かったとき、性能を上げる方向として正しいものはどれか。
  2. STREAMベンチマークで主に測るものはどれか。
  3. 並列プログラムのスケーラビリティを調べるときの方法として最も適切なものはどれか。
  4. 8コアで並列に実行したところ、1コアのときより6倍速くなった。並列効率はいくらか。
  5. 性能を測るための仕組みを入れたことで、測りたいプログラムの動きそのものが変わってしまう現象を何と呼ぶか。