1 设置所使用的shell
#!/bin/bash
2 job参数
设置作业名称,以便在队列中查看(替换<>中的参数)
#SBATCH --job-name=<JOBNAME>
可以创建一组任务(作业)
#SBATCH --array=<BEGIN-END>
例如,#SBATCH --array=1-5
3 email
##SBATCH --mail-user=<EMAIL>
##SBATCH --mail-user=<EMAIL-ONE>,<EMAIL-TWO>
发送方式
NONE - 不发送
ALL - 始终发送
END,FAIL - 作业结束和失败时发送
4 标准输出和错误log文件
模板参数为:
%j - 作业id
%A-%a - 作业id (A) 和任务id (a)
可以用--error单独输出错误log
#SBATCH --output <my_job-%j.out>
5 计算资源分配
使用1个节点。对于非MPI作业,该数值需要为1。
#SBATCH --nodes=1
任务数,对于非MPI作业,该数值需要为1。
#SBATCH --ntasks=1
CPU核数。
#SBATCH --cpus-per-task=4
内存分配。默认为2Gb,可以指定单位为mb或者gb。
#SBATCH --mem=4gb
6 运行时间
格式HOURS:MINUTES:SECONDS
#SBATCH --time=72:00:00
7 其他
采用shell命令用于记录等,添加日期、主机、目录名称等
date;hostname;pwd
-N,--nodes=<minnodes[-maxnodes]>
分配给该作业的最小节点数
-n, --ntasks=<number>
task(MPI的ranks)的数目
#!/bin/bash
#SBATCH --job-name=mpi_job_test # Job name
#SBATCH --mail-type=END,FAIL # Mail events (NONE, BEGIN, END, FAIL, ALL)
#SBATCH --mail-user=email@ufl.edu # Where to send mail. Set this to your email address
#SBATCH --ntasks=24 # Number of MPI tasks (i.e. processes)
#SBATCH --cpus-per-task=1 # Number of cores per MPI task
#SBATCH --nodes=2 # Maximum number of nodes to be allocated
#SBATCH --ntasks-per-node=12 # Maximum number of tasks on each node
#SBATCH --ntasks-per-socket=6 # Maximum number of tasks on each socket
#SBATCH --distribution=cyclic:cyclic # Distribute tasks cyclically first among nodes and then among sockets within a node
#SBATCH --mem-per-cpu=600mb # Memory (i.e. RAM) per processor
#SBATCH --time=00:05:00 # Wall time limit (days-hrs:min:sec)
#SBATCH --output=mpi_test_%j.log # Path to the standard output and error files relative to the working directory
echo "Date = $(date)"
echo "Hostname = $(hostname -s)"
echo "Working Directory = $(pwd)"
echo ""
echo "Number of Nodes Allocated = $SLURM_JOB_NUM_NODES"
echo "Number of Tasks Allocated = $SLURM_NTASKS"
echo "Number of Cores/Task Allocated = $SLURM_CPUS_PER_TASK"
module load intel/2018.1.163 openmpi/3.0.0
srun --mpi=pmix_v1 /data/training/SLURM/prime/prime_mpi