JAGSのconfigure [Mac]
MAGRO: 実行時間の比較でJAGSの成績が異様に悪く、ところが研究室マシンのJAGSは速かったので、自前でJAGSをコンパイルしなおしてみた。結果として、configureを見直すことで改善されることがわかった。
Tools – R for Mac OS X – developer's pageからGNU Fortran 4.2.4 for Mac OS X 10.6 (Snow Leopard)を入手してインストールしておく(でも実際のコンパイルではつかってないみたいなのだが)。
そして以下のようにconfigure。
すると、前回のコードの結果が以下のように大幅に改善された。
Tools – R for Mac OS X – developer's pageからGNU Fortran 4.2.4 for Mac OS X 10.6 (Snow Leopard)を入手してインストールしておく(でも実際のコンパイルではつかってないみたいなのだが)。
そして以下のようにconfigure。
F77=/usr/bin/gfortran \ CFLAGS="-O3 -arch x86_64" \ CXXFLAGS="-O3 -arch x86_64 -framework vecLib" \ FFLAGS="-O3 -arch x86_64" \ ./configure
すると、前回のコードの結果が以下のように大幅に改善された。
> system.time(jags.test(n.chains, n.iter, n.burnin, n.thin)) |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% |**************************************************| 100% ユーザ システム 経過 69.339 0.109 69.248
いつも勉強させていただいております。
jags_instration_manual P.9 OSXには「A final note on MacOS X builds: do NOT use -O3. It is not optimal and may find compiler bugs. Apple recommends -Os.」とありましたので、blogにある-O3を外して-Osでもコンパイルして2つを比較してみました。同様にベンチしてみると私の環境で次のようになりました。
ユーザ システム 経過
-O3=77.807 0.059 78.240
ユーザ システム 経過
-Os=78.059 0.056 78.459
参考になる情報いつもありがとうございます。
by しりおやじ (2010-05-03 21:15)
コメントありがとうございます。
"-O3"使うな、と明記されるようになったのですが、たしかに"-O3"の効果はそれほどでもないのかもしれませんね。
by hiroki (2010-05-04 05:22)