使用 PBS

通过在命令行中指定 -batchsystem pbsSimcenter 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:sswalltime
-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 或执行以下步骤:

  1. 确定 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)。

  2. 确定 libpbs.so 在系统中的安装位置:
    $ ldconfig -p | grep -m 1 libpbs.so | tr ' ' '\n' | grep /

    如果此命令不返回 libpbs.so 的路径,可与系统管理员联系。

  3. 根据 Open MPI 的要求,创建从系统安装的 libpbs.solibtorque.so.*(例如,如上所示的 libtorque.so.2)的符号链接:
    $ ln -s /path/to/libpbs.so $PWD/libtorque.so.2
  4. 将创建的符号链接的目录作为库路径传递到 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