0

您如何通过 PBS 提交多次运行同一个程序,但集群上的每个实例使用不同的参数。另外,是否可以将这些程序中的每一个指定到一个单独的节点?目前,如果我有一个带有以下脚本的 PBS:

#PBS -l nodes=1:ppn=1
/myscript

它将在单个节点上运行单个程序一次。如果我使用以下脚本:

#PBS -l nodes=1:ppn=1
/mscript -arg arg1 &
/myscript -arg arg2

我相信这将串行运行每个程序,但它只会使用一个节点。我可以声明多个节点,然后将特定节点委托给我希望运行的程序的每个实例吗?

任何帮助或建议将不胜感激。如果我不清楚任何内容或使用了不正确的术语,我深表歉意……我对集群计算非常陌生。

4

2 回答 2

0

您想使用一种形式的 MPI 来做到这一点。MPI 代表消息传递接口,并且有许多实现该接口的库。我建议使用 OpenMPI,因为它与 PBS 集成得非常好。正如您所说,您是新手,您可能会喜欢本教程。

于 2013-02-21T00:46:05.833 回答
0

GNU Parallel将是此目的的理想选择。您的案例的示例 PBS 脚本:

#PBS -l nodes=2:ppn=4 # set ppn for however many cores per node on your cluster
#Other PBS directives

module load gnu-parallel   # this will depend on your cluster setup

parallel -j4 --sshloginfile $PBS_NODEFILE /mscript -arg {} \
  ::: arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8

GNU Parallel将处理到各个节点的 ssh 连接。我已经在命令行上写出了带有参数的示例,但您可能希望从文本文件中读取参数。以下是手册页教程的链接。选项-j4应与 ppn(每个节点的核心数)匹配。

于 2015-05-16T21:17:32.670 回答