将GNU并行etc与PBS队列系统结合使用,作为单个作业跨多个节点运行2个或更多MPI代码

将GNU并行etc与PBS队列系统结合使用,作为单个作业跨多个节点运行2个或更多MPI代码,mpi,gnu-parallel,pbs,Mpi,Gnu Parallel,Pbs,我正在尝试在PBS队列系统中作为一个作业跨多个节点运行超过1个MPI代码(如2) 例如,对于我的集群,1个节点=12个进程 我需要将两个代码(abc1.out和abc2.out)作为一个作业运行,每个代码使用24个过程。因此,我需要这个工作4x12核心。我需要一个软件,可以分配2x12到每个代码 有人建议: 即: (cd jobdir1;myexecutable argument1 argument2)& (cd jobdir2;myexecutable argument1 argument2

我正在尝试在PBS队列系统中作为一个作业跨多个节点运行超过1个MPI代码(如2)

例如,对于我的集群,1个节点=12个进程

我需要将两个代码(abc1.out和abc2.out)作为一个作业运行,每个代码使用24个过程。因此,我需要这个工作4x12核心。我需要一个软件,可以分配2x12到每个代码

有人建议:

即:

(cd jobdir1;myexecutable argument1 argument2)&

(cd jobdir2;myexecutable argument1 argument2)&

等等

但它不起作用。代码并非分布在所有进程中

可以使用GNU并行吗?因为我在某个地方读到它不能跨多个节点工作

如果是,PBS队列系统的命令行是什么

如果没有,是否有任何软件可以做到这一点

这与我的最终目标相似,但要复杂得多

感谢您的帮助。

查看它,您似乎需要使用
$PBS\u NODEFILE

假设您有包含4个保留节点的
$PBS\u NODEFILE
。然后,您需要一种方法将其拆分为2x2。这可能会:

run_one_set() {
  cat > nodefile.$$
  mpdboot -n 2 -f nodefile.$$
  mpiexec -n 1 YOUR_PROGRAM
  mpdallexit
  rm nodefile.$$
}
export -f run_one_set
cat $PBS_NODEFILE | parallel --pipe -N2 run_one_set

(完全未经测试)。

chp 8中介绍了使用GNU并行的远程执行