MAFFT [TH]
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 ที่ต้องการ
การตั้งค่า MAFFT_TMPDIR ไปยัง local /tmp
การตั้งค่า MAFFT_TMPDIR ไปที่ local /tmp จะเป็นการใช้งานพื้นที่ที่อยู่บนเครื่องที่ใช้งานโดยตรงโดยไม่ผ่าน network จะให้ software สามารถทำงานได้รวดเร็วขึ้น
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
export MAFFT_TMPDIR=$SLURM_TMPDIR
ซึ่งสามารถเพิ่มคำสั่งดังกล่าวเข้าไปใน script ที่ใช้สั่งงานตามตัวอย่างด้านล่าง
การตั้งค่า MAFFT_TMPDIR ไปยัง scratch directory
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
โดยที่ xxxx
ใน projxxxx-abcd
คือ project ID และ abcd คือชื่อย่อของ project
ซึ่งสามารถเพิ่มคำสั่งดังกล่าวเข้าไปใน script ที่ใช้สั่งงานตามตัวอย่างด้านล่าง
การตั้งค่า MAFFT_TMPDIR ไปยัง location อื่นๆ
ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง
ตัวอย่างเช่น