2010年3月30日火曜日

進化を続けるRAxML

一カ月ぐらい前になるが、RAxMLが更新されていたらしい。


今はver 7.2.6 これはα版ではないようなので、早速双子にコンパイルしといた。



今回のバージョンではMPIとPTHREADSを組み合わせて使うことが出来るようになったらしい。

MPI+PTHREADSのハイブリッド処理では計算する行列の範囲をMPIで分割し、さらに各ノード上での計算をPTHREADSで並列処理するようだ。


MPIでは複数の「プロセス」によって計算をし、PTHREADSでは複数の「スレッド」によって計算をする。両者の違いは、前者はプロセスごとにメモリを独立に使用するが、後者ではスレッド同士はメモリを共有している、ということだ。

分かりやすく言うと、ある仕事をする、となったときに、前者はそれぞれの仕事人が別々の場所で分割された仕事をしその成果を電話で伝えあうようなもので、後者は仕事人が一つ屋根の下で分割された仕事をして口頭で結果を伝えあうようなものだ。



だからこのハイブリッド処理では、系統解析での膨大な計算について、まず大まかな仕事を「家」ごとに割り振って、その後それぞれの家の中でさらに仕事を分担している、という感じだろう。



MPI+PTHREADSはMPI+OpenMPと同じくらい効率がいいらしい。


・・・まあ、とにかく簡単にいえば「更にめちゃくちゃ速くなった」ということだ。


ただ、うちのラボのコンピュータで実際どれくらい速くなるかは分かんない。
一度適当なデータセットを作って処理速度の比較をしてみようか・・・。



あと、GUIも使えるようになった。アイコンが僕的にはかっちょいい。



うちの准ボス曰く「Unixでコマンド打ってやる方が玄人っぽい」とのこと。僕もそう思う(Unixでは自分がどういうコマンドを打ったのかすぐに確認できるし)。


ただ、CUIがよく分かんない人でも手軽に使える、というのはこういったプログラムの需要が増える手助けとなるだろう。


(RAxMLの作者がHPで「機能増えすぎたからマニュアルも早く作り直さんとやべぇww」と言っていた。7.0.4で止まってるからなあ。切望します)

0 件のコメント: