ゴツいPCをいぢった。

CPUが32個でメモリが256GB載っていた。*1
が、すげー速いかと思いきや、Javaで書かれたモンテカルロ法(サンプリング数10000個×回数20000回)で円周率を求めさせるプログラムを動かしてみると...

  • ゴツいPC→145秒
  • ありふれたノートPC→91秒

ガーン。全然速くないよ〜*2
ちなみに、ゴツいPCはItanium2の1.6GHz×32個らしい。ノートPCの方はMobile Celeronの2.0GHz×1個。
クロック差が1.25倍に対して、処理時間は1.6倍だからもうちょっとガンバって欲しいよ〜
しかも、ゴツいPCは某社謹製OS上の某社謹製JVM上に対して、ノートPCの方はWindowsXP(Pro)上のVMware上のLinux上のSun純正JVMだからなー
某社製JVMのチューニングがイマイチなんだろうか。せっかくIA64なのにJavaのdouble(8バイト)がアキュムレータに乗らないんだろうか。それとも、java.util.Randomがせっかくの64ビット環境を生かせないのだろうか。生かせてないってゆーか、むしろ遅いんですけど...
まあ、モチロン、ゴツいPCの場合、このベンチマークを同時に10個走らせても実行時間は変わらないのだけど。*3
どうやらこのベンチマークでCPU32個パワーを生かすには、ベンチマーク自身もマルチスレッドで書き直さなきゃ〜ダメみたい...*4


結局、PCの速さを語るにはインテルが突き進んできた「クロック命!」がやっぱり正しい気がする。しかしPen4も4GHz(たぶん)で頭打ち。そしてマルチコア路線へ。以前はPCを買い換える(組み直す)度にCPUが速くなったのを体感できたものだけど。最近は以前ほど劇的な高速化は体感できない(ので、物欲もたぎらない)。なんとなくさびしい。

*1:topを見ると、cpuの行が32行分あってプロセスの情報がほとんど見えない。冗談みたい。

*2:あまりの速さに興奮のあまり、鼻血ブーの準備も万端だったのにー(ぉぃ

*3:CPUが32個あるから当たり前なのだけど。

*4:スレッドを起こすオーバーヘッドが生じるから、実際試してみないとどんくらい高速化されるか分かんないけど。