SLURM sbatch 输出缓冲

9

我创建了一些 slurm 脚本,然后尝试使用 sbatch 执行它们。但输出文件更新不够频繁(可能每分钟更新一次)。

有没有办法在 sbatch 中更改输出缓冲延迟?我知道 stdbuf 在这种情况下被使用,但我无法让它与 sbatch 协同工作。


请参见https://dev59.com/DF8e5IYBdhLWcg3w-OYn#25189364,了解如何更改Slurm更新输出文件(stdout)的频率。 - Carles Fenoy
我知道那个问题和答案。但是看起来sbatch中的输出缓冲与stdbuf无关。似乎sbatch命令有一些内部缓冲。 - ahemya
Sbatch 只运行脚本第一行所指定的 shell。通常是 bash,因此 Slurm 本身不会进行缓冲。您要运行什么? - Carles Fenoy
4
如果您在 sbatch 中使用 srun,可以尝试使用 -u 选项(u=unbuffered)来消除缓冲区。 - PlagTag
1个回答

4
问题肯定是缓冲相关的。如果你正在尝试运行Python代码,请在print命令中添加flush=True,例如print(...,flush=True)。

2
一个更好的选择是python -u或者类似于sys.stdout.reconfigure(line_buffering=True, write_through=True)这样的方法。 - heiner
@heiner 谢谢!这真的很简单,对我来说起到了作用。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接