>>427
参考までに,>>351で紹介した本を参考にして書いたコード(vector計算機用に書いたものをP4用に変更したもの)
の結果を紹介しますので,ぜひ,自分でチューニングしてみしょう.
10000×10000の対称密行列の下三角部分を1次元配列で持って,三角分解する問題です.
(倍精度.ピボッティング無し.)
m×mのブロックを同時分解するプログラムをtimeコマンドで計測すると、
m=1; 603.699u 0.728s 10:05.38 99.8% 0+0k 0+0io 605pf+0w
m=2: 284.677u 0.734s 4:45.86 99.8% 0+0k 0+0io 606pf+0w
m=3: 206.556u 0.726s 3:27.60 99.8% 0+0k 0+0io 607pf+0w
m=4: 180.873u 0.736s 3:01.90 99.8% 0+0k 0+0io 609pf+0w
m=5: 233.402u 0.722s 3:54.48 99.8% 0+0k 0+0io 610pf+0w
m=6: 298.871u 0.744s 5:00.08 99.8% 0+0k 0+0io 617pf+0w
となりました.m=1とm=4では3倍の性能差です.m=5,6では1つのループに夫々25個,36個の式をいれるとvectorizeがかからないので、
2つのループに分けていることで性能が悪くなっていると考えられます.(CPUリソースが足りてない?)
コンパイルオプションは>>326です.動作環境は
P4 2.53GHz, M/B:ASUS P4T533-C, memory: PC800-40 ECC 512MB×4, HDD: 80GB(7200rpm)×2 (software RAID1)
memoryが、PC1066ならあと10〜20%性能が上がると思います.