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)

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


Related articles