常见服务器作业管理系统

如题。本文是对几种服务器作业管理系统的简要介绍。

一、在Linux高性能服务器集群上,常用的作业管理系统有哪些

在Linux高性能服务器集群上,常用的作业管理系统包括:

  1. PBS(Portable Batch System):PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。
  2. LSF(Load Sharing Facility):LSF是一个集群环境和高性能计算环境中作业调度和集群负载均衡的管理平台。它允许用户从单个节点提交和管理集群环境中的作业,支持跨多个节点和处理器分配作业,并提供丰富的调度和负载均衡功能。
  3. Condor:Condor是由威斯康星大学麦迪逊分校开发的分布式系统软件,用于管理高性能计算机集群 中的工作负载。它允许用户在集群中的多个节点上提交和管理作业,并支持复杂的调度策略,包括优先级调度、抢占式调度和基于策略的调度。
  4. SGE(Sun Grid Engine):SGE是Sun Microsystems开发的一个开源集群管理系统,用于在高性能计算环境中进行作业调度和集群管理。它支持跨多个节点和处理器分配作业,并提供丰富的调度和负载均衡功能。
  5. Slurm:Slurm是一个免费、开源、容错的集群管理系统和作业调度器,适用于大型和小型Linux集群。Slurm不需要数据库配置即可实现高伸缩性,并且可以方便地在现有系统上安装。

这些作业管理系统各有特点和优势,可以根据具体需求选择适合的系统来管理Linux高性能服务器集群 上的作业。

二、 除了这些作业管理系统以外,还有没有别的作业管理系统呢

除了上述提到的作业管理系统,还有一些其他的作业管理系统可供选择,例如:

  1. Torque:Torque是一个基于PBS(Portable Batch System)的开源作业管理系统,适用于Linux集群环境。它提供了强大的作业调度和集群管理功能,支持跨多个节点和处理器分配作业,并具有可扩展性和灵活性。
  2. Moab Cluster Suite:Moab Cluster Suite是一个功能强大的作业管理系统,适用于各种高性能计 算环境,包括Linux集群。它提供了丰富的调度和负载均衡功能,支持复杂的作业管理需求,并具有易 于使用的界面和可扩展性。

这些作业管理系统在功能和特点上可能有所不同,可以根据具体的需求和集群环境选择适合的系统来管理作业。

三、各个作业系统如何查询计算节点的状态

各个作业系统查询计算节点状态的指令如下:

  • PBS: pbsnodes
  • LSF: bhosts
  • slurm: sinfo -N -l

以slurm系统为例,使用sinfo -N -l指令可以详细的列出所有计算节点的状态(如下),从而便于用户选择计算任务的执行节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(base) user@server:~$ sinfo -N -l
Sun Dec 17 18:00:23 2023
NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
gnode001 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode001 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode002 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode002 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode003 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode003 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode004 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode004 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode005 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode005 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode006 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode006 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode007 1 hpc allocated 24 2:12:1 257252 0 1 (null) none
gnode007 1 prj-ocean allocated 24 2:12:1 257252 0 1 (null) none
gnode008 1 zelixir mixed 48 2:12:2 320904 0 1 (null) none
gnode008 1 gpu mixed 48 2:12:2 320904 0 1 (null) none
gnode008 1 lowzelixir mixed 48 2:12:2 320904 0 1 (null) none
gnode008 1 prj-ocean mixed 48 2:12:2 320904 0 1 (null) none
mnode019 1 mqueue* idle 48 8:6:1 64000 0 1 (null) none

另外,还有一个指令, free -h ,是查看当前服务器的内存使用状态的,有时候内存用完了,运行代码也会很卡


另外参考这些文章:

PBS LSF 作业管理系统 SLURM 资源管理系统
PBS 作业管理系统
LSF 作业管理系统
SLURM 资源管理系统
PBS作业调度详解 - 宝禄计算的文章 - 知乎
高通量计算框架HTCondor(一)——概述