GROMACS: Perbedaan antara revisi
LSlowmotion (bicara | kontrib) (Add hardware support) |
LSlowmotion (bicara | kontrib) (→SLURM Submission Script: Akselerasi GPU) |
||
Baris 53: | Baris 53: | ||
#SBATCH --time=10:00:00 | #SBATCH --time=10:00:00 | ||
#SBATCH --output=result-%j.out | #SBATCH --output=result-%j.out | ||
#SBATCH --error=result-%j. | #SBATCH --error=result-%j.err | ||
# MODULE | # MODULE | ||
Baris 62: | Baris 62: | ||
# Total proses MPI = ntasks per node X nodes | # Total proses MPI = ntasks per node X nodes | ||
mpirun -np 128 --mca pml ucx --mca osc ucx gmx_mpi mdrun <parameter_input_dan_output> | mpirun -np 128 --mca pml ucx --mca osc ucx gmx_mpi mdrun <parameter_input_dan_output> | ||
=== Akselerasi GPU di GPU Node === | |||
User juga dapat menjalankan pekerjaan di GPU node menggunakan resource GPU. Perlu diketahui '''tidak semua input dan parameter berjalan kencang dengan akselerasi GPU'''. Harap user dapat menguji terlebih dahulu mdrun-nya dengan nsteps kecil untuk mengetahui peningkatan performa yang bisa diperoleh melalui akselerasi GPU. Perlu diketahui pula akselerasi GPU umumnya hanya bisa berjalan dengan [[Scheduler SLURM Aleleon|paralelisme OpenMP]]. | |||
Biasanya, GROMACS mdrun '''tidak memerlukan parameter tambahan''' untuk menjalankan akselerasi GPU. Namun dalam beberapa kasus, optimasi menggunakan parameter tambahan bisa berpengaruh positif ke kecepatan komputasi. Referensi mengenai parameter akselerasi GPU lanjutan (-nb, -bonded, -pme) dapat dibaca di laman [https://manual.gromacs.org/current/user-guide/mdrun-performance.html Getting good performance from mdrun — GROMACS 2021.1 documentation] dan [https://developer.nvidia.com/blog/creating-faster-molecular-dynamics-simulations-with-gromacs-2020 Creating Faster Molecular Dynamics Simulations with GROMACS 2020 | NVIDIA Developer Blog]. | |||
#!/bin/bash | |||
#SBATCH --partition=gpu_ampere | |||
#SBATCH --ntasks=32 | |||
#SBATCH --gres=gpu:1 | |||
#SBATCH --mem=48GB | |||
#SBATCH --time=10:00:00 | |||
#SBATCH --output=result-%j.out | |||
#SBATCH --error=result-%j.err | |||
# MODULE | |||
module load gromacs | |||
# RUN COMMAND | |||
# Definisikan jumlah thread OpenMP menyesuaikan ntasks | |||
export OMP_NUM_THREADS=32 | |||
gmx_mpi mdrun <parameter_input_dan_output> |
Revisi per 7 April 2021 09.24
Software GROMACS
GROMACS adalah package berkecepatan tinggi untuk komputasi dinamika molekular baik untuk biokimia (seperti protein, lipids) maupun non-biokimia (seperti polimer).
Versi yang Tersedia
Versi | Nama Modul | Dukungan Hardware | Partisi |
---|---|---|---|
2021.1 | gromacs | CPU-GPU, parallel multi-node | epyc, gpu_ampere |
Menjalankan Perintah GROMACS di Login Node
Beberapa perintah GROMACS bekerja secara interaktif dan membutuhkan input dari user (contoh: pdb2gmx, grompp) sehingga tidak mungkin dijalankan melalui scheduler SLURM. Beberapa perintah tersebut hanya membutuhkan resource yang kecil dan dapat dilakukan langsung di login node melalui terminal.
Sebelum melakukan perintah-perintah interaktif GROMACS, load module GROMACS:
$ module load gromacs
Lanjutkan dengan melakukan perintah interaktif GROMACS (contoh: pdb2gmx):
$ gmx_mpi pdb2gmx <parameter_input_dan_output>
Perintah-perintah GROMACS yang membutuhkan resource komputasi berat (contoh: mdrun), harus dijalankan melalui SLURM.
SLURM Submission Script
User harus menggunakan Scheduler SLURM untuk menjalankan komputasi GROMACS di Compute Node. User dapat menjalankan GROMACS dengan satu node atau paralel (lebih dari satu node) untuk performa lebih kencang.
Satu Node
Contoh menggunakan 64 core CPU dan RAM 128GB.
#!/bin/bash #SBATCH --ntasks=64 #SBATCH --mem=128GB #SBATCH --time=10:00:00 #SBATCH --output=result-%j.out #SBATCH --error=result-%j.err # MODULE module load gromacs # RUN COMMAND # mpirun wajib menggunakan flag protokol UCX mpirun -np 64 --mca pml ucx --mca osc ucx gmx_mpi mdrun <parameter_input_dan_output>
Banyak Node
Contoh menggunakan 2 node, masing-masing 64 core CPU dan RAM 128GB.
#!/bin/bash #SBATCH --nodes=2 #SBATCH --ntasks-per-node=64 #SBATCH --mem=128GB #SBATCH --time=10:00:00 #SBATCH --output=result-%j.out #SBATCH --error=result-%j.err # MODULE module load gromacs # RUN COMMAND # mpirun wajib menggunakan flag protokol UCX # Total proses MPI = ntasks per node X nodes mpirun -np 128 --mca pml ucx --mca osc ucx gmx_mpi mdrun <parameter_input_dan_output>
Akselerasi GPU di GPU Node
User juga dapat menjalankan pekerjaan di GPU node menggunakan resource GPU. Perlu diketahui tidak semua input dan parameter berjalan kencang dengan akselerasi GPU. Harap user dapat menguji terlebih dahulu mdrun-nya dengan nsteps kecil untuk mengetahui peningkatan performa yang bisa diperoleh melalui akselerasi GPU. Perlu diketahui pula akselerasi GPU umumnya hanya bisa berjalan dengan paralelisme OpenMP.
Biasanya, GROMACS mdrun tidak memerlukan parameter tambahan untuk menjalankan akselerasi GPU. Namun dalam beberapa kasus, optimasi menggunakan parameter tambahan bisa berpengaruh positif ke kecepatan komputasi. Referensi mengenai parameter akselerasi GPU lanjutan (-nb, -bonded, -pme) dapat dibaca di laman Getting good performance from mdrun — GROMACS 2021.1 documentation dan Creating Faster Molecular Dynamics Simulations with GROMACS 2020 | NVIDIA Developer Blog.
#!/bin/bash #SBATCH --partition=gpu_ampere #SBATCH --ntasks=32 #SBATCH --gres=gpu:1 #SBATCH --mem=48GB #SBATCH --time=10:00:00 #SBATCH --output=result-%j.out #SBATCH --error=result-%j.err # MODULE module load gromacs # RUN COMMAND # Definisikan jumlah thread OpenMP menyesuaikan ntasks export OMP_NUM_THREADS=32 gmx_mpi mdrun <parameter_input_dan_output>