10.9. 使用PBS/Torque启动

Open MPI 支持 PBS、PBS Pro、Torque 及其他相关资源管理器。

10.9.1. 验证PBS/Torque支持

prte_info 命令可用于确定已安装的 Open MPI 是否包含 Torque/PBS Pro 支持:

shell$ prte_info | grep ras

如果Open MPI安装包含对PBS/Torque的支持,您应该会看到类似下面的行。请注意,MCA版本信息会根据安装的Open MPI版本而有所不同。

MCA ras: tm (MCA v2.1.0, API v2.0.0, Component v3.0.0)

注意

PRRTE是为Open MPI提供运行时环境支持的软件层。Open MPI通常对终端用户隐藏了大部分PMIx和PRRTE的细节,但在这里Open MPI无法掩盖PRRTE(而非Open MPI本身)提供此功能的事实。因此,用户需要使用prte_info命令来检查PBS/Torque支持(而非ompi_info)。

10.9.2. 启动

当正确配置后,Open MPI会直接从Torque/PBS Pro获取主机列表以及每台主机上需要启动的进程数量。因此,无需为mpirun指定--hostfile--host-n选项。Open MPI将使用PBS/Torque原生机制来启动和终止进程(不需要ssh)。

例如:

# Allocate a PBS job with 4 nodes
shell$ qsub -I -lnodes=4

# Now run an Open MPI job on all the nodes allocated by PBS/Torque
shell$ mpirun mpi-hello-world

这将在由PBS/Torque分配的节点上运行MPI进程。或者,如果提交脚本:

shell$ cat my_script.sh
#!/bin/sh
mpirun mpi-hello-world
shell$ qsub -l nodes=4 my_script.sh

警告

不要修改 $PBS_NODEFILE 文件!

我们收到一些站点的报告,称系统管理员会根据本地策略修改每个作业中的$PBS_NODEFILE文件。目前这会导致Open MPI出现不可预测的行为。只要没有向主机文件添加新主机,通常意味着Open MPI会将进程错误地映射到主机,但在某些情况下可能导致Open MPI完全无法启动进程。