将GNU并行etc与PBS队列系统结合使用,作为单个作业跨多个节点运行2个或更多MPI代码
我正在尝试在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队列系统的命令行是什么 如果没有,是否有任何软件可以做到这一点 这与我的最终目标相似,但要复杂得多 感谢您的帮助。查看它,您似乎需要使用将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\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并行的远程执行