GROMACS [TH]
GROMACS (GROningen MAchine for Chemical Simulations) เป็น molecular dynamics simulation package
Official website : https://www.gromacs.org/
Available version
Version | Thread MPI (single node or GPU) | MPI (multi-node) |
---|---|---|
2019.5 | gmx mdrun | gmx_mpi mdrun |
2021.1 | gmx mdrun | mdrun_mpi |
2022 (อยู่ในแผนการติดตั้ง) | - | - |
1. เตรียม Input
ในการใช้งานโปรแกรม GROMACS จะต้องมีการเตรียม input files ที่ใช้ในการรันคือ TPR file
2. การเตรียม Job submission script
ตัวอย่าง job submission script <gromacs.sh> สำหรับการใช้งานนรูปแบบต่างๆ
2.1 การใช้งานบน compute node (1 node)
#!/bin/bash
#SBATCH -p compute #specific partition
#SBATCH -N 1 -c 40 #1 node, 40 cores/task
#SBATCH -t 120:00:00 #job time limit <hr:min:sec>
#SBATCH -A train001 #project account
#SBATCH -J GROMACS #job name
##Module Load##
module purge
module load GROMACS/2021.1-fosscuda-2019b
gmx mdrun -deffnm md
ซึ่งเป็นการเรียกใช้งาน compute node
โดยใช้ 40 CPU-cores
และ job time limit 120:00:00
ชั่งโมง ภายใต้ project account train001
(จำเป็นต้องเปลี่ยนเป็น project account ที่ท่านเป็นสมาชิกในโครงการฯ เช่น pre0008)
2.2 การใช้งานบน compute node (>1 node)
#!/bin/bash
#SBATCH -p compute #specific partition
#SBATCH -N 2 -n 40 -c 2 #2 node, 40 tasks, 2 cores/task (total 80 cores)
#SBATCH -t 100:00:00 #job time limit <hr:min:sec>
#SBATCH -A train001 #project account
#SBATCH -J GROMACS #job name
##Module Load##
module purge
module load GROMACS/2021.1-fosscuda-2019b
srun mdrun_mpi -deffnm stmv -ntomp 2
ซึ่งเป็นการเรียกใช้งาน compute node
ใช้ 80 CPU-cores
โดยมี 40 tasks (-n 40
) แต่ละ tasks ใช้ 2 cores (-c 2
) [สำหรับส่วนนี้มีการ set mdrun option -ntomp 2
ให้สอดคล้องกัน] บน node 2 nodes (-N 2
) และ job time limit 120:00:00
ชั่งโมง ภายใต้ project account train001
(จำเป็นต้องเปลี่ยนเป็น project account ที่ท่านเป็นสมาชิกในโครงการฯ เช่น pre0008)
หากต้องการเพิ่มจำนวน cores ที่ต้องการใช้งานสามารถ ปรับที่ -n และปรับ -N ให้สอดคล้องกันเช่น 120 cores (-N 3 -n 60
), 160 cores (-N 4 -n 80
), 200 cores (-N 5 -n 100
)
ข้อสังเกต เมื่อต้องการใช้งานมากกว่า 1 node จะต้องมีการใช้คำสั่ง srun
2.3 การใช้งานบน memory node (1 node)
#!/bin/bash
#SBATCH -p memory #specific partition
#SBATCH -N 1 -c 24 #1 node, 24 cores/task
#SBATCH -t 120:00:00 #job time limit <hr:min:sec>
#SBATCH -A train001 #project account
#SBATCH -J GROMACS #job name
##Module Load##
module purge
module load GROMACS/2021.1-fosscuda-2019b
gmx mdrun -deffnm md
ซึ่งเป็นการเรียกใช้งาน memory node
โดยใช้ 24 CPU-cores
และ job time limit 120:00:00
ชั่งโมง ภายใต้ project account train001
(จำเป็นต้องเปลี่ยนเป็น project account ที่ท่านเป็นสมาชิกในโครงการฯ เช่น pre0008)
หากต้องการเพิ่มจำนวน cores สามารถทำได้โดนปรับค่า -c ให้เป็นจำนวน cores ที่ต้องการใช้งาน ทั้งนี้เพื่อให้สอดคล้องกับโครงสร้างของ memory node ค่าที่เหมาะสมจะเป็น 24, 48, 96, 192 cores
2.4 การใช้งานบน GPU node (1 node)
ซึ่งเป็นการเรียกใช้งาน gpu node
1 node ไม่มีการระบุจำนวน core เนื่องจากการใช้งาน GPU node เป็นการใช้งานทั้ง node (40 cores + 2 V100 GPU cards) และ job time limit 120:00:00
ชั่งโมง ภายใต้ project account train001
(จำเป็นต้องเปลี่ยนเป็น project account ที่ท่านเป็นสมาชิกในโครงการฯ เช่น pre0008)
สามารถใช้ option ของ mdrun ในการปรับค่าให้เหมาะสมได้ เช่น
ที่เป็นการระบุให้ใช้ GPU ในการคำนวนในส่วน non-bonded, bonded, PME, การอัพเดทค่า coordinates และ constrains โดย
-ntmpi
จะต้องหารจำนวน cards GPU ลงตัว (สำหรับ GPU node คือ 2 นั่นคือสามารถใช้ -ntmpi
เป็น 2,4,6,8 ได้)
-ntmpi
คูณกับ -ntomp
จะได้จำนวน thread ที่ใช้งาน (สำหรับ GPU node จะมี CPU 40 cores ใช้งานได้ 40 thread)
3. Job submission
ทำการส่งรันงานในระบบ โดยใช้คำสั่ง sbatch และตามด้วยไฟล์ job submission script