提交使用存储库文件的 slurm 作业然后在等待它完成时切换 git 分支是否有解决方法?

问题描述 投票:0回答:1

我经常提交可能需要排队一段时间的 slurm 作业。 slurm 脚本将引用我工作目录中的代码,就像 python 训练脚本一样。

在等待的时候,我想在本地仓库的不同分支之间切换。然而,这样做的问题是,当 slurm 作业最终开始时,它将从我当前所在的任何分支读取代码。

我最初的想法是我可以从某个临时目录中读取 slurm 脚本,在该目录中克隆了一个版本的 repo,但我相信这可能会增加额外的复杂性。 有什么解决方法吗?

一般工作流程

git checkout dev1
sbatch run_training.sbatch

run_training.sbatch:

#SBATCH  args
...
python run_training.py
git checkout dev2

当工作开始时,它将读取该分支中的

run_training.py

git slurm
1个回答
1
投票

我最初的想法是我可以从某个临时目录中读取 slurm 脚本,在该目录中克隆了一个版本的 repo,但我相信这可能会增加额外的复杂性。有什么解决方法吗?

根据您的想法的变体,还有其他解决方法。例如,您不一定需要将其指向存储库的整个单独克隆。您可以只克隆它需要运行的回购的子集。

如果你想要一些简单的东西,我推荐的是只使用 git worktrees,它允许创建多个工作树,每个工作树检查单个本地存储库的不同分支。

© www.soinside.com 2019 - 2024. All rights reserved.