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

การใช้งาน 2 nodes ขึ้นไป MAFFT จะทำงานในรูปแบบผสมผสานระหว่าง OMP (shared memory) และ MPI (distributed memory) โดยตัว software จะเปิดใช้จะนวน OMP thread ตามที่ระบุไว้ใน --thread และใช้งาน MPI task (or rank) จะที่กำหนดไว้ใน slurm option ไม่ว่าจะเป็นการกำหนด -n เพื่อระบุจำนวน tasks ทั้งหมด หรือการกำหนด --ntasks-per-node เพื่อระบุจำนวน task ในแต่ node (option นี้จำนวน MPI tasks รวมจะคูณด้วยจำนวน node(s) ที่เรียกใช้) จำนวนทรัพยากรที่ software ใช้งานจะเท่ากับ (จำนวน OMP threads) x (จำนวน MPI task)

การใช้งานตัวเลือก --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 อื่นๆ

ผู้ใช้งานสามารถตั้งค่าโดยใช้คำสั่ง

ตัวอย่างเช่น


Related articles