使用 PBS
通过在命令行中指定 -batchsystem pbs
,Simcenter STAR-CCM+ 会自动将进程分发至分配给作业的所有 CPU/核心。
有关使用批处理系统提交作业的常规信息,请参见在基于 Unix 的批处理系统中工作。有关其他必需参数或设置,另请参考特定群集文档和批处理系统文档。
存在不同风格的 PBS 批量提交系统。可以在下方找到两种最常见风格的示例,二者在提交方面的区别如下:
- PBS Professional
#PBS -l select=2:ncpus=32
- Open PBS/扭矩
#PBS -l nodes=2:ppn=32
PBS Professional
PBS Professional 是使用 PBS 的客户首选的付费产品。
用于作业提交和监视的有用命令
显示 PBS 版本
$ qstat --version
pbs_version = 18.1.2
提交作业
$ qsub <submission options> <script>
显示作业状态
$ qstat
终止作业
$ qdel <jobid>
作业提交
启动 Simcenter STAR-CCM+ 的最低示例作业脚本,并自动提取有关已分配资源的信息:
#!/bin/bash
#PBS -N starsim
#PBS -l select=2:ncpus=32
#PBS -l walltime=1:00:00
STAR_PATH=/path/to/star/bin
$STAR_PATH/starccm+ -bs pbs -batch step my.sim
这会将名为 starsim
的作业分配给两个节点,每个节点处理 32 个进程一小时。标准和错误输出将重定向至单独的文件。
作业文件提交前缀
在 PBS 脚本(作业提交脚本)中,以 #PBS
开头的任何内容都是 PBS 指令。在 PBS 脚本中写入 PBS 指令可避免在提交作业时为 qsub
编写一长串选项。
可以通过运行 man qsub
或访问在线手册查看 qsub
手册中的选项来查找有关 PBS 指令的更多信息。
提交选项
参数 | 描述 |
---|---|
-N <job_name> | 作业名称 |
-l select=<nodes>:ncpus=<numcpus>[:mpiprocs=<numprocs>] | 将 <nodes> 委托给 <numcpus> 核心和 <numprocs> 进程 |
-l walltime hh:mm:ss | walltime |
-q <queue_name> | 要提交的队列的名称 |
-o output_file | 标准输出文件 |
-e error_file | 错误输出文件 |
-j oe | 输出文件和错误文件相同 |
提交环境变量
环境变量 | 描述 |
---|---|
PBS_JOBDIR | 作业的目录 |
PBS_JOBID | 作业 ID |
PBS_JOBNAME | 作业名称 |
PBS_O_QUEUE | 队列的名称 |
PBS_O_SHELL | 用于作业的壳体 |
PBS_O_WORKDIR | 作业的工作目录 |
PBS_QUEUE | 队列名称 |
在 Open MPI 中使用 PBSPro 紧密集成
对于 Open MPI,Torque 和 PBSPro 是兼容的库,但 Open MPI 仅允许针对其中一个库进行编译。对于 Open MPI 中的 PBS 紧密集成,Simcenter STAR-CCM+ Open MPI 分布对 libtorque.so
具有可选相关性。如果系统中仅安装了 libpbs.so
而未安装 libtorque.so
,则无法满足此可选相关性。要在这种情况下启用紧密集成,应在系统中安装 libtorque.so
或执行以下步骤:
- 确定 Open MPI 的 PBS 模块的确切 libtorque.so 相关性:
$ ldd `[INSTALLDIR]/star/bin/map_mpi -type openmpi -version $([INSTALLDIR]/star/bin/map_mpi -type openmpi -printversion) -libpath`/openmpi/mca_plm_tm.so | grep libtorque.so
这将生成输出,例如:
libtorque.so.2 => not found
注意确切名称 (
libtorque.so.2
)。 - 确定 libpbs.so 在系统中的安装位置:
$ ldconfig -p | grep -m 1 libpbs.so | tr ' ' '\n' | grep /
如果此命令不返回
libpbs.so
的路径,可与系统管理员联系。 - 根据 Open MPI 的要求,创建从系统安装的
libpbs.so
至libtorque.so.*
(例如,如上所示的libtorque.so.2
)的符号链接:$ ln -s /path/to/libpbs.so $PWD/libtorque.so.2
- 将创建的符号链接的目录作为库路径传递到 Simcenter STAR-CCM+:
$ starccm+ -ldlibpath $PWD <...>
OpenPBS/扭矩
OpenPBS(以前称为 PBS Professional 开源项目),其中 PBS Professional 指商业版本。
文档参考
用于作业提交和监视的有用命令
显示 PBS 版本
$ qstat --version
pbs_version = 18.1.2
提交作业
$ qsub <submission options> <script>
显示作业状态
$ qstat
终止作业
$ qdel <jobid>
作业提交
启动 Simcenter STAR-CCM+ 的最低示例作业脚本,并自动提取有关已分配资源的信息:
#!/bin/bash
#PBS -N starsim
#PBS -l nodes=2:ppn=32
#PBS -l walltime=1:00:00
STAR_PATH=/path/to/star/bin
$STAR_PATH/starccm+ -bs pbs -batch step my.sim
这会将名为 starsim
的作业分配给两个节点,每个节点处理 32 个进程一小时。标准和错误输出将重定向至单独的文件。
作业文件提交前缀
在 PBS 脚本(作业提交脚本)中,以 #PBS
开头的任何内容都是 PBS 指令。在 PBS 脚本中写入 PBS 指令可避免在提交作业时为 qsub
编写一长串选项。
可以通过运行 man qsub
或访问在线手册查看 qsub
手册中的选项来查找有关 PBS 指令的更多信息。
提交选项
参数 | 描述 |
---|---|
-N <job_name> | 作业名称 |
-l nodes=<numnodes>:ppn=<numcores> | 将 numnodes 分配给计算机,将 numcores 分配给作业 |
-l walltime | 分配 walltile 值 |
-q <queue_name> | 将作业分配给队列 queue_name |
-l mem=1024mb | 选择具有 1024 mb 内存的主机 |
-o output_file | 标准输出文件 |
-e error_file | 错误输出文件 |
-j oe output | 标准输出和错误文件相同 |
提交环境变量
环境变量 | 描述 |
---|---|
PBS_JOBID | 作业 ID |
PBS_JOBNAME | 作业名称 |
PBS_NP | 已分配给作业的核心数量 |
PBS_NUM_NODES | 已分配给作业的节点数量 |
PBS_NUM_PPN | 每个节点的进程数 |
PBS_O_QUEUE | 队列名称 |
PBS_O_WORKDIR | 作业在其中运行的目录 |
PBS_WALLTIME | 作业的 walltime |