编辑: huangshuowei01 | 2017-09-21 |
53 work job.sh test605 PD 0:00
16 (Priority)
52 work test.sh test605 R 7:04:01
256 cn[256-511] $ cat job.sh #!/bin/sh #SBATCH -N
16 -t
100 -n
16 -c
4 yhrun -n
16 hostname $ ls hpl-2.0 iotest job.sh NPB3.3-MPI slurm-53.out test.sh 分配模式 - yhalloc ? 分配模式 1.提交资源分配请求 2.作业排队等待资源分配 3.执行用户指定的命令 4.命令执行结束,释放资源 ? 交互模式作业与批处理模式作业的结合 C 一个作业可包含多个作业步 C 可通过yhrun加载计算任务 C 可与任务进行交互 C 命令在用户提交作业的节点上执行 分配模式 - yhalloc ? 通过yhalloc命令运行 $ yhalloc -N
2 -n
4 -c
2 -t
100 /bin/sh yhalloc: Granted job allocation
56 sh-4.1$ yhrun -n
4 hostname cn1 cn1 cn0 cn0 sh-4.1$ ssh cn0 ls hpl-2.0 iotest job.sh NPB3.3-MPI slurm-53.out test.sh sh-4.1$ yhrun -n
2 date Fri Mar
20 15:46:05 CST
2015 Fri Mar
20 15:46:05 CST
2015 sh-4.1$ exit exit yhalloc: Relinquishing job allocation
56 $ 作业的资源需求 ? 节点数量:-N,--nodes min[-max] C 如未指定,则根据其他需求,分配足够的节点 ? 处理器数量:由几个参数决定 C 作业要加载的任务数 -n,--ntasks,默认每个节点一个 C 每个任务需要的处理器数 -c,--cpus-per-task,默认为
1 C 系统将根据参数计算,分配足够处理器数目的节点 ? 节点与处理器数目约束 $ yhrun -N
4 -n
8 hostname cn1246 cn1247 cn1248 cn1249 cn1246 cn1247 cn1248 cn1249 作业的资源需求 ? 运行时间:-t,--time C 单位为分钟 C 超出时间限制的作业将被终止 C 应尽可能准确估计:调度时用此估计时间进行backfill判断与优先级设置 ? 分区:-p,--partition C 从指定分区中分配节点 C 使用指定分区的资源限制 / 访问权限进行检查 C 作业必须位于一个分区中,不能跨分区 ? 节点: C -w,--nodelist :指定分配给作业的资源中至少要包含的节点 C -F,--nodefile :指定分配给作业的资源中至少要包含文件中定义的节点(此选 项仅对yhalloc和yhbatch可用) C -x,--exclude :指定分配给作业的资源中不要包含的节点 C --contiguous :表示作业需要被分配连续的节点 $ yhrun -N
4 -n
8 -t
100 a.out 作业的运行参数 ? 作业名字 C 默认:加载的程序 / 批处理脚本文件名 / 执行的命令 C -J,--job-name:指定名字 ? 工作目录 C -D,--chdir:指定任务/脚本/命令的工作目录 C 默认:yhrun/yhbatch/yhalloc 的工作目录 $ yhbatch -N
4 job.sh $ yhbatch -N
8 -J myjob job.sh $ yhqueue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
1234 work job.sh test R 00:05
4 cn[0-3]
1235 work myjob test R 00:03
8 cn[12-19] $ yhcancel -J myjob $ yhbatch -N
4 -D /WORK/test/devel/bin job.sh 作业的运行参数 ? 启动时间 C --begin:作业在指定时间之后才能运行 ? 依赖关系 C -d,--dependency:指定作业的依赖关系 ? after:jobid:在指定作业开始之后 ? afterok:jobid:在指定作业成功结束之后 ? afternotok:jobid:在指定作业不成功结束之后 ? afterany:jobid:在指定作业结束之后 C 满足依赖关系的作业才能运行 C 不可能满足依赖关系的作业将被取消 ? 节点故障容忍 C 默认:节点失效时将终止作业 ? 失效指节点变为 DOWN 状态 ? 主要针对 MPI 程序的执行,及时释放资源 C -k,--no-kill:容忍节点故障 ? 程序自身容错 ? 正在执行的作业步失败后,继续运行后续作业步 作业的环境变量 ? 系统在运行计算任务/作业脚本/命令时,会为其设置一些环境变量, 以反映其资源分配情况 ? 在批处理和分配模式作业中,可根据环境变量获得资源分配情况 C SLURM_NPROCS:要加载的任务数 C SLURM_TASKS_PER_NODE:每节点要加载的任务数 C SLURM_JOB_ID:作业的 JobID C SLURM_SUBMIT_DIR:提交作业时的工作目录 C SLURM_JOB_NODELIST:作业分配的节点列表 C SLURM_JOB_CPUS_PER_NODE:每个节点上分配给作业的 CPU 数CSLURM_JOB_NUM_NODES:作业分配的节点数 C HOSTNAME:对于批处理作业,此变量被设置为批处理脚本所执行节点的节点名 多程序作业步 ? 支持 MPMD 程序的运行,即不同任务号执行不同程序 C --multi-prog 选项 C yhrun 最后跟配置文件,而不是可执行程序命令 ? 配置文件格式 C 按行组织,每行分为若干空白分隔的字段 C 第一字段:任务号部分 ? 逗号分隔的任务号列表 ? 可包含范围 min-max ? * 表示其余所有任务 C 第二字段:要执行的程序 C 其余字段:执行程序的参数 多程序作业步 ? 配置文件格式 C 在程序和参数部分,支持变量替换 C %t:任务号 %o:在本行的偏移 ? 任务布局 $ cat mp.conf