Parallel processing 如何在一个PBS作业提交中运行多个命令

Parallel processing 如何在一个PBS作业提交中运行多个命令,parallel-processing,pbs,qsub,torque,supercomputers,Parallel Processing,Pbs,Qsub,Torque,Supercomputers,我写了一个只需要1-4个CPU的代码。但是,当我在集群上提交作业时,我必须至少使用一个节点,每个作业具有16个核心。因此,我想在提交的每个作业的每个节点上运行几个模拟。 我想知道是否有一种方法可以在一项工作中同时提交模拟 下面是一个例子: 我的代码需要4个CPU。我为一个节点提交一个作业,我希望该节点运行我代码的4个实例(每个实例有不同的参数),以获取所有16个核心。当然可以;通常,此类系统会有如何执行此操作的说明 如果您有(例如)4个4-cpu作业,并且(例如)希望它们在4个不同的目录中运行(

我写了一个只需要1-4个CPU的代码。但是,当我在集群上提交作业时,我必须至少使用一个节点,每个作业具有16个核心。因此,我想在提交的每个作业的每个节点上运行几个模拟。 我想知道是否有一种方法可以在一项工作中同时提交模拟

下面是一个例子:
我的代码需要4个CPU。我为一个节点提交一个作业,我希望该节点运行我代码的4个实例(每个实例有不同的参数),以获取所有16个核心。

当然可以;通常,此类系统会有如何执行此操作的说明

如果您有(例如)4个4-cpu作业,并且(例如)希望它们在4个不同的目录中运行(以便更容易跟踪输出文件),请使用shell符号在后台分别运行它们,然后等待所有后台任务完成:

(cd jobdir1; myexecutable argument1 argument2) &
(cd jobdir2; myexecutable argument1 argument2) &
(cd jobdir3; myexecutable argument1 argument2) &
(cd jobdir4; myexecutable argument1 argument2) &
wait
(其中,
myexecutable argument1 argument2
只是您通常运行程序时的一个占位符;如果您使用
mpiexec
或类似的东西,则会像通常使用它一样进入其中。如果您使用OpenMP,则可以在上面第一行之前导出环境变量
OMP_NUM_THREADS


如果你有许多任务都不会花费相同的时间,那么最容易分配的任务比(比如说)多如果系统没有gnu并行,我可以在我的主文件夹中安装它并使用它吗?我没有root权限。是的;只需下载它并运行
/configure--prefix=$home&&make&&make install
。这相当简单e安装,这非常有用,您的系统管理员应该能够在系统范围内安装它。语法可能有点复杂;这里有一个很好的教程——我如何确保这不会在同一个处理器上重叠进程?还有,多节点并行呢。例如,我的案例中的队列只允许两个节点是的,但大多数时候我只需要一个节点,如何在两个节点上并行提交两个不同的作业。我必须使用
qsub
提交,并且在提交过程中无法指定节点名称。