并行执行多个作业时指定 SLURM 资源

Specifying SLURM Resources When Executing Multiple Jobs in Parallel

根据这里的答案 What does the --ntasks or -n tasks does in SLURM? 可以通过 ntasks sbatch 参数后跟 srun 并行 运行 多个作业。问一个后续问题 - 当 运行 像这样并行执行作业时,如何指定所需的内存量?

如果说 3 个作业 运行 并行,每个作业需要 8G 内存,那么在 sbatch 中指定 24G 内存(即所有作业的内存总和)还是不提供内存sbatch中的参数而是为每个srun指定8G内存?

您需要在 sbatch 提交的脚本中指定内存要求,否则您将得到默认的内存分配,这可能不符合您的需求。如果您随后在 srun 调用中指定 8GB 内存,如果默认内存低于该值,或者只有一个或两个作业 运行 并行,您可能最终无法启动任何作业如果默认内存在 16 到 24GB 之间。

您可以请求 --mem=24GB,但这提供的灵活性不如指定 --mem-per-cpu=8G