【问题标题】:SLURM - echo output file so it prints on screen?SLURM - 回显输出文件以便在屏幕上打印?
【发布时间】:2017-09-09 21:38:52
【问题描述】:

我们公司的服务器使用 SLURM 工作负载管理器。我正在使用sbatch 提交脚本。目前,我使用#SBATCH -o /job_%j.out#SBATCH -e /job_%j.err 将输出打印到文件中。除了打印到文件之外,我还希望在屏幕上打印 -e 文件。我希望能够实时跟踪进度,而不必经常打开和刷新.out.errfiles。

我尝试过echo,但这只会导致将信息打印到-o 文件中。我还尝试不指定要打印到的输出位置(即:没有#SBATCH -o 命令),希望它会默认打印到屏幕上。那也没用。

我觉得有一个简单的解决方法,但我显然没有在谷歌上搜索正确的条款。感谢您的帮助!

【问题讨论】:

    标签: linux unix server echo slurm


    【解决方案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 来用的。
    猜你喜欢
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多