2012年3月15日木曜日

やっと終わった

Gastonセットアップ完了。

思っていたよりだいぶ上手くいかなくて長くかかってしまったが、これで何とか、実戦投入できるようになった。今日は常識的な時間に眠れそうでとてもうれしい(涙)


MPICH2を入れたところまでは良かった。TORQUEもすんなり導入できた。

が、いざRAxMLを入れてみるとちゃんと動いてくれなくて、この改善に約一日取られてしまった。

7.2.8 (多分.6も)のMPIバージョンだと、ブートストラップ解析ではたとえば48プロセスで100replicatesの解析をしようとすると、プログラムのアウトプットではちゃんと「100repsやってますぜ」って表示が出るのに、結果では144本の樹が吐き出されている。なので、ブートストラップ解析が144回行われている。

48 * 3 = 144なので、どうもRAxMLのMPI版はブートストラップデータをMPIの各プロセスに分けて、プロセスごとに一つのML探索をやらせているらしく、replicateの数がプロセス数でちょうど割り切れないときには余ったプロセスが待機しているのではなく、余分に解析をやってしまっているらしい。

もっと困るのはML探索の時で、 10本の初期系統樹を指定して48プロセスで解析すると、なんと48本の探索結果がでてきてしまう。これも原因は上に記したMPIバージョンの挙動にあると思われる。

MPICH2でもOpenMPIでも同じだったので、ソースコードのどこかに問題があると思うが、チェックする気力も知識もなかったので、RAxML-Lightを入れた。

まあ一本の自前の初期系統樹からしか探索が行えないといっても、そんなのは(作者もマニュアルで再三言ってるが)スクリプトを書けば何とでもなるので、Lightでいいやと思っていたのだが、Lightを導入すると今度はMPIの通信でバグる。何で!?姫野ベンチはちゃんと動いたのに!?


この問題にも散々っぱら振り回されたわけだが、結局、Lightの”最新版1.0.6”固有のバグだったらしく、1.0.5にしたらちゃんと動いた。これのせいでMPICH2をOpenMPIに変えたり無駄なことしてしまったわけですよチキショー

まあ、いろいろあったけど 、これで無事Gastonも解析現場に仲間入りです。力強い仲間が増えました。

これからは馬車馬のようにきりきり働いてもらいましょう。

0 件のコメント: