2009年10月29日木曜日

っっっしゃあああああああああああああああ!!!

とりあえず大きな山は越えた。



スクリプトの純粋な容量としてはまだ1/3くらいだろうが、塩基配列でのシュミレーションへの対応、組成の枝長に対するほぼ連続的な変化、組成変化後の網羅的チェック、推定された各種枝長の誤差のチェック、プロセス全体の並列処理化などの機能をデバッグ含めやり終えたことは非常に大きい。


特にプロセス全体の並列処理化は予想通りマジ難しかった。
子プロセスの複数生成や変数の共有、各プロセスの結果の統合及び順序付けなど(何言ってるか分かんないな)を各種モジュールの活用によって解決した。「車輪は二度作るな」ってね。


これによって、いままでRAxMLによる系統推定の時しか並列処理ができなかったものを各系統樹に対する配列生成から結果のまとめまでの一連のプロセスを並列に行うことに成功。
推定自体に時間がかかる時はRAxML-PTHREADSへのコアの配分を多くし、推定が簡単な塩基配列のときにはRAxML-HPCを使い子プロセスの数を増やせるようにしたので、ケースバイケースで高速化できるようになった。



たぶん3~6倍の速さにはなるだろう。


現在1500bpの塩基配列に対し70*70*100の系統樹のヴァリエーションを作ってテスト中。
ようやくまともなプログラミングが出来た、というところか・・・



目標を達成し自分の思い通りに動いた時のこの「やってやったぜ」感。これがあるからプログラミングはやめられん!














PS さっきまで実験室でtakさんとgamiさんが話してた。なんかキョウダイみたいで微笑ましかった。

どっちが下かはあえて言わないでおこう。

0 件のコメント: