如何在SLURM中找到工作提交的位置



我通过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 

我如何知道作业是从哪个目录提交的,以便我可以区分作业?

可以使用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

最新版本的Slurm现在通过squeue提供这些信息:

squeue --format "%Z"

,根据手册页显示

%Z    The job’s working directory.

为了列出不能通过squeuescontrol访问的过去作业的工作目录,您可以使用sacct:

sacct -S 2020-08-10 -u myUserName --format "jobid,jobname%20,workdir%70"

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

最新更新