Slurm脚本示例

1 设置所使用的shell

#!/bin/bash

2 job参数

设置作业名称,以便在队列中查看(替换<>中的参数)

#SBATCH --job-name=

可以创建一组任务(作业)

#SBATCH --array=

例如,#SBATCH --array=1-5

3 email

##SBATCH --mail-user=

##SBATCH --mail-user=,

发送方式

NONE - 不发送

ALL - 始终发送

END,FAIL - 作业结束和失败时发送

4 标准输出和错误log文件

模板参数为:

%j - 作业id

%A-%a - 作业id (A) 和任务id (a)

可以用--error单独输出错误log

#SBATCH --output

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=

分配给该作业的最小节点数

-n, --ntasks=

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 [email protected] # 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

Sample SLURM Scripts - UFRC (ufl.edu)

你可能感兴趣的:(科普,c和c++程序设计,python)