11

bsub与 LSF 一起使用时,该-o选项提供了很多详细信息,例如作业开始和结束的时间以及作业占用了多少内存和 CPU 时间。使用 SLURM,我得到的只是在没有 LSF 的情况下运行脚本所得到的相同标准输出。

例如,给定这个 Perl 6 脚本:

warn  "standard error stream";
say  "standard output stream";

提交如下:

sbatch -o test.o%j -e test.e%j -J test_warn --wrap 'perl6 test.p6'

结果文件test.o34380

Testing standard output

和文件test.e34380

Testing standard Error  in block <unit> at test.p6:2


使用 LSF,我会在标准输出文件中获得各种详细信息,例如:

Sender: LSF System <lsfadmin@my_node>
Subject: Job 347511: <test> Done

Job <test> was submitted from host <my_cluster> by user <username> in cluster <my_cluster_act>.
Job was executed on host(s) <my_node>, in queue <normal>, as user <username> in cluster <my_cluster_act>.
</home/username> was used as the home directory.
</path/to/working/directory> was used as the working directory.
Started at Mon Mar 16 13:10:23 2015
Results reported at Mon Mar 16 13:10:29 2015

Your job looked like:

------------------------------------------------------------
# LSBATCH: User input
perl6 test.p6

------------------------------------------------------------

Successfully completed.

Resource usage summary:

    CPU time   :    0.19 sec.
    Max Memory :    0.10 MB
    Max Swap   :    0.10 MB

    Max Processes  :         2
    Max Threads    :         3

The output (if any) follows:

standard output stream

PS:

Read file <test.e_347511> for stderr output of this job.

更新:

一个或多个-v标志可sbatch提供更多初步信息,但不会更改标准输出。

4

2 回答 2

8

对于最近的工作,请尝试

sacct -l

在文档的“作业会计字段”部分下查看输出中三打左右列中的每一列的描述。

仅针对作业 ID、使用的最大 RAM、最大虚拟内存大小、开始时间、结束时间、以秒为单位的 CPU 时间以及运行作业的节点列表。默认情况下,这只会提供有关同一天运行的作业的信息(请参阅--starttime--endtime获取其他日期的作业信息的选项):

sacct --format=jobid,MaxRSS,MaxVMSize,start,end,CPUTimeRAW,NodeList

这将为您提供如下输出:

       JobID  MaxRSS  MaxVMSize               Start                 End CPUTimeRAW NodeList
------------ ------- ---------- ------------------- ------------------- ---------- --------
36511                           2015-04-29T11:34:37 2015-04-29T11:34:37          0  c50b-20
36511.batch     660K    181988K 2015-04-29T11:34:37 2015-04-29T11:34:37          0  c50b-20
36514                           2015-04-29T12:18:46 2015-04-29T12:18:46          0  c50b-20
36514.batch     656K    181988K 2015-04-29T12:18:46 2015-04-29T12:18:46          0  c50b-20


用于--state COMPLETED检查以前完成的作业。检查 以外的状态时RUNNING,您必须给出开始或结束时间。

sacct --starttime 08/01/15 --state COMPLETED --format=jobid,MaxRSS,MaxVMSize,start,end,CPUTImeRaw,NodeList,ReqCPUS,ReqMem,Elapsed,Timelimit

您还可以使用以下方式获取有关该作业的工作目录scontrol

scontrol show job 36514

这将为您提供如下输出:

JobId=36537 JobName=sbatch
UserId=username(123456) GroupId=my_group(678)
......
WorkDir=/path/to/work/dir

但是,默认情况下,scontrol只能在作业完成后大约五分钟内访问该信息,之后它会从内存中清除。

于 2015-04-29T18:01:19.093 回答
6

在我用来插入的每项工作结束时

sstat -j $SLURM_JOB_ID.batch --format=JobID,MaxVMSize

将 RAM 使用量添加到标准输出。

于 2017-05-23T19:13:30.223 回答