在一个pbs作业中处理多个节点

时间:2016-05-11 19:26:02

标签: pbs

我想让5个节点分别为我的5个样本分别运行相同的作业。而不是手动编写和提交5个pbs文件,请问在一个pbs文件中处理它的常用方法是什么?

一些更新05/12/16:
  1. 像@dbeer所指出的那样,pbsdsh似乎是标准方法,如果工作彼此相同,那将非常方便。对于我的特定情况,我需要为每个样本生成.sh文件并仔细命名它们,以便我可以利用$ PBS_VNODENUM。以下是一些有用的示例代码:
  2. https://wikis.nyu.edu/display/NYUHPC/PBSDSH

    http://hpc-uit.readthedocs.io/en/latest/help/faq.html#how-can-i-run-in-parallel-without-using-mpi

    http://arc-ts.umich.edu/software/torque/job-arrays/

    关于类似问题的现有帖子:PBS/TORQUE: how do I submit a parallel job on multiple nodes?

    1. 但是,我最终使用python为每个样本生成pbs文件,并在同一个python文件中qsub它们分别在循环中。我不认为这是太多额外的工作。只需确保每次提交之间有系统休眠时间。 (Here是如何使用python提交pbs的示例)

1 个答案:

答案 0 :(得分:1)

在Torque中处理这个问题的真正基本方法(假设pbs在这种情况下是扭矩)如果你想在每个节点上运行主机名你可以有一个脚本dash.sh:

<?php
session_start();
if (!isset($_SESSION['email'])) {
    header("Location: index.php");
} else {
    echo "welcome";
}
?>

然后:

#!/bin/bash

/usr/local/bin/pbsdsh hostname # change path if you have a non-default installation

没有参数的pbsdsh将为作业的$ PBS_NODEFILE中指定的主机上的作业中的每个执行槽启动一个主机名实例。控制其行为有不同的参数,这些参数可以在pbsdsh的联机帮助页中找到。