分子動力学計算エンジン 本家様http://www.ks.uiuc.edu/Research/namd/
ダウンロードサイトに行くと、結構いろいろなバイナリーが配布されている。
さて、どれを選べばいいのか。。。

実行方法とあわせて整理してみた。
テストデータは、http://www.ks.uiuc.edu/Research/namd/utilities/のExample Simulationsにて提供されているApoA1を使ってます。

[illya@pbs ~]$ mkdir namd && cd namd/
[illya@pbs namd]$ curl -O http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz
[illya@pbs namd]$ gzip  -cd apoa1.tar.gz | tar xf - && cd apoa1
[illya@pbs apoa1]$ ls -l
合計 20264
-rw-r--r--+ 1 illya fate      794  9月 23  2000 apoa1.namd
-r--r--r--+ 1 illya fate  7101707  9月 23  2000 apoa1.pdb
-r--r--r--+ 1 illya fate 13479784  9月 23  2000 apoa1.psf
-r--r--r--+ 1 illya fate      460  9月 23  2000 par_all22_popc.xplor
-r--r--r--+ 1 illya fate   156088  9月 23  2000 par_all22_prot_lipid.xplor
[illya@pbs apoa1]$

NAMDのプログラムをダウンロードして、所定の場所にインストールします。ここでは/Appl/Linuxを基点にインストールした。
選んだパッケージに応じてPATH環境変数を定義します

[illya@pbs apoa1]$ export PATH=/Appl/Linux/NAMD_2.11_Linux-x86_64-multicore:$PATH
とか
[illya@pbs apoa1]$ export PATH=/Appl/Linux/NAMD_2.11_Linux-x86_64-TCP:$PATH
プログラム名*説明実行方法(例)備考
Linux-x86_64-multicoresingle node/stand-alonenamed2 +p<thread> apoa1.namd1プロセスで<thread>数で計算
Linux-x86_64-TCPTCP通信で複数ノード対応
(単一ノードでも稼動可)
charmrun ++local ++p <process> \
`which namd2` apoa1.namd
スタンドアロン
1台内で<process>数で計算
charmrun ++nodelist list ++nodegroup all \
++ppn <threads> ++p <core>\
`which namd2` apoa1.namd
1MPI当り<threads>として
合計<core>数のcoreで計算
Linux-x86_64-ibverbs-smpInfiniBand通信
smpで計算可能
charmrun ++ppn <threads> ++p <core>
++nodelist list `which namd2` apoa1.namd

nodelistのフォーマットは、グループ名称とそれに所属するhostを記載する。下記はグループ名mainとallを記載している。
規定で、グループ名「main」が使われるが、「++nodegroup」にて別個に指定もできる

group main
host n1
host n2
group all
host n1
host n2
host n3

*注意1
計算を実行したいマシンから実行する必要はない。実行後、listに記載されたマシンで計算する
listに記載されたマシンへパスワードなしでssh接続できることが必須
2016y08m11d_000117256.png

qsubとあわせて

ジョブ管理システムTORQUEを経由してジョブを走らせてみた
TORQUEは、リソースの管理と確保が第一で、その確保されたリソースにコマンド行を投げる。
確保されたホストは環境変数PBS_NODEFILEに書かれているので、これを利用して nodelist 向けのファイルを作成する。
留意 PBS_NODEFILE ファイルに書かれたホスト名は、確保されたcoreの数だけ書かれているので重複があります。
そのため「sout -u」で重複をなくして、sedコマンドで nodelist 向けに加工します。

[illya@pbs apoa1]$ vi namd.qsub
#!/bin/bash
#PBS -q bio
#PBS -l nodes=2:ppn=2
#PBS -j oe
cd $PBS_O_WORKDIR
echo "group bio" > list
cat $PBS_NODEFILE | sort -u | sed 's/^/host /g' >> list
#
export PATH=/Appl/Linux/NAMD_2.11_Linux-x86_64-TCP:$PATH
#
charmrun ++nodelist list ++nodegroup bio ++ppn $PBS_NUM_PPN ++p $PBS_NP  `which namd2` apoa1.namd
 
[illya@pbs apoa1]$

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2016-09-07 (水) 01:05:44 (412d)