GROMACS の実行

GROMACS の導入

  • ここでは分子動力学法シミュレータである、GROMACSをインストールし、実行します。

  • 手順

    • 前提パッケージをインストールします。
    • GROMACS (2019.5) ダウンロード、コンパイル実行 (MPI版)
    • 参考: GROMACS の公式ドキュメント
    • GROMACSのインストール(インストール先 : /shared/gromacs-2019.5)
mkdir -p /shared/gromacs
cd /shared/gromacs
sudo yum install -y cmake3
wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.5.tar.gz
tar xvzf gromacs-2019.5.tar.gz
cd gromacs-2019.5
rm -fr build
mkdir build
cd build
cmake3 .. \
  -DCMAKE_INSTALL_PREFIX=/shared/gromacs/gromacs-2019.5 \
  -DGMX_BUILD_OWN_FFTW=ON \
  -DGMX_MPI=ON \
  -DGMX_SIMD=None \
  -DGMX_GPU=OFF
make
sudo make install
source /shared/gromacs/gromacs-2019.5/bin/GMXRC

make の処理に10分程度要します。

この手順は参考のためのものです。 バージョンやコンパイル時のオプションなどは、要件にあわせたものをご利用ください。

GROMACSのEC2でのパフォーマンスについては、以下もご参照ください。 https://aws.amazon.com/blogs/hpc/gromacs-price-performance-optimizations-on-aws/

GROMACS の導入確認

gmx_mpi --version
  • 出力例

                       :-) GROMACS - gmx_mpi, 2019.5 (-:
    
                            GROMACS is written by:
     Emile Apol      Rossen Apostolov      Paul Bauer     Herman J.C. Berendsen
    Par Bjelkmar      Christian Blau   Viacheslav Bolnykh     Kevin Boyd    
    Aldert van Buuren   Rudi van Drunen     Anton Feenstra       Alan Gray     
    Gerrit Groenhof     Anca Hamuraru    Vincent Hindriksen  M. Eric Irrgang  
    Aleksei Iupinov   Christoph Junghans     Joe Jordan     Dimitrios Karkoulis
    Peter Kasson        Jiri Kraus      Carsten Kutzner      Per Larsson    
    Justin A. Lemkul    Viveca Lindahl    Magnus Lundborg     Erik Marklund   
    Pascal Merz     Pieter Meulenhoff    Teemu Murtola       Szilard Pall   
    Sander Pronk      Roland Schulz      Michael Shirts    Alexey Shvetsov  
    Alfons Sijbers     Peter Tieleman      Jon Vincent      Teemu Virolainen 
    Christian Wennberg    Maarten Wolf   
                           and the project leaders:
        Mark Abraham, Berk Hess, Erik Lindahl, and David van der Spoel
    <以下省略>
    

GROMACS 実行テスト

  • ベンチマーク用データ(water_GMX50_bare.tar.gz)を使用して動作を確認
cd /shared/gromacs
wget http://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz
tar xvzf water_GMX50_bare.tar.gz
cd water-cut1.0_GMX50_bare/0003
gmx_mpi grompp -f pme.mdp
  • 計算実行
time gmx_mpi mdrun -s topol.tpr -nsteps 3000 -v

実行中にエラーが特になく下記のような出力が得られれば成功です。 (数値は実行状況で変化します。最後のmdrunは実行完了まで2分程度要します。)

Using 1 MPI process

WARNING: Using the slow plain C kernels. This should
not happen during routine usage on supported platforms.
starting mdrun 'Water'
3000 steps,      6.0 ps.
step 2900, remaining wall clock time:     2 s          
Writing final coordinates.
step 3000, remaining wall clock time:     0 s          
               Core t (s)   Wall t (s)        (%)
       Time:       87.185       87.185      100.0
                 (ns/day)    (hour/ns)
Performance:        5.948        4.035

GROMACS reminds you: "It is now quite lawful for a Catholic woman to avoid pregnancy by a resort to mathematics, though she is still forbidden to resort to physics and chemistry." (Henry Louis Mencken)

ジョブスクリプトの作成 (Slurm編)

以下のコマンドを実行し、Slurm用ジョブスクリプト gromacs.sh を作成します。

cat > gromacs.sh << 'EOF'
#!/bin/bash
#SBATCH -n 8

module load openmpi
source /shared/gromacs/gromacs-2019.5/bin/GMXRC

mpirun -np ${SLURM_NTASKS} gmx_mpi mdrun -s /shared/gromacs/water-cut1.0_GMX50_bare/0003/topol.tpr -nsteps 15000
EOF
  • マスターノードからGROMACSのジョブを投入し、計算ノードで実行します

今回使用している c5.xlarge インスタンスタイプは 4 vCPUを有しているため、 上述のスクリプトのように、Slurmの-nオプションで8 Slotを要求した場合、2台のインスタンスが起動されることになります。

sbatch gromacs.sh
  • ジョブ確認
squeue
  • 出力例

             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON) 
                 2   compute gromacs.   centos CF       0:56      2 compute-dy-c5xlarge-[1-2] 
    

ジョブ実行が完了すると、squeue コマンドの出力からジョブの表示が無くなります。slurm-<JOB_ID>.outファイルを開き、結果を確認します。

cat slurm-<JOB_ID>.out

ジョブスクリプトの作成 (SGE編)

SGEでの実行方法(参考)