并行执行多个作业时指定 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
。
根据这里的答案 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
。