namd をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
分子動力学計算エンジン 本家様[[http://www.ks.uiuc.edu/Re...
ダウンロードサイトに行くと、結構いろいろなバイナリーが配...
&size(10){Molecular Dynamics Flexible Fitting (MDFF) [[na...
***インストール [#v4bed27c]
各ダウンロードパッケージの用途とその実行方法を下記にまと...
|BGCOLOR(YELLOW):プログラム名&color(red){*};|BGCOLOR(YELL...
|Linux-x86_64-multicore|single node/stand-alone|named2 +p...
|Linux-x86_64-TCP|TCP通信で複数ノード対応&br;(単一ノード...
|~|~|charmrun ++nodelist list \&br; ++ppn <core> ++p <総c...
|Linux-x86_64-ibverbs-smp|InfiniBand通信&br;smpで計算可能...
ここでは標準的な Linux-x86_64-multicore についてそのイン...
入手したファイルは &color(magenta){NAMD_2.12_Linux-x86_64...
#code(nonumber){{
[root@c ~]# cd /Appl/
[root@c Appl]# gzip -cd src/NAMD_2.12_Linux-x86_64-multic...
[root@c Appl]# ls -l NAMD_2.12_Linux-x86_64-multicore/
合計 25464
-rw-r--r-- 1 14522 1004 1531 12月 22 2016 README.txt
-rw-r--r-- 1 14522 1004 3015 12月 22 2016 announce.txt
-rwxr-xr-x 1 14522 1004 484 12月 22 2016 charmrun
-rwxr-xr-x 1 14522 1004 20838 12月 22 2016 flipbinpdb
-rwxr-xr-x 1 14522 1004 24939 12月 22 2016 flipdcd
drwxr-xr-x 8 14522 1004 101 12月 22 2016 lib
-rw-r--r-- 1 14522 1004 10276 12月 22 2016 license.txt
-rwxr-xr-x 1 14522 1004 23795483 12月 22 2016 namd2
-rw-r--r-- 1 14522 1004 41626 12月 22 2016 notes.txt
-rwxr-xr-x 1 14522 1004 1861611 12月 22 2016 psfgen
-rwxr-xr-x 1 14522 1004 289998 12月 22 2016 sortreplicas
[root@c Appl]#
}}
NAMDの実行にはPATH環境変数の調整だけですみそうで、ユーザ...
#code(nonumber){{
[illya@c ~]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64-mul...
[illya@c ~]$ which namd2
/Appl/NAMD_2.12_Linux-x86_64-multicore/namd2
[illya@c ~]$
}}
実行コマンドは &color(red){namd2}; となります。
***サンプルファイル [#nf55dbb6]
テストデータには、[[http://www.ks.uiuc.edu/Research/namd/...
#code(nonumber){{
[illya@c ~]$ mkdir namd && cd namd/
[illya@c namd]$ curl -O http://www.ks.uiuc.edu/Research/n...
[illya@c namd]$ gzip -cd apoa1.tar.gz | tar xf - && cd a...
[illya@c apoa1]$ ls -lh
合計 20M
-rw-r--r-- 1 illya fate 794 9月 23 2000 apoa1.namd
-r--r--r-- 1 illya fate 6.8M 9月 23 2000 apoa1.pdb
-r--r--r-- 1 illya fate 13M 9月 23 2000 apoa1.psf
-r--r--r-- 1 illya fate 460 9月 23 2000 par_all22_popc...
-r--r--r-- 1 illya fate 153K 9月 23 2000 par_all22_prot...
[illya@c apoa1]$
}}
っで、この中身はvmdで閲覧可能で下記を実行すると
#code(nonumber){{
[illya@c apoa1]$ apoa1.pdb
}}
vmdが立ち上がり、下図画面が表示される
&ref(2018y02m11d_212518596.png,nolink);
&color(crimson){apoa1.namd};にはNAMDでの計算条件が記載さ...
#code(nonumber){{
cellBasisVector1 108.8612 0.0 0.0 <<-- 周期境界...
cellBasisVector2 0.0 108.8612 0.0 <<-- 周期境界...
cellBasisVector3 0.0 0.0 77.758 <<-- 周期境界...
cellOrigin 0.0 0.0 0.0 <<-- 箱の原点
coordinates apoa1.pdb
temperature 300 <<-- 300K(300...
seed 74269
switching on
switchdist 10
cutoff 12 <<-- van der Waals/静電...
pairlistdist 13.5
margin 0
stepspercycle 20
PME on <<-- 静電相互作用の計算...
PMEGridSizeX 108
PMEGridSizeY 108
PMEGridSizeZ 80
structure apoa1.psf
parameters par_all22_prot_lipid.xplor
parameters par_all22_popc.xplor
exclude scaled1-4
1-4scaling 1.0
timestep 1.0
fullElectFrequency 4
numsteps 500
outputtiming 20
outputname /usr/tmp/apoa1-out
}}
詳しい各種パラメータの意味はマニュアルをご参照下さい。
&color(red){*};&size(10){PMEがあればcutoffはどうなるの?};
っで計算を流してみる
#code(nonumber){{
[illya@c apoa1]$ namd2 apoa1.namd | tee apoa1.log
}}
&size(10){N3700(1.60GHz)なマシンで 30m29.207s};
***並列計算(その1) [#hc793a3e]
&color(darkgreen){''multicore''};版は、1 coreでしか計算し...
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ namd2 +p4 apoa1.namd | tee apoa1.log ...
[illya@c apoa1]$ namd2 +p16 apoa1.namd | tee apoa1.log ...
}}
一応、複数のCPUソケットを有するマシンでもこれで実行可能.
この場合、topコマンドからは下記のように見える(+p32で計算)。
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
9962 xxxxxx 20 0 2521m 456m 5556 R 3089.6 0.7 3:...
9960 xxxxxx 20 0 27900 1832 1044 R 7.1 0.0 0:00...
}}
&size(10){N3700(1.60GHz)なマシンで4コア指定したら 8m11.54...
***並列計算(その2) [#o3bd552f]
&color(darkgreen){''TCP''};版
1台ではなく、複数台を使って計算する場合。nodelistを用意す...
ファイル名は何でもよくて、識別子「group」で稼働させたいho...
#code(nonumber){{
[illya@c apoa1]$ vi list
group main # group名がmain
host n1 # [main]に所属するホスト
host n2
group all # group名がall
host n1 # [all]に所属するホスト
host n2
host n3
[illya@c apoa1]$
}}
「group」名が「main」以外なら「++nodegroup」を設けて指定...
で実際に計算をさせてみる
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ echo "export PATH=/Appl/NAMD_2.12_Linux-...
[illya@c apoa1]$ charmrun ++nodelist list ++ppn 4 ++p 8 n...
}}
ここでは1ノード当たり4coreを使い、合計8coreで計算させてま...
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
10826 xxxxxx 20 0 104m 68m 2920 R 84.0 0.1 0:03...
10823 xxxxxx 20 0 225m 85m 5504 R 83.3 0.1 0:21...
10824 xxxxxx 20 0 101m 64m 2920 R 80.3 0.1 0:03...
10825 xxxxxx 20 0 101m 64m 2920 R 79.3 0.1 0:03...
3495 root 20 0 195m 6040 1596 S 0.3 0.0 61:06...
}}
となる。
&color(red){*};&size(10){注意1};
計算を実行したいマシンから実行する必要はない。実行後、lis...
listに記載されたマシンへパスワードなしでssh接続できること...
&ref(2016y08m11d_000117256.png,nolink,noborder);
***CUDAで計算 [#mb9b8ec9]
nvidiaのカードが搭載されたマシンで計算したい場合、使用す...
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ namd2 +p4 +setcpuaffinity +devices 0 apo...
}}
「+devices」でnvidiaカードを指定する。複数枚なら「+device...
この場合のtopは
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM...
2948 xxxxxx 20 0 85.246g 370912 122744 R 386.8 0.1...
2911 xxxxxx 20 0 168840 3168 1592 R 0.7 0.0...
}}
となる。
***複数台のCUDAマシンで計算 [#g542349b]
計算機間の通信にはinfinibandが必要みたい。&color(darkgree...
&size(10){TCPの延長で作れるかソースで試したが無理でした.....
***qsubとあわせて [#v5d875fc]
ジョブ管理システムTORQUEを経由してジョブを走らせてみた
TORQUEは、リソースの管理と確保が第一で、その確保されたリ...
確保されたホストは環境変数PBS_NODEFILEに書かれているので...
&color(white,red){留意}; PBS_NODEFILE ファイルに書かれた...
そのため「sout -u」で重複をなくして、sedコマンドで nodeli...
#code(nonumber){{
[illya@pbs apoa1]$ vi namd.qsub
#!/bin/bash
#PBS -q bio
#PBS -l nodes=2:ppn=2
#PBS -j oe
#
CONV_RSH=rsh
cd $PBS_O_WORKDIR
echo "group main" > list
cat $PBS_NODEFILE | sort -u | sed 's/^/host /g' >> list
#
echo "exec rsh \$1 \$2 \$3 /bin/bash -f" > myrsh
chmod +x myrsh
#
charmrun `which namd2` ++ppn 2 ++p 4 ++nodelist list apoa...
rm list
rm myrsh
[illya@pbs apoa1]$
[illya@pbs apoa1]$ qsub namd.qsub
}}
&color(red){*};csh/tcshシェルでも動きます.
***メモ [#r8299fe7]
複数のノードで計算する場合、charmrunから下記のような他ノ...
#code(nonumber){{
<計算ノード> -l <ユーザ> -o KbdInteractiveAuthentication=...
}}
まるっきりssh向きの接続コマンドである。
CONV_RSHでsshを指定するならこれで構わないが、rshだと「-o...
そこで、「++remote-shell」を使って請けて側を修正する。
それが、
#code(nonumber){{
echo "exec rsh \$1 \$2 \$3 /bin/bash -f" > myrsh
chmod +x myrsh
}}
です。これで
#code(nonumber){{
exec rsh <計算ノード> -l <ユーザ> /bin/bash -f
}}
と解釈されて、他ノードに接続される。
「export CONV_RSH=ssh」として、かつ、計算ノードへのログイ...
計算ノードへのssh接続を許可してなく、rshのみで運用なら「m...
終了行:
分子動力学計算エンジン 本家様[[http://www.ks.uiuc.edu/Re...
ダウンロードサイトに行くと、結構いろいろなバイナリーが配...
&size(10){Molecular Dynamics Flexible Fitting (MDFF) [[na...
***インストール [#v4bed27c]
各ダウンロードパッケージの用途とその実行方法を下記にまと...
|BGCOLOR(YELLOW):プログラム名&color(red){*};|BGCOLOR(YELL...
|Linux-x86_64-multicore|single node/stand-alone|named2 +p...
|Linux-x86_64-TCP|TCP通信で複数ノード対応&br;(単一ノード...
|~|~|charmrun ++nodelist list \&br; ++ppn <core> ++p <総c...
|Linux-x86_64-ibverbs-smp|InfiniBand通信&br;smpで計算可能...
ここでは標準的な Linux-x86_64-multicore についてそのイン...
入手したファイルは &color(magenta){NAMD_2.12_Linux-x86_64...
#code(nonumber){{
[root@c ~]# cd /Appl/
[root@c Appl]# gzip -cd src/NAMD_2.12_Linux-x86_64-multic...
[root@c Appl]# ls -l NAMD_2.12_Linux-x86_64-multicore/
合計 25464
-rw-r--r-- 1 14522 1004 1531 12月 22 2016 README.txt
-rw-r--r-- 1 14522 1004 3015 12月 22 2016 announce.txt
-rwxr-xr-x 1 14522 1004 484 12月 22 2016 charmrun
-rwxr-xr-x 1 14522 1004 20838 12月 22 2016 flipbinpdb
-rwxr-xr-x 1 14522 1004 24939 12月 22 2016 flipdcd
drwxr-xr-x 8 14522 1004 101 12月 22 2016 lib
-rw-r--r-- 1 14522 1004 10276 12月 22 2016 license.txt
-rwxr-xr-x 1 14522 1004 23795483 12月 22 2016 namd2
-rw-r--r-- 1 14522 1004 41626 12月 22 2016 notes.txt
-rwxr-xr-x 1 14522 1004 1861611 12月 22 2016 psfgen
-rwxr-xr-x 1 14522 1004 289998 12月 22 2016 sortreplicas
[root@c Appl]#
}}
NAMDの実行にはPATH環境変数の調整だけですみそうで、ユーザ...
#code(nonumber){{
[illya@c ~]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64-mul...
[illya@c ~]$ which namd2
/Appl/NAMD_2.12_Linux-x86_64-multicore/namd2
[illya@c ~]$
}}
実行コマンドは &color(red){namd2}; となります。
***サンプルファイル [#nf55dbb6]
テストデータには、[[http://www.ks.uiuc.edu/Research/namd/...
#code(nonumber){{
[illya@c ~]$ mkdir namd && cd namd/
[illya@c namd]$ curl -O http://www.ks.uiuc.edu/Research/n...
[illya@c namd]$ gzip -cd apoa1.tar.gz | tar xf - && cd a...
[illya@c apoa1]$ ls -lh
合計 20M
-rw-r--r-- 1 illya fate 794 9月 23 2000 apoa1.namd
-r--r--r-- 1 illya fate 6.8M 9月 23 2000 apoa1.pdb
-r--r--r-- 1 illya fate 13M 9月 23 2000 apoa1.psf
-r--r--r-- 1 illya fate 460 9月 23 2000 par_all22_popc...
-r--r--r-- 1 illya fate 153K 9月 23 2000 par_all22_prot...
[illya@c apoa1]$
}}
っで、この中身はvmdで閲覧可能で下記を実行すると
#code(nonumber){{
[illya@c apoa1]$ apoa1.pdb
}}
vmdが立ち上がり、下図画面が表示される
&ref(2018y02m11d_212518596.png,nolink);
&color(crimson){apoa1.namd};にはNAMDでの計算条件が記載さ...
#code(nonumber){{
cellBasisVector1 108.8612 0.0 0.0 <<-- 周期境界...
cellBasisVector2 0.0 108.8612 0.0 <<-- 周期境界...
cellBasisVector3 0.0 0.0 77.758 <<-- 周期境界...
cellOrigin 0.0 0.0 0.0 <<-- 箱の原点
coordinates apoa1.pdb
temperature 300 <<-- 300K(300...
seed 74269
switching on
switchdist 10
cutoff 12 <<-- van der Waals/静電...
pairlistdist 13.5
margin 0
stepspercycle 20
PME on <<-- 静電相互作用の計算...
PMEGridSizeX 108
PMEGridSizeY 108
PMEGridSizeZ 80
structure apoa1.psf
parameters par_all22_prot_lipid.xplor
parameters par_all22_popc.xplor
exclude scaled1-4
1-4scaling 1.0
timestep 1.0
fullElectFrequency 4
numsteps 500
outputtiming 20
outputname /usr/tmp/apoa1-out
}}
詳しい各種パラメータの意味はマニュアルをご参照下さい。
&color(red){*};&size(10){PMEがあればcutoffはどうなるの?};
っで計算を流してみる
#code(nonumber){{
[illya@c apoa1]$ namd2 apoa1.namd | tee apoa1.log
}}
&size(10){N3700(1.60GHz)なマシンで 30m29.207s};
***並列計算(その1) [#hc793a3e]
&color(darkgreen){''multicore''};版は、1 coreでしか計算し...
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ namd2 +p4 apoa1.namd | tee apoa1.log ...
[illya@c apoa1]$ namd2 +p16 apoa1.namd | tee apoa1.log ...
}}
一応、複数のCPUソケットを有するマシンでもこれで実行可能.
この場合、topコマンドからは下記のように見える(+p32で計算)。
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
9962 xxxxxx 20 0 2521m 456m 5556 R 3089.6 0.7 3:...
9960 xxxxxx 20 0 27900 1832 1044 R 7.1 0.0 0:00...
}}
&size(10){N3700(1.60GHz)なマシンで4コア指定したら 8m11.54...
***並列計算(その2) [#o3bd552f]
&color(darkgreen){''TCP''};版
1台ではなく、複数台を使って計算する場合。nodelistを用意す...
ファイル名は何でもよくて、識別子「group」で稼働させたいho...
#code(nonumber){{
[illya@c apoa1]$ vi list
group main # group名がmain
host n1 # [main]に所属するホスト
host n2
group all # group名がall
host n1 # [all]に所属するホスト
host n2
host n3
[illya@c apoa1]$
}}
「group」名が「main」以外なら「++nodegroup」を設けて指定...
で実際に計算をさせてみる
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ echo "export PATH=/Appl/NAMD_2.12_Linux-...
[illya@c apoa1]$ charmrun ++nodelist list ++ppn 4 ++p 8 n...
}}
ここでは1ノード当たり4coreを使い、合計8coreで計算させてま...
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
10826 xxxxxx 20 0 104m 68m 2920 R 84.0 0.1 0:03...
10823 xxxxxx 20 0 225m 85m 5504 R 83.3 0.1 0:21...
10824 xxxxxx 20 0 101m 64m 2920 R 80.3 0.1 0:03...
10825 xxxxxx 20 0 101m 64m 2920 R 79.3 0.1 0:03...
3495 root 20 0 195m 6040 1596 S 0.3 0.0 61:06...
}}
となる。
&color(red){*};&size(10){注意1};
計算を実行したいマシンから実行する必要はない。実行後、lis...
listに記載されたマシンへパスワードなしでssh接続できること...
&ref(2016y08m11d_000117256.png,nolink,noborder);
***CUDAで計算 [#mb9b8ec9]
nvidiaのカードが搭載されたマシンで計算したい場合、使用す...
#code(nonumber){{
[illya@c apoa1]$ export PATH=/Appl/NAMD_2.12_Linux-x86_64...
[illya@c apoa1]$ namd2 +p4 +setcpuaffinity +devices 0 apo...
}}
「+devices」でnvidiaカードを指定する。複数枚なら「+device...
この場合のtopは
#code(nonumber){{
PID USER PR NI VIRT RES SHR S %CPU %MEM...
2948 xxxxxx 20 0 85.246g 370912 122744 R 386.8 0.1...
2911 xxxxxx 20 0 168840 3168 1592 R 0.7 0.0...
}}
となる。
***複数台のCUDAマシンで計算 [#g542349b]
計算機間の通信にはinfinibandが必要みたい。&color(darkgree...
&size(10){TCPの延長で作れるかソースで試したが無理でした.....
***qsubとあわせて [#v5d875fc]
ジョブ管理システムTORQUEを経由してジョブを走らせてみた
TORQUEは、リソースの管理と確保が第一で、その確保されたリ...
確保されたホストは環境変数PBS_NODEFILEに書かれているので...
&color(white,red){留意}; PBS_NODEFILE ファイルに書かれた...
そのため「sout -u」で重複をなくして、sedコマンドで nodeli...
#code(nonumber){{
[illya@pbs apoa1]$ vi namd.qsub
#!/bin/bash
#PBS -q bio
#PBS -l nodes=2:ppn=2
#PBS -j oe
#
CONV_RSH=rsh
cd $PBS_O_WORKDIR
echo "group main" > list
cat $PBS_NODEFILE | sort -u | sed 's/^/host /g' >> list
#
echo "exec rsh \$1 \$2 \$3 /bin/bash -f" > myrsh
chmod +x myrsh
#
charmrun `which namd2` ++ppn 2 ++p 4 ++nodelist list apoa...
rm list
rm myrsh
[illya@pbs apoa1]$
[illya@pbs apoa1]$ qsub namd.qsub
}}
&color(red){*};csh/tcshシェルでも動きます.
***メモ [#r8299fe7]
複数のノードで計算する場合、charmrunから下記のような他ノ...
#code(nonumber){{
<計算ノード> -l <ユーザ> -o KbdInteractiveAuthentication=...
}}
まるっきりssh向きの接続コマンドである。
CONV_RSHでsshを指定するならこれで構わないが、rshだと「-o...
そこで、「++remote-shell」を使って請けて側を修正する。
それが、
#code(nonumber){{
echo "exec rsh \$1 \$2 \$3 /bin/bash -f" > myrsh
chmod +x myrsh
}}
です。これで
#code(nonumber){{
exec rsh <計算ノード> -l <ユーザ> /bin/bash -f
}}
と解釈されて、他ノードに接続される。
「export CONV_RSH=ssh」として、かつ、計算ノードへのログイ...
計算ノードへのssh接続を許可してなく、rshのみで運用なら「m...
ページ名:
1