如何在SLURM中查找作业提交的位置?

22

我通过SLURM向我们学校的HPC集群提交了几个作业。由于所有的shell脚本都有相同的名称,因此作业名称看起来完全相同。

[myUserName@rclogin06 ~]$ sacct -u myUserName
       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode 
------------ ---------- ---------- ---------- ---------- ---------- -------- 
12577766         run.sh    general ourQueue_+          4    RUNNING      0:0 
12659777         run.sh    general ourQueue_+          8    RUNNING      0:0 
12675983         run.sh    general ourQueue_+         16    RUNNING      0:0 
我怎样才能知道作业是从哪个目录提交的,以便我可以区分这些作业?
3个回答

38

您可以使用scontrol命令查看作业详情。$ scontrol show job <jobid>

例如,在我们的SLURM集群上运行作业时:

$ scontrol show job 1665191
    JobId=1665191 Name=tasktest
    ...
    Shared=OK Contiguous=0 Licenses=(null) Network=(null)
    Command=/lustre/work/.../slurm_test/task.submit
    WorkDir=/lustre/work/.../slurm_test
您正在寻找最后一行,WorkDir

2
如果您需要输出日志文件,可以使用scontrol show job <JOBID> | grep StdOut - Yamaneko
在找到工作目录后,在该目录中搜索作业名称或作业名称的一部分。如果是包含该作业名称的SBATCH文件,则您很可能可以通过这种方式快速找到它。 - Moe Tsao

13

最新版的Slurm现在通过squeue提供该信息:

squeue --format "%Z"

根据 man 手册显示的内容,

%Z    The job’s working directory.

4
为了列出过去的工作目录,这些目录无法通过或访问,您可以使用:
sacct -S 2020-08-10 -u myUserName --format "jobid,jobname%20,workdir%70"

列出用户myUserName自2020年8月10日以来的所有作业的作业ID、作业名称和工作目录。


我在CentOS release 6.5 (Final)上使用sacct 2.6时没有看到workdir字段作为选项。 - Leo
1
@Leo Slurm 2.6于2013年发布。看起来这个功能是在Slurm 17.11.0rc1中添加的(https://github.com/SchedMD/slurm/blob/67098bc676a7911968654b7432dc22e50eae924e/NEWS#L4047)。 - leopold.talirz

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