本家様 http://www.gromacs.org/

言わずもがなのMM/MDエンジン. 他にもnamd Amber GENESIS とかMM/MDエンジンは無償で得られるのが多いかな
gromacsのライセンスは version4.6以降は「GNU Lesser General Public License」です

ここでは最新版の GROMACS 2023.1 を取り扱います

gromacs/mpi
gromacs/run

取得

bioconda経由でも得られるようで、ほんとコンパイルなしで利用できます. ananocnda/minicondaを作ってconda createで環境を作って
「conda install -c bioconda gromacs」で最新のgromacsが利用できます.
conda経由で namd や amber(ambertools) が組み込められる. relionもcondaでインストール可能です

っがここでは古からのソースから作っていきます.
ソースの取得先は https://manual.gromacs.org/current/download.html

構築環境はこんな感じで

[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.1 (Blue Onyx)
 
 
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  525.116.03  Wed Apr 19 23:43:10 UTC 2023
GCC version:  gcc version 11.3.1 20220421 (Red Hat 11.3.1-2) (GCC)
 
 
[root@rockylinux9 ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0
 
 
[root@rockylinux9 ~]# nvidia-smi -L
GPU 0: NVIDIA RTX A2000 (UUID: GPU-23cc3ee7-31d3-a068-2f61-5aa00052d084)
 
[root@rockylinux9 ~]#

っでソース取得

[root@rockylinux9 ~]# mkdir -p /apps/src
[root@rockylinux9 ~]# cd /apps/src/
 
[root@rockylinux9 src]#
[root@rockylinux9 src]# wget https://ftp.gromacs.org/gromacs/gromacs-2023.1.tar.gz
[root@rockylinux9 src]#

下準備/コンパイル

コンパイル要件とかは https://manual.gromacs.org/current/install-guide/index.htmlを参照すると

「GROMACS 2023 series」でのコンパイラは

【2023.x】                 【2022.x】                  【2021.x】                     【2020.x】               【2019.x】
GNU (gcc/libstdc++) 9       GNU (gcc/libstdc++) 7       GNU (gcc/libstdc++) 7          GNU (gcc) 5.1            GNU (gcc) 4.8.1
LLVM (clang/libc++) 7       LLVM (clang/libc++) 7       LLVM (clang/libc++) 5          LLVM (clang) 3.6         LLVM (clang) 3.3
Microsoft (MSVC) 2019       Microsoft (MSVC) 2019       Microsoft (MSVC) 2017 15.7     Microsoft (MSVC) 2017    Microsoft (MSVC) 2017 (C++14 is used)
                                                        Intel (icc) 19.1               Intel (icc) 17.0.1       Intel (icc) 17.0.1
 
cuda121はGCC-12.2対応, cuda118は GCC-11まで

Intel様のコンパイラで古くからあるicc/icpcが外れ、代わりにメインのllvmなコンパイラicx/icpxでコンパイルができるそうな.

ここでの rockylinux9 のGCCは

[root@rockylinux9 ~]# gcc --version
gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
[root@rockylinux9 ~]#

となるので GCCのバージョンは大丈夫.
っでコンパイルのための追加パッケージを入れます

[root@rockylinux9 ~]# dnf install cmake fftw-devel python-devel -y

doxygen, sphinxはドキュメント作成に必要ですが、プログラムさえあればいいので入れてないです
っで処理を進めます

[root@rockylinux9 src]# tar xf gromacs-2023.1.tar.gz
[root@rockylinux9 src]# cd gromacs-2023.1/
[root@rockylinux9 gromacs-2023.1]# mkdir build; cd build
 
[root@rockylinux9 build]# cmake .. -DCMAKE_INSTALL_PREFIX=/apps/gromacs-2023.1 -DGMX_GPU=CUDA -DCMAKE_DISABLE_FIND_PACKAGE_MPI=ON -DREGRESSIONTEST_DOWNLOAD=ON
 
[root@rockylinux9 build]# make ; make ; make ; make check 
 
[root@rockylinux9 build]#
 :
 :
100% tests passed, 0 tests failed out of 87
 
Label Time Summary:
GTest              = 302.86 sec*proc (81 tests)
IntegrationTest    = 245.67 sec*proc (25 tests)
MpiTest            = 264.54 sec*proc (19 tests)
QuickGpuTest       = 115.45 sec*proc (17 tests)
SlowGpuTest        = 307.06 sec*proc (18 tests)
SlowTest           =  55.36 sec*proc (13 tests)
UnitTest           =   1.83 sec*proc (43 tests)
 
Total Test time (real) = 427.58 sec
[100%] Built target run-ctest-nophys
[100%] Built target check
 
[root@rockylinux9 build]#  make install

...makeの後に「make check」あるいは「make install」を行うと再度一からmakeしているように見える...なので複数回「make」を行ってから次に進めてます. 往年のsync;sync;syncのように

[root@rockylinux9 build]# cd /apps/gromacs-2023.1/
[root@rockylinux9 gromacs-2023.1]# ls -lF
total 8
drwxr-xr-x. 2 root root  176 Apr 30 23:22 bin/
drwxr-xr-x. 5 root root 4096 Apr 30 23:22 include/
drwxr-xr-x. 4 root root 4096 Apr 30 23:22 lib64/
drwxr-xr-x. 5 root root   45 Apr 30 23:22 share/
 
[root@rockylinux9 gromacs-2023.1]#
[root@rockylinux9 gromacs-2023.1]# ls -l bin/
total 404
-rwxr-xr-x. 1 root root   3382 Apr 21 22:12 demux.pl
-rwxr-xr-x. 1 root root 118080 Apr 30 23:00 gmx
-rw-r--r--. 1 root root 139480 Apr 21 22:13 gmx-completion.bash
-rw-r--r--. 1 root root     37 Apr 30 23:22 gmx-completion-gmx.bash
-rwxr-xr-x. 1 root root    570 Apr 30 21:26 GMXRC
-rwxr-xr-x. 1 root root   3228 Apr 30 21:26 GMXRC.bash
-rwxr-xr-x. 1 root root   3045 Apr 30 21:26 GMXRC.csh
-rwxr-xr-x. 1 root root    120 Apr 30 21:26 GMXRC.zsh
-rwxr-xr-x. 1 root root   9008 Apr 21 22:12 xplor2gmx.pl
[root@rockylinux9 gromacs-2023.1]#

コンパイルはhttp://manual.gromacs.org/documentation/current/install-guide/index.htmlを参照します。
ここでは計算ノード一台を使って計算を目指すので MPI は有効にしてないです.
複数の計算ノードを使っての計算なら MPI の有効は必須かと.

Environment modules

本来なら「source /apps/gromacs-2023.1/bin/GMXRC」で実行環境の整備が行われますが、ここではいつもの Environment module を使いたいのでmodulefilesを用意してます

ファイルは「/apps/modulefiles/gromacs/2023.1」とします

#%Module
 
set gromacs        /apps/gromacs-2023.1
 
setenv GMXBIN      $gromacs/bin
setenv GMXDATA     $gromacs/share/gromacs
setenv GMXLDLIB    $gromacs/lib64
setenv GMXMAN      $gromacs/share/man
setenv GROMACS_DIR $gromacs
 
prepend-path PATH            $gromacs/bin
prepend-path LD_LIBRARY_PATH $gromacs/lib64
prepend-path MANPATH         $gromacs/share/man
prepend-path PKG_CONFIG_PATH $gromacs/lib64/pkgconfig

つかう

系の準備は後ほど. 取り合えず動かし方として GROMACSのサイトで提供している Benchmark セットを実行してみたいと思う
場所はこちら https://ftp.gromacs.org/pub/benchmarks/
2023.04時点ではこんな感じ
2023y04m30d_233630638.png

この中で「ADH_bench_systems.tar.gz」を対象としてみます.

[saber@rockylinux9 ~]$ mkdir -p test/gromacs
[saber@rockylinux9 ~]$ cd test/gromacs/
[saber@rockylinux9 gromacs]$ wget https://ftp.gromacs.org/pub/benchmarks/ADH_bench_systems.tar.gz
[saber@rockylinux9 gromacs]$ tar xf ADH_bench_systems.tar.gz
[saber@rockylinux9 gromacs]$ ls -lF
total 13832
drwxr-xr-x. 6 saber saber       88 Oct  8  2016 ADH/
-rw-r--r--. 1 saber saber 14159933 Sep 24  2020 ADH_bench_systems.tar.gz
[saber@rockylinux9 gromacs]$
[saber@rockylinux9 gromacs]$ cd ADH/
[saber@rockylinux9 ADH]$ ls -l
total 16
drwxr-xr-x. 2 saber saber 4096 Oct  8  2016 adh_cubic
drwxr-xr-x. 2 saber saber 4096 Oct  8  2016 adh_cubic_vsites
drwxr-xr-x. 2 saber saber 4096 Oct  8  2016 adh_dodec
drwxr-xr-x. 2 saber saber 4096 Oct  8  2016 adh_dodec_vsites
[saber@rockylinux9 ADH]$
[saber@rockylinux9 ADH]$ cd adh_cubic
[saber@rockylinux9 adh_cubic]$ ls -l
total 15248
-rw-r--r--. 1 saber saber 9258297 Jul  4  2012 conf.gro
-rw-r--r--. 1 saber saber     706 Oct  8  2016 pme_verlet.mdp
-rw-r--r--. 1 saber saber     712 Oct  8  2016 rf_verlet.mdp
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_A.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_B.itp
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_C.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_D.itp
-rw-r--r--. 1 saber saber    1264 Jul  4  2012 topol.top
[saber@rockylinux9 adh_cubic]$

座標情報が入っている「conf.gro」をPyMOLで見てみるとこんな感じ
2023y05m01d_000636497.png

このフォルダには静電力の計算にPME(Particle-Mesh Ewald)方法(pme_verlet.mdp)か、反応力場(Reaction-Field)方法(rf_verlet.mdp)かで選べるようにしているみたい.
っで計算は下記のようにします

[saber@rockylinux9 adh_cubic]$ module load gromacs/2023.1
 
[saber@rockylinux9 adh_cubic]$ gmx grompp -f pme_verlet.mdp -o adh_cubic.tpr -p topol.top -c conf.gro
 
[saber@rockylinux9 adh_cubic]$ ls -l
total 23304
-rw-r--r--. 1 saber saber 8234020 May  1 00:39 adh_cubic.tpr
-rw-r--r--. 1 saber saber 9258297 Jul  4  2012 conf.gro
-rw-r--r--. 1 saber saber   10547 May  1 00:39 mdout.mdp
-rw-r--r--. 1 saber saber     706 Oct  8  2016 pme_verlet.mdp
-rw-r--r--. 1 saber saber     712 Oct  8  2016 rf_verlet.mdp
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_A.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_B.itp
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_C.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_D.itp
-rw-r--r--. 1 saber saber    1264 Jul  4  2012 topol.top
 
[saber@rockylinux9 adh_cubic]$ gmx mdrun -v -s adh_cubic.tpr -o adh_cubic.trr -c adh_cubic.gro -e adh_cubic.edr -g adh_cubic.log
                      :-) GROMACS - gmx mdrun, 2023.1 (-:
 
Executable:   /apps/gromacs-2023.1/bin/gmx
Data prefix:  /apps/gromacs-2023.1
Working dir:  /home/saber/test/gromacs/ADH/adh_cubic
Command line:
  gmx mdrun -v -s adh_cubic.tpr -o adh_cubic.trr -c adh_cubic.gro -e adh_cubic.edr -g adh_cubic.log
 
Reading file adh_cubic.tpr, VERSION 2023.1 (single precision)
Changing nstlist from 10 to 80, rlist from 0.9 to 1.035
 
1 GPU selected for this run.
Mapping of GPU IDs to the 2 GPU tasks in the 1 rank on this node:
  PP:0,PME:0
PP tasks will do (non-perturbed) short-ranged interactions on the GPU
PP task will update and constrain coordinates on the GPU
PME tasks will do all aspects on the GPU
Using 1 MPI thread
Using 4 OpenMP threads
 
starting mdrun 'NADP-DEPENDENT ALCOHOL DEHYDROGENASE in water'
10000 steps,     20.0 ps.
step 2320: timed with pme grid 100 100 100, coulomb cutoff 0.900: 683.4 M-cycles
step 2480: timed with pme grid 84 84 84, coulomb cutoff 1.050: 797.6 M-cycles
step 2640: timed with pme grid 96 96 96, coulomb cutoff 0.919: 702.9 M-cycles
step 2800: timed with pme grid 100 100 100, coulomb cutoff 0.900: 674.4 M-cycles
              optimal pme grid 100 100 100, coulomb cutoff 0.900
step 9900, remaining wall clock time:     0 s
Writing final coordinates.
step 10000, remaining wall clock time:     0 s
               Core t (s)   Wall t (s)        (%)
       Time:      104.670       26.168      400.0
                 (ns/day)    (hour/ns)
Performance:       66.040        0.363
 
GROMACS reminds you: "Look, I don't want to compete, so let's divide up physics between us. I'll take auroras and you take the rest of the universe." (Joan Feynman to her brother Richard)
 
[saber@rockylinux9 adh_cubic]$
[saber@rockylinux9 adh_cubic]$ ls -l
total 35532
-rw-r--r--. 1 saber saber   11436 May  1 00:47 adh_cubic.edr
-rw-r--r--. 1 saber saber 9258297 May  1 00:47 adh_cubic.gro
-rw-r--r--. 1 saber saber   24504 May  1 00:47 adh_cubic.log
-rw-r--r--. 1 saber saber 8234020 May  1 00:47 adh_cubic.tpr
-rw-r--r--. 1 saber saber 9258297 Jul  4  2012 conf.gro
-rw-r--r--. 1 saber saber   10547 May  1 00:47 mdout.mdp
-rw-r--r--. 1 saber saber     706 Oct  8  2016 pme_verlet.mdp
-rw-r--r--. 1 saber saber     712 Oct  8  2016 rf_verlet.mdp
-rw-r--r--. 1 saber saber 3221884 May  1 00:47 state.cpt
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_A.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_B.itp
-rw-r--r--. 1 saber saber 1582031 Jul  4  2012 topol_Protein_chain_C.itp
-rw-r--r--. 1 saber saber 1582034 Jul  4  2012 topol_Protein_chain_D.itp
-rw-r--r--. 1 saber saber    1264 Jul  4  2012 topol.top
[saber@rockylinux9 adh_cubic]$

メモ

最新の60件
2024-02-23 2024-02-22 2024-02-21 2024-02-20 2024-02-19 2024-02-18 2024-02-17 2024-02-16 2024-02-13 2024-02-12 2024-02-09 2024-02-04 2024-02-03 2024-01-31 2024-01-30 2024-01-29 2024-01-28 2024-01-22 2024-01-16 2024-01-15 2024-01-13 2024-01-12 2024-01-09 2024-01-08 2024-01-07 2024-01-03 2023-12-22 2023-12-17 2023-12-16 2023-12-11 2023-12-09 2023-12-06 2023-11-30 2023-11-27 2023-11-21 2023-11-19 2023-11-18 2023-11-14 2023-11-10 2023-11-09 2023-11-05 2023-11-03 2023-10-30 2023-10-26

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-05-03 (水) 12:12:51