我通过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.
为了列出不能通过squeue
或scontrol
访问的过去作业的工作目录,您可以使用sacct
:
sacct -S 2020-08-10 -u myUserName --format "jobid,jobname%20,workdir%70"
列出用户myUserName
自2020年8月10日以来的所有作业id、作业名称和作业目录。