CN113806064A - 作业调度方法、装置、系统及作业派发装置 - Google Patents
作业调度方法、装置、系统及作业派发装置 Download PDFInfo
- Publication number
- CN113806064A CN113806064A CN202010555990.0A CN202010555990A CN113806064A CN 113806064 A CN113806064 A CN 113806064A CN 202010555990 A CN202010555990 A CN 202010555990A CN 113806064 A CN113806064 A CN 113806064A
- Authority
- CN
- China
- Prior art keywords
- job
- cluster
- target cluster
- computing
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000004891 communication Methods 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims description 30
- 230000006978 adaptation Effects 0.000 claims description 29
- 238000013507 mapping Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供作业调度方法、装置、系统及作业派发装置,涉及计算机技术领域,能够提高计算集群的资源利用率。该方法应用于作业派发系统。作业派发系统与多个计算集群通信。该方法包括:作业派发系统接收待运行的第一作业之后,根据第一作业的资源需求和多个计算集群的资源空闲状况,从多个计算集群中确定第一目标集群。然后,作业派发系统向第一目标集群发送第一作业。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种作业调度方法、装置、系统及作业派发装置。
背景技术
高性能计算(high performance computing,HPC)系统是通过高性能网络连接起来的一组计算设备(如计算机),该组计算设备可协同工作,共同完成数据分析或科学计算任务。异构HPC系统是指:在HPC系统包括多个计算集群(cluster)的情况下,一个调度器(scheduler)维护一个计算集群,且不同的调度器所维护的计算集群不同。这里,调度器负责管理该调度器所在的计算集群。在调度器与某一应用适配的情况下,调度器接收该应用的作业(job)之后,该应用的作业即可在该调度器所在的计算集群上运行。其中,作业是指:为完成某一项特定的计算业务所需要执行的一组程序实例的集合。
然而,在异构HPC系统中,一个计算集群接收作业之后,若该计算集群的资源不足,则上述作业处于排队状态,直至该计算集群的资源空闲,上述作业才能够在该计算集群上运行。在上述作业处于排队过程中,即使异构HPC系统中的其他计算集群的资源空闲,处于排队状态的作业也无法在其他计算集群上运行,导致资源浪费。
发明内容
本申请实施例提供一种作业调度方法、装置、系统及作业派发装置,能够提高计算集群的资源利用率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种作业调度方法,该方法可以由作业派发系统执行。作业派发系统与多个计算集群通信。作业派发系统可以是实现作业派发系统功能的设备或设备中的组件。下面以执行主体是作业派发系统为例进行描述。该方法包括:作业派发系统接收待运行的第一作业之后,根据第一作业的资源需求和多个计算集群的资源空闲状况,从多个计算集群中确定第一目标集群。然后,作业派发系统向第一目标集群发送第一作业。
这里,多个计算集群可以是HPC系统中的计算集群。HPC系统可以是异构HPC系统。计算集群的资源包括计算集群的处理资源和存储资源中的至少一种。一个计算集群的资源空闲状况可以通过该计算集群的空闲度来呈现。其中,空闲度可以是根据一个计算集群中的空闲资源与该计算集群的总资源所确定的数值。空闲度也可以是根据一个计算集群中的作业平均等待时间确定的数值。除了空闲度之外,空闲状况还可以通过空闲资源量、空闲等级、空闲程度等来呈现,本申请实施例对此不作限定。
如此,第一目标集群能够满足第一作业的资源需求,从而使得第一作业能够在第一目标集群上运行。由于作业派发系统能够结合多个计算集群的资源空闲状况来确定运行第一作业的第一目标集群,也就实现了在多个计算集群上统一派发作业和跨计算集群的资源共享,从而大大降低了第一作业在计算集群上运行之前的排队时间,也提高了不同计算集群的资源利用率。
在一种可能的设计中,作业派发系统根据第一作业的资源需求和多个计算集群的资源空闲状况,从多个计算集群中确定第一目标集群,包括:作业派发系统根据多个计算集群中每个计算集群的资源空闲状况,从多个计算集群中确定满足空闲条件的第一目标集群。作业派发系统确定第一目标集群的可用资源满足第一作业的资源需求。这里,空闲条件可以是:将候选的计算集群中空闲度最大的计算集群作为第一目标集群。
由于作业派发系统所确定的第一目标集群满足空闲条件,所以,在空闲条件为筛选空闲度最大的计算集群的情况下,作业派发系统所确定的第一目标集群即为当前时刻空闲度最高的计算集群。并且,第一目标集群又能够满足第一作业的资源需求。如此,第一目标集群是当前时刻运行第一作业最优选的集群。
在一种可能的设计中,作业派发系统向第一目标集群发送第一作业之后,本申请实施例作业调度方法还包括:作业派发系统确定第一作业在第一时刻在第一目标集群上处于排队状态。之后,作业派发系统根据第一作业的资源需求和第一时刻多个计算集群的资源空闲状况,从多个计算集群中确定第二目标集群。然后,作业派发系统向第二目标集群发送第一作业。
如此,作业派发系统向第一目标集群派发第一作业之后,若第一作业在第一目标集群上处于排队状态,则作业派发系统还能够再次派发第一作业,以使第二目标集群运行第一作业,进一步减少了第一作业的排队时间,也进一步提高了计算集群的资源利用率。
在一种可能的设计中,作业派发系统在确定第一作业在第一时刻在第一目标集群上处于排队状态之后,本申请实施例作业调度方法还包括:作业派发系统确定第一作业在第一时刻在第一目标集群上的排队状态满足预设策略。其中,预设策略包括以下至少一项:第一作业在第一目标集群上的排队时间超过时间阈值;第一作业之前处于排队状态的作业数量超过数量阈值;第一作业的优先级在待运行作业的优先级中满足预设的优先级条件;待运行作业包括第一目标集群上处于排队状态的作业。
也就是说,作业派发系统确定第一作业在第一目标集群上的排队状态满足预设策略的情况下,作业派发系统才重新确定运行第一作业的计算集群,以使得第一作业能够尽快在第二目标集群上运行,减少第一作业的排队时间。
在一种可能的设计中,本申请实施例作业调度方法还包括:作业派发系统分别接收来自多个计算集群中每个计算集群的资源信息。其中,一个计算集群的资源信息指示该计算集群的资源空闲状况。
如此,作业派发系统即可掌握每个计算集群的资源空闲状况,以使得作业派发系统能够在作业派发过程中结合各个计算集群的资源空闲状况,确定最优选的目标集群。
在一种可能的设计中,本申请实施例作业调度方法还包括:作业派发系统接收来自第一目标集群的作业信息。其中,作业信息指示第一作业在第一时刻在第一目标集群上处于排队状态。
如此,作业派发系统即可掌握第一作业在第一目标集群上的作业状况。在第一作业未及时运行的情况下,作业派发系统能够再次派发第一作业,以使得第一作业及时运行。
在一种可能的设计中,本申请实施例作业调度方法还包括:作业派发系统接收待运行的第二作业。其中,第二作业携带集群标识,集群标识指示运行第二作业的集群为第三目标集群。作业派发系统根据集群标识,向第三目标集群发送第二作业。
如此,在第二作业已经被指定了在哪一计算集群上运行的情况下,作业派发系统也能够将第二作业派发至第二作业所指定的计算集群,既能够满足作业需求,也简化了作业派发系统的处理过程。
在一种可能的设计中,本申请实施例作业调度方法还包括:作业派发系统根据作业配置参数与作业适配参数之间的映射关系,将第一作业的作业配置参数转换为第一目标集群的作业适配参数。其中,第一目标集群的作业适配参数指示所述第一目标集群处理第一作业的参数信息。作业派发系统向第一目标集群发送第一作业,包括:作业派发系统向第一目标集群发送第一目标集群的作业适配参数。
如此,作业派发系统能够为不同的应用提供统一的作业提交入口,在确定运行第一作业的第一目标集群之后,第一目标集群还能够将第一作业的作业配置参数转换为第一目标集群的作业适配参数,以使第一目标集群能够根据转换后的作业适配参数,运行第一作业,也就提高了应用提交作业的灵活程度,避免现有技术中“调度器需与应用适配”限制。
第二方面,本申请实施例提供一种作业调度方法,该方法可以由第一集群执行。作业派发系统与多个计算集群通信。第一集群属于多个计算集群中的一个集群。第一集群可以是实现第一集群功能的设备或设备中的组件。下面以执行主体是第一集群为例进行描述。该方法包括:第一集群向作业派发系统发送第一集群的资源空闲状况。第一集群接收来自作业派发系统的第一作业。
在一种可能的设计中,本申请实施例作业调度方法还包括:第一集群确定第一作业在第一时刻在第一集群上处于排队状态。之后,第一集群向作业派发系统发送第一作业信息。其中,第一作业信息指示第一作业在第一时刻在第一集群上处于排队状态。
在一种可能的设计中,本申请实施例作业调度方法方法还包括:按照预设时间周期,第一集群向作业派发系统发送第二作业信息。其中,第二作业信息指示第一作业在第一时刻在第一集群上是否处于排队状态。
第三方面,本申请实施例提供一种作业派发装置。作业派发装置与多个计算集群通信。该装置包括:通信单元和处理单元。其中,通信单元,用于接收待运行的第一作业。处理单元,用于根据第一作业的资源需求和多个计算集群的资源空闲状况,从多个计算集群中确定第一目标集群。通信单元,还用于向第一目标集群发送第一作业。
在一种可能的设计中,处理单元,具体用于:根据多个计算集群中每个计算集群的资源空闲状况,从多个计算集群中确定满足空闲条件的第一目标集群,确定第一目标集群的可用资源满足第一作业的资源需求。
在一种可能的设计中,处理单元,还用于确定第一作业在第一时刻在第一目标集群上处于排队状态,根据第一作业的资源需求和第一时刻多个计算集群的资源空闲状况,从多个计算集群中确定第二目标集群。通信单元,还用于向第二目标集群发送第一作业。
在一种可能的设计中,处理单元,还用于确定第一作业在第一时刻在第一目标集群上的排队状态满足预设策略。其中,预设策略包括以下至少一项:第一作业在第一目标集群上的排队时间超过时间阈值;第一作业之前处于排队状态的作业数量超过数量阈值;第一作业的优先级在待运行作业的优先级中满足预设的优先级条件;待运行作业包括第一目标集群上处于排队状态的作业。
在一种可能的设计中,通信单元,还用于接收来自第一目标集群的作业信息。其中,作业信息指示第一作业在第一时刻在第一目标集群上处于排队状态。
在一种可能的设计中,通信单元,还用于接收待运行的第二作业,其中,第二作业携带集群标识,集群标识指示运行第二作业的集群为第三目标集群。通信单元,还用于根据集群标识,向第三目标集群发送第二作业。
在一种可能的设计中,处理单元,还用于根据作业配置参数与作业适配参数之间的映射关系,将第一作业的作业配置参数转换为第一目标集群的作业适配参数。其中,第一目标集群的作业适配参数用于指示第一目标集群处理第一作业的参数信息。通信单元,还用于向第一目标集群发送第一目标集群的作业适配参数。
第四方面,本申请实施例提供一种作业调度装置。作业派发系统与多个计算集群通信,作业调度装置用于管理多个计算集群中的第一集群。该装置包括:处理单元和通信单元。其中,通信单元,用于向作业派发系统发送第一集群的资源空闲状况。通信单元,还用于接收来自作业派发系统的第一作业。
在一种可能的设计中,处理单元,用于确定第一作业在第一时刻在第一集群上处于排队状态。通信单元,还用于向作业派发系统发送第一作业信息。其中,第一作业信息指示第一作业在第一时刻在第一集群上处于排队状态。
在一种可能的设计中,通信单元,还用于按照预设时间周期,向作业派发系统发送第二作业信息。其中,第二作业信息指示第一作业在第一时刻在第一集群上是否处于排队状态。
第五方面,本申请实施例提供一种作业派发装置,包括处理器和接口电路,处理器用于通过接口电路与其它装置通信,并执行以上任一方面提供的作业调度方法。该处理器包括一个或多个。该作业派发装置可以为上述任一方面的任一项中的作业派发系统,或者上述作业派发系统中的组件。
第六方面,本申请实施例提供一种作业派发装置,包括处理器,用于与存储器相连,用于调用存储器中存储的程序,以执行任一方面提供的作业调度方法。该存储器可以位于该作业派发装置之内,也可以位于该作业派发装置之外。且该处理器包括一个或多个。该作业派发装置可以为上述任一方面的任一项中的作业派发系统,或者上述作业派发系统中的组件。
第七方面,本申请实施例提供一种作业派发装置,包括至少一个处理器和至少一个存储器,所述至少一个处理器用于执行以上任一方面提供的作业调度方法。该作业派发装置可以为上述任一方面的任一项中的作业派发系统,或者上述作业派发系统中的组件。
第八方面,本申请实施例提供一种作业调度装置,包括处理器和接口电路,处理器用于通过接口电路与其它装置通信,并执行以上任一方面提供的作业调度方法。该处理器包括一个或多个。该作业调度装置可以为上述任一方面的任一项中的第一集群,或者上述第一集群中的组件。
第九方面,本申请实施例提供一种作业调度装置,包括处理器,用于与存储器相连,用于调用存储器中存储的程序,以执行任一方面提供的作业调度方法。该存储器可以位于该作业调度装置之内,也可以位于该作业调度装置之外。且该处理器包括一个或多个。该作业调度装置可以为上述任一方面的任一项中的第一集群,或者上述第一集群中的组件。
第十方面,本申请实施例提供一种作业调度装置,包括至少一个处理器和至少一个存储器,所述至少一个处理器用于执行以上任一方面提供的作业调度方法。该作业调度装置可以为上述任一方面的任一项中的第一集群,或者上述第一集群中的组件。
第十一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述任一方面中任一项的作业调度方法。
第十二方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任一方面中任一项的作业调度方法。
第十三方面,本申请实施例提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行如上述任一方面中任一项的作业调度方法。
第十四方面,本申请实施例提供一种芯片,芯片包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述任一方面任意一项的作业调度方法。
第十五方面,本申请实施例提供一种作业调度系统,该作业调度系统包括上述各个方面中任一方面中的作业派发装置和作业调度装置。
可以理解的是,上述提供的任一种装置、系统、计算机可读存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种作业调度的架构示意图;
图2为本申请实施例提供的再一种作业调度的架构示意图;
图3(a)为本申请实施例提供的一种作业调度方法的流程示意图;
图3(b)为本申请实施例提供的再一种作业调度方法的流程示意图;
图4为本申请实施例提供的又一种作业调度方法的流程示意图;
图5为本申请实施例提供的一种作业调度的过程示意图;
图6为本申请实施例提供的又一种作业调度方法的流程示意图;
图7(a)为本申请实施例提供的又一种作业调度方法的流程示意图;
图7(b)为本申请实施例提供的又一种作业调度方法的流程示意图;
图8(a)为本申请实施例提供的又一种作业调度方法的流程示意图;
图8(b)为本申请实施例提供的又一种作业调度方法的流程示意图;
图9为本申请实施例提供的再一种作业调度的过程示意图;
图10为本申请实施例提供的又一种作业调度方法的流程示意图;
图11为本申请实施例提供的一种通信装置的结构示意图;
图12为本申请实施例提供的再一种通信装置的结构示意图。
具体实施方式
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请实施例中,“多个”包括两个或两个以上。本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先,介绍本申请中所涉及的技术术语和处理过程:
1、HPC系统
通常,HPC系统包括大规模的计算节点,通过计算节点完成数据分析或科学计算。大规模的计算节点被分到一个或多个计算集群中,为了保证集群的安全性和稳定性,通常采用单个调度器,或者独立的多个调度器进行程序编译、作业提交和资源分配。在本申请实施例中,“计算节点”也可以简称为“节点”。
2、异构HPC系统
在HPC系统包括多个计算集群的情况下,一个调度器维护一个计算集群,且不同的调度器维护不同的计算集群,此类HPC系统即可称为“异构HPC系统”。这里,“不同的调度器”是指:由不同实现方式来实现的调度器。不同的调度器的用户界面和对外接口中的至少一项存在差异。
3、调度器
通常,调度器是一款分布式集群管理系统软件。调度器主要负责管理计算集群的资源和作业调度。调度器均由脚本实现。调度器的脚本经过反复测试验证,使得调度器能够与应用适配。调度器的“作业调度”功能是指,调度器接收来自该调度器适配的应用的作业之后,再将该应用的作业提交至该调度器所维护的计算集群中的部分计算节点。
4、计算集群
计算集群是指,通过多台计算设备完成同一作业,以实现更高的计算效率。在HPC系统中,计算集群通常由调度器管理。
5、作业
作业,是指完成一项特定的计算业务所需要执行的一组程序实例的集合。作业通过计算机上的一组进程、容器或其他实体来运行。这里,计算机可以是一台,也可以是多台。在批处理系统中,作业也称为“批作业”(batch job)。
6、作业队列(job queue)
作业队列,是指一个作业被调度器调度前,该作业进入作业队列中排队,等待合适的时机被调度器调度,在调度器所维护的计算集群上执行。
7、工作周期
工作周期,是指在程序运行过程中,按照指定的时间来调用某种功能或函数。其中,指定的时间具有周期性,即可称为“工作周期”。
在异构HPC系统中,一个调度器接收作业之后,若该调度器所维护的计算集群的资源不足,则上述作业处于排队状态,直至该调度器所维护的计算集群的资源空闲,上述作业才能够在该计算集群上运行。在上述作业处于排队过程中,即使异构HPC系统中的其他计算集群的资源空闲,处于排队状态的作业也无法在其他计算集群上运行,导致资源浪费。
有鉴于此,本申请实施例提供一种作业调度方法,本申请实施例作业调度方法所适用的架构包括作业派发(job dispatch)系统10和HPC系统11,如图1所示。作业派发系统10和HPC系统11之间采用有线连接或无线连接的方式进行通信。其中,HPC系统包括多个计算集群,如图1中的虚线方框所示。一个计算集群包括多个计算节点,如图1中虚线方框内的实线方框所示。可选的,若HPC系统为异构HPC系统,则本申请实施例作业调度方法所适用的架构如图2所示。作业派发系统10分别与多个调度器通信。不同的调度器维护不同的计算集群,且一个调度器维护一个计算集群。这里,图1和图2中仅示出了三个计算集群。
其中,作业派发系统10主要为不同的应用提供统一的作业提交接口,以及管理HPC系统。例如,监控HPC系统中不同计算集群上的作业排队状况和资源空闲状况,为HPC系统中不同的计算集群派发作业。可选的,本申请实施例中所涉及到的作业派发系统10可以是实现作业派发系统10功能的设备,比如,作业派发系统10包括例如但不限于服务器、计算机、平板型电脑、膝上型电脑(laptop computer)等。又比如,作业派发系统10可以是上述任一设备中的组件(比如,作业派发系统10可以指上述任一设备中的芯片系统)。在本申请一些实施例中,作业派发系统10还可以称为统一作业派发(universal job dispatch)系统,在此统一说明,下文不再赘述。作业派发系统10还可以是独立运行的后台守护进程(daemon),用来实现作业派发系统10的功能。
HPC系统11是一种通过高性能网络连接起来的一组计算设备。可选的,HPC系统11可以是多台计算机,也可以是多台服务器,还可以是支持HPC系统11实现计算功能的装置(比如计算机或服务器中的芯片)。
其中,在不同的架构中,上述架构中的作业派发系统10、HPC系统11可能对应不同的名字,本领域技术人员可以理解的是,名字对设备本身不构成限定。
本申请实施例描述的架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面对本申请实施例提供的作业调度方法进行示例性阐述。
需要说明的是,本申请下述实施例中各个系统之间的消息名字或消息中各参数的名字等只是一个示例,具体实现中也可以是其他的名字,在此统一说明,以下不再赘述。
本申请实施例提供一种作业调度方法,该作业调度方法应用在作业派发过程中。参见图3(a),该作业调度方法包括如下步骤:
S300a、第一计算集群确定资源信息。
其中,资源信息能够呈现第一计算集群的资源空闲状况。资源信息包括但不限于如下信息:该第一计算集群的可用节点数、该第一计算集群的已用节点数、该第一计算集群的中央处理器(central processing unit,CPU)利用率、该第一计算集群的内存利用率、该第一计算集群中处于空闲状况的CPU数量、该第一计算集群中处于空闲状况的内存大小、该第一计算集群中磁盘剩余空间、该第一计算集群上的作业平均等待时间等多维度信息。
S301a、按照预设时间周期,第一计算集群向作业派发系统发送资源信息。相应的,作业派发系统分别接收来自第一计算集群的资源信息。
其中,预设时间周期可以是作业派发系统设定的时间周期,也可以是HPC系统设定的时间周期。这里,预设时间周期也可以是指工作周期。HPC系统包括上述多个计算集群,上述第一计算集群是HPC系统中多个计算集群中的一个计算集群。第一计算集群可以为S303中所确定的第一目标集群,也可以为S306中所确定的第二目标集群,还可以为S309中的第三目标集群,还可以是HPC系统中除了上述第一目标集群、第二目标集群和第三目标集群之外的一个集群。图3(a)仅以“第一计算集群”为例,示出了一个计算集群与作业派发系统之间的传输状况。HPC系统中多个计算集群中每个计算集群均执行上述S300a和S301a。
示例性的,以HPC系统包括三个计算集群为例,三个计算集群分别记为C1、C2和C3。作业派发系统获取三个计算集群的资源信息之后,更新作业派发系统中的资源信息,更新后的资源信息如下表1所示。
表1
由表1可知,计算集群C1的可用节点数为0个,计算集群C1的已用节点数为100个,计算集群C1的CPU利用率为80%,计算集群C1的内存利用率为40%,计算集群C1的可用CPU数量为0个,计算集群C1的可用内存为20Gb,计算集群C1的磁盘剩余空间为200Gb,计算集群C1的作业平均等待时间为300秒。关于计算集群C2和计算集群C3的具体状况可以参见表1,此处不再赘述。
示例性的,在HPC系统实现为异构HPC系统的情况下,异构HPC系统包括多个计算集群,相应的,调度器也有多个,且与计算集群的数量相同。对于多个调度器中的每个调度器而言,由调度器确定该调度器所维护的计算集群上的资源信息,之后,再由该调度器按照预设时间周期向作业派发系统发送资源信息。相应的,作业派发系统接收来自调度器的资源信息。
参见图3(b),本申请实施例作业调度方法还包括如下步骤:
S302、作业派发系统接收待运行的第一作业。
示例性的,作业派发系统具体实施为一台服务器。服务器接收应用提交的第一作业的信息,具体可以例如但不限于如下信息:第一作业的具体程序实例、第一作业的名称、运行第一作业所需的CPU数量、运行第一作业所需的内存大小、第一作业的数据量大小、第一作业的期望完成时间等。这里,“运行第一作业所需的CPU数量”和“运行第一作业所需的内存大小”属于第一作业的资源需求。
S303、作业派发系统根据第一作业的资源需求和多个计算集群的资源空闲状况,从多个计算集群中确定第一目标集群。
其中,第一目标集群用于运行第一作业。
其中,计算集群的资源包括计算集群的计算资源和计算集群的存储资源中的至少一项。示例性的,计算资源包括CPU数量。存储资源包括内存大小。这里,分三个示例对S303的具体实现状况进行说明:
示例一、在计算集群的资源包括计算集群的计算资源的情况下,作业派发系统根据第一作业对计算集群的计算资源需求和多个计算集群的计算资源空闲状况,从多个计算集群中确定第一目标集群。例如,第一作业对计算资源需求为20个CPU。以三个计算集群为例,三个计算集群分别记为C1、C2和C3。此时,三个计算集群的计算资源空闲状况如下:C1中空闲的CPU为10个,C2中空闲的CPU为5个,C3中空闲的CPU为25个。此种情况下,作业派发系统确定上述三个计算集群中C3为第一目标集群。计算集群C3能够满足第一作业对计算集群的计算资源需求。
示例二、在计算集群的资源包括计算集群的存储资源的情况下,作业派发系统根据第一作业对计算集群的存储资源需求和多个计算集群的存储资源空闲状况,从多个计算集群中确定第一目标集群。例如,第一作业对存储资源需求为20Gb。仍以上述三个计算集群为例,三个计算集群的存储资源空闲状况如下:C1中空闲的存储资源为10Gb,C2中空闲的存储资源为5Gb,C3中空闲的存储资源为25Gb。此种情况下,作业派发系统确定上述三个计算集群中C3为第一目标集群。计算集群C3能够满足第一作业对计算集群的存储资源需求。
示例三、在计算集群的资源包括计算集群的计算资源和存储资源的情况下,作业派发系统依据示例一的描述,确定满足第一作业对计算资源需求的集群。作业派发系统依据示例二的描述,确定满足第一作业对存储资源需求的集群。若满足计算资源需求的集群和满足存储资源需求的集群中包括相同的集群,则作业派发系统将该相同的集群作为第一目标集群。若满足计算资源需求的集群和满足存储资源需求的集群中不包括相同的集群,则作业派发系统确定第一目标集群不存在。也就是说,作业派发系统未找到运行第一作业的第一目标集群。
其中,空闲状况可以通过空闲度来呈现。空闲状况还可以通过用户配置的其他参数来呈现,具体参数的类别和参数大小可以依据实际应用来设置,本申请实施例对此不作限定。下面,以空闲度为例,对空闲状况进行说明。空闲度可以是根据多种维度的信息所确定的数值。
下面分两个示例进行说明:
示例一、空闲度可以是根据一个计算集群中的空闲资源与该计算集群的总资源所确定的数值,如该计算集群中的空闲资源与该计算集群的总资源的比值。此种情况下,空闲度的取值越大,表明该计算集群的空闲程度越高。
这里,计算集群的资源可以通过计算集群的CPU利用率、计算集群的空闲节点数量或计算集群的内存利用率来体现。
以CPU利用率为例,一个计算集群包括100个CPU,若该计算集群中处于空闲状况的CPU数量为20个,则该计算集群的CPU利用率为20%,也就是说,该计算集群的空闲度为20%。
再以空闲节点为例,一个计算集群包括100个计算节点,若该计算集群中处于空闲状况的节点数量为20个,则该计算集群的空闲度为20%。
又以内存利用率为例,一个计算集群的内存大小为100Gb,若该计算集群中处于空闲状况的内存大小为20Gb,则该计算集群的内存利用率为20%,也就是说,该计算集群的空闲度为20%。
示例二、空闲度可以是根据一个计算集群中的作业平均等待时间确定的数值。此种情况下,作业平均等待时间越大,空闲度越小。例如,计算集群C1上的作业平均等待时间为300秒,计算集群C2上的作业平均等待时间为100秒,计算集群C3上的作业平均等待时间为40秒。如此,三个计算集群的空闲度由低到高依次为:计算集群C1、计算集群C2、计算集群C3。这里,“等待时间”也可以描述为“排队时间”。
需要说明的是,除了空闲度之外,空闲状况还可以通过空闲资源量、空闲等级、空闲程度等来呈现。这里,仍以计算集群的资源为计算资源为例,空闲资源量可以是“处于空闲状况的CPU为20个”。空闲等级可以是预先划分的等级。不同的空闲等级所表征的空闲程度也不一样。例如,按照处于空闲状况的CPU数量来划分,处于空闲状况的CPU数量大于或等于50个的情况下,空闲等级为一级。处于空闲状况的CPU数量小于50个的情况下,空闲等级为二级。或者,按照CPU利用率来划分,CPU利用率大于或等于50%的情况下,空闲等级为一级。CPU利用率小于50%的情况下,空闲等级为二级。这里,空闲等级的划分标准可以有多种,本申请实施例对此不作限定。空闲程度的划分标准可以参见空闲等级的相关说明,此处不再赘述。
其中,作为一种可能的实现方式,参见图4,S303可以具体实现为如下过程:
S3031、作业派发系统根据多个计算集群中每个计算集群的资源空闲状况,从多个计算集群中确定满足空闲条件的第一目标集群。
示例性的,以空闲度来呈现空闲状况为例,空闲条件可以是:将候选的计算集群中空闲度最大的计算集群作为第一目标集群。这里,候选的计算集群可以是上述多个计算集群,也可以是上述多个计算集群中的部分计算集群。例如,参见图5中的(a),圆圈表示第一作业,以三个计算集群为例,三个计算集群分别记为C1、C2和C3。在图5中的(a)中,斜线填充的方框表示该节点处于运行状态,未填充斜线的方框表示该节点处于空闲状态。如此,三个计算集群的节点利用率依次为100%、75%、50%。在依据节点利用率确定空闲度的情况下,三个计算集群的空闲度依次为0%、25%、50%。此种情况下,空闲度最大的计算集群为C3。作业派发系统确定计算集群C3满足空闲条件,计算集群C3可以作为第一目标集群。
S3032、作业派发系统确定第一目标集群的可用资源满足第一作业的资源需求。
示例性的,仍以上述三个计算集群为例,第一目标集群为计算集群C3。这里,作业派发系统确定计算集群C3的可用资源是否满足第一作业的资源需求。例如,第一作业的资源需求为20个节点。这里,若计算集群C3中处于空闲状况的节点数量大于或等于20个,也就是说,计算集群C3的可用资源包括“处于空闲状况的节点”,则计算集群C3满足第一作业的资源需求。如此,计算集群C3即为第一目标集群。这里,作业派发系统可以直接获取“第一目标集群的可用资源”,即计算集群C3中处于空闲状况的节点数量,也可以是根据“第一目标集群的总资源”和“第一目标集群的空闲度”确定“第一目标集群的可用资源”。例如,计算集群C3中总共的节点数量为60个,则依据计算集群C3的空闲度50%,作业派发系统可以确定计算集群C3的可用资源为30个节点。
由于作业派发系统所确定的第一目标集群满足空闲条件,所以,在空闲条件为筛选空闲度最高的计算集群的情况下,作业派发系统所确定的第一目标集群即为当前时刻空闲度最高的计算集群。并且,第一目标集群又能够满足第一作业的资源需求。如此,第一目标集群是当前时刻运行第一作业最优选的集群。
S304、作业派发系统向第一目标集群发送第一作业。
示例性的,在HPC系统为异构HPC系统的情况下,作业派发系统向第一目标调度器发送第一作业。这里,第一目标调度器是维护第一目标集群的调度器,由第一目标调度器控制第一作业在第一目标集群上运行。参见图5中的(b),圆圈表示第一作业。以计算集群C3为第一目标集群为例,第一作业被派发至计算集群C3。第一作业被派发至第一目标调度器之后,第一作业在第一目标集群上运行之前,第一作业进入第一目标集群的作业队列中,第一目标集群按照作业队列中的排队顺序,依次运行作业队列中的作业。
示例性的,作为一种可能的实现方式,参见图6,本申请实施例作业调度方法还包括:
S3041、作业派发系统根据作业配置参数与作业适配参数之间的映射关系,将第一作业的作业配置参数转换为第一目标集群的作业适配参数。
其中,第一目标集群的作业适配参数指示第一目标集群处理处理第一作业时所采用的参数信息,以使第一目标集群运行第一作业。
示例性的,作业配置参数与作业适配参数之间的映射关系以映射表的形式呈现,如表2所示。
表2
参见表2,以计算集群C1和计算集群C2为例,在某一作业的作业配置参数中,该作业所需求的CPU数量为X个,相应的,计算集群C1采用“NX”来表示,计算集群C2采用“CPUX”来表示。该作业所需求的内存大小为YGb,相应的,计算集群C1采用“EMY”来表示,计算集群C2采用“CostY”来表示。该作业所需求的计算节点数量Z,相应的,计算集群C1采用“MHostZ”来表示,计算集群C2采用“ServerZ”来表示。
结合表2,以第一作业的资源需求为例,作业派发系统接收到的第一作业的作业配置参数包括:CPU数量为5个,内存大小为20Gb。若第一目标集群为计算集群C1,则作业派发系统转换后的作业适配参数包括:N5-EM20。若第一目标集群为计算集群C2,则作业派发系统转换后的作业适配参数包括:CPU5-Cost20。
S3042、作业派发系统向第一目标集群发送第一目标集群的作业适配参数。
示例性的,若第一目标集群为计算集群C1,则作业派发系统向第一目标集群发送的作业适配参数包括:N5-EM20。若第一目标集群为计算集群C2,则作业派发系统向第一目标集群发送的作业适配参数包括:CPU5-Cost20。
如此,作业派发系统能够为不同的应用提供统一的作业提交入口,在确定运行第一作业的第一目标集群之后,第一目标集群还能够将第一作业的作业配置参数转换为第一目标集群的作业适配参数,以使第一目标集群能够根据转换后的作业适配参数,运行第一作业,提高了应用提交作业的灵活程度,避免现有技术中“调度器需与应用适配”限制。
需要说明的是,若作业派发系统未能够确定第一目标集群,也就是说,HPC系统中不存在能够运行第一作业的集群,则作业派发系统也就不执行S304。
本申请实施例提供的作业调度方法,作业派发系统在接收到待运行的第一作业之后,能够结合多个计算集群的资源空闲状况来确定第一目标集群,第一目标集群能够满足第一作业的资源需求,从而使得第一作业能够在第一目标集群上运行。由于作业派发系统能够结合多个计算集群的资源空闲状况来确定运行第一作业的第一目标集群,也就实现了在多个计算集群上统一派发作业和跨计算集群的资源共享,从而大大降低了第一作业在计算集群上运行之前的排队时间,也提高了不同计算集群的资源利用率。
在一些实施例中,每个计算集群还能够确定自身的作业状况。参见图7(a),以第一目标集群为例,对计算集群与作业派发系统之间的作业状况传输过程进行说明,本申请实施例作业调度方法还包括如下两种可能的实现方式:
作为第一种可能的实现方式,参见图7(a),本申请实施例作业调度方法还包括S300b和S301b:
S300b、第一目标集群确定在第一时刻在第一目标集群上存在处于排队状态的待运行作业。
其中,第一目标集群所确定的信息包括但不限于如下信息:该第一目标集群上处于排队状态的作业号、该第一目标集群上处于排队状态的作业的优先级、该第一目标集群上处于排队状态的待运行作业的等待时间等多维度信息。这里,在第一作业在第一目标集群上处于排队状态的情况下,第一目标集群也能够确定第一作业在第一目标集群上的作业号、优先级和等待时间等多维度信息。
S301b、第一目标集群向作业派发系统发送第一作业信息。相应的,作业派发系统接收来自第一目标集群的第一作业信息。
其中,第一作业信息指示哪些作业在第一时刻在第一目标集群上处于排队状态。在第一作业在第一目标集群上处于排队状态的情况下,第一作业信息也就能够指示第一作业在第一目标集群上处于排队状态。
其中,第一目标集群的介绍可以参见S303的相关说明,此处不再赘述。图7(a)仅以“第一目标集群”为例,示出了计算集群与作业派发系统之间的传输状况。HPC系统中多个计算集群中每个计算集群均执行上述S300b和S301b。也就是说,对于多个计算集群中的每个计算集群而言,在计算集群确定自身存在处于排队状态的待运行作业的情况下,才向作业派发系统发送第一作业信息,以使作业派发系统获知该计算集群存在处于排队状态的待运行作业,以使作业派发系统再次派发待运行作业。
作为第二种可能的实现方式,参见图7(b),本申请实施例作业调度方法还包括S300c:
S300c、按照预设时间周期,第一目标集群向作业派发系统发送第二作业信息。
其中,预设时间周期的介绍可以参见S301a的相关说明,此处不再赘述。第二作业信息指示派发到第一目标集群的作业在第一时刻在第一目标集群上是否处于排队状态。第一作业是派发到第一目标集群的作业,第一作业信息也就能够指示第一作业在第一目标集群上是否处于排队状态。也就是说,对于多个计算集群中的每个计算集群而言,每个计算集群按照预设时间周期向作业派发系统上报自身的作业运行状况。若存在处于排队状态的待运行作业,作业派发系统也就能够将处于排队状态的待运行作业进行再次派发。
需要说明的是,在HPC系统实现为异构HPC系统的情况下,异构HPC系统包括多个计算集群,相应的,调度器也有多个,且与计算集群的数量相同。对于多个调度器中的每个调度器而言,由调度器确定该调度器所维护的计算集群上的作业运行状况,之后,再由该调度器向作业派发系统发送第一作业信息。也就是说,由调度器执行S300b和S301b。或者,由调度器按照预设时间周期向作业派发系统发送第二作业信息,即由调度器执行S301c。相应的,作业派发系统接收来自调度器的第一作业信息或第二作业信息。
示例性的,仍以HPC系统包括三个计算集群为例,作业派发系统能够获取三个计算集群的作业信息。这里,作业信息包括第一作业信息和第二作业信息中的至少一种。作业派发系统获取三个计算集群的作业信息之后,更新作业派发系统中的作业信息,更新后的作业信息如下表3所示。
表3
计算集群 | C1 | C2 | C2 | C3 |
作业号 | 1 | 3 | 5 | 6 |
优先级 | 100 | 100 | 99 | 120 |
等待时间(秒) | 400 | 80 | 120 | 20 |
由表3可知,计算集群C1上处于排队状态的作业的作业号为1,作业号为1的作业的优先级为100,作业号为1的作业在计算集群C1上的等待时间为400秒。关于计算集群C2和计算集群C3上的作业的具体状况可以参见表2,此处不再赘述。
需要说明的是,某一个作业的作业号是指该作业在某一计算集群上的编号。若该作业被派发至另一个计算集群,则该作业被分配另一个作业号。在同一个计算集群上,优先级对应的数值越大,表明优先级的级别越高。
示例性的,在HPC系统实现为异构HPC系统的情况下,异构HPC系统包括多个计算集群,相应的,调度器也有多个,且与计算集群的数量相同。对于多个调度器中的每个调度器而言,由调度器确定该调度器所维护的计算集群上的作业信息,之后,再由该调度器按照预设时间周期向作业派发系统发送作业信息。相应的,作业派发系统接收来自调度器的作业信息。
在一些实施例中,作业派发系统执行S304之后,本申请实施例作业调度方法还能够再次派发处于排队状态的第一作业。下面,分两种可能的实现方式进行说明:
作为第一种可能的实现方式,参见图8(a),本申请实施例作业调度方法还包括:
S305、作业派发系统确定第一作业在第一时刻在第一目标集群上处于排队状态。
示例性的,在第一目标集群的作业队列中,第一作业之前的作业的运行时间较长,使得第一作业需在第一目标集群上排队等待很长时间才能够在第一目标集群上运行。在HPC系统为异构HPC系统的情况下,按照预设时间周期,第一目标调度器向作业派发系统发送作业信息。相应的,作业派发系统接收来自第一目标调度器的作业信息。其中,作业信息指示第一作业在第一时刻在第一目标集群上处于排队状态。也就是说,作业派发系统按照预设时间周期,周期性执行S301b。如此,作业派发系统即可基于作业信息,获知“第一作业在第一时刻在第一目标集群上处于排队状态”。参见图9中的(a),圆圈表示第一作业,以第一目标集群为计算集群C3为例,作业派发系统确定第一作业在计算集群C3上处于排队状态。
S306、作业派发系统根据第一作业的资源需求和第一时刻多个计算集群的资源空闲状况,从多个计算集群中确定第二目标集群。
其中,第二目标集群用于运行第一作业。
这里,HPC系统中不同计算集群的资源空闲状况是动态变化的。例如,在作业派发系统执行S303时,计算集群C2处于空闲状况的节点数量为20个。在第一时刻时,计算集群C2执行某一作业完成之后,计算集群C2中处于空闲状况的节点数量发生变化,如处于空闲状况的节点为60个。此种情况下,仍以上述三个计算集群为例,在第一时刻,参见图9中的(b),三个计算集群的资源空闲状态如下:计算集群C1中处于空闲状况的节点为60,空闲度为75%。计算集群C2中处于空闲状况的节点为20,空闲度为25%。计算集群C3中处于空闲状况的节点为50,空闲度为50%。此种情况下,满足空闲条件的计算集群为C1,第二目标集群即为计算集群C1。这里,S306的具体实现过程可以参见S303的相关说明,区别点仅在于,两个步骤执行过程中所结合的“多个计算集群的资源空闲状况”的时刻不同。作业派发系统执行S303时所结合的“多个计算集群的资源空闲状况”是作业派发系统向第一目标集群发送第一作业之前的“多个计算集群的资源空闲状况”。而作业派发系统执行S306时所结合的“多个计算集群的资源空闲状况”是“第一时刻时多个计算集群的资源空闲状况”,即作业派发系统向第一目标集群发送第一作业之后的“多个计算集群的资源空闲状况”。
S307、作业派发系统向第二目标集群发送第一作业。
示例性的,在HPC系统为异构HPC系统的情况下,作业派发系统向第二目标调度器发送第一作业。这里,第二目标调度器是维护第二目标集群的调度器,由第二目标调度器控制第一作业在第二目标集群上运行。参见图9中的(b),圆圈表示第一作业,以计算集群C1为第二目标集群为例,第一作业被派发至计算集群C1。
需要说明的是,S305至S307可以是作业派发系统通过作业再平衡服务(jobrebalance service,JRS)进程执行。
如此,作业派发系统向第一目标集群派发第一作业之后,若第一作业在第一目标集群上处于排队状态,则作业派发系统还能够再次派发第一作业,以使第二目标集群运行第一作业,从而实现第一作业在多个计算集群之间的动态流转,进一步减少了第一作业的排队时间,也进一步提高了不同计算集群的资源利用率。
作为第二种可能的实现方式,参见图8(b),本申请实施例作业调度方法还包括:
S305、作业派发系统确定第一作业在第一时刻在第一目标集群上处于排队状态。
S308、作业派发系统确定第一作业在第一时刻在第一目标集群上的排队状态满足预设策略。其中,预设策略包括以下至少一项:
第一、第一作业在第一目标集群上的排队时间超过时间阈值。
第二、第一作业之前处于排队状态的作业数量超过数量阈值。
第三、第一作业的优先级在待运行作业的优先级中满足预设的优先级条件。其中,待运行作业包括第一目标集群上处于排队状态的作业。
例如,在第一目标调度器上报的作业信息包括排队时间的情况下,作业派发系统确定第一目标在第一目标集群上的排队时间超过时间阈值(如时间阈值为5分钟),此时,作业派发系统确定更新运行第一作业的计算集群。再如,在第一目标调度器上报的作业信息包括作业队列中第一作业之前处于排队状态的作业数量的情况下,作业派发系统确定第一作业之前处于排队状态的作业数量超过数量阈值(如数量阈值为10个),此时,作业派发系统确定更新运行第一作业的计算集群。又如,在第一目标调度器上报的作业信息包括待运行作业的优先级的情况下,作业派发系统确定第一作业的优先级在待运行作业的优先级中满足预设的优先级条件,此时,作业派发系统确定更新运行第一作业的计算集群。这里,优先级条件可以是:第一作业的优先级在待运行作业的优先级中的优先级最高,优先级条件也可以是:第一作业的优先级在待运行作业的优先级中的优先级为第二优先级,本申请实施例对此不作限定。当然,预设策略还可以依据实际应用需求来设置,本申请实施例对此不作限定。
这里,S308也可以是作业派发系统通过JRS进程执行。
S306、作业派发系统根据第一作业的资源需求和第一时刻多个计算集群的资源空闲状况,从多个计算集群中确定第二目标集群。
S307、作业派发系统向第二目标集群发送第一作业。
也就是说,作业派发系统确定第一作业在第一目标集群上的排队状态满足预设策略的情况下,作业派发系统才重新确定运行第一作业的计算集群,以使得第一作业能够尽快在计算集群上运行,减少第一作业的排队时间,满足第一作业的期待完成时间。
在一些实施例中,参见图10,本申请实施例作业调度方法还包括:
S309、作业派发系统接收待运行的第二作业。
示例性的,作业派发系统具体实施为一台服务器。服务器接收第二作业的信息,第二作业的信息可以例如但不限于如下信息:第二作业的具体程序实例、第二作业的名称、运行第二作业所需的CPU数量、运行第二作业所需的内存大小、第二作业的数据量大小、第二作业的期望完成时间等。服务器还接收到运行第二作业的计算集群的集群标识。
S310、作业派发系统根据集群标识,确定第三目标集群。
其中,集群标识指示运行第二作业的集群为第三目标集群。也就是说,第二作业已经被指定了在哪一计算集群上运行。
示例性的,仍以三个计算集群为例,集群标识为“C3”,也就是说,运行第二作业的计算集群为C3,C3即为第三目标集群,是应用指定了由第三目标集群运行该第二作业。
S311、作业派发系统向第三目标集群发送第二作业。
示例性的,在HPC系统实现为异构HPC系统的情况下,作业派发系统向第三目标调度器发送第二作业,以使第二作业在第三目标集群上运行,具体实现过程可以参见S304的相关说明,此处不再赘述。
如此,在第二作业已经被指定了在哪一计算集群上运行的情况下,作业派发系统也能够将第二作业派发至第二作业所指定的计算集群,既能够满足作业需求,也简化了作业派发系统的处理过程。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对作业派发系统或第一计算集群进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图11示出了本申请实施例中提供的通信装置的一种示意性框图。该通信装置1100可以以软件的形式存在,也可以为设备,或者设备中的组件(比如芯片系统)。该通信装置1100包括:处理单元1102和通信单元1103。
通信单元1103是该通信装置1100的一种接口电路,用于从其它装置接收或向其它装置发送信号。例如,当该通信装置1100以芯片的方式实现时,该通信单元1103是该芯片用于从其它芯片或装置接收信号的接口电路,或者是该芯片用于向其它芯片或装置发送信号的接口电路。
通信单元1103可以包括用于与计算集群通信的通信单元和用于与其它设备通信的通信单元,这些通信单元可以集成在一起,也可以独立实现。
当通信装置1100用于实现上述作业派发系统(或作业派发装置)的功能时,示例性的,处理单元1102可以用于支持通信装置1100执行图3(b)中的S303、图4中的S3031和S3032、图6中的S3041、图8(a)中的S305和S306、图8(b)中的S305、S306和S308、图10中的S310,和/或用于本文所描述的方案的其它过程。通信单元1103用于支持通信装置1100和其他设备(例如计算集群)之间的通信。比如,通信单元用于支持通信装置1100执行图3(a)所示的S301a、图3(b)所示的S302和S304、图6中的S3042、图7(a)所示的S301b、图7(b)中的S301c、图8(a)中的S307、图8(b)中的S307、图10中的S309和S311,和/或用于本文所描述的方案的其它过程。
当通信装置1100用于实现上述计算集群(或作业调度装置)的功能时,示例性的,处理单元1102可以用于支持通信装置1100执行图3(a)中的S300a、图7(a)中的S300b,和/或用于本文所描述的方案的其它过程。通信单元1103用于支持通信装置1100和其他设备(例如作业派发系统)之间的通信。比如,通信单元用于支持通信装置1100执行图3(a)所示的S301a、图3(b)所示的S304、图6所示的S3042、图7(a)所示的S301b、图7(b)所示的S301c、图8(a)所示的S307、图8(b)所示的S307、图10所示的S311,和/或用于本文所描述的方案的其它过程。
可选的,通信装置1100还可以包括存储单元1101,用于存储通信装置1100的程序代码和数据,数据可以包括不限于原始数据或者中间数据等。
其中,处理单元1102可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理(digital signal processing,DSP),应用集成电路(application-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
通信单元1103可以是通信接口、收发器或收发电路等,其中,该通信接口是统称,在具体实现中,该通信接口可以包括多个接口。
存储单元1101可以是存储器。
当处理单元1102为处理器,通信单元1103为通信接口,存储单元1101为存储器时,本申请实施例所涉及的通信装置1200可以为图12所示。
参阅图12所示,该通信装置1200包括:处理器1202、收发器1203、存储器1201。
其中,收发器1203可以为独立设置的发送器,该发送器可用于向其他设备发送信息,该收发器也可以为独立设置的接收器,用于从其他设备接收信息。该收发器也可以是将发送、接收信息功能集成在一起的部件,本申请实施例对收发器的具体实现不做限制。
可选的,通信装置1200还可以包括总线1204。其中,收发器1203、处理器1202以及存储器1201可以通过总线1204相互连接;总线1204可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域普通技术人员可以理解:在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络设备上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个功能单元独立存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种作业调度方法,其特征在于,应用于作业派发系统,所述作业派发系统与多个计算集群通信;所述方法包括:
接收待运行的第一作业;
根据所述第一作业的资源需求和所述多个计算集群的资源空闲状况,从所述多个计算集群中确定第一目标集群;
向所述第一目标集群发送所述第一作业。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一作业的资源需求和所述多个计算集群的资源空闲状况,从所述多个计算集群中确定第一目标集群,包括:
根据所述多个计算集群中每个计算集群的资源空闲状况,从所述多个计算集群中确定满足空闲条件的所述第一目标集群;
确定所述第一目标集群的可用资源满足所述第一作业的资源需求。
3.根据权利要求1或2所述的方法,其特征在于,向所述第一目标集群发送所述第一作业之后,所述方法还包括:
确定所述第一作业在第一时刻在所述第一目标集群上处于排队状态;
根据所述第一作业的资源需求和所述第一时刻所述多个计算集群的资源空闲状况,从所述多个计算集群中确定第二目标集群;
向所述第二目标集群发送所述第一作业。
4.根据权利要求3所述的方法,其特征在于,在确定所述第一作业在第一时刻在所述第一目标集群上处于排队状态之后,所述方法还包括:
确定所述第一作业在所述第一时刻在所述第一目标集群上的排队状态满足预设策略;
其中,所述预设策略包括以下至少一项:
所述第一作业在所述第一目标集群上的排队时间超过时间阈值;
所述第一作业之前处于排队状态的作业数量超过数量阈值;
所述第一作业的优先级在待运行作业的优先级中满足预设的优先级条件;所述待运行作业包括所述第一目标集群上处于排队状态的作业。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
接收来自所述第一目标集群的作业信息,其中,所述作业信息指示所述第一作业在所述第一时刻在所述第一目标集群上处于排队状态。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
接收待运行的第二作业,其中,所述第二作业携带集群标识,所述集群标识指示运行所述第二作业的集群为第三目标集群;
根据所述集群标识,向所述第三目标集群发送所述第二作业。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
根据作业配置参数与作业适配参数之间的映射关系,将所述第一作业的作业配置参数转换为所述第一目标集群的作业适配参数;所述第一目标集群的作业适配参数指示所述第一目标集群处理所述第一作业的参数信息;
所述向所述第一目标集群发送所述第一作业,包括:
向所述第一目标集群发送所述第一目标集群的作业适配参数。
8.一种作业调度方法,其特征在于,作业派发系统与多个计算集群通信,所述方法应用于所述多个计算集群中的第一集群;所述方法包括:
向所述作业派发系统发送所述第一集群的资源空闲状况;
接收来自所述作业派发系统的第一作业。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
确定所述第一作业在第一时刻在所述第一集群上处于排队状态;
向所述作业派发系统发送第一作业信息,其中,所述第一作业信息指示所述第一作业在所述第一时刻在所述第一集群上处于排队状态。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
按照预设时间周期,向所述作业派发系统发送第二作业信息,其中,所述第二作业信息指示所述第一作业在第一时刻在所述第一集群上是否处于排队状态。
11.一种作业派发装置,其特征在于,与多个计算集群通信;所述装置包括:
通信单元,用于接收待运行的第一作业;
处理单元,用于根据所述第一作业的资源需求和所述多个计算集群的资源空闲状况,从所述多个计算集群中确定第一目标集群;
所述通信单元,还用于向所述第一目标集群发送所述第一作业。
12.根据权利要求11所述的装置,其特征在于,所述处理单元,具体用于:根据所述多个计算集群中每个计算集群的资源空闲状况,从所述多个计算集群中确定满足空闲条件的所述第一目标集群;确定所述第一目标集群的可用资源满足所述第一作业的资源需求。
13.根据权利要求11或12所述的装置,其特征在于,
所述处理单元,还用于确定所述第一作业在第一时刻在所述第一目标集群上处于排队状态;根据所述第一作业的资源需求和所述第一时刻所述多个计算集群的资源空闲状况,从所述多个计算集群中确定第二目标集群;
所述通信单元,还用于向所述第二目标集群发送所述第一作业。
14.根据权利要求13所述的装置,其特征在于,
所述处理单元,还用于确定所述第一作业在所述第一时刻在所述第一目标集群上的排队状态满足预设策略;
其中,所述预设策略包括以下至少一项:
所述第一作业在所述第一目标集群上的排队时间超过时间阈值;
所述第一作业之前处于排队状态的作业数量超过数量阈值;
所述第一作业的优先级在待运行作业的优先级中满足预设的优先级条件;所述待运行作业包括所述第一目标集群上处于排队状态的作业。
15.根据权利要求13或14所述的装置,其特征在于,
所述通信单元,还用于接收来自所述第一目标集群的作业信息,其中,所述作业信息指示所述第一作业在所述第一时刻在所述第一目标集群上处于排队状态。
16.根据权利要求11至15任一项所述的装置,其特征在于,
所述通信单元,还用于接收待运行的第二作业,其中,所述第二作业携带集群标识,所述集群标识指示运行所述第二作业的集群为第三目标集群;
所述通信单元,还用于根据所述集群标识,向所述第三目标集群发送所述第二作业。
17.根据权利要求11至16任一项所述的装置,其特征在于,
所述处理单元,还用于根据作业配置参数与作业适配参数之间的映射关系,将所述第一作业的作业配置参数转换为所述第一目标集群的作业适配参数;所述第一目标集群的作业适配参数用于指示所述第一目标集群处理所述第一作业的参数信息;
所述通信单元,还用于向所述第一目标集群发送所述第一目标集群的作业适配参数。
18.一种作业调度装置,其特征在于,作业派发系统与多个计算集群通信,所述装置用于管理所述多个计算集群中的第一集群;所述装置包括:
通信单元,用于向所述作业派发系统发送所述第一集群的资源空闲状况;
所述通信单元,还用于接收来自所述作业派发系统的第一作业。
19.根据权利要求18所述的装置,其特征在于,
处理单元,用于确定所述第一作业在第一时刻在所述第一集群上处于排队状态;
所述通信单元,还用于向所述作业派发系统发送第一作业信息,其中,所述第一作业信息指示所述第一作业在所述第一时刻在所述第一集群上处于排队状态。
20.根据权利要求18所述的装置,其特征在于,
所述通信单元,还用于按照预设时间周期,向所述作业派发系统发送第二作业信息,其中,所述第二作业信息指示所述第一作业在第一时刻在所述第一集群上是否处于排队状态。
21.一种作业派发装置,其特征在于,包括:处理器、用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令,以实现如权利要求1-7任一项所述作业调度方法。
22.一种作业调度装置,其特征在于,包括:处理器、用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令,以实现如权利要求8-10任一项所述作业调度方法。
23.一种作业调度系统,其特征在于,包括如权利要求21所述的作业派发装置和如权利要求22所述的作业调度装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555990.0A CN113806064A (zh) | 2020-06-17 | 2020-06-17 | 作业调度方法、装置、系统及作业派发装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555990.0A CN113806064A (zh) | 2020-06-17 | 2020-06-17 | 作业调度方法、装置、系统及作业派发装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806064A true CN113806064A (zh) | 2021-12-17 |
Family
ID=78892704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010555990.0A Pending CN113806064A (zh) | 2020-06-17 | 2020-06-17 | 作业调度方法、装置、系统及作业派发装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806064A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001851A1 (zh) * | 2022-06-27 | 2024-01-04 | 华为技术有限公司 | 一种资源调度方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207814A (zh) * | 2012-12-27 | 2013-07-17 | 北京仿真中心 | 一种去中心化的跨集群资源管理与任务调度系统与调度方法 |
US20130346994A1 (en) * | 2012-06-20 | 2013-12-26 | Platform Computing Corporation | Job distribution within a grid environment |
CN110636103A (zh) * | 2019-07-22 | 2019-12-31 | 中山大学 | 一种多异构集群作业统一调度方法及api接口 |
-
2020
- 2020-06-17 CN CN202010555990.0A patent/CN113806064A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130346994A1 (en) * | 2012-06-20 | 2013-12-26 | Platform Computing Corporation | Job distribution within a grid environment |
CN103207814A (zh) * | 2012-12-27 | 2013-07-17 | 北京仿真中心 | 一种去中心化的跨集群资源管理与任务调度系统与调度方法 |
CN110636103A (zh) * | 2019-07-22 | 2019-12-31 | 中山大学 | 一种多异构集群作业统一调度方法及api接口 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001851A1 (zh) * | 2022-06-27 | 2024-01-04 | 华为技术有限公司 | 一种资源调度方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190324819A1 (en) | Distributed-system task assignment method and apparatus | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US8402466B2 (en) | Practical contention-free distributed weighted fair-share scheduler | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN102096599A (zh) | 一种多队列任务调度方法及相关系统和设备 | |
US8191073B2 (en) | Method and system for polling network controllers | |
US11347546B2 (en) | Task scheduling method and device, and computer storage medium | |
CN105786600A (zh) | 任务调度方法和装置 | |
EP3114589B1 (en) | System and method for massively parallel processing database | |
US20100042723A1 (en) | Method and system for managing load in a network | |
EP1346549B1 (en) | Intercommunication preprocessor | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
KR20220038497A (ko) | 기계-학습 워크로드들에 대한 작업 스케줄링 | |
CN103744735A (zh) | 一种多核资源的调度方法及装置 | |
CN114579285A (zh) | 一种任务运行系统、方法及计算设备 | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
CN111309488A (zh) | 无人机集群的计算资源共享方法与系统及计算机存储介质 | |
CN113806064A (zh) | 作业调度方法、装置、系统及作业派发装置 | |
CN110471747A (zh) | 一种dma多通道的调度使用方法、装置及终端设备 | |
CN115562846A (zh) | 一种资源调度的方法、装置及计算节点 | |
CN101043446A (zh) | 数据转发处理的方法和装置 | |
CN109639599B (zh) | 网络资源调度方法及系统、存储介质及调度设备 | |
CN116233022A (zh) | 一种作业调度方法、服务器及服务器集群 | |
US8869171B2 (en) | Low-latency communications |
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 |