CN113946430B - 一种作业调度方法、计算设备及存储介质 - Google Patents

一种作业调度方法、计算设备及存储介质 Download PDF

Info

Publication number
CN113946430B
CN113946430B CN202111558518.3A CN202111558518A CN113946430B CN 113946430 B CN113946430 B CN 113946430B CN 202111558518 A CN202111558518 A CN 202111558518A CN 113946430 B CN113946430 B CN 113946430B
Authority
CN
China
Prior art keywords
job
queued
running
jobs
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111558518.3A
Other languages
English (en)
Other versions
CN113946430A (zh
Inventor
毛登峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Paratera Technology Co ltd
Original Assignee
Beijing Paratera Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Paratera Technology Co ltd filed Critical Beijing Paratera Technology Co ltd
Priority to CN202111558518.3A priority Critical patent/CN113946430B/zh
Publication of CN113946430A publication Critical patent/CN113946430A/zh
Application granted granted Critical
Publication of CN113946430B publication Critical patent/CN113946430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种作业调度方法、计算设备及存储介质,该方法包括:依照预设的时间间隔,获取队列的运行作业集合和排队作业集合,运行作业集合包括一个或多个运行的作业,排队作业集合包括一个或多个排队的作业,每个作业关联有作业信息,作业信息包括用户标识;基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序;根据确定的用户标识的顺序,对排队作业集合中各排队的作业进行轮次循环排序;按照轮次循环排序的结果,对排队作业集合中各排队的作业进行调度优先级更新。

Description

一种作业调度方法、计算设备及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种作业调度方法、计算设备及存储介质。
背景技术
由于一台计算机提供的计算能力有限,当有计算规模较大的作业(即计算任务)需要处理时,一般会使用集群来进行计算。集群是由多台作为节点的计算机通过内部高速网络互连组成的超级计算机,换言之,集群就是多个通过内部高速网络相互连接在一起节点的总称。
用户能通过共享使用集群的方式按需申请资源以完成作业,这里的资源可以理解为集群中的节点。虽然集群能够按照用户的申请分配可用资源,但集群的资源也是有限的,不可能在任意时刻都满足所有用户的资源需求,为解决这一问题,通常会利用作业调度器来对资源进行合理安排。
不同的作业调度器具有不同的调度策略,常见的调度策略有FIFO (First InputFirst Output,先进先出)策略和Backfill(回填)策略两种。FIFO策略是按照先后顺序,安排先提交的作业优先使用资源,而Backfill策略则是优选选择可以填充资源空缺的作业运行,需要资源越多的作业,因为要等待较大的资源空缺才能运行,获得运行概率较低。
考虑到用户数量多,作业使用资源的规模从单个节点到上千个节点都有可能出现,所以集群的节点规模都比较大。为了便于对这些节点进行管理,可以对节点分组,每一组由一个或多个节点组成,成为队列或分区(Partition),这些队列使用全局统一的调度策略,但队列之间相对独立,彼此隔离。每个队列对队列内的资源独立进行调度、排队。在实际中,某些用户为避免在公共资源池中与其他用户一起排队,会单独申请独享队列,则该队列的资源只有申请独享的用户单独使用,其他用户无法使用该队列的资源。
然而,目前的FIFO策略和Backfill策略等常规调度策略,在面临独享队列中多个用户共同使用的情况时,都存在一定问题。如果在一个队列上用户A提交了大量作业排队后,后面其他用户提交的作业都会排在用户A的作业之后。随着时间推移,陆续会有一些作业完成,对应作业的资源也会被释放出来供排队的作业使用。但是由于用户A的作业都排在靠前的位置,空闲资源也会优先执行用户A在排队中的作业,直到用户A排队的作业都执行完之后,其他用户排队的作业才有机会被执行,导致最终形成了资源长时间被单一用户占用,其他用户无法获得运行机会的不良状况。
因此,需要一种新的作业调度方法来优化上述处理过程。
发明内容
为此,本发明提供一种作业调度方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种作业调度方法,该方法包括如下步骤:首先,依照预设的时间间隔,获取队列的运行作业集合和排队作业集合,运行作业集合包括一个或多个运行的作业,排队作业集合包括一个或多个排队的作业,每个作业关联有作业信息,作业信息包括用户标识;基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序;根据确定的用户标识的顺序,对排队作业集合中各排队的作业进行轮次循环排序;按照轮次循环排序的结果,对排队作业集合中各排队的作业进行调度优先级更新。
可选地,在根据本发明的作业调度方法中,作业信息还包括作业标识、队列标识、作业状态、占用节点数量和调度优先级。
可选地,在根据本发明的作业调度方法中,基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序的步骤,包括:获取运行作业集合中各运行的作业关联的用户标识和占用节点数量;对获取的各用户标识,计算用户标识关联的全部运行的作业的占用节点总量;按照占用节点总量由少至多的顺序对获取的全部用户标识进行排序。
可选地,在根据本发明的作业调度方法中,计算用户标识关联的全部运行的作业的占用节点总量的步骤,包括:计算用户标识关联的各运行的作业的占用节点数量累加之和,将累加之和作为用户标识关联的全部运行的作业的占用节点总量。
可选地,在根据本发明的作业调度方法中,根据确定的用户标识的顺序,对排队作业集合中各排队的作业进行轮次循环排序的步骤,包括:获得排队作业集合中各排队的作业关联的用户标识;判断获得的各用户标识中,是否存在与运行作业集合中各运行的作业均无关联的用户标识;若不存在,则根据确定的用户标识的顺序,以及排队作业集合中各排队的作业的作业标识,对排队作业集合中各排队的作业进行轮次循环排序。
可选地,在根据本发明的作业调度方法中,根据确定的用户标识的顺序,对排队作业集合中各排队的作业进行轮次循环排序的步骤,包括:若存在,则将与运行作业集合中各运行的作业均无关联的用户标识的顺序设置为第一,并更新确定的用户标识的顺序;根据更新后的用户标识的顺序,以及排队作业集合中各排队的作业的作业标识,对排队作业集合中各排队的作业进行轮次循环排序。
可选地,在根据本发明的作业调度方法中,按照轮次循环排序的结果,对排队作业集合中各排队的作业进行调度优先级更新的步骤,包括:按照轮次循环排序的结果,对排队作业集合中各排队的作业的调度优先级进行递减设定以完成更新。
可选地,在根据本发明的作业调度方法中,还包括:根据队列的节点总量,按照调度优先级从高到低的顺序,对排队作业集合中各排队的作业进行节点分配,以完成作业调度。
根据本发明的又一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行如上所述的作业调度方法的指令。
根据本发明的又一个方面,提供了一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上所述的作业调度方法。
根据本发明的作业调度方案,基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序,根据确定的用户标识的顺序,对排队作业集合各排队的作业进行轮次循环排序,按照轮次循环排序的结果,对各排队的作业进行调度优先级更新,即通过对调度优先级的重新排序调整,达到多用户均衡分配资源的目的。
上述技术方案实现了当前占用资源最少的用户拥有最高调度优先级,使得共享同一个队列计算资源的多个用户,能够获得相对比较均衡的作业运行机会,从而避免由于单个用户提交大量作业之后,导致其他用户的作业都延后的问题。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明的一个实施例的计算设备100的结构框图;以及
图2示出了根据本发明的一个实施例的作业调度方法200的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明的一个实施例的计算设备100的结构框图。
如图1所示,在基本配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138。
计算设备100还可以包括储存接口总线134。储存接口总线134实现了从储存设备132(例如,可移除储存器136和不可移除储存器138)经由总线/接口控制器130到基本配置102的通信。操作系统120、应用122以及程序数据124的至少一部分可以存储在可移除储存器136和/或不可移除储存器138上,并且在计算设备100上电或者要执行应用122时,经由储存接口总线134而加载到系统存储器106中,并由一个或者多个处理器104来执行。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图像处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备100也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、数码照相机、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。甚至可以被实现为服务器,如文件服务器、数据库服务器、应用程序服务器和WEB服务器等。本发明的实施例对此均不做限制。
在根据本发明的实施例中,计算设备100被配置为执行根据本发明的作业调度方法200。其中,布置在操作系统上的应用122中包含用于执行本发明的作业调度方法200的多条程序指令,这些程序指令可以指示处理器104执行本发明的作业调度方法200,以便计算设备200通过执行本发明的作业调度方法200来生成完成作业调度。
图2示出了根据本发明一个实施例的作业调度方法200的流程图。作业调度方法200可以在计算设备(例如前述计算设备100)中执行。
如图2所示,方法200始于步骤S210。在步骤S210中,依照预设的时间间隔,获取队列的运行作业集合和排队作业集合,运行作业集合包括一个或多个运行的作业,排队作业集合包括一个或多个排队的作业,每个作业关联有作业信息,作业信息包括用户标识。根据本发明的一个实施例,作业信息还包括作业标识、队列标识、作业状态、占用节点数量和调度优先级。
由于随时有新的作业提交到队列进行排队,也有运行的作业结束,则进行作业调度时,应依照预设的时间间隔不断重复地对各排队的作业进行排序,才能尽量保证当前占用资源最少用户拥有最高调度优先级。然而,越频繁地重新排序,对于状态更新地频次也越高,准确度也越高,但对于作业调度系统所造成的压力也越大,因此,需要对时间间隔进行合理地预先设置,比如,在合适的范围内,根据精度要求在1秒以上的时间自由设定。
在该实施方式中,可以使用作业查询命令获取作业关联的作业信息,查询出队列当前作业运行和排队状态,作业查询命令示例如下:
squeue-pvip_09-o "%6i %9P, %10u %5t %5D %Q"
通过作业查询命令得到的作业信息示例如下表所示:
JOBID PARTITION USER STATE NODES PRIORITY
1455273 vip_09 sc94288 PENDING 1 980998
1445967 vip_09 sc94288 PENDING 2 981998
1445919 vip_09 graphene PENDING 2 982998
1445814 vip_09 graphene PENDING 1 983998
1445780 vip_09 sc94288 PENDING 1 984998
1445587 vip_09 sc94288 PENDING 1 985998
1437346 vip_09 sc94288 PENDING 1 986998
1426854 vip_09 graphene PENDING 2 970998
1437085 vip_09 sc94288 RUNNING 1 980998
1435995 vip_09 sc94511 RUNNING 1 981132
1435990 vip_09 sc94511 RUNNING 1 980998
1435955 vip_09 graphene RUNNING 1 980998
1425422 vip_09 sc94288 RUNNING 1 981114
1422228 vip_09 sc94288 RUNNING 1 1104218
1409920 vip_09 graphene RUNNING 2 1000996
1409918 vip_09 graphene RUNNING 2 1000996
表1
表1示出了根据本发明的一个实施例的多条作业信息示例,其中,JOBID、PARTITION、USER、STATE、NODES和PRIORITY,分别表示作业标识、队列标识、用户标识、作业状态、占用节点数量和调度优先级。作业状态(STATE)若是PENDING,则表示该作业处于排队状态,是排队的作业,属于排队作业集合,若是RUNNING,则表示该作业处于运行状态,是运行的作业,属于运行作业集合。调度优先级(PRIORITY)是作业调度的优先级,其数值越大,优先级越高,越有机会占有空闲资源。
对于排队的作业来说,其作业标识是根据提交到队列的先后顺序自增设定的,例如递增加1,即当前提交的作业较前一个提交的作业,其作业标识在数值上大1。假设前一个提交的作业的作业标识为350,则当前提交的作业的作业标识为351。但调度优先级的设定,则更为复杂。由于调度优先级取决于多种因素,例如提交时间的先后、作业需要资源的规模等,提交时间越早,调度优先级越高,作业运行需要的资源节点越少,调度优先级越高。如果作业需要资源的规模一样,后提交作业的调度优先级,肯定比前一个进入排队的作业低。
表1中共计16条作业信息,对应于16个作业,从作业状态可知,获取到的排队作业集合包括8个排队的作业,分别是第1~8条作业信息关联的作业,获取到的运行作业集合包括8个运行的作业,分别是第9~16条作业信息关联的作业。以表1中的第1条作业信息为例,对其关联的作业进行属性说明。表1中第1条作业信息关联的作业,其作业标识为1437085,属于队列vip_09,由用户标识为sc94288的用户提交,作业状态“PENDING”表明该作业处于排队状态,占用节点数量为1说明该作业在执行时只需要占用1个节点,调度优先级为980998。
另外,还应注意的是,不同的作业也可能出现相同的调度优先级,比如表1中作业标识为1409920和1409918的两个作业,调度优先级均为1000996。出现相同的调度优先级,表明拥有相同的机会获得空闲资源。在这种情况下,如果轮到该调度优先级获得空闲资源,则可随机挑选一个进入运行状态。当然,也可以根据实际情况来进行调整,这取决于具体的调度机制。
随后,进入步骤S220,基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序。根据本发明的一个实施例,可以通过如下方式确定占用节点总量由少至多的用户标识的顺序。在该实施方式中,先获取运行作业集合中各运行的作业关联的用户标识和占用节点数量,对获取的各用户标识,计算用户标识关联的全部运行的作业的占用节点总量,再按照占用节点总量由少至多的顺序对获取的全部用户标识进行排序。在计算用户标识关联的全部运行的作业的占用节点总量时,通常是计算用户标识关联的各运行的作业的占用节点数量累加之和,将累加之和作为用户标识关联的全部运行的作业的占用节点总量。
由表1可知,运行作业集合中8个运行的作业的作业标识分别是1437085、1435995、1435990、1435955、1425422、1422228、1409920和1409918,对应的用户标识依次是sc94288、sc94511、sc94511、graphene、sc94288、sc94288、graphene和graphene,占用节点数量依次是1、1、1、1、1、1、2和2。由此可获取3个用户标识,分别是sc94288、sc94511和graphene。
对用户标识sc94288,其关联的作业标识为1437085、1425422和1422228的运行的作业的占用节点数量分别是1、1和1,累加之和为3,则用户标识sc94288关联的全部运行的作业的占用节点总量为3。
对用户标识sc94511,其关联的作业标识为1435995和1435990的运行的作业的占用节点数量分别是1和1,累加之和为2,则用户标识sc94511关联的全部运行的作业的占用节点总量为2。
对用户标识graphene,其关联的作业标识为1435955、1409920和1409918的运行的作业的占用节点数量分别是1、2和2,累加之和为5,则用户标识graphene关联的全部运行的作业的占用节点总量为5。
占用节点总量由少至多的顺序为2、3和5,则按照这一顺序对用户标识sc94288、sc94511和graphene进行排序,可得排序后用户标识的顺序为sc94511、sc94288和graphene。
接下来,在步骤S230中,根据确定的用户标识的顺序,对排队作业集合中各排队的作业进行轮次循环排序。根据本发明的一个实施例,可采用如下方式对排队作业集合中各排队的作业进行轮次循环排序。首先,获得排队作业集合中各排队的作业关联的用户标识,再判断获得的各用户标识中,是否存在与运行作业集合中各运行的作业均无关联的用户标识。
在该实施方式中,由表1可知,排队作业集合中8个排队的作业的作业标识分别是1455273、1445967、1445919、1445814、1445780、1445587、1437346和1426854,对应的用户标识依次是sc94288、sc94288、graphene、graphene、sc94288、sc94288、sc94288和graphene。由此可获得2个用户标识,分别是sc94288和graphene。
运行作业集合中各运行的作业关联的用户标识包括sc94288、sc94511和graphene,而获得的用户标识包括sc94288和graphene,对比后可判断出其中不存在与运行作业集合中各运行的作业均无关联的用户标识。
若不存在,则根据确定的用户标识的顺序,以及排队作业集合中各排队的作业的作业标识,对排队作业集合中各排队的作业进行轮次循环排序。轮次循环排序的原理实际上就是按照确定的用户标识的顺序和作业的作业标识的顺序,对获得的各用户标识和各排队的作业进行双重排序,即先按照确定的用户标识的顺序,对获得的各用户标识进行排序,以确定每轮次用户排序的大顺序,再在每轮次的作业排序中,根据各排队的作业的作业标识,确定可轮到当前轮次排列的排队作业。
例如,对获得的各用户标识排序后得到其顺序为sc94288、graphene,那么每轮次中,用户标识为sc94288的排队的作业都应排在用户标识为graphene的排队的作业之前,而对于用户标识相同的排队的作业,作业标识越小,即作业进入排队的时间越早,则优先选入当前轮次进行排序。
排队作业集合中作业标识分别是1455273、1445967、1445919、1445814、1445780、1445587、1437346和1426854的排队的作业,进行轮次循环排序的结果如下:
第1位作业是用户标识为sc94288的作业,其作业标识为1437346;
第2位作业是用户标识为graphene的作业,其作业标识为1426854;
第3位作业是用户标识为sc94288的作业,其作业标识为1445587;
第4位作业是用户标识为graphene的作业,其作业标识为1445814;
第5位作业是用户标识为sc94288的作业,其作业标识为1445780;
第6位作业是用户标识为graphene的作业,其作业标识为1445919;
第7位作业是用户标识为sc94288的作业,其作业标识为1445967;
第8位作业是用户标识为sc94288的作业,其作业标识为1455273。
根据本发明的又一个实施例,若获得的各用户标识中,存在与运行作业集合中各运行的作业均无关联的用户标识,则将与运行作业集合中各运行的作业均无关联的用户标识的顺序设置为第一,并更新确定的用户标识的顺序,根据更新后的用户标识的顺序,以及排队作业集合中各排队的作业的作业标识,对排队作业集合中各排队的作业进行轮次循环排序。
当获得的各用户标识中,存在与运行作业集合中各运行的作业均无关联的用户标识时,说明该用户标识关联的作业均没有处于运行状态中,当前已占用节点数量为0,是最少的。由于该用户标识关联有排队的作业,且其已占节点数量最少,则该用户标识应与其他用户标识相比,应具有最高优先级,其在之前确定的用户标识的顺序中应居第一位,关联的排队的作业也相应应排在最前位置。
最后,执行步骤S240,按照轮次循环排序的结果,对排队作业集合中各排队的作业进行调度优先级更新。根据本发明的一个实施例,按照轮次循环排序的结果,对排队作业集合中各排队的作业的调度优先级进行递减设定以完成更新。
需要说明的是,设定的调度优先级的绝对值是多少其实并不重要,只需要各排队的作业的调度优先级的相对顺序,能够符合步骤S230重新排序后的顺序。这样就能按照预期先分配资源给调度优先级较高的排队的作业,以便其先进入运行状态。
可以通过如下命令语句来调整排队的作业的调度优先级:
scontrol update JobId= 1437346 priority = 980998
scontrol update JobId= 1426854 priority = 970998
scontrol update JobId= 1445587 priority = 960998
……
最终得到作业标识为1437346、1426854、1445587、1445814、1445780、1445919、1445967和1455273的排队的作业的调度优先级,依次为980998、970998、960998、950998、940998、930998、920998和910998。
根据本发明的一个实施例,在完成各排队的作业的调度优先级更新后,根据队列的节点总量,按照调度优先级从高到低的顺序,对排队作业集合中各排队的作业进行节点分配,以完成作业调度。
根据本发明实施例的作业调度方案,基于运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序,根据确定的用户标识的顺序,对排队作业集合各排队的作业进行轮次循环排序,按照轮次循环排序的结果,对各排队的作业进行调度优先级更新,即通过对调度优先级的重新排序调整,达到多用户均衡分配资源的目的。
上述技术方案实现了当前占用资源最少的用户拥有最高调度优先级,使得共享同一个队列计算资源的多个用户,能够获得相对比较均衡的作业运行机会,从而避免由于单个用户提交大量作业之后,导致其他用户的作业都延后的问题。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的作业调度方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (9)

1.一种作业调度方法,包括:
依照预设的时间间隔,获取队列的运行作业集合和排队作业集合,所述运行作业集合包括一个或多个运行的作业,所述排队作业集合包括一个或多个排队的作业,每个作业关联有作业信息,所述作业信息包括用户标识和作业标识;
基于所述运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序;
根据确定的用户标识的顺序的基础之上,再根据所述排队作业集合中各排队的作业的作业标识由小至大的顺序,对所述排队作业集合中各排队的作业进行轮次循环排序;
按照轮次循环排序的结果,对所述排队作业集合中各排队的作业进行调度优先级更新;
根据所述队列的节点总量,按照所述调度优先级从高到低的顺序,对所述排队作业集合中各排队的作业进行节点分配,以完成作业调度。
2.如权利要求1所述的方法,其中,所述作业信息还包括作业标识、队列标识、作业状态、占用节点数量和调度优先级。
3.如权利要求1所述的方法,其中,所述基于所述运行作业集合中各运行的作业,确定占用节点总量由少至多的用户标识的顺序的步骤,包括:
获取所述运行作业集合中各运行的作业关联的用户标识和占用节点数量;
对获取的各用户标识,计算所述用户标识关联的全部运行的作业的占用节点总量;
按照所述占用节点总量由少至多的顺序对获取的全部用户标识进行排序。
4.如权利要求3所述的方法,其中,所述计算所述用户标识关联的全部运行的作业的占用节点总量的步骤,包括:
计算所述用户标识关联的各运行的作业的占用节点数量累加之和,将所述累加之和作为所述用户标识关联的全部运行的作业的占用节点总量。
5.如权利要求1-4中任一项所述的方法,其中,所述根据确定的用户标识的顺序的基础之上,再根据所述排队作业集合中各排队的作业的作业标识由小至大的顺序,对所述排队作业集合中各排队的作业进行轮次循环排序的步骤,包括:
获得所述排队作业集合中各排队的作业关联的用户标识;
判断获得的各用户标识中,是否存在与所述运行作业集合中各运行的作业均无关联的用户标识;
若不存在,则根据确定的用户标识的顺序的基础之上,再根据所述排队作业集合中各排队的作业的作业标识的由小到大的顺序,对所述排队作业集合中各排队的作业进行轮次循环排序。
6.如权利要求5所述的方法,其中,所述根据确定的用户标识的顺序的基础之上,再根据所述排队作业集合中各排队的作业的作业标识由小至大的顺序,对所述排队作业集合中各排队的作业进行轮次循环排序的步骤,包括:
若存在,则将与所述运行作业集合中各运行的作业均无关联的用户标识的顺序设置为第一,并更新所述确定的用户标识的顺序;
根据更新后的用户标识的顺序的基础之上,再根据所述排队作业集合中各排队的作业的作业标识的由小到大的顺序,对所述排队作业集合中各排队的作业进行轮次循环排序。
7.如权利要求1至4中任一项所述的方法,其中,所述按照轮次循环排序的结果,对所述排队作业集合中各排队的作业进行调度优先级更新的步骤,包括:
按照轮次循环排序的结果,对所述排队作业集合中各排队的作业的调度优先级进行递减设定以完成更新。
8.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述的方法的指令。
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。
CN202111558518.3A 2021-12-20 2021-12-20 一种作业调度方法、计算设备及存储介质 Active CN113946430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111558518.3A CN113946430B (zh) 2021-12-20 2021-12-20 一种作业调度方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111558518.3A CN113946430B (zh) 2021-12-20 2021-12-20 一种作业调度方法、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN113946430A CN113946430A (zh) 2022-01-18
CN113946430B true CN113946430B (zh) 2022-05-06

Family

ID=79339332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111558518.3A Active CN113946430B (zh) 2021-12-20 2021-12-20 一种作业调度方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN113946430B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755893B (zh) * 2023-08-22 2023-11-17 之江实验室 面向深度学习的分布式计算系统的作业调度方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0794491A2 (en) * 1996-03-05 1997-09-10 International Business Machines Corporation Client/server architecture supporting concurrent servers
CN106326003A (zh) * 2016-08-11 2017-01-11 中国科学院重庆绿色智能技术研究院 一种作业调度和计算资源分配方法
CN106980532A (zh) * 2016-01-18 2017-07-25 西安中兴新软件有限责任公司 一种作业调度方法和装置
CN110806928A (zh) * 2019-10-16 2020-02-18 北京并行科技股份有限公司 一种作业提交方法及系统
CN110837410A (zh) * 2019-10-30 2020-02-25 北京奇艺世纪科技有限公司 任务调度方法、装置、电子设备及计算机可读存储介质
CN112073498A (zh) * 2020-09-01 2020-12-11 北京字节跳动网络技术有限公司 一种资源分配方法及装置
CN113722056A (zh) * 2020-12-23 2021-11-30 北京沃东天骏信息技术有限公司 任务调度方法、装置、电子设备和计算机可读介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262897B (zh) * 2019-06-13 2023-01-31 东北大学 一种基于负载预测的Hadoop计算任务初始分配方法
CN110795241B (zh) * 2019-10-18 2022-07-19 北京并行科技股份有限公司 一种作业调度管理方法、调度中心和系统
JP2021077180A (ja) * 2019-11-12 2021-05-20 富士通株式会社 ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法
CN111343288B (zh) * 2020-05-21 2020-09-01 北京并行科技股份有限公司 作业调度方法、系统及计算设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0794491A2 (en) * 1996-03-05 1997-09-10 International Business Machines Corporation Client/server architecture supporting concurrent servers
CN106980532A (zh) * 2016-01-18 2017-07-25 西安中兴新软件有限责任公司 一种作业调度方法和装置
CN106326003A (zh) * 2016-08-11 2017-01-11 中国科学院重庆绿色智能技术研究院 一种作业调度和计算资源分配方法
CN110806928A (zh) * 2019-10-16 2020-02-18 北京并行科技股份有限公司 一种作业提交方法及系统
CN110837410A (zh) * 2019-10-30 2020-02-25 北京奇艺世纪科技有限公司 任务调度方法、装置、电子设备及计算机可读存储介质
CN112073498A (zh) * 2020-09-01 2020-12-11 北京字节跳动网络技术有限公司 一种资源分配方法及装置
CN113722056A (zh) * 2020-12-23 2021-11-30 北京沃东天骏信息技术有限公司 任务调度方法、装置、电子设备和计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Slurm作业调度系统使用指南;李会民;《https://web.archive.org/web/20210821145622/http://hmli.ustc.edu.cn/doc/userguide/slurm-userguide.pdf》;20210821;第7-8、10、15、31页 *

Also Published As

Publication number Publication date
CN113946430A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
He et al. A novel task-duplication based clustering algorithm for heterogeneous computing environments
US8239873B2 (en) Speedy event processing
CN107341041B (zh) 基于优先队列的云任务多维约束回填调度方法
Catalyiirek Umpa: A multi-objective multi-level partitioner for communication minimization umit v. catalyiirek mehmet deveci kamer kaya and bora ucar
US9298500B2 (en) Information processing system and control method of information processing system for managing jobs in a distributed multi-node environment
WO2023051505A1 (zh) 一种任务求解方法及其装置
CN111343288B (zh) 作业调度方法、系统及计算设备
CN111625367B (zh) 一种动态调整文件系统读写资源的方法
CN113946430B (zh) 一种作业调度方法、计算设备及存储介质
CN115292016A (zh) 基于人工智能的任务调度方法及相关设备
CN108446180A (zh) 一种基于数据迁移的数据中心动态任务调度方法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN109062683B (zh) 主机资源分配的方法、装置及计算机可读存储介质
Qureshi et al. Grid resource allocation for real-time data-intensive tasks
CN111736959B (zh) 异构集群下考虑数据亲和性的Spark任务调度方法
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
CN117539612A (zh) 基于混沌麻雀算法的ai训推平台任务调度方法和系统
CN104731662B (zh) 一种可变并行作业的资源分配方法
CN116010051A (zh) 一种联邦学习多任务调度方法及装置
CN113419827A (zh) 一种高性能计算资源调度公平分享方法
CN115951988B (zh) 一种作业调度方法、计算设备及存储介质
CN112073498A (zh) 一种资源分配方法及装置
JP2005107632A (ja) Eaiサーバおよびeaiサーバのプログラム
CN112800318B (zh) 一种邮件搜索方法及计算设备
Kaladevi et al. Processor co-allocation enabling advanced reservation of jobs in MultiCluster systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant