今回は CPU クロックを変化させての実験を行った。環境は Intel(R) Xeon(R) CPU 5160 @ 3.00GHz で、2.00GHz と 3.00GHz の2通りに変化させ、実行時間がどのように変化するか調べた。
まず、1プロセスで実行させた場合、クロック変化の比率(x 1.50)に比べ、x 1.37 に留まってしまっているが、もちろん異なったダイ上のコアでの2プロセスで実行させても、ほぼ同じ比率 (x 1.36) である。しかしながら CPU 内での何らかの処理によって、クロック変化の比率分だけの効果を得られていないようだ。
また、L2 を共有したコア上での2プロセス実行させると、性能が明らかに低下する。しかしながら、クロックの変化により実行時間も変化する。それも x 1.29 と他の場合と比べそこまで低速化していない。このことから、メモリバンド幅だけに依存しているのではないことが推測される。メモリバンド幅が飽和しているのであれば、メモリバンド幅だけに依存し、クロックが変化しても実行時間は変化しないからだ。違ったアーキテクチャの CPU でも実験してみるといろいろわかるかるかもしれない。
まず、1プロセスで実行させた場合、クロック変化の比率(x 1.50)に比べ、x 1.37 に留まってしまっているが、もちろん異なったダイ上のコアでの2プロセスで実行させても、ほぼ同じ比率 (x 1.36) である。しかしながら CPU 内での何らかの処理によって、クロック変化の比率分だけの効果を得られていないようだ。
また、L2 を共有したコア上での2プロセス実行させると、性能が明らかに低下する。しかしながら、クロックの変化により実行時間も変化する。それも x 1.29 と他の場合と比べそこまで低速化していない。このことから、メモリバンド幅だけに依存しているのではないことが推測される。メモリバンド幅が飽和しているのであれば、メモリバンド幅だけに依存し、クロックが変化しても実行時間は変化しないからだ。違ったアーキテクチャの CPU でも実験してみるといろいろわかるかるかもしれない。
2.00GHz 3.00GHz 1process (x 1.37) 36.03 26.30 other die (x 1.36) 36.45 26.81 L2 shared (x 1.29) 43.51 33.78
※コメント投稿者のブログIDはブログ作成者のみに通知されます