SLURM - 回显输出文件以便在屏幕上打印?
Posted
技术标签:
【中文标题】SLURM - 回显输出文件以便在屏幕上打印?【英文标题】:SLURM - echo output file so it prints on screen? 【发布时间】:2017-09-09 21:38:52 【问题描述】:我们公司的服务器使用 SLURM 工作负载管理器。我正在使用sbatch
提交脚本。目前,我使用#SBATCH -o /job_%j.out
和#SBATCH -e /job_%j.err
将输出打印到文件中。除了打印到文件之外,我还希望在屏幕上打印 -e
文件。我希望能够实时跟踪进度,而不必经常打开和刷新.out
和.err
files。
我尝试过echo
,但这只会导致将信息打印到-o
文件中。我还尝试不指定要打印到的输出位置(即:没有#SBATCH -o
命令),希望它会默认打印到屏幕上。那也没用。
我觉得有一个简单的解决方法,但我显然没有在谷歌上搜索正确的条款。感谢您的帮助!
【问题讨论】:
【参考方案1】:sbatch
将提交批处理作业,该作业在另一台计算机上运行,而不是您打开终端的计算机。因此sbatch
将stdout 和stderr 重定向到一个文件。最简单的选择是使用tail -f
动态查看文件内容。
否则,使用srun
而不是sbatch
将输出直接重定向到终端上,但是它不再批量运行,如果您失去连接或关闭笔记本电脑,您的工作将被终止或关闭终端窗口。
【讨论】:
应该tail -f
显示print
语句吗?
tail -f
将显示写入文件的任何内容。但请注意,这里和那里可能存在缓冲区(语言运行时缓冲区、操作系统缓冲区、文件系统缓冲区等),这可能会延迟一些事情甚至很多)【参考方案2】:
如果您的 sbatch 文件包含 srun 命令,您可以使用 sattach jobid.stepid
查看输出 - 您可以指定一个选项来查看错误而不是输出。
【讨论】:
即使 id 与 squeue 的输出相同,我也会收到“指定的作业 id 无效”错误,有什么提示吗? 刚刚注意到,sattach 仅适用于 srun 命令吗?好像是这样,我是用 sbatch 来用的。以上是关于SLURM - 回显输出文件以便在屏幕上打印?的主要内容,如果未能解决你的问题,请参考以下文章
Gnuplot 输出设置为“在屏幕上”显示如何更改程序,以便将绘图输出定向到我在下面提供程序的文件夹
如何在 systemd 启动期间最后运行并打印我的脚本输出?