7/17(日) 薄曇

 何かハッキリしない天候である。暑いといえば暑いのだが,カーっと日光がさんさんと降り注ぐナツっ,という程ではない。個人的予測としては,今や加熱する経済を抱える中国大陸沿岸部に突っ込もうかという台風五号が弱まって普通の温帯性低気圧となり,青息吐息の梅雨前線に最後の檄を飛ばして日本列島に殴りこんで消え去った後,梅雨明け宣言となる,と思っているのだが,それまではこうしたハッキリしない天気が続くのであろう。まあ,過ごしやすくてよい。

 昨日の続き,今日はいよいよDual Coreの本領発揮,POSIX Threadによる行列積の並列計算ベンチを行ってみる。・・・一日がこれで潰れてしまった。プログラムは以前から作ってあったのだが,手直しをしていたら結構面倒,思いの他時間が掛かってしまったのである。
 こんな感じ↓で,三種類のマシンを同時並行でぶん回しながら計算する。

matmulbench_3pc.jpg

 赤線で囲ったところはsizeof(データ型)で「アンタの基本データ型のサイズ(bytes)を教えてちょ」と,その値を表示している部分である。さて,どーれがPentium Dでしょーか。
 しかし,今までは「32bit時代になってintもlongも同じ長さになってしまった」と教えていたのに,これからは「64bit 対応OSを入れたらsizeof(long) = 2*sizeof(int),そうでなければ同じサイズ」と教えねばならぬ。これが128bit時代(いつになるやら)になったら,どーなるんだ。long long型ができるのか,はたまたsize(long) = 4*sizeof(int)になるのか。
 で,結果↓。上段がIEEE754 double,下段がMPFR 10進50桁相当。左が同じマシンにおける,Pthreadの性能向上率,右がXeonマシンに対する性能向上率である。

matmulbench_graph.JPG

 HyperThreadingは,こーゆー数値計算のようなCPU資源を競合しまくる処理には全く向いていないことがバレバレ。Dual Coreは予想通り性能を発揮しているが,性能向上率ではSMPマシンに追いついていない。それでも64bit化の寄与があって,Xeon Dualマシンに比べて1.4倍~2倍近い性能をたたき出している。
 とゆーことで我がDual Coreマシンは,ワシがアカウントを持っているマシンの中ではめでたく最速の計算機ということが証明されました。拍手拍手~。
 つーことで,某国立N大学M研究室の皆様,次期Clusterは是非,Dual Core + 64bit Opteron 4Way Node * 8 = 64ヘイレツっ!マシンを買ってくださいませ(ォイ)。

 しかし,この最速マシンは現在,お亡くなりになってしまったのです。何故なら,それは,前日のお約束通り(って誰に向かっての約束だってば),nVidiaのおニュードライバを無理やり突っ込んでしまったからですっ(絶叫)。
 で,改めてReadmeを読んでみたら・・・

Q. Why does X crash when starting on Fedora Core 4?

A. There are interaction problems with SELinux (enabled by default on Fedora Core 4) and the NVIDIA graphics driver. NVIDIA is investigating this, but it is recommended that you append the kernel boot option "selinux=0" to the kernel boot line in your grub.conf file. You must reinstall the NVIDIA driver after adding this option.

だって・・・何だそれ・・・そーゆーことは早く言ってくれ・・・ってちゃんと読まないワシが悪いのであった。

 寝ます。