如何定义异构作业的组成部分?
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.R
和 script_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.
后的想法
我正在尝试学习如何通过 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.R
和 script_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.
后的想法