并行计算 ,使用了openMPI 编译生成可执行程序fast,需要运行在4个节点 48个进程。生成脚本sub.sh如下所示:
根据该脚本(chmod 修改该脚本可执行权限 chmod 775 sub.sh),提早神交批处理命令如下:
pkubatch./sub.sh
单节点计算 ,以下为bla.sh内容,注意脚本里可不用使用srun。
sbatch [OPTIONS(0)...] [ : [OPTIONS(n)...]] script(0) [args(0)...]
常用参含义
--help 显示sbatch命令的使用帮助信息;
-A <account> 指定计费账户;
-D, --chdir=<directory> 指定工作目录;
--get-user-env 获取用户的环境变量;
--gres=<list> 使用gpu这类资源,如申请两块gpu则--gres=gpu:2
-J, --job-name=<jobname>指定该作业的作业名;
--mail-type=<type>指定状态发巧睁悉生时,发送邮件通知,有效种类为(NONE, BEGIN, END, FAIL, REQUEUE, ALL);
--mail-user=<user> 发送给对应邮箱;
-n, --ntasks=<number> sbatch并不会执行任务,当需要申请相应的资源来运行脚本,默认情况下
一个任务一个核心,--cpus-per-task参数可以修改该默认值;
-c, --cpus-per-task=<ncpus> 每个任务所需要的核心数,默认为1;
--ntasks-per-node=<ntasks> 每个节点的任务数,--ntasks参数的优先级高于该参数,如果使用--ntasks
这个参数,那么将会变为每个节点最多运行的任务数;
-o, --output=<filename pattern> 输出文件,作业脚本中的输出将会输出到该文件;
-p, --partition=<partition_names> 将作业提交到对应分区;
-q, --qos=<qos>指定QOS;
-t, --time=<time> 设置限定时间孝乎;
案例1、
提交一个作业,该作业提交到cn-short的分区上,提交的优先级为low,共使用两个节点,每个节点4个核心,作业名为MyFirstJob,以下为脚本的内容,脚本文件名为job.sh。
在 上一篇 中我们简要介绍了 LSF 作业管理系统,下面将介绍 SLURM 资源管理系统。
SLURM (Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统,被世界范围内的超级计算机和计算集群广泛采用。SLURM 维护着一个待处理工作的队列并管理此工作的整体资源利用。它以一种共享或非共享的方式管理可用悔岁的计算节点(取决于资源的需求),以供用户执行工作。SLURM 会为任务队列合理地分配资源,并监视作业至其完成。如今,SLURM 已经成为了很多最强大的超级计算机上使用的领先资源管理器,如天河二号上便使用了 SLURM 资源管理系统。
下面是一些最常用的 SLURM 命令:
下表是 SLURM 环境变量:
SLURM 资源管理系统的管理对象包括:节点,分区,作业和作业步。
SLURM 系统有三种作业运行模式:
交互模式作业坦老的使用过程为:
例如使用 srun 申请 4 个进程生成一个作业步:
批处理让前升模式作业的使用过程为:
下面给出作业脚本示例:
用以下命令提交批处理作业:
分配模式作业的使用过程为:
分配模式通过 salloc 命令运行,举例如下(使用 2 个节点,4 个进程,预计运行时间 100 秒):
资源分配请求成功后会进入 bash shell 终端,在其中可以使用 srun 交互式地执行作业任务。在终端输入 exit 命令或 Ctrl+D 退出分配模式。
天河二号上使用的是 SLURM 资源管理系统,不过天河二号上使用的 SLURM 命令都是将标准的 SLURM 命令开头的 s 改成了 yh,如下:
以上介绍了 SLURM 资源管理系统,在 下一篇 中我们将介绍 MPI-3 的新特性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)