如何定义异构作业的组成部分?

How to define what are the components of a heterogeneous job?

我正在尝试学习如何通过 Slurm 使用异构作业。我一直在他们的官方网站上阅读 this resource,但我真的不明白设置应该是什么样子。我知道异构作业是从他们提供的这段代码开始的:

$ sbatch --cpus-per-task=4 --mem-per-cpu=16g --ntasks=1 : \
         --cpus-per-task=2 --mem-per-cpu=1g  --ntasks=8 my.bash

但是,我不明白的是如何定义第一个任务和第二个任务。例如,假设我在名为 script_1.Rscript_2.R 的同一个文件夹中有两个 R 脚本,我想通过 Slurm 将它们作为异构作业提交到某个集群,并且我想请求 16 GB 用于第一个和第二个 1 GB。 sbatch 中我为每个任务提供文件路径的脚本部分在哪里?或者它是在 sbatch 之外的某个地方完成的?这是如何运作的?任何帮助将不胜感激,谢谢!

据我了解,必须在脚本中指定任务(在您的示例中 my.bash)。在那里,任务必须提交给 srun 命令。

我认为在您的示例中应该类似于以下内容:

#!/bin/bash
srun Rscript path/to/script_1.R : Rscript path/to/script_2.R

免责声明:我不知道这是否有效。这正是我阅读 documentation of srun and the heterogenous job documentation.

后的想法