蝸牛の歩み

蝸牛の如く,ゆっくりでも着実に前へ・・・

Core Duoが来た!

研究室に系統解析用マシンとしてMac mini (Core Duo 1.66GHz) がやってきた。ということで、昨日あたりにngt氏がセットアップしてくれて、さっそくMrBayesで計算させてみたらしい。
が……iMac G5の1/4しか速度が出なかったとのこと。なんでもG5用のバイナリをRosettaなるエミュレーターのようなもので動かしているから遅くなるらしい。
ということで、コンパイルしなおすことに。

  • ダウンロードしたバイナリ→とある解析の所要時間12時間くらい
  • gccで普通にコンパイル→所要時間3:10くらい?
  • icc*1コンパイル→所要時間2:15くらい?

これでもだいぶ早いのだが、アクティビティモニターで見ると片方のcoreだけ100%になっていて、もう片方は使われていない。一体どうすれば両方使われるのかとman iccしてみたりググったりするものの、さっぱりわからない。-parallelというのがそれっぽい気がしたが、エラーになるし。。。
その後、コメント欄でのshimotsukiさんのコメントから、MPI版なるものを用意すればよいことがわかった(多謝)。MrBayesのマニュアルでは、Poochがどうとかクラスターがどうとか書いてあるので違うんじゃないかと思っていたが、これかぁ。LAM/MPIはいつの間にかngt氏が入れてくれていたので、/usr/local/binをPATHに追加して(これは.bashrcに.bash_profileに書いたので次回からは気にしなくて良い)、

 LAMHCC=icc make

でmake。これでgccではなくiccを使ってコンパイルできた。当然MakefileはMPI=yesと指定。

 lamboot -v
 mpirun -np 2 mb

で実行。終わったらlamhaltで終了。
やってみると、「2 processor recognized」とか何とか表示され、またCPUモニターでも両方とも100%近く使われていることがわかる。そして気になる所要時間だが、先ほどと同じデータで1:15くらい。ほとんど倍速だよ!

MrBayesはこうやってMPI版が作れるからいいけど、それ以外はどうなんだろ?PAUP*はマルチスレッド版ではないってことですが……