[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002429] NArray + MPI の使い道
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002429] NArray + MPI の使い道
- From: Masahide Kikkawa <Masahide.Kikkawa@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 24 Aug 2005 10:10:34 -0500
吉川です。
ところで,吉川さんは Ruby で MPI を使われているのですね.NArray
を使うということは並列計算でしょうか.よろしければ,どんなことを
されているのか,この ML 宛てに流して頂けないでしょうか.
はい、そのとうり、並列計算をしようとしています。
で、その並列計算を何に使うのかというと、電子顕微鏡の写真からモーター
蛋白分子の3次元構造を再構成するのに使っています。モーター蛋白分子の3
次元構造をみることで、どのように化学エネルギー(ATP)を、動きという物理
的なエネルギーに変えているのかを調べています。そのあたりの詳しいことは
http://wwwsoc.nii.ac.jp/jps/jps/butsuri/butsuri2003.html
の「構造から探る生物分子モーター・キネシンのしくみ」あたりをみてくださ
るのがよいかと思います。(メールをいただければ pdf をお送りします。)
その中で、NArray + MPI は、電子顕微鏡の写真の解析に使われています。
電子顕微鏡で撮った蛋白分子の写真は、とてもノイズの多い写真なので、たく
さんの蛋白分子の投影写真を重ね合わせて S/N をあげなくてはいけません。
さらに、重ね合わせの前に、その蛋白分子をすべて同じ場所に alignment す
る必要があります。たとえば、数千から数十万の蛋白分子の像を、FFTを使っ
てあるreferenceと同じ場所に来るようにalignment しています。この部分は
Ruby-FFT3を使わせて頂いています。あ、そうそう、rb-gslもよく使っていま
す。(http://rubyforge.org/projects/rb-gsl/)
5年くらい前までは、そうした比較->alignmentは C や Fortran のプログラ
ムを使って行っていましたが、使用可能なメモリ量が増えたことで、Ruby +
NArrayを使って書いても遜色ないスピード実行できるようになりました。
Rubyの書きやすさと、NArrayの強力なメソッド群のお陰で、プログラムの開発
効率は 5-10倍あがったというのが実感です。
それでも、データ量が増えると比較->alignmentの部分は数時間から1日く
らいかかることが多くなってきました。そこで、Linux clusterを使ってスピ
ードアップできないかと思い、NArray + MPI を試しているところです。MPIは
http://mpiruby.sourceforge.net/ を使いました。Master + Slaveという形
で、比較のjobを複数の CPU に振り分けて実行スピードをあげています。うま
く動いているようですし、それぞれのjobは完全に独立なので、CPUの数だけス
ピードアップできそうです。
スピードアップの方法としては、他に vectorize ( Altivec or SSE3 )、既
存の matrix ライブラリの NArrayへの組み込みなどを試したいのですが、時
間とスキルが無いので dennou-rubyのソフト資源から何かお借りできないか
と、メーリングリストをのぞいています。
ではでは
--
-------------------------------------------------
Masahide Kikkawa, M.D., Ph. D.
Assistant Professor, Department of Cell Biology
University of Texas, Southwestern Medical Center
5323 Harry Hines Blvd. Dallas, Texas, 75390-9039
tel 214-648-6333 Room J2.118
fax 214-648-8694 Lab phone 214-648-6340
-------------------------------------------------