2/19(土) 掛川・曇

 どんよりどよどよの日。職場にVisual Studio .NETを取りに行き,ついでに前の自宅マシン(Celeron 1GHz)を運び込む。明日はバックアップを取った後,このマシンにVineを突っ込んでみる予定。
 自宅マシンにVisual Studio .NETをインストールする。あ,言っとくけどうちは研究室単位でMSDN academicに入っているから,これはライセンス違反ではない為念。
 で,BNCpackをコンパイルしてベンチマークを取ってみると面白いことが分かった。同じPentium 4 2.8cGHzのマシンでも,Windows 2000 Pro SP4(Win2k)とWindows XP Pro SP2(WinXP)とではパフォーマンスがぜんぜん違うのである。もちろん後者が良い。
 Windows XPにてVisual Studio .NETを使ってWindows版 GMP/MPFR(mpn_p4.lib使用)をコンパイルしたものにBNCpackをリンクして作ったbasebenchプログラムを使ってみた。で,WinXPでの計算時間をWin2kの計算時間で割ったものをグラフにすると次のようになる。
mpfr_win2k_xp.jpg
 うーむ,乗算は1.4~1.7倍,除算は0.9~1.4弱倍,Win2kの方が計算時間を余計に喰っていることになる。Win2kからXPってマイナーバージョンアップのイメージしかなかったのだが,このように同じGMP/MPFRのバイナリを使ってこれだけの違いが出るってことは,呼び出している関数やメモリ処理がそれなりに高速化されていると見ていいだろう。M$もやることはきっちりやっているのね。あ,ちなみにこのデータは紀要原稿に使用予定である。
 GMPのML,spam攻撃を避けて,TMDAを使ってfilteringすることにしたらしい。ふーん,sendmailやqmail等,代表的なMTAでの設定方法がきちんと書いてあるな。試してみる価値ありそう。