作业提交和调度(SLURM)

 

MSI系统使用作业队列高效和计算执行时相当管理。当计算作业提交到作业队列,他们在队列中等待,直到合适的计算资源是可用的。
 

其中微星采用了排队系统被称为SLURM。提交作业到SLURM队列,用户创建SLURM作业脚本。 SLURM作业脚本包含所请求的计算资源的信息,以及用于执行计算的命令。

SLURM脚本格式

 

一个SLURM作业脚本是一个包含哪些资源工作要求,包括时间,节点数目,和内存信息的小文本文件。在SLURM脚本还包含开始执行所需的计算所需的命令。样本SLURM作业脚本如下所示。

 

#!/斌/庆典-l        
#sbatch --time = 8:00:00
#sbatch --ntasks = 8
#sbatch --mem =10克
#sbatch --mail型=所有  
#sbatch --mail-user=sample_email@umn.edu 
CD〜/ program_directory
模块负载英特尔 
模块负载OMPI /英特尔 
mpirun -np 8 program_name < inputfile > outputfile

 

在第一行 SLURM 脚本定义哪些类型的壳脚本将被读取(系统将如何读取文件)的。建议使第一线 #!/斌/庆典-l

 

 

为SLURM排队系统的命令开始 #sbatch。线2-4在上述示例脚本包含SLURM资源请求。样品作业将需要8小时,8个处理器核心,以及存储器10千兆字节。该资源请求必须包含适当的值;如果请求的时间,处理器或内存不适合硬件的工作将无法运行。 
 

 

含有两行 #sbatch --mail型#sbatch --mail用户=sample_email@umn.edu ,是具有与发送电子邮件消息向用户做这两个命令。第一,这些线指示SLURM系统将消息发送电子邮件时作业中止,开始或结束。这里的其他选项包括 没有, 开始, 结束失败。第二命令指定要使用的电子邮件地址。使用消息电子邮件中建议,因为可以经常在使用电子邮件信息来确定的任务失败的原因。
 

 

样品的其余部分 SLURM 脚本中包含将被执行以开始计算的命令。一种 SLURM 脚本应该包含适当的更改目录的命令去执行作业位置。一种 SLURM 脚本还需要包含模块加载命令,对于任何软件模块,计算可能需要。一个的最后几行 SLURM 脚本包含用于执行运算的命令。在上述例子中的最后行包含的执行命令来启动它使用MPI通讯到8个的处理器核心上运行的程序。
 

提交作业脚本

 

一旦作业脚本是由它使用的是提交 sbatch 命令:

 

sbatch -P分区脚本名   

 

这里 分区名 是分区(队列)被提交给名称,和 脚本名 是作业脚本的名称。该 -P分区 该命令的部分可被省略,在这种情况下,作业将提交取其分区设置为默认值。可替代地,分区规范可以被放置在作业脚本内(见下文)。

 

查看所有提交的特定用户使用该命令的工作:

SQUEUE -u用户名

该命令将显示指定作业的状态,以及相关的作业ID号。命令 SQUEUE 本身会显示系统上的所有作业。

 

取消提交的作业使用下面的命令:

scancel jobidnumber

这里 jobidnumber 应该用适当的作业ID号码代替确定使用 SQUEUE 命令。
 

SLURM脚本命令

以下是汇总,可以SLURM作业脚本中使用一些命令。的前四个命令(解释说明书和资源请求)是必需的,而其它命令是可选的。每个以下SLURM命令是为了去一个SLURM脚本中一行。
 

 

SLURM命令

影响

#!/斌/庆典-l

指定如何 SLURM 文件应该(通过在bash解释器)来读取。像这样的语句需要是第一线 SLURM 脚本。

#sbatch --time = 8:00:00

指定作业多久被允许运行的最大限制。 (8小时)

#sbatch --ntasks = 8

指定处理器(核心),将用于作业保留的数量。 (8)

#sbatch --mem =10克

指定内存使用上限。如果应用程序尝试使用超过10 GB内存这份工作会死的。

#sbatch --mail型=所有  

指定哪些事件将触发电子邮件消息。这里的其他选项包括 没有, 开始, 结束失败



#sbatch --mail用户=me@umn.edu

指定要使用的电子邮件地址时, SLURM 系统发送消息的电子邮件。

#sbatch -p小,MYGROUP

指定分区是“小”的分区,或一个名为“MYGROUP”分区。这项工作将在这些分区的最早时间可以容纳的作业开始。

#sbatch --gres = GPU:V100:2

#sbatch -p V100

两次申请V100 GPU来提交V100队列中的作业。