Slurm-作为一项工作的一部分,如何开始真正独立的单核任务?

时间:2018-09-13 12:30:43

标签: slurm

例如,我有20个(基本相同)的单核应用程序,我想在一个 job 中启动。每次运行的应用程序都应精确得到一个排他 CPU。

运行的20个应用程序将适合(并应留在)单个节点上(假设该节点具有100 cpus,因此有足够的空间)。

根据我对SLURM的了解,我有两种选择:

  • 使用ntasks=20定义工作,并使用srun -N 1 -n 1 -c 1 --exclusive MYAPPLICATION
  • 提交20个单独的任务
  • 使用ntasks=1定义作业并设置--cpus-per-task=20,然后再次使用srun -N 1 -n 1 -c 1 --exclusive MYAPPLICATION触发应用程序。

到目前为止,这是正确的吗?

现在是让我困惑的部分。当我在节点上运行一个应用程序(一个内部srun调用)时,大约需要10分钟。当我运行20个应用程序时,它不需要20 *(10分钟)= 200分钟,而是380分钟。 为什么?这些作业应该彼此完全独立(cpu用法不应重叠)并且cpus相同。尽管如此,无论我是否正在运行其他独立作业,这似乎都很重要。

如何启动几个真正独立的单核应用程序?

提前谢谢!

0 个答案:

没有答案