Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SLURM sacct显示';批次';和';外部';工作名称_Slurm - Fatal编程技术网

SLURM sacct显示';批次';和';外部';工作名称

SLURM sacct显示';批次';和';外部';工作名称,slurm,Slurm,我已将作业提交到SLURM队列,作业已运行并完成。然后,我使用sacct命令检查已完成的作业。但是查看sacct命令的结果,我注意到了我没有预料到的其他结果: JobID JobName State NCPUS Timelimit 5297048 test COMPLETED 1 00:10:00 5297048.bat+

我已将作业提交到SLURM队列,作业已运行并完成。然后,我使用
sacct
命令检查已完成的作业。但是查看sacct命令的结果,我注意到了我没有预料到的其他结果:

       JobID                        JobName      State      NCPUS  Timelimit
5297048                                test  COMPLETED          1   00:10:00  
5297048.bat+                          batch  COMPLETED          1           
5297048.ext+                         extern  COMPLETED          1       
谁能解释一下“批处理”和“外部”作业是什么,它们的目的是什么。为什么外部作业总是在主作业失败时完成

我试图搜索文档,但没有找到令人满意的完整答案

编辑:以下是我提交的脚本,用于生成上述
sacct
输出:

#!/bin/bash
echo test_script > done.txt
使用以下
sbatch
命令:

sbatch -A BRIDGE-CORE-SL2-CPU --nodes=1 --ntasks=1 -p skylake --cpus-per-task 1 -J jobname -t 00:10:00 --output=./output.out --error=./error.err < test.sh
sbatch-A-BRIDGE-CORE-SL2-CPU--nodes=1--ntasks=1--p skylake--CPU per task 1--J jobname--t 00:10:00--output=./output.out--error=./error.err
作业由多个作业步骤组成。每个作业步骤都单独显示。在输出中有$JOBID,它代表总体保留,$JOBID.batch,它代表您提交的主脚本

关于
外部
。。。我不确定,但我猜您开始了一个工作步骤,并将其命名为“外部”。在这种情况下,这就是该作业步骤的信息


如果您向我们展示您提交的脚本,我们可以澄清一些来源。

Slurm作业包含多个作业步骤,这些步骤都由Slurm单独说明(在资源使用方面)。通常,这些步骤是使用srun/mpirun创建的,并从0开始枚举。但除此之外,有时还有两个特殊步骤。例如,以以下作业为例:

sbatch-n4--wrap=“srun hostname;srun echo Hello World”

这导致以下sacct输出:

       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode 
------------ ---------- ---------- ---------- ---------- ---------- -------- 
5163571            wrap     medium      admin          4  COMPLETED      0:0 
5163571.bat+      batch                 admin          4  COMPLETED      0:0 
5163571.ext+     extern                 admin          4  COMPLETED      0:0 
5163571.0      hostname                 admin          4  COMPLETED      0:0 
5163571.1          echo                 admin          4  COMPLETED      0:0 
两个
srun
调用创建了步骤
5163571.0
5163571.1
5163571.bat+
说明批处理脚本所需的资源(在本例中,它只是
srun hostname;srun echo Hello World
--wrap将其放入文件并添加
#!/bin/sh

许多非MPI程序在批处理步骤中进行大量计算,因此在批处理步骤中考虑了ressource的使用情况

现在来看
5163571.ext+
:这一步说明了slurm之外该作业使用的所有资源。仅当使用了
包含
时,才会显示此选项


ssh会话是属于slurm作业但不直接由slurm控制的进程的一个示例。如果您使用ssh连接到运行某个作业的节点,那么您的会话将被放置到作业的上下文中(如果设置了cgroups,您将被限制到可用资源)。您在ssh会话中进行的所有计算都将在.extern作业步骤中进行说明。

如果$JOBID.batch代表我提交的脚本,外部问题还有待解决$JOBID代表什么?$JOBID代表总体保留。如果使用
-l
参数运行
sacct
,您将看到每一行给出的信息是不同的。也许您保留了8个CPU和两个作业步骤,每个步骤使用4个CPU。这将显示在
sacct
中。不幸的是,我看不到您的工作中正在启动任何jop步骤,也看不到任何对“外部”的引用。我对此一无所知。我认为
.ext
作业对于SLURM来说很常见,例如,您可以在这个不相关的问题中看到
sacct
输出显示了
.ext
作业步骤。谢谢你富有洞察力的回答,马库斯!