使用 SLURM

通过在命令行中指定 -batchsystem slurmSimcenter STAR-CCM+ 会自动将进程分发至分配给作业的所有 CPU/核心。

有关使用批处理系统提交作业的常规信息,请参见在基于 Unix 的批处理系统中工作

有关其他必需参数或设置,另请参考特定群集文档和批处理系统文档。

文档参考

用于作业提交和监视的有用命令

显示 SLURM 版本

$ sinfo -V
slurm 20.02.6

提交作业

Slurm 作业使用 sbatchsalloc/srun 命令提交。建议使用 sbatch 选项,因为随着提交选项变得更复杂,srun 命令会存在提交问题。

$ sbatch <submission options> <job_script>
$ sbatch <submission options> <command>

显示作业状态

# show all queued jobs
$ squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            129089    normal   TEST02   tester PD       0:00      2 (Resources)
            128807    normal   TEST01   tester  R 3-03:13:11      4 node[069-072]
 
# show a specific job by jobid
$ squeue -j 128807
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            128807    normal   TEST01   tester  R 3-03:13:11      4 node[069-072]

终止作业

$ scancel <jobid>

作业提交

启动 Simcenter STAR-CCM+ 的最低示例作业脚本,并自动提取有关已分配资源的信息:

#!/bin/bash
 
#SBATCH --job-name=starsim
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40
#SBATCH --time=1:00:00
 
echo "Running job $SLURM_JOB_NAME in the work directory: $SLURM_SUBMIT_DIR"
 
STAR_PATH=/path/to/star/bin
$STAR_PATH/starccm+ -bs slurm -batch step my.sim

这会将名为 starsim 的作业分配给两个节点,每个节点处理 40 个进程一小时。标准和错误输出将重定向到名为 "slurm-<jobid>.out" 的单个文件。

作业文件提交前缀

批处理脚本可能包含前面带有 #SBATCH 的选项,这些选项位于脚本中的任何可执行命令之前。一旦脚本中达到第一个非注释非空格行,sbatch 将停止处理 #SBATCH 指令。

提交选项

这些参数可以在提交命令中使用,也可以在前面添加提交前缀与提交命令文件一起使用。

参数描述
--job-name=<job_name>赋予作业的名称
--nodes=<#nodes>已分配给作业的节点(计算机)数量
--ntasks-per-node=<#tasks>为每个节点分配的核心/进程数
--time=<hh:mm:ss>作业的最大 walltime
--partition=<partition_name>作业将在其中运行的分区(队列名称)
--output=<output_filename>标准输出日志文件
--error=<error_filename>错误输出日志文件

首选 tasks-per-node 而不是 ntask

使用 --ntasks-per-node 而不是 -ntasks,以避免在更改节点数时更改值。

提交环境变量

运行作业时有多个环境变量处于活动状态。这些变量前面带有 'SLURM_'。这是一些更有用变量的列表。

环境变量描述
SLURM_JOBID作业 ID
SLURM_JOB_ID作业 ID
SLURM_JOB_NAME分配给作业的名称
SLURM_JOB_NODELIST 参与作业的节点的列表。请参见节点列表
SLURM_NNODES 参与作业的节点数
SLURM_NPROCS 并行进程数
SLURM_NTASKS并行任务数
SLURM_NTASKS_PER_NODE提交资源分配的每个节点任务(核心)数 - ntasks-per-node 选项
SLURM_SUBMIT_DIR作业的 CWD

SLURM 环境变量传播要求

默认情况下,SLURM 将所有环境变量传播到启动的应用程序(类似于 sbatch --export=ALL)。如果更改默认行为,运行 Simcenter STAR-CCM+ 可能会出现问题。在这种情况下,可恢复默认 SLURM 设置,或注意通过其他方式将所有必需的环境变量传播到启动的应用程序。