qphoney記

beta

AWSでNAMDをカジュアルに動かしてみた

謎の頭痛が続いているリーダーですこんにちは。

ちょいとクラスタコンピューティングを調べる事があったのでカジュアルに情報共有します。
というのも、クラスタコンピューティングをWebで調べてみると英語のMLだったり、大学や研究機関のガチ論文がヒットして「カジュアルに動かしてみたい」僕の要求レベル以上のレスポンスでちょっと苦労しました。
僕のようにカジュアルにクラスタコンピュートしたいという人向けのエントリです。

動作環境

AWS上で動作確認をしています。

OS AmazonLinux(Cluster Compute Amazon Linux AMI 2012.03)
NAMD NAMD_2.9b3_Linux-x86_64-TCP
動作を確認するだけであればt1.microでも動作します。

鍵ペアの登録

クラスタリングされるノード間はsshで接続されるのでssh公開鍵をパスフレーズ無しで登録します。
ユーザ作成は任意です。

$ sudo groupadd data
$ sudo useradd -G data cluster
$ sudo su - cluster
$ ssh-keygen -t rsa
パスフレーズ無しの鍵ペアを作成

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys 

環境の用意

openmpiはいらないかも知れませんがカジュアルなので気にしません。

$ sudo yum groupinstall -y "Development Libraries" "Development tools" 
$ sudo yum install -y openmpi-devel

NAMD、APOA1のダウンロード

http://www.ks.uiuc.edu/ ←ここからNAMD、APOA1をダウンロードします。
ダウンロードにはユーザ登録が必要です。
カジュアルに登録して下さい。
登録が終わったら以下のファイルをダウンロード。

  1. NAMD_2.9b3_Linux-x86_64-TCP.tar.gz
  2. apoa1.namd

$HOME/cluster以下に展開します。

$ tar zxf NAMD_2.9b3_Linux-x86_64-TCP.tar.gz
$ wget apoa1.namd的な感じ

AMIの作成

上記を設定したインスタンスをAMI登録します。
手順まで載せるのは面倒なので割愛。
必要な数だけインスタンスを起動させますが、あまりワイルドになり過ぎないように注意して下さい。

ノード登録

起動したインスタンスをノードとして登録します。

$ sudo su - cluster
$ cd NAMD_2.9b3_Linux-x86_64-TCP
$ vi nodelist
group main
host 10.xxx.xxx.xxx
host 10.xxx.xxx.xxx
host 10.xxx.xxx.xxx
host 10.xxx.xxx.xxx
host 10.xxx.xxx.xxx
host 10.xxx.xxx.xxx

パスフレーズ無しでsshログイン出来る事を確認しておく

* 実行
カジュアルに実行してみます。
>||
$ ./charmrun ++remote-shell ssh ./namd2 ../apoa1.namd +p 5

起動オプションの詳細はmanでも見ると良いですよ。
ただ、プロセス数を増やすとsshでの接続も増えるので必要に応じてsshdの設定を変更した方が良さそうです。
1台だけで実行する場合はcharmrunはいらないっぽいです。

結果

せっかくなので僕が検証した結果をチラ見せしますね。
こちらはt1.microを6台並べた結果です。
f:id:qphoney:20120422190209j:plain

こちらははcc1.4xlargeを3台クラスタ構成にして実行した結果です。
f:id:qphoney:20120422190219j:plain

まとめ

非常にカジュアルにクラスタコンピュート出来ましたね。
実行内容の結果なんて見たって分からないので「おお、すげー」くらいの感想です。
会社の技術ブログには書けないような稚拙な内容だったので個人のブログに書きました。