Gromacs GPU
出典: トータル・ディスクロージャ・サイト(事実をありのままに)
目次 |
え?GPUを使うgromacs?
とゆー話があったので、とりあえず捜してみました。 Gromacs自体は、計算エンジン部分で、アセンブラコードを使って、SSEでの爆速を狙っていたのに(^^;;。
あー、そーいえば、gcc 4.1.xでくぢけていたとか、最近、あれだけハイテンションだったのに、更新されていないなどの事から、GPUに堕落したのか?など、厭な想像が出てしまいますが、gromacs本家では、なんか扱いが軽い。 んー、ブランチなのかなーとか、思いつつ、gromacs本家を読んでいると、OpenMMとゆー単語がでて来ます。
どうやら、gromacs本家ががんばっているのではなく、OpenMMでがんばってるらしいという事で、OpenMMにアカウントを発行してもらって、OpenMMのgromacsでパッケージをダウンロードしてきて、試してみましょう。
ところでOpenMMって何?
NIHが関係してます。終了ー、という訳でもいいような気がしますが、色々読んでみると、まあ、世の中にMM用の実装が沢山ありすぎて、面倒臭い!って事みたいですね(^^;;。
沢山あるあまたのMMのフォースフィールドや実装に共通の土台、ライブラリと表現していますが、をつくってしまおうとゆー事みたいです。気象系のシミュレーションプログラムでも、あんまり沢山あって、面倒臭いって感じでまとまった経緯もありますから、似た状況かもしれません。プログラムの研究をやっているという状況から、実際にプログラムを使って、実験などを行なっている研究者が役立てるという状況になりつつあるという事かもしれません。
で、gromacs OpenMMをダウンロードしてきた
って、mdrunだけかい!
一応、mdrunの改変部分のソースもあります。md.c、md_openmm,cpp、md_openmm.hだけですが。
ヲヲ!これだけの改変で済むなんて素晴しい!(@.@)
とりあえず、配付されているバイナリで、よく使うベンチマークプログラムを試してみましょう\(^o^)/
(ぢつは勢いでgromacs4に組みこんで、autoconfに泣きながら、mdrunをビルドしてみたりもするんですが(^^;;)
gromacs 4にソースを組みこんでビルドしてみる
すごく嫌んな事に、md_openmmがcではなく、cppとゆートコが、落し穴になり易いです(^^;;。gromacsはCでコンパイルですからねえ。なもんで、autoconfを使うとき、AC_PROG_CXXを組みこむ事をお忘れないように(^^;;。泣きが入ります。
あら、倍精度計算は出来ないと。え?並列計算も?
OpenMMの下層レイヤーが、MPIやGPUを担当するみたいなので、GPU用のOpenMMではなく、OpenMMをビルドしてみないといけないみたいです。
md-run-openmmを試す
やっぱり性能を試すなら、比較し易いd.dppcあたりがいいでしょうから、シングルで、ベンチマークを・・・あり?(?_?)
動きません(T^T)。
readmeを読んでみると、
- Andersen thermostatしかサポートしてません。gromacsのデフォルトではない?
- さらに、the Monte Carlo barostatしかサポートしてません。なんでー!(ToT)
- 極めつけは、デフォルトはAMBER99フォースフィールドです。
違う、こ、これはgromacsぢゃないよお!(ToT)
試す為のトポロジーファイルなどを捜してみる
これはgromacsぢゃないと叫んでみても仕方ないので、お試しの為のインプットファイルセットを、amberフォースフィールドのテストにもなるさと自分をごまかして、泣く泣く捜してみます(ToT)。
GPUは話題になっているから有りそうなもんですよね(^^;;。
と、Macのgromacsのメーリングリストでそれらしい記述がありました。
1BVG.pdbをとってきて、sedで切り出して、pdb2gmxでポートして、gromppで加工して、ぎゃあー!なんか結合の記述がおかしいというgromppのお叱りがー!(ToT)
恐らく、pdb2gmxがなんかやってそうorz。あれ、妙に繊細なんすよねorz。
むう、どうせみんなひっかかるハズですから、メーリングリストに解決策があるハズ。
え?面倒だからZephyrを試してネって、それで終りってどーゆー事?
Zephyrって何?
これもOpenMMのようです。モデリングなどのインターフェイスなどなどで、gabeditのMM専門NIH謹製を目指すみたいです。 画像などはvmdを使っているなど、アメリカのアカデミックの研究者に優しい作りになっているみたいです。VMDで大抵の事は出来ますから、外の選択肢があるとは思えませんが(^^;;。
で、自己解凍ファイルをインストールしてみると、あー(^o^)
exampleなどが入ってます。というか、分子モデリングでエッチらオッチら作ったり、pdbから持って来て、変更した時、最小化とか、計算をする前に、簡単にしたいですよね。どうも、その為に、いまのとこ、ポーティングされているみたいです(^^;;。
画像化ツールで使う前堤なので、当然というか、GPUのあるビデオカードがある訳で、だから、ついでにGPU化したみたいです。
gromacs openmmの今のステータス
OpenMMは、実装に凄く積極的で、あれこれ理屈をこねるより、実際に動かしてみてというノリみたいです。そのためには使い易いインターフェイスを作ってみて、そこに、便利な機能をつけてという過程で、gromacsをZephyr用にカスタマイズして実装したようです。なもんで、gromacsのデフォルトより、その目的に近いデフォルトで、という事みたいです。OpenMMの実装に参加した場合、入口としてはすごく良い考え方と実装ですね。
2010/8/10
OpenMMのソースみてみたけど、low layerの実装はGPUだけですね(^^;;。 簡単なトコを実装してみましたって感じで、まあ、MPIの実装はねえ(^^;;。 実用的に使う場合は、MPIが実装されてからかなあ。
- OpenMMの実装の勢いは凄いので、今後も注目すると面白いと思います。
この記事へのコメントをお寄せください
- サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください 。
- トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
- あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
- コメントを書き込む場合は名前にひらがなを織り交ぜてください。
- あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

