ここでは分子動力学法シミュレータである、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/
gmx_mpi
コマンドを実行して起動するか確認します。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
<以下省略>
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用ジョブスクリプト 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
今回使用している 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