MATLABを使った精度保証付き演算を紹介している荻田さんのページにある方法

 n=2000; A=randn(n); B=randn(n);
tic; C=A*B; t=toc, MFLOPS=2*n^3/t*1e-6

でMacの演算性能を測ってみた.MATLABは持っていないので,MacPortsでインストールしたOctave (octave @2.9.15_0+g95+ptex+test)を用いた.

  • Mac mini (PowerPC G4 1.25 GHz): 約 1 Gflops
  • MacBook (Core Duo 1.83 GHz): 約 3 Gflops
  • iMac G5 (PowePC 1.9 GHz): 約 4 Gflops
  • PowerMac G5 (PowerPC G5 Dual 2.7 GHz): 約 10 Gflops
  • iMac (Core 2 Duo 2.4 GHz): 約 12.5 Gflops
  • Mac Pro (Xeon 3 GHz クアッドコア×2): 約 50 Gflops
  • ASUS V3-M2V690G (Athlon 64 X2 5400+, Ubuntu 8.0.4): 約0.7Gflops, 約3.5flops (ATLAS), 約5Gflops (ACML)

g95はOpenMPに対応していないが,アクティビティモニタを見るとCPUは二つとも動いているので,スレッド化されているようだ.おそらく,Mac OS XのAccelerate.frameworkに含まれているBLAS/LAPACKが呼ばれていて,Fortranコンパイラは無関係だと思われる.

PowerPC G5がXeon 3.06 GHzの1コアに遜色ない性能を出したのはちょっとうれしい.

Core 2 DuoのiMacも侮れない… iMac Early 2008 (Core 2 Duo 3.06 GHz) では, 15 Gflops出るだろうか.

Mac Proは, 地球シミュレータ1ノードの理論値64 Gflopsまであと少し.でもIntelのデータからすると、限界まで出せてなさそう。 UbuntuのoctaveはAMD64には最適化されているようだが, ATLASもACMLもなしだと, Mac miniより遅かった. Mac OS XのAccelerate.frameworkはありがたい.