【问题标题】:PBS running multiple instances of the same program with different argumentsPBS 运行具有不同参数的同一程序的多个实例
【发布时间】:2023-03-11 19:04:01
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: parallel-processing cluster-computing pbs serial-processing


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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 连接。我已经在命令行上写出了带有参数的示例,但您可能希望从文本文件中读取参数。这是man pagetutorial 的链接。选项 -j4 应该与 ppn(每个节点的核心数)匹配。

      【讨论】:

        猜你喜欢
        • 2018-05-29
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多