Core Duoが来た!
研究室に系統解析用マシンとしてMac mini (Core Duo 1.66GHz) がやってきた。ということで、昨日あたりにngt氏がセットアップしてくれて、さっそくMrBayesで計算させてみたらしい。
が……iMac G5の1/4しか速度が出なかったとのこと。なんでもG5用のバイナリをRosettaなるエミュレーターのようなもので動かしているから遅くなるらしい。
ということで、コンパイルしなおすことに。
これでもだいぶ早いのだが、アクティビティモニターで見ると片方の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*はマルチスレッド版ではないってことですが……