Parallel processing PBS使用不同参数运行同一程序的多个实例

Parallel processing PBS使用不同参数运行同一程序的多个实例,parallel-processing,cluster-computing,pbs,serial-processing,Parallel Processing,Cluster Computing,Pbs,Serial Processing,如何在通过PBS提交的集群上的每个实例上多次运行同一个程序,但参数不同。此外,是否可以将这些程序中的每一个指定给单独的节点?当前,如果我有一个带有以下脚本的PBS: #PBS -l nodes=1:ppn=1 /myscript #PBS -l nodes=1:ppn=1 /mscript -arg arg1 & /myscript -arg arg2 它将在单个节点上运行单个程序一次。如果我使用以下脚本: #PBS -l nodes=1:ppn=1 /myscript #PBS

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

#PBS -l nodes=1:ppn=1
/myscript
#PBS -l nodes=1:ppn=1
/mscript -arg arg1 &
/myscript -arg arg2
它将在单个节点上运行单个程序一次。如果我使用以下脚本:

#PBS -l nodes=1:ppn=1
/myscript
#PBS -l nodes=1:ppn=1
/mscript -arg arg1 &
/myscript -arg arg2
我相信这将以串行方式运行每个程序,但它将只使用一个节点。我可以声明多个节点,然后将特定节点委托给我希望运行的程序的每个实例吗


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

您希望使用MPI的形式来实现这一点。MPI代表消息传递接口,有许多库实现该接口。我建议使用OpenMPI,因为它与PBS集成得非常好。正如您所说,您是新手,您可能会意识到这将是实现此目的的理想选择。您案例的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

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