versions 7.463 – 7.486 มีข้อผิดพลาดในการการทำงานของ FFT-NS-i (รายละเอียดเพิ่มเติมที่นี่)
Software website : MAFFT - a multiple sequence alignment program
ตัวอย่าง script ในการ submit job
การใช้งาน 1 node (OpenMP)
#!/bin/bash #SBATCH -p devel #specific partition #SBATCH -N 1 #SBATCH -c 40 --ntasks-per-node=1 #specific number of nodes and task per node #SBATCH -t 2:00:00 #job time limit <hr:min:sec> #SBATCH -A train001 #project name #SBATCH -J mafft #job name ## module load module purge module load MAFFT/7.487-gompi-2021a-with-extensions ## run the command mafft --thread 40 input.fa > output.fa
โดยจำนวน thread ที่ใช้ (--thread
) จะเท่ากับจำนวน cpus ที่ทำการจอง (-c
หรือ --cpus-per-task
) ซึ่งในที่นี้คือ 40 cores
การใช้งานมากกว่า 1 node (ใช้งาน MPI)
การใช้งาน MPI ในกรณที่ใช้ทรัพยากรเท่ากันจะทำงานช้ากว่ารูปแบบ OpenMP
ไม่แนะนำให้ใช้งาน MAFFT/7.481-gompi-2020b-with-extensions ในรูปแบบนี้ เนื่องจากมีรายงานข้อผิดของการทำงานร่วมกันระหว่าง UCX และ OpenMPI ใน gompi-2020b ทำให้ผลที่ได้จากใช้งาน software ผิดพลาดได้
#!/bin/bash #SBATCH -p devel #specific partition #SBATCH -N 2 #SBATCH -c 40 --ntasks-per-node=1 #specific number of nodes and task per node #SBATCH -t 2:00:00 #job time limit <hr:min:sec> #SBATCH -A train001 #project name #SBATCH -J mafft-mpi #job name ## module Load module purge module load MAFFT/7.487-gompi-2021a-with-extensions ## set enviroment variable according to https://mafft.cbrc.jp/alignment/software/mpi.html export MAFFT_MPIRUN="srun" export MAFFT_N_THREADS_PER_PROCESS="40" ## run the command mafft --mpi --thread 40 input.fa > output-mpi.fa
script ด้านบนจะเรียกใช้งานทรัพยากรจำนวน 2 nodes (-N 2
) node ละ 40 cores (-c 40 --ntasks-per-node=1
) รวม 80 cores ในส่วนของคำสั่งของ MAFFT จะตั้งค่าจำนวน threads (--thread
) เท่ากับจำนวน cores ที่ใช้ในแต่ละ node
การใช้งานตัวเลือก --large
การเรียกใช้ --large จะลดการใช้งาน RAM โดยโปรแกรมจะจัดเก็บข้อมูลไว้ใน temporary files แทน การใช้งานฟังก์ชันนี้จะลดปัญหาหน่วยความจำไม่เพียงพอ (out of memory) แต่ส่งผลให้การคำนวณช้าลง
การใช้งาน temporary files
โดยปกติแล้ว temporary files จะอยู่จัดเก็บใน $HOME/maffttmp/
ซึ่งผู้ใช้งานสามารถเปลี่ยนที่จำเก็บได้โดยการตั้งค่า MAFFT_TMPDIR ไปยัง path ของ location ที่ต้องการ
หาก temporary files มีขนาดใหญ่เอาจะทำให้เกิด error: disk quota exceed ได้ หากต้องการใช้งานฟังก์ชั้นนี้ทางทีมแนะนำให้ตั้งค่า MAFFT_TMPDIR ไปยัง location ที่มี disk quota มากพอเช่น project home หรือ scratch directory
การตั้งค่า MAFFT_TMPDIR ไปยัง local /tmp
สามารถทำได้ในกรณีใช้งาน 1 node เท่านั้น
การตั้งค่า MAFFT_TMPDIR ไปที่ local /tmp จะเป็นการใช้งานพื้นที่ที่อยู่บนเครื่องที่ใช้งานโดยตรงโดยไม่ผ่าน network จะให้ software สามารถทำงานได้รวดเร็วขึ้น
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
export MAFFT_TMPDIR=$SLURM_TMPDIR
ซึ่งสามารถเพิ่มคำสั่งดังกล่าวเข้าไปใน script ที่ใช้สั่งงานตามตัวอย่างด้านล่าง
#!/bin/bash #SBATCH -p devel #specific partition #SBATCH -N 1 #SBATCH -c 40 --ntasks-per-node=1 #specific number of nodes and task per node #SBATCH -t 2:00:00 #job time limit <hr:min:sec> #SBATCH -A train001 #project name #SBATCH -J mafft #job name ## module load module purge module load MAFFT/7.487-gompi-2021a-with-extensions ## set enviroment variable https://mafft.cbrc.jp/alignment/software/tips.html export MAFFT_TMPDIR=$SLURM_TMPDIR ## run the command mafft --globalpair --large --thread 40 --threadtb 20 --threadit 40 input.fa > output.fa
การตั้งค่า MAFFT_TMPDIR ไปยัง scratch directory
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
export MAFFT_TMPDIR=/tarafs/scratch/projxxxx-abcd/
โดยที่ xxxx
ใน projxxxx-abcd
คือ project ID และ abcd คือชื่อย่อของ project
ซึ่งสามารถเพิ่มคำสั่งดังกล่าวเข้าไปใน script ที่ใช้สั่งงานตามตัวอย่างด้านล่าง
#!/bin/bash #SBATCH -p devel #specific partition #SBATCH -N 1 #SBATCH -c 40 --ntasks-per-node=1 #specific number of nodes and task per node #SBATCH -t 2:00:00 #job time limit <hr:min:sec> #SBATCH -A train001 #project name #SBATCH -J mafft #job name ## module load module purge module load MAFFT/7.487-gompi-2021a-with-extensions ## set enviroment variable https://mafft.cbrc.jp/alignment/software/tips.html export MAFFT_TMPDIR=/tarafs/scratch/projxxxx-abcd/ ## run the command mafft --globalpair --large --thread 40 --threadtb 20 --threadit 40 input.fa > output.fa
การตั้งค่า MAFFT_TMPDIR ไปยัง location อื่นๆ
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
export MAFFT_TMPDIR=[path to location]
ตัวอย่างเช่น
export MAFFT_TMPDIR=/tarafs/data/project/train001-train/run_MAFFT/