提交的作业会复制源代码吗?排队的工作?

Do submitted jobs take a copy the source? Queued jobs?

当使用 sbatch 提交作业时,我的可执行文件的副本是否被带到计算节点?或者它只是执行来自 /home/user/ 的文件?有时当我没有条理时,我会提交一个作业,然后更改源代码并重新编译以提交另一个作业。这似乎不是一个好主意,尤其是当作业仍在队列中时。同时,它似乎应该被允许,如果在调用 sbatch 时复制源代码会更安全。

我 运行 一些测试证实(不出所料)一旦作业是 运行,重新编译源代码就没有效果。但是当作业在队列中时,我不确定。很难测试。

编辑:man sbatch 似乎没有提供太多见解,只是说作业“立即”提交给 Slurm 控制器。

sbatch命令创建提交脚本的副本和环境快照,并将其保存在作为StateSaveLocation配置参数列出的目录中。因此可以在提交后更改,但不生效。 但提交脚本中使用的文件并非如此。如果您的提交脚本启动了一个可执行文件,它会在它启动时看到可执行文件的“版本”。 在程序启动之前修改程序将导致新版本为 运行,在 运行 期间修改它(即已经从磁盘读取并保存到内存中)将导致旧版本为运行.