gpt4 book ai didi

cluster-computing - 如何在脚本工作(以srun开头)完全完成之前保留脚本?

转载 作者:行者123 更新时间:2023-12-03 15:50:20 24 4
gpt4 key购买 nike

我正在使用SLURM运行作业数组,并使用以下作业数组脚本(我使用sbatch job_array_script.sh [args]运行:

#!/bin/bash

#SBATCH ... other options ...

#SBATCH --array=0-1000%200

srun ./job_slurm_script.py $1 $2 $3 $4

echo 'open' > status_file.txt

解释一下,我希望 job_slurm_script.py作为数组作业运行1000次,最多并行执行200个任务。当完成所有的 后,我想向status_file.txt写入“open”。这是因为实际上我有超过10,000个作业,并且它在群集的MaxSubmissionLimit之上,因此我需要将其拆分为较小的块(按1000个元素的作业数组),然后一个接一个地运行它们(仅当前一个运行时)完成)。

但是,要使此功能起作用,echo语句只能在整个作业数组完成后才触发(除此之外,我有一个循环检查status_file.txt,以便查看作业是否完成,即何时内容为字符串“open” )。

到目前为止,我认为srun可以保留脚本,直到完成整个作业数组为止。但是,有时srun“返回”并且脚本在作业完成之前进入echo语句,因此所有后续作业都从群集中弹起,因为它超出了提交限制。

那么,如何使srun保持住,直到整个作业数组完成?

最佳答案

您可以将标记--wait添加到sbatch

检查sbatch的手册页以获取有关--wait的信息。

关于cluster-computing - 如何在脚本工作(以srun开头)完全完成之前保留脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com