パタヘネChapter2 part3

2.4性能評価用のプログラムの選定p.60

  • 異なるコンピューターシステムを評価するには、各コンピューターに同じ負荷をかけて実行時間を比較すれば良い。
  • しかし、たいていのユーザはそうのようなことが出来る状況にない。
  • そこでベンチマークと呼ばれるコンピューター性能測定を目的としたプログラムを使用する。
  • 適切なベンチマーク選定して性能を測定したならば、次に性能評価報告を書く。
  • その際に重要な点は再現性(reproducibility)である。すべての仕様を列挙する。

2.5性能の比較とまとめ方。p.64

総合的な相対性能を比較する最も簡単な方法は、それぞれのプログラムの合計実行時間を使用する。
合計実行時間の代わりに平均実行時間を用いる方法もある。算術平均(arithmetic mean)実行時間は、
\frac{1}{n}\sum_{i=1}^{n} ti
で表される。
なお時間i=tiである。
他にも各プログラムに重み係数wiをかける加重算術平均(weighted writhmetic mean)というのもある。

2.6実例:SPEC95ベンチマークおよび最近のプロセッサの性能p.64



2.7誤信と落とし穴p.68

落とし穴:マシンのある面を改善することによって、その改善度に等しい性能向上を期待すること。

改善を行った後のプログラム時間は

  • 改善後の時間 = (改善の影響を受ける時間/改善度) + 改善の影響を受けない時間。

である。
ある面を改善したことによる、性能の向上は、その改善された機能が使用される割合に制約されるのである。
この概念をコンピューターの世界ではAmdahlの法則(Amdahl's law)という。
経済学では収穫逓減の法則と言う。
道路を整備して、車をチューンアップしても、信号で止まる時間はさけられない。みたいな感じかな。


落とし穴:性能を表すために正規化した実行時間の算術平均を使用すること。
算術平均は基準マシンに左右される。
Aを基準にして正規化するとAの方がBより速く、
Bを基準にして正規化するとBの方がAより速くなる。ということが起こりうる。
この代わりに、幾何平均(geometric mean)を用いることもある。
計算式は
\sqrt[n]{\prod_{i=1}^{n}ETi}

実行時間比i = ETi
である。

2.8終わりにp.75

実行時間と他の重要な測定項目の関係式

  • 秒数/プログラム = (実行命令数/プログラム)× (クロックサイクル数/実行命令数) × (秒数/クロックサイクル数)