CN107045456B - 一种资源分配方法及资源管理器 - Google Patents

一种资源分配方法及资源管理器 Download PDF

Info

Publication number
CN107045456B
CN107045456B CN201610080980.XA CN201610080980A CN107045456B CN 107045456 B CN107045456 B CN 107045456B CN 201610080980 A CN201610080980 A CN 201610080980A CN 107045456 B CN107045456 B CN 107045456B
Authority
CN
China
Prior art keywords
tasks
allocation
task
resource
node
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
CN201610080980.XA
Other languages
English (en)
Other versions
CN107045456A (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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610080980.XA priority Critical patent/CN107045456B/zh
Priority to PCT/CN2016/112186 priority patent/WO2017133351A1/zh
Publication of CN107045456A publication Critical patent/CN107045456A/zh
Application granted granted Critical
Publication of CN107045456B publication Critical patent/CN107045456B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种资源分配方法及资源管理器,用于提高资源利用率,和/或,用于提升用户作业的执行效率。该方法包括:接收客户端设备提交的作业,并将该作业分解为多个任务,其中,该多个任务中的每个任务均配置有相对应的资源需求量;估计每个任务的运行时间;根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,该第一分配位形用于指示该多个任务在多个计算节点中的可运行计算节点上的分布情况,该调度策略包括资源利用率优先策略和效率优先策略中的至少一种;将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上。本发明适用于高性能集群领域。

Description

一种资源分配方法及资源管理器
技术领域
本发明涉及高性能集群领域,尤其涉及一种资源分配方法及资源管理器。
背景技术
互联网的高速发展产生了大量的用户数据,分布式处理则是处理大规模数据集的标准手段。它的典型模式是将一个用户作业(英文:Job)分解为一系列可分布式运行的任务(英文:Task),并通过调度器(英文:Scheduler)将这些任务调度到合适的节点(英文:node)上进行运算。任务运行完成之后,将任务的运行结果做归集、整理,形成作业最终的结果输出。
调度器是集群资源与用户作业的耦合点。调度策略的好坏直接影响了整个集群的资源利用率和用户作业的执行效率。目前广泛应用的Hadoop***的调度策略如图1所示。其中,Hadoop将有资源需求的Task按照一定的策略,如主资源公平(英文全称:dominantresource fairness,英文缩写:DRF)策略)排队,而各个节点通过心跳上报本节点上的资源量,并触发分配机制。若该节点上的资源量满足第一个Task的需求,调度器便将该Task安放在该节点上。然而,该调度策略仅考虑到了资源的公平性,比较单一,并不能根据不同场景需要灵活地选择资源利用率优先策略和效率优先策略来进行资源分配,从而无法使得集群资源的利用率较高,和/或,用户作业的执行效率较高。
发明内容
本发明实施例提供一种资源分配方法及资源管理器,用于灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而提高资源利用率,和/或,提升用户作业的执行效率。
为达到上述目的,本发明实施例提供如下技术方案:
第一方面,提供一种分布式计算***中的资源分配方法,该分布式计算***包括多个计算节点,该方法包括:接收客户端设备提交的作业,并将该作业分解为多个任务,其中,该多个任务中的每个任务均配置有相对应的资源需求量;估计每个任务的运行时间;根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,该第一分配位形用于指示该多个任务在多个计算节点中的可运行计算节点上的分布情况,该调度策略包括资源利用率优先策略和效率优先策略中的至少一种;将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上。
基于本发明实施例提供的资源分配方法,该资源分配方法中,在接收客户端设备提交的作业,并将该作业分解为多个有相应的资源需求量配置的任务之后,还估计每个任务的运行时间,并根据每个任务的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,然后将该多个任务按照该第一分配位形分配到该多个任务的可运行计算节点上。其中,该第一分配位形用于指示该多个任务在该多个任务的可运行计算节点上的分布情况,调度策略包括资源利用率优先策略和效率优先策略中的至少一种。也就是说,该方案考虑了每个任务的运行时间的因素,并且将空间需求(即任务的资源需求量)和时间需求(即任务的时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。一方面,由于可以采用资源利用率较高的分配位形,即可以通过调度策略使得那些节点资源利用率较高的Task组合被调度到节点上,因此该分配方案能有效减轻现有技术中资源碎片的问题,从而提升集群的资源利用率。另一方面,由于可以采用效率较高的分配位形,即可以通过调度策略使得那些作业执行时间最短的Task组合被调度到节点上,因此与现有技术相比,该分配方案能显著缩短作业执行时间,提升作业执行效率。综上,本发明实施例提供的资源分配方法能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而可以提高资源利用率,和/或,可以提升用户作业的执行效率。
结合第一方面,在第一方面第一种可能的实现方式中,若调度策略为资源利用率优先策略,则第一分配位形具体为使得该多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
结合第一方面,在第一方面第二种可能的实现方式中,若调度策略为效率优先策略,则第一分配位形具体为使得作业的整体执行速度最快的分配位形。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述估计每个任务的运行时间,具体可以包括:针对每个任务,均按照下面针对第一任务的操作进行处理:将第一任务的硬信息与样本库中的历史任务的硬信息进行匹配;若匹配成功,根据与第一任务的硬信息匹配的历史任务的历史运行时间估计第一任务的运行时间。
具体的,本发明实施例中的硬信息具体可以包括作业类型、执行用户等信息。
需要说明的是,本发明实施例仅是示例性的给出一种估计任务运行时间的具体实现,当然,还可以通过其它方式估计任务的运行时间,比如,通过预运行任务的方式。即,通过预先运行一小段作业实例获得准确的完整运行时间的估计。另外,同一作业的后续任务的运行时间参考已运行任务的运行时间也会获得更为准确的估计。本发明实施例对估计任务运行时间的具体实现方式不做限定。
结合第一方面至第一方面第三种可能的实现方式中的任意一种可能的实现方式,在第一方面第四种可能的实现方式中,在根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形之前,还包括:将该多个任务按照资源的种类进行分类,获得至少一类任务;
所述根据所述每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定所述多个任务的第一分配位形,具体包括:针对该至少一类任务中的每类任务,均按照下面针对第一类任务的操作进行处理:根据第一类任务中每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定第一类任务的子分配位形,该子分配位形用于指示该第一类任务在多个计算节点中的可运行计算节点上的分布情况;将该至少一类任务中的每类任务的子分配位形的组合确定为该多个任务的第一分配位形。
由于本发明实施例提供的资源分配方法可以首先将多个任务按照资源的种类进行分类,进而对于每一类任务分别进行资源分配,也就是说可以同时考虑对于异构集群和特殊资源需求作业的资源分配,因而具有更广泛的普适性和更好的综合表现。
可选的,考虑到运行时间的估计会与实际情况通常会产生一些偏差。如果对这些偏差不做控制,则随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。因此,本发明实施例提供的资源分配方法中,还可以引入变异机制(即重新分配)。即:
结合第一方面至第一方面第四种可能的实现方式中的任意一种可能的实现方式,在第一方面第五种可能的实现方式中,在所述将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上之后,还包括:根据第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值;根据所有处于等待状态的任务对应的资源需求量和运行时间,结合预设的调度策略,确定所有处于等待状态的任务的第二分配位形,该第二分配位形用于指示该所有处于等待状态的任务在该所有处于等待状态的任务的可运行计算节点上的分布情况;根据第二分配位形,确定该所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值;若第二整体分配目标函数值大于第一整体分配目标函数值,将该所有处于等待状态的任务按照第二分配位形分配到所有处于等待状态的任务的可运行计算节点上。
通过上述变异机制,可以使得作业资源的预分配结果向更好的方向进化。
第二方面,提供一种资源管理器,该资源管理器包括:接收单元、分解单元、估计单元、确定单元和分配单元:接收单元,用于接收客户端设备提交的作业;分解单元,用于将该作业分解为多个任务,其中,该多个任务中的每个任务均配置有相对应的资源需求量;估计单元,用于估计每个任务的运行时间;确定单元,用于根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,该第一分配位形用于指示该多个任务在多个计算节点中的可运行计算节点上的分布情况,该调度策略包括资源利用率优先策略和效率优先策略中的至少一种;分配单元,用于将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上。
基于本发明实施例提供的资源管理器,该资源管理器在接收客户端设备提交的作业,并将该作业分解为多个有相应的资源需求量配置的任务之后,还估计每个任务的运行时间,并根据每个任务的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,然后将该多个任务按照该第一分配位形分配到该多个任务的可运行计算节点上。其中,该第一分配位形用于指示该多个任务在该多个任务的可运行计算节点上的分布情况,调度策略包括资源利用率优先策略和效率优先策略中的至少一种。也就是说,该资源管理器在进行资源分配时考虑了每个任务的运行时间的因素,并且将空间需求(即任务的资源需求量)和时间需求(即任务的时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。一方面,由于可以采用资源利用率较高的分配位形,即可以通过调度策略使得那些节点资源利用率较高的Task组合被调度到节点上,因此该资源管理器能有效减轻现有技术中资源碎片的问题,从而提升集群的资源利用率。另一方面,由于可以采用效率较高的分配位形,即可以通过调度策略使得那些作业执行时间最短的Task组合被调度到节点上,因此与现有技术相比,该资源管理器能显著缩短作业执行时间,提升作业执行效率。综上,本发明实施例提供的资源管理器能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而可以提高资源利用率,和/或,可以提升用户作业的执行效率。
结合第二方面,在第二方面第一种可能的实现方式中,若调度策略为资源利用率优先策略,则第一分配位形具体为使得该多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
结合第二方面,在第二方面第二种可能的实现方式中,若调度策略为效率优先策略,则第一分配位形具体为使得作业的整体执行速度最快的分配位形。
结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,估计单元具体用于:针对每个任务,均按照下面针对第一任务的操作进行处理:将第一任务的硬信息与样本库中的历史任务的硬信息进行匹配;若匹配成功,根据与第一任务的硬信息匹配的历史任务的历史运行时间估计第一任务的运行时间。
具体的,本发明实施例中的硬信息具体可以包括作业类型、执行用户等信息。
需要说明的是,本发明实施例仅是示例性的给出一种估计单元估计任务运行时间的具体实现,当然,估计单元还可以通过其它方式估计任务的运行时间,比如,通过预运行任务的方式。即,通过预先运行一小段作业实例获得准确的完整运行时间的估计。另外,同一作业的后续任务的运行时间参考已运行任务的运行时间也会获得更为准确的估计。本发明实施例对估计单元估计任务运行时间的具体实现方式不做限定。
结合第二方面至第二方面第三种可能的实现方式中的任意一种可能的实现方式,在第二方面第四种可能的实现方式中,资源管理器还包括分类单元;在确定单元根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形之前,分类单元,用于将该多个任务按照资源的种类进行分类,获得至少一类任务;
确定单元具体用于:针对该至少一类任务中的每类任务,均按照下面针对第一类任务的操作进行处理:根据第一类任务中每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定第一类任务的子分配位形,该子分配位形用于指示该第一类任务在多个计算节点中的可运行计算节点上的分布情况;将该至少一类任务中的每类任务的子分配位形的组合确定为该多个任务的第一分配位形。
由于本发明实施例提供的资源管理器可以首先将多个任务按照资源的种类进行分类,进而对于每一类任务分别进行资源分配,也就是说可以同时考虑对于异构集群和特殊资源需求作业的资源分配,因而具有更广泛的普适性和更好的综合表现。
可选的,考虑到运行时间的估计会与实际情况通常会产生一些偏差。如果对这些偏差不做控制,则随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。因此,本发明实施例提供的资源管理器在进行资源分配时,还可以引入变异机制(即重新分配)。即:
结合第二方面至第二方面第四种可能的实现方式中的任意一种可能的实现方式,在第二方面第五种可能的实现方式中,在分配单元将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上之后,确定单元,还用于:根据第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值;根据所有处于等待状态的任务对应的资源需求量和运行时间,结合预设的调度策略,确定所有处于等待状态的任务的第二分配位形,该第二分配位形用于指示该所有处于等待状态的任务在该所有处于等待状态的任务的可运行计算节点上的分布情况;根据第二分配位形,确定该所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值;分配单元,还用于若第二整体分配目标函数值大于第一整体分配目标函数值,将该所有处于等待状态的任务按照第二分配位形分配到所有处于等待状态的任务的可运行计算节点上。
通过上述变异机制,可以使得作业资源的预分配结果向更好的方向进化。
结合第一方面第五种可能的实现方式,在第一方面第六种可能的实现方式中;或者,结合第二方面第五种可能的实现方式,在第二方面第六种可能的实现方式中,所述第一整体分配目标函数值等于所述第一分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和;
所述第二整体分配目标函数值等于所述第二分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
可选的,一种可能的实现方式中,上述的单节点分配目标函数具体包括:
Figure BDA0000923033080000071
其中,Sn表示单节点n的分配目标函数值;p表 示作业时间优先级因子,p>0;f表示作业公平性因子,f>0;p+f≤1;m表示作业的数量;Se,n 表示节点n上的资源利用率得分,rn表示节点n的资源,rt表示任务t的资源需 求量;Sp,j表示作业j的执行进度,Tj表示作业j还需要多少时间执行完毕,该值可 由历史统计数据得出,T0表示作业j的总体运行时间;Sf,j表示作业j的公平性得分,rj表示作业j的资源需求,rf表示作业i在完全公平情况下的应得资源。
其中,在上述单节点分配目标函数中,考虑了节点的资源利用率、作业的公平性以及作业的执行进度。其中,当f=0,p=0时,完全考虑资源利用率,即资源管理器110按照整体资源利用率最高的原则分配资源;当f=1,p=0时,完全考虑公平,即资源管理器110会在不同的作业间公平地分配资源;当f=1,p=1时,则完全考虑时间优先级,即资源管理器110优先分配资源给那些更快完成的作业。当然,f和p还可以为其它数值,用户可以根据作业的运行需求进行设置,使得分配在最优资源利用率和最优作业执行时间取得平衡,本发明实施例对此不作具体限定。
第三方面,提供一种资源管理器,该资源管理器包括:处理器、存储器、总线和通信接口;存储器用于存储计算机执行指令,处理器与存储器通过总线连接,当资源管理器运行时,处理器执行存储器存储的计算机执行指令,以使资源管理器执行上述如第一方面或第一方面任意一种可能的实现方式中所示的资源分配方法。
由于本发明实施例提供的资源管理器可以用于执行上述如第一方面或第一方面任意一种可能的实现方式中所示的资源分配方法,因此,其所能获得的技术效果可以参考上述如第一方面或第一方面任意一种可能的实现方式中所示的资源分配方法的技术效果,此处不再赘述。
第四方面,提供一种分布式计算机***,该分布式计算机***包括多个计算节点和第一方面或第一方面任意一种可能的实现方式中所述的资源管理器;或者,该分布式计算机***包括多个计算节点和第三方面所述的资源管理器。
由于本发明实施例提供的分布式计算机***包括第一方面或第一方面任意一种可能的实现方式中所述的资源管理器;或者,包括第三方面所述的资源管理器,因此,其所能获得的技术效果可参考上述资源管理器的技术效果,本发明实施例在此不再赘述。
第五方面,提供一种可读介质,包括计算机执行指令,当资源管理器的处理器执行该计算机执行指令时,该资源管理器执行如上述第一方面或者第一方面的任意一种可选方式中所述的资源分配方法。
其中,本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为现有的Hadoop***的调度策略示意图;
图2为本发明实施例提供的一种分布式计算***的逻辑架构图;
图3为本发明实施例提供的一种分布式计算***的物理架构示意图;
图4为本发明实施例提供的资源分配方法的原理示意图;
图5为本发明实施例提供的资源分配方法流程示意图一;
图6为本发明实施例提供的资源分配方法流程示意图二;
图7为本发明实施例提供的资源分配方法流程示意图三;
图8为本发明实施例提供的资源分配结果的变异机制示意图;
图9为本发明实施例提供的采用资源利用率优先的原则进行资源分配的结果示意图;
图10为本发明实施例提供的采用公平优先的原则进行资源分配的结果示意图;
图11为本发明实施例提供的资源管理器的结构示意图一;
图12为本发明实施例提供的资源管理器的结构示意图二;
图13为本发明实施例提供的资源管理器的结构示意图三。
具体实施方式
需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。
如本申请所使用的,术语“组件”、“模块”、“***”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地***、分布式***中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它***进行交互)的信号,以本地和/或远程过程的方式进行通信。
本申请将围绕可包括多个设备、组件、模块等的***来呈现各个方面、实施例或特征。应当理解和明白的是,各个***可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本发明实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本发明实施例描述的场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
为了下述各实施例的描述清楚简洁,首先给出相关概念的简要介绍:
Cluster:集群,指多台同构的或者异构的计算机节点通过网络组合起来,配合一定的集群管理***,形成的能对外提供统一计算或存储服务的设施。
Resource:资源,即指分布式集群上可供利用的内存、中央处理器(英文全称:central processing unit,英文缩写:CPU)、网络、磁盘等用于运行作业所必须的硬件。
Job:作业,指用户通过客户端设备向集群提交的可被运行的一个完整的任务。
Task:任务,一个作业被提交到集群上执行时,通常分解为很多任务,每个任务运行在一个特定的集群节点上,并占用一定量的资源。
Scheduler:调度器,是用来向作业分配可供任务运行的资源的引擎模块,也是集群管理***最重要的组成部分。
本发明实施例的方案可典型地应用于分布式计算***中,用于实现任务调度以及资源的高效分配。图2示出了一种分布式计算***的逻辑架构图,根据图2,该分布式计算***包括由集群资源构成的资源池,资源管理器以及计算框架,集群资源即集群中各个计算节点的运算、存储等硬件资源,资源管理器部署在集群中的一个或多个计算节点上,或者也可以作为一个独立的物理设备,用于统一管理集群资源,并为上层的计算框架提供资源调度能力。一个分布式计算***可以同时支持多种不同的计算框架,如图2所示的***,该***可支持MR(英文全称:map reduce)、Storm、S4(英文全称:simple scalable streamingsystem)以及MPI(英文全称:message passing interface)等计算框架中的一种或多种。资源管理器通过对客户端设备发送的不同计算框架类型的应用程序进行统一的调度,以便提高资源利用率。图3进一步示出了分布式计算***的物理架构示意图,包括集群、资源管理器和客户端设备,其中,集群中包括多个节点(图3中仅仅示出了三个节点),资源管理器部署在集群中的某个节点上,每个节点均可以与资源管理器通信,客户端设备向资源管理器提交应用程序的资源请求,资源管理器根据特定的资源调度策略将节点的资源分配给应用程序,以使得应用程序根据分配的节点资源在该节点上运行。
本发明实施例主要对分布式计算***中的资源管理器进行了优化,使其更合理地为任务分配资源,以提高资源利用率。其中,图4为本发明实施例提供的资源的分配方法的原理示意图。
如图4所示,本发明实施例中,在客户端设备提交作业后,作业被分解为一系列可分布式运行的任务(Task),每个Task都配置有相对应的资源需求量(图2中用横向的宽度表征资源需求量)。当Task经过上述资源管理器中的经验模块(英文全称:ExperiencedExpert,英文缩写:E-Expert)时,E-Expert通过资源管理器中的样本库中的作业历史执行情况估计每个Task的运行时间,进而可以得到空间需求(即Task的资源需求量)和时间需求(即Task的运行时间,图2中用纵向的长度表征Task运行时间)固定的Task。打包模块(英文:Packer)考虑一定的调度策略,将空间需求(即Task的资源需求量)和时间需求(即Task的运行时间)固定的Task调度到对应的节点上。其中,该调度策略包括资源利用率优先策略、或者效率优先策略。也就是说,打包方法能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。
其中,Task在每个节点形成一个等待队列,每个等待队列的长度都是大致相等的。在Task排队等待过程中,有可能发生变异导致新一轮的作业资源的重新分配。如果新分配位形的整体资源利用率更高或者效率更高,则更新到新的分配位形。
除此之外,每个节点运行一个节点追踪器(英文:node tracker)实例,负责周期性的向E-Expert报告Task的运行情况,并更新经验模块样本库中的统计信息。
需要说明的是,在图2中,相同的填充用于表征需要相同的资源类型,如CPU或者内存等,本发明实施例对图2中各个填充表征的资源类型不作具体限定。
由于该方案考虑了每个任务的运行时间的因素,并且打包模块将空间需求(即Task的资源需求量)和时间需求(即Task的运行时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形,因此能够减轻现有技术中资源碎片的问题,显著提高集群资源的利用率,和/或,可以缩短作业执行时间,提升作业的执行效率。
下面将基于图4所示的资源的分配方法的原理示意图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图5所示,本发明实施例提供一种资源分配方法,包括步骤S501-S504:
S501、资源管理器接收客户端设备提交的作业,并将该作业分解为多个任务,其中,该多个任务中的每个任务均配置有相对应的资源需求量。
S502、资源管理器估计每个任务的运行时间。
S503、资源管理器根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,该第一分配位形用于指示该多个任务在多个计算节点中的可运行计算节点上的分布情况,该调度策略包括资源利用率优先策略和效率优先策略中的至少一种。
S504、资源管理器将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上。
具体的,本发明实施例步骤S501中:
资源需求量具体可以是CPU资源的需求量,和/或,内存资源的需求量,和/或,网络带宽的需求量,等等,本发明实施例对此不作具体限定。
具体的,本发明实施例步骤S502中:
一般来说,一个任务的具体执行时间外界是无法得知的。但是,在绝大多数情况下,一类任务会重复执行。如在企业客户场景中,可能需要每天执行重复的数据统计工作。因此,基于历史信息的统计往往能够给出一类任务运行时间的估计。为此,资源管理器中可能需要一个模块维护一个统计信息库,用于记录集群历史作业信息,比如图4中的E-Expert模块。当有新的任务到来时,根据历史统计信息将该任务匹配到某一类,然后根据该类任务的运行历史估计出该任务的运行时间。
E-Expert模块通常将信息分为硬信息与软信息两类。
硬信息包括作业类型、执行用户等。不同作业类型的任务显然不属于同一类。而同一用户运行的作业有很大可能是同一类,甚至是重复执行的作业。硬信息由下述的样本库维护。
Figure BDA0000923033080000141
Figure BDA0000923033080000151
软信息包括该任务处理的数据量的大小、输入数据大小、输出数据大小等。这类信息往往不是固定的,但是运行时间与这类信息之间存在着密切的关联。软信息需要做额外的统计,统计信息由下述的统计库维护。
Figure BDA0000923033080000152
Figure BDA0000923033080000161
进而,可选的,资源管理器可以通过如下方式估计每个任务的运行时间,具体包括:
针对每个任务,均按照下面针对第一任务的操作进行处理:
将第一任务的硬信息与样本库中的历史任务的硬信息进行匹配。
若匹配成功,根据与该第一任务的硬信息匹配的历史任务的历史运行时间估计该第一任务的运行时间。
需要说明的是,当有新的任务到来时,若根据历史统计信息无法将该任务匹配到某一类,则可以通过给该任务赋予全局平局值的方式估计该任务的运行时间,该全局平局值可以为所有历史任务的运行时间的平均值,本发明实施例对该情况不作具体限定。
需要说明的是,本发明实施例仅是示例性的给出一种估计任务运行时间的具体实现,当然,还可以通过其它方式估计任务的运行时间,比如,通过预运行任务的方式。即,通过预先运行一小段作业实例获得准确的完整运行时间的估计。另外,同一作业的后续任务的运行时间参考已运行任务的运行时间也会获得更为准确的估计。本发明实施例对估计任务运行时间的具体实现方式不做限定。
具体的,本发明实施例步骤S503中:
调度策略具体可以包括资源利用率优先策略和效率优先策略中的至少一种。其中,
若调度策略为资源利用率优先策略,则第一分配位形具体可以为使得多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
或者,若调度策略为效率优先策略,则第一分配位形具体可以为使得作业的整体执行速度最快的分配位形。
本发明实施例对该第一分配位形的具体形式不作具体限定。
基于本发明实施例提供的资源分配方法,该资源分配方法中,在接收客户端设备提交的作业,并将该作业分解为多个有相应的资源需求量配置的任务之后,还估计每个任务的运行时间,并根据每个任务的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,然后将该多个任务按照该第一分配位形分配到该多个任务的可运行计算节点上。其中,该第一分配位形用于指示该多个任务在该多个任务的可运行计算节点上的分布情况,调度策略包括资源利用率优先策略和效率优先策略中的至少一种。也就是说,该方案考虑了每个任务的运行时间的因素,并且将空间需求(即任务的资源需求量)和时间需求(即任务的时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。一方面,由于可以采用资源利用率较高的分配位形,即可以通过调度策略使得那些节点资源利用率较高的Task组合被调度到节点上,因此该分配方案能有效减轻现有技术中资源碎片的问题,从而提升集群的资源利用率。另一方面,由于可以采用效率较高的分配位形,即可以通过调度策略使得那些作业执行时间最短的Task组合被调度到节点上,因此与现有技术相比,该分配方案能显著缩短作业执行时间,提升作业执行效率。综上,本发明实施例提供的资源分配方法能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而可以提高资源利用率,和/或,可以提升用户作业的执行效率。
可选的,本发明实施例提供的资源分配方法中,还可以同时考虑对于异构集群和特殊资源需求作业的资源分配。
即,如图6所示,在资源管理器根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形(步骤S503)之前,还可以包括步骤S505:
S505、资源管理器将该多个任务按照资源的种类进行分类,获得至少一类任务。
其中,资源种类具体可以包括异构资源种类和非异构资源种类等,异构资源种类也可以根据是何种异构资源进行再次划分,本发明实施例对此不作具体限定。
进而,资源管理器根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形(步骤S503),具体可以包括步骤S503a和S503b:
S503a、针对该至少一类任务中的每类任务,资源管理器均按照下面针对第一类任务的操作进行处理:
根据该第一类任务中的每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该第一类任务的子分配位形,该子分配位形用于指示该第一类任务在多个计算节点中的可运行计算节点上的分布情况。
S503b、资源管理器将该至少一类任务中的每类任务的子分配位形的组合确定为该多个任务的第一分配位形。
由于本发明实施例提供的资源分配方法首先将多个任务按照资源的种类进行分类,进而对于每一类任务分别进行资源分配,也就是说可以同时考虑对于异构集群和特殊资源需求作业的资源分配,因而具有更广泛的普适性和更好的综合表现。
可选的,考虑到运行时间的估计会与实际情况通常会产生一些偏差。如果对这些偏差不做控制,则随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。因此,本发明实施例提供的资源分配方法中,还可以引入变异机制(即重新分配)。
即,如图7所示,在资源管理器将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上(步骤S504)之后,还可以包括步骤S506-S509:
S506、资源管理器根据该第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值。
S507、资源管理器根据该所有处于等待状态的任务对应的资源需求量和运行时间,结合预设的调度策略,确定所有处于等待状态的任务的第二分配位形,该第二分配位形用于指示该所有处于等待状态的任务在所有处于等待状态的任务的可运行计算节点上的分布情况。
S508、资源管理器根据该第二分配位形,确定该所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值。
S509、若第二整体分配目标函数值大于第一整体分配目标函数值,资源管理器将该所有处于等待状态的任务按照第二分配位形分配到该所有处于等待状态的任务的可运行计算节点上。
可选的,本发明实施例中,整体分配目标函数值可通过如下公式(1)获得:
S=∑nSn 公式(1)
其中,Sn表示单节点n的分配目标函数值;S表示整体分配目标函数值。
即,步骤S506中第一整体分配目标函数值等于第一分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
步骤S508中第二整体分配目标函数值等于第二分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
可选的,本发明实施例中,单节点分配目标函数具体可以如公式(2)所示:
Figure BDA0000923033080000191
公式(2)
其中,Sn表示单节点n的分配目标函数值;p表示作业时间优先级因子,p>0;f表示作业公平性因子,f>0;p+f≤1;m表示作业的数量。
Se,n表示节点n上的资源利用率得分,
Figure BDA0000923033080000192
rn表示节点n的资源,rt表示任务t的资源需求量。
Sp,j表示作业j的执行进度,
Figure BDA0000923033080000193
Tj表示作业j还需要多少时间执行完毕,该值可由历史统计数据得出,T0表示作业j的总体运行时间。可以看出,Sp,j的取值范围为[1/e,1],1/e表示作业刚开始运行,1表示作业已完成。
Sf,j表示作业j的公平性得分,
Figure BDA0000923033080000194
rj表示作业j的资源需求,rf表示作业j在完全公平情况下的应得资源。
需要说明的是,在多维资源的情况下,上述公式中的rn、rt、rf等参数均为矢量。
在上述公式(2)中,考虑了节点的资源利用率、作业的公平性以及作业的执行进度。其中,当f=0,p=0时,完全考虑资源利用率,即资源管理器按照整体资源利用率最高的原则分配资源;当f=1,p=0时,完全考虑公平,即资源管理器会在不同的作业间公平地分配资源;当f=1,p=1时,则完全考虑时间优先级,即资源管理器优先分配资源给那些更快完成的作业。当然,f和p还可以为其它数值,用户可以根据作业的运行需求进行设置,使得分配在最优资源利用率和最优作业执行时间取得平衡,本发明实施例对此不作具体限定。
本发明实施例对此不作具体限定。
需要说明的是,公式(2)仅是示例性的给出一种单节点分配目标函数的具体实现,当然,根据不同的分配考虑因素,该单节点分配目标函数还可以为其它,本发明实施例对此不作具体限定。
通过上述变异机制,可以使得作业资源的预分配结果向更好的方向进化。其中,图8示意性的给出了一种作业资源的分配结果的变异机制示意图,可以看出,随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。经过上述变异机制,可以将节点3上的任务1调整到节点1上,将节点2上的任务2调整到节点3上,将节点1上的任务3调整到节点2上,从而使得作业资源的预分配结果向更好的方向进化。
需要说明的是,在图8中,相同的填充用于表征需要相同的资源类型,如CPU或者内存等,本发明实施例对图8中各个填充表征的资源类型不作具体限定。
下面将以结合一个具体示例对上述各实施例中的资源分配方法进行说明。
示例性的,假设有四个节点node1,node2,node3和node4,其中,node1,node2和node3为同构节点,各有6个核,12G内存,2Gbps的网络带宽;node4是个异构的图形计算节点,有2个核,2G内存和一个128核的图形处理器(英文全称:graphics processing unit,英文缩写:GPU)显卡。
另外,假设有四个Job,每个Job提交的Task的资源需求量如下所示。其中,括号中的三维数字分别代表Task所需的核的数量,内存的大小和网络带宽的大小:
JobA:18个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:2个Map Task(1,1,0),需要GPU;
同时,假设所有JobA,JobB和JobC的Task的运行时间估计均为t,而JobD的Task的运行时间估计为4t。
情况一:
此时,若采用资源利用率优先的原则,比如整体资源利用率最高,也就是上述单节点分配目标函数(公式(2))中的f=0,p=0,则JobA,JobB,JobC和JobD的Task将按照如下流程调度:
步骤1、将所有Task按照是否具有异构资源需求进行分类。
此时,JobA,JobB,JobC和JobD的所有的Task可以分为两类:需要GPU的和不需要GPU的。
步骤2、对于需要GPU的2个Map Task,将其调度到节点node4。
经过此轮分配,处于等待状态的Task的状况是:
JobA:18个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤3、对于剩余的Task,现在的集群还剩余node1,node2和node3三个节点,总共(18,36,6)资源。
步骤4、对于node1节点,经计算,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
对于node2和node3节点,经计算,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node2节点的单节点分配目标函数值Sn最大,并且JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node3节点的单节点分配目标函数值Sn最大。因此,将JobA中的剩余12个Map Task平均分配到node2和node3节点上。
需要说明的是,由于该示例中假设所有JobA,JobB和JobC的Task的运行时间估计 均为t,也就是运行时间均相等,并且f=0,p=0,因此单节点分配目标函数
Figure BDA0000923033080000221
退化为进而遍历各种组 合,最终可以确定出JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1 节点的单节点分配目标函数值Sn最大,此时,
Figure BDA0000923033080000223
相比之下,若取JobB两个Map Task形成Tasks包,则单节点分配目标函数值Sn小于上述值,此处就不再一一验证。
同理,根据上述退化公式,可以确定JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node2节点的单节点分配目标函数值Sn最大,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node3节点的单节点分配目标函数值Sn最大,本发明实施例在此就不再一一验证。
经过此轮分配,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤5、继续分配:
经计算,JobA的1个Reduce Task和JobB的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobA的1个Reduce Task和JobB的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobA的1个Reduce Task和JobB的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),0个Reduce Task(0,0,2);
JobB:0个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0)需要GPU。
步骤6、继续分配:
经计算,JobB的1个Reduce Task和JobC的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB的1个Reduce Task和JobC的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobB的1个Reduce Task和JobC的2个Map Task形成Tasks包(总共(6,2,2)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),0个Reduce Task(0,0,2);
JobB:0个Map Task(3,1,0),0个Reduce Task(0,0,2);
JobC:0个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤7、继续分配:
将JobC剩余的3个Task分配在三个节点上,这样,所有分配进行完毕,最终的目标分配位形如图9所示。
情况二:
此时,若采用公平优先的原则,比如上述单节点分配目标函数(公式(2))中的f=1,p=0,则JobA,JobB,JobC和JobD的Task将按照如下流程调度:
步骤1、将所有Task按照是否具有异构资源需求进行分类。
此时,JobA,JobB,JobC和JobD的所有的Task可以分为两类:需要GPU的和不需要GPU的。
步骤2、对于需要GPU的2个Map Task,将其调度到节点node4。
经过此轮分配,处于等待状态的Task的状况是:
JobA:18个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:6个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤3、对于剩余的Task,现在的集群还剩余node1,node2和node3三个节点,总共(18,36,6)资源。
步骤4、对于node1节点,经计算,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
对于node2节点,经计算,JobB中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
对于node3节点,经计算,JobC中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
需要说明的是,由于该示例中假设所有JobA,JobB和JobC的Task的运行时间估计 均为t,也就是运行时间均相等,并且f=1,p=0,因此单节点分配目标函数
Figure BDA0000923033080000241
退化为
Figure BDA0000923033080000242
进而遍历各种组合,最终 可以确定出JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1节点的单 节点分配目标函数值Sn最大。
同理,根据上述退化公式,可以确定JobB中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node2节点的单节点分配目标函数值Sn最大,JobC中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node3节点的单节点分配目标函数值Sn最大,本发明实施例在此就不再一一验证。
经过此轮分配,处于等待状态的Task的状况是:
JobA:12个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:4个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:4个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤5、继续分配:
经计算,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobC中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:6个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:2个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:2个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤6、继续分配:
经计算,JobA中的6个Map Task形成的Tasks包(总共(6,12,0)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobC中的2个Map Task形成的Tasks包(总共(6,2,0)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),3个Reduce Task(0,0,2);
JobB:0个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobC:0个Map Task(3,1,0),3个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤7、继续分配:
经计算,JobA中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobC中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),2个Reduce Task(0,0,2);
JobB:0个Map Task(3,1,0),2个Reduce Task(0,0,2);
JobC:0个Map Task(3,1,0),2个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU。
步骤8、继续分配:
经计算,JobA中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobC中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,处于等待状态的Task的状况是:
JobA:0个Map Task(1,2,0),1个Reduce Task(0,0,2);
JobB:0个Map Task(3,1,0),1个Reduce Task(0,0,2);
JobC:0个Map Task(3,1,0),1个Reduce Task(0,0,2);
JobD:0个Map Task(1,1,0),需要GPU;
步骤9、继续分配:
经计算,JobA中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node1节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node1上。
经计算,JobB中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node2节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node2上。
经计算,JobC中的1个Reduce Task形成的Tasks包(总共(0,0,2)资源)使得node3节点的单节点分配目标函数值Sn最大,因此,将该Tasks包放置在node3上。
这样经过此轮分配后,所有分配进行完毕,最终的目标分配位形如图10所示。
情况三:
此时,若采用时间优先的原则,比如整体执行效率最高,也就是上述单节点分配目 标函数(公式(2))中的f=0,p=1,则JobA,JobB,JobC和JobD的Task在进行分配时将完全考 虑时间优先级,即资源管理器优先分配资源给那些更快完成的作业。此时,单节点分配目标 函数
Figure BDA0000923033080000271
退化为
Figure BDA0000923033080000272
进而根据每个节点 的单节点目标函数的值最大的原则进行分配即可,本发明实施例对该情况就不再详细举例 说明。
由图9和图10对应的示例可以看出,若忽略公平性,则资源利用率优先的分配方式可有效缩短作业整体执行时间到4t,而若考虑公平性,则公平优先的分配方式的整体作业执行时间为6t。
如图11所示,本发明实施例提供一种资源管理器110,用于执行以上图5-图7所示的资源分配方法。该资源管理器110可以包括相应步骤所对应的单元,示例的,可以包括:接收单元1101、分解单元1106、估计单元1102、确定单元1103和分配单元1104。
接收单元1101,用于接收客户端设备提交的作业。
分解单元1106,用于将该作业分解为多个任务,其中,该多个任务中的每个任务均配置有相对应的资源需求量。
估计单元1102,用于估计每个任务的运行时间。
确定单元1103,用于根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,该第一分配位形用于指示该多个任务在该多个计算节点中的可运行计算节点上的分布情况,该调度策略包括资源利用率优先策略和效率优先策略中的至少一种。
分配单元1104,用于将该多个任务按照第一分配位形分配到该多个任务的可运行计算节点上。
可选的,若调度策略为资源利用率优先策略,则第一分配位形具体可以为使得该多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
可选的,若调度策略为效率优先策略,则第一分配位形可以为使得作业的整体执行速度最快的分配位形。
本发明实施例对第一分配位形的具体形式不作具体限定。
可选的,估计单元1102具体可以用于:
针对每个任务,均按照下面针对第一任务的操作进行处理:
将第一任务的硬信息与样本库中的历史任务的硬信息进行匹配;
若匹配成功,根据与第一任务的硬信息匹配的历史任务的历史运行时间估计第一任务的运行时间。
具体的,本发明实施例中的硬信息包括作业类型、执行用户等信息。
需要说明的是,本发明实施例仅是示例性的给出估计单元1102估计任务运行时间的具体实现,当然,估计单元1102还可以通过其它方式估计任务的运行时间,比如,通过预运行任务的方式。即,通过预先运行一小段作业实例获得准确的完整运行时间的估计。另外,同一作业的后续任务的运行时间参考已运行任务的运行时间也会获得更为准确的估计。本发明实施例对估计单元1102估计任务运行时间的具体实现方式不做限定。
基于本发明实施例提供的资源管理器110,该资源管理器110在接收客户端设备提交的作业,并将该作业分解为多个有相应的资源需求量配置的任务之后,还估计每个任务的运行时间,并根据每个任务的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,然后将该多个任务按照该第一分配位形分配到该多个任务的可运行计算节点上。其中,该第一分配位形用于指示该多个任务在该多个任务的可运行计算节点上的分布情况,调度策略包括资源利用率优先策略和效率优先策略中的至少一种。也就是说,该资源管理器110在进行资源分配时考虑了每个任务的运行时间的因素,并且将空间需求(即任务的资源需求量)和时间需求(即任务的时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。一方面,由于可以采用资源利用率较高的分配位形,即可以通过调度策略使得那些节点资源利用率较高的Task组合被调度到节点上,因此该资源管理器110能有效减轻现有技术中资源碎片的问题,从而提升集群的资源利用率。另一方面,由于可以采用效率较高的分配位形,即可以通过调度策略使得那些作业执行时间最短的Task组合被调度到节点上,因此与现有技术相比,该资源管理器110能显著缩短作业执行时间,提升作业执行效率。综上,本发明实施例提供的资源管理器110能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而可以提高资源利用率,和/或,可以提升用户作业的执行效率。
可选的,本发明实施例提供的资源管理器110在进行资源分配时,还可以同时考虑对于异构集群和特殊资源需求作业的资源分配。
具体的,如图12所示,资源管理器110还可以包括分类单元1105。
在确定单元1103根据每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形之前,分类单元1105,用于将该多个任务按照资源的种类进行分类,获得至少一类任务。
确定单元1103具体用于:
针对该至少一类任务中的每类任务,均按照下面针对第一类任务的操作进行处理:
根据第一类任务中每个任务对应的资源需求量和运行时间,结合调度策略,确定第一类任务的子分配位形,该子分配位形用于指示该第一类任务在多个计算节点中的可运行计算节点上的分布情况。
将该至少一类任务中的每类任务的子分配位形的组合确定为该多个任务的第一分配位形。
由于本发明实施例提供的资源管理器110可以首先将多个任务按照资源的种类进行分类,进而对于每一类任务分别进行资源分配,也就是说可以同时考虑对于异构集群和特殊资源需求作业的资源分配,因而具有更广泛的普适性和更好的综合表现。
可选的,考虑到运行时间的估计会与实际情况通常会产生一些偏差。如果对这些偏差不做控制,则随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。因此,本发明实施例提供的资源管理器110中,在分配单元1104将多个任务按照第一分配位形分配到多个任务的可运行计算节点上之后,确定单元1103,还用于:
根据第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值。
根据所有处于等待状态的任务对应的资源需求量和运行时间,结合调度策略,确定所有处于等待状态的任务的第二分配位形,该第二分配位形用于指示所有处于等待状态的任务在所有处于等待状态的任务的可运行计算节点上的分布情况。
根据该第二分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值;
分配单元1104,还用于若第二整体分配目标函数值大于第一整体分配目标函数值,将所有处于等待状态的任务按照第二分配位形分配到所有处于等待状态的任务的可运行计算节点上。
通过上述变异机制,可以使得作业资源的预分配结果向更好的方向进化。其中,图8示意性的给出了一种作业资源的分配结果的变异机制示意图,可以看出,随着时间的延长,作业资源的预分配结果与理想结果可能相差愈来愈大。经过上述变异机制,可以将节点3上的任务1调整到节点1上,将节点2上的任务2调整到节点3上,将节点1上的任务3调整到节点2上,从而使得作业资源的预分配结果向更好的方向进化。
可选的,本发明实施例中,整体分配目标函数值可通过上述公式(1)获得,本发明实施例在此不再赘述。
即,上述的第一整体分配目标函数值等于第一分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
上述的第二整体分配目标函数值等于第二分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
可选的,本发明实施例中,单节点分配目标函数具体可以包括:
Figure BDA0000923033080000311
其中,Sn表示单节点n的分配目标函数值;p表示作业时间优先级因子,p>0;f表示作业公平性因子,f>0;p+f≤1;m表示作业的数量;Se,n表示节点n上的资源利用率得分,
Figure BDA0000923033080000312
rn表示节点n的资源,rt表示任务t的资源需求量;Sp,j表示作业j的执行进度,
Figure BDA0000923033080000313
Tj表示作业j还需要多少时间执行完毕,该值可由历史统计数据得出,T0表示作业j的总体运行时间;Sf,j表示作业j的公平性得分,
Figure BDA0000923033080000314
rj表示作业i的资源需求,rf表示作业i在完全公平情况下的应得资源。
其中,在上述单节点分配目标函数中,考虑了节点的资源利用率、作业的公平性以及作业的执行进度。其中,当f=0,p=0时,完全考虑资源利用率,即资源管理器110按照整体资源利用率最高的原则分配资源;当f=1,p=0时,完全考虑公平,即资源管理器110会在不同的作业间公平地分配资源;当f=1,p=1时,则完全考虑时间优先级,即资源管理器110优先分配资源给那些更快完成的作业。当然,f和p还可以为其它数值,用户可以根据作业的运行需求进行设置,使得分配在最优资源利用率和最优作业执行时间取得平衡,本发明实施例对此不作具体限定。
需要说明的是,本发明实施例中的接收单元1101可以为资源管理器110上具备接收功能的接口电路,如接收机或接收器;也可以为资源管理器110上具备接收功能的网卡或输入/输出(英文全称:input/output,英文缩写:I/O)接口,本发明实施例对此不作具体限定。
估计单元1102、确定单元1103、分配单元1104和分类单元1105可以为单独设立的处理器,也可以集成在资源管理器110的某一个处理器中实现,此外,也可以以程序代码的形式存储于资源管理器110存储器中,由资源管理器110的某一个处理器调用并执行以上估计单元1102、确定单元1103、分配单元1104和分类单元1105的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文缩写:CPU),还可以为其他通用处理器、数字信号处理器(英文全称:digital signal processing,英文缩写:DSP)、专用集成电路(英文全称:application specific integrated circuit,英文缩写:ASIC)、现场可编程门阵列(英文全称:field-programmable gate array,英文缩写:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,该处理器还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有资源管理器110其他专用处理功能的芯片。
可以理解,本发明实施例中的资源管理器110可对应于上述图5-图7所示的资源分配方法中的资源管理器,并且本发明实施例中的资源管理器110中的各个单元的划分和/或功能等均是为了实现上述图5-图7所示的资源分配方法流程,为了简洁,在此不再赘述。
如图13所示,本发明实施例提供一种资源管理器130,包括:处理器1301、存储器1302、总线1303和通信接口1304。
存储器1302用于存储计算机执行指令,处理器1301与存储器1302通过总线连接,当资源管理器130运行时,处理器1301执行存储器1303存储的计算机执行指令,以使资源管理器130执行如图5-图7所示的资源分配方法。具体的地址分配方法可参见上述如图5-图7所示的实施例中的相关描述,此处不再赘述。
其中,本发明实施例中的处理器1301可以是一个中央处理器(英文全称:centralprocessing unit,英文缩写:CPU),还可以为其他通用处理器、数字信号处理器(英文全称:digital signal processing,英文缩写:DSP)、专用集成电路(英文全称:applicationspecific integrated circuit,英文缩写:ASIC)、现场可编程门阵列(英文全称:field-programmable gate array,英文缩写:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
另外,该处理器1301还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有资源管理器130其他专用处理功能的芯片。
存储器1302可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文全称:random-access memory,英文缩写:RAM);存储器1302也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文全称:read-only memory,英文缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文全称:hard disk drive,英文缩写:HDD)或固态硬盘(英文全称:solid-state drive,英文缩写:SSD);另外,存储器1302还可以包括上述种类的存储器的组合。
总线1303可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图13中将各种总线都示意为总线1303。
在具体实现过程中,上述如图5-图7所示的资源分配方法流程中的各步骤均可以通过硬件形式的处理器1301执行存储器1302中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。
基于本发明实施例提供的资源管理器,该资源管理器在接收客户端设备提交的作业,并将该作业分解为多个有相应的资源需求量配置的任务之后,还估计每个任务的运行时间,并根据每个任务的资源需求量和运行时间,结合预设的调度策略,确定该多个任务的第一分配位形,然后将该多个任务按照该第一分配位形分配到该多个任务的可运行计算节点上。其中,该第一分配位形用于指示该多个任务在该多个任务的可运行计算节点上的分布情况,调度策略包括资源利用率优先策略和效率优先策略中的至少一种。也就是说,该资源管理器在进行资源分配时考虑了每个任务的运行时间的因素,并且将空间需求(即任务的资源需求量)和时间需求(即任务的时间)固定的Task调度到对应的节点上时,能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,使得最终采用资源利用率较高和/或效率较高的分配位形。一方面,由于可以采用资源利用率较高的分配位形,即可以通过调度策略使得那些节点资源利用率较高的Task组合被调度到节点上,因此该资源管理器能有效减轻现有技术中资源碎片的问题,从而提升集群的资源利用率。另一方面,由于可以采用效率较高的分配位形,即可以通过调度策略使得那些作业执行时间最短的Task组合被调度到节点上,因此与现有技术相比,该资源管理器能显著缩短作业执行时间,提升作业执行效率。综上,本发明实施例提供的资源管理器能够根据相应的调度策略灵活选择资源利用率优先策略和效率优先策略来进行资源分配,从而可以提高资源利用率,和/或,可以提升用户作业的执行效率。
可选的,本发明实施例还提供一种可读介质,该可读介质用于存储计算机执行指令,当资源管理器的处理器执行该计算机执行指令时,该资源管理器执行如图5-图7所示的资源分配方法。具体的资源分配方法可参见上述如图5-图7所示的实施例中的相关描述,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种分布式计算***中的资源分配方法,所述分布式计算***包括多个计算节点,其特征在于,所述方法包括:
接收客户端设备提交的作业,并将所述作业分解为多个任务,其中,所述多个任务中的每个任务均配置有相对应的资源需求量;
估计所述每个任务的运行时间;
根据所述每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定所述多个任务的第一分配位形,所述第一分配位形用于指示所述多个任务在所述多个计算节点中的可运行计算节点上的分布情况,所述调度策略包括资源利用率优先策略和效率优先策略中的至少一种;
将所述多个任务按照所述第一分配位形分配到所述多个任务的可运行计算节点上;
在所述将所述多个任务按照所述第一分配位形分配到所述多个任务的可运行计算节点上之后,还包括:
根据所述第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值;
根据所述所有处于等待状态的任务对应的资源需求量和运行时间,结合所述调度策略,确定所述所有处于等待状态的任务的第二分配位形,所述第二分配位形用于指示所述所有处于等待状态的任务在所述所有处于等待状态的任务的可运行计算节点上的分布情况;
根据所述第二分配位形,确定所述所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值;
若所述第二整体分配目标函数值大于所述第一整体分配目标函数值,将所述所有处于等待状态的任务按照所述第二分配位形分配到所述所有处于等待状态的任务的可运行计算节点上。
2.根据权利要求1所述的方法,其特征在于,若所述调度策略为资源利用率优先策略,则所述第一分配位形为使得所述多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
3.根据权利要求1所述的方法,其特征在于,若所述调度策略为效率优先策略,则所述第一分配位形为使得所述作业的整体执行速度最快的分配位形。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述估计所述每个任务的运行时间,包括:
针对所述每个任务,均按照下面针对第一任务的操作进行处理:
将所述第一任务的硬信息与样本库中的历史任务的硬信息进行匹配;
若匹配成功,根据与所述第一任务的硬信息匹配的历史任务的历史运行时间估计所述第一任务的运行时间。
5.根据权利要求1所述的方法,其特征在于,所述第一整体分配目标函数值等于所述第一分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和;
所述第二整体分配目标函数值等于所述第二分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
6.一种资源管理器,其特征在于,所述资源管理器包括:接收单元、分解单元、估计单元、确定单元和分配单元;
所述接收单元,用于接收客户端设备提交的作业;
所述分解单元,用于将所述作业分解为多个任务,其中,所述多个任务中的每个任务均配置有相对应的资源需求量;
所述估计单元,用于估计所述每个任务的运行时间;
所述确定单元,用于根据所述每个任务对应的资源需求量和运行时间,结合预设的调度策略,确定所述多个任务的第一分配位形,所述第一分配位形用于指示所述多个任务在所述多个计算节点中的可运行计算节点上的分布情况,所述调度策略包括资源利用率优先策略和效率优先策略中的至少一种;
所述分配单元,用于将所述多个任务按照所述第一分配位形分配到所述多个任务的可运行计算节点上;
在所述分配单元将所述多个任务按照所述第一分配位形分配到所述多个任务的可运行计算节点上之后,所述确定单元,还用于:
根据所述第一分配位形,确定所有处于等待状态的任务运行在所分配的节点上时的第一整体分配目标函数值;
根据所述所有处于等待状态的任务对应的资源需求量和运行时间,结合所述调度策略,确定所述所有处于等待状态的任务的第二分配位形,所述第二分配位形用于指示所述所有处于等待状态的任务在所述所有处于等待状态的任务的可运行计算节点上的分布情况;
根据所述第二分配位形,确定所述所有处于等待状态的任务运行在所分配的节点上时的第二整体分配目标函数值;
所述分配单元,还用于若所述第二整体分配目标函数值大于所述第一整体分配目标函数值,将所述所有处于等待状态的任务按照所述第二分配位形分配到所述所有处于等待状态的任务的可运行计算节点上。
7.根据权利要求6所述的资源管理器,其特征在于,若所述调度策略为资源利用率优先策略,则所述第一分配位形为使得所述多个任务的可运行计算节点中的每个计算节点的单节点资源利用率最大的分配位形。
8.根据权利要求7所述的资源管理器,其特征在于,若所述调度策略为效率优先策略,则所述第一分配位形为使得所述作业的整体执行速度最快的分配位形。
9.根据权利要求6-8任一项所述的资源管理器,其特征在于,所述估计单元具体用于:
针对所述每个任务,均按照下面针对第一任务的操作进行处理:
将所述第一任务的硬信息与样本库中的历史任务的硬信息进行匹配;
若匹配成功,根据与所述第一任务的硬信息匹配的历史任务的历史运行时间估计所述第一任务的运行时间。
10.根据权利要求6所述的资源管理器,其特征在于,所述第一整体分配目标函数值等于所述第一分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和;
所述第二整体分配目标函数值等于所述第二分配位形时,所有处于等待状态的任务运行在所分配的节点上时各个节点的单节点分配目标函数值的和。
11.一种资源管理器,其特征在于,所述资源管理器包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述资源管理器运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述资源管理器执行如权利要求1-5任一项所述的分布式计算***中的资源分配方法。
12.一种分布式计算机***,其特征在于,所述分布式计算机***包括多个计算节点和权利要求6-10任一项所述的资源管理器;
或者,所述分布式计算机***包括多个计算节点和权利要求11所述的资源管理器。
CN201610080980.XA 2016-02-05 2016-02-05 一种资源分配方法及资源管理器 Active CN107045456B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610080980.XA CN107045456B (zh) 2016-02-05 2016-02-05 一种资源分配方法及资源管理器
PCT/CN2016/112186 WO2017133351A1 (zh) 2016-02-05 2016-12-26 一种资源分配方法及资源管理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610080980.XA CN107045456B (zh) 2016-02-05 2016-02-05 一种资源分配方法及资源管理器

Publications (2)

Publication Number Publication Date
CN107045456A CN107045456A (zh) 2017-08-15
CN107045456B true CN107045456B (zh) 2020-03-10

Family

ID=59500533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610080980.XA Active CN107045456B (zh) 2016-02-05 2016-02-05 一种资源分配方法及资源管理器

Country Status (2)

Country Link
CN (1) CN107045456B (zh)
WO (1) WO2017133351A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802880B2 (en) * 2017-09-19 2020-10-13 Huawei Technologies Co., Ltd. System and method for distributed resource requirement and allocation
CN107992359B (zh) * 2017-11-27 2021-05-18 江苏海平面数据科技有限公司 一种云环境下代价感知的任务调度方法
CN108021453A (zh) * 2017-12-22 2018-05-11 联想(北京)有限公司 一种计算资源优化方法、装置及服务器集群
CN110046034B (zh) * 2018-01-15 2021-04-23 北京国双科技有限公司 任务获取方法及装置
CN108279980A (zh) * 2018-01-22 2018-07-13 上海联影医疗科技有限公司 资源分配方法及***和资源分配终端
CN108196959B (zh) * 2018-02-07 2021-06-01 聚好看科技股份有限公司 Etl***的资源管理方法及装置
CN108536530B (zh) * 2018-04-02 2021-10-22 北京中电普华信息技术有限公司 一种多线程任务调度方法及装置
CN110633946A (zh) * 2018-06-22 2019-12-31 西门子股份公司 任务分配***
CN108845874B (zh) * 2018-06-25 2023-03-21 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器
CN108897619B (zh) * 2018-06-27 2020-05-05 国家超级计算天津中心 一种用于超级计算机的多层级资源柔性配置方法
CN111045795A (zh) * 2018-10-11 2020-04-21 浙江宇视科技有限公司 资源调度方法及装置
CN111258745B (zh) * 2018-11-30 2023-11-17 花瓣云科技有限公司 一种任务处理方法及设备
CN109947532B (zh) * 2019-03-01 2023-06-09 中山大学 一种教育云平台中的大数据任务调度方法
CN111831424B (zh) * 2019-04-17 2023-09-05 杭州海康威视数字技术股份有限公司 一种任务处理方法、***及装置
CN112148471B (zh) * 2019-06-29 2023-07-07 华为技术服务有限公司 分布式计算***中资源调度的方法和装置
CN110399222B (zh) * 2019-07-25 2022-01-21 北京邮电大学 Gpu集群深度学习任务并行化方法、装置及电子设备
CN110620818B (zh) * 2019-09-18 2022-04-05 东软集团股份有限公司 一种实现节点分配的方法、装置及相关设备
CN112882824A (zh) * 2019-11-29 2021-06-01 北京国双科技有限公司 内存资源的分配方法、装置和设备
CN111061565B (zh) * 2019-12-12 2023-08-25 湖南大学 一种Spark环境下的两段式流水线任务调度方法及***
CN111143057B (zh) * 2019-12-13 2024-04-19 中国科学院深圳先进技术研究院 一种基于多数据中心的异构集群数据处理方法、***及电子设备
CN113032113B (zh) * 2019-12-25 2024-06-18 中科寒武纪科技股份有限公司 任务调度方法及相关产品
CN111353696A (zh) * 2020-02-26 2020-06-30 中国工商银行股份有限公司 一种资源池的调度方法及装置
CN111459641B (zh) * 2020-04-08 2023-04-28 广州欢聊网络科技有限公司 一种跨机房的任务调度和任务处理的方法及装置
CN111539613B (zh) * 2020-04-20 2023-09-15 浙江网商银行股份有限公司 案件分配方法及装置
CN111796940B (zh) * 2020-07-06 2024-01-26 中国铁塔股份有限公司 一种资源分配方法、装置和电子设备
CN112000485B (zh) * 2020-09-01 2024-01-12 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN112099952A (zh) * 2020-09-16 2020-12-18 亚信科技(中国)有限公司 资源调度方法、装置、电子设备及存储介质
CN112272203B (zh) * 2020-09-18 2022-06-14 苏州浪潮智能科技有限公司 一种集群业务节点选择方法、***、终端及存储介质
CN114327842A (zh) * 2020-09-29 2022-04-12 华为技术有限公司 多任务部署的方法及装置
CN112348369B (zh) * 2020-11-11 2024-03-22 博康智能信息技术有限公司 重大活动安保多目标多资源动态调度方法
CN112612616B (zh) * 2020-12-28 2024-02-23 中国农业银行股份有限公司 一种任务处理方法及装置
CN113127203B (zh) * 2021-04-25 2022-06-14 华南理工大学 面向云边计算的深度学习分布式编译器及构造方法
CN113238848A (zh) * 2021-05-27 2021-08-10 上海商汤科技开发有限公司 一种任务调度方法、装置、计算机设备和存储介质
CN113448728B (zh) * 2021-06-22 2022-03-15 腾讯科技(深圳)有限公司 一种云资源调度方法、装置、设备及存储介质
CN114237869B (zh) * 2021-11-17 2022-09-16 中国人民解放军军事科学院国防科技创新研究院 基于强化学习的Ray双层调度方法、装置和电子设备
CN114968570B (zh) * 2022-05-20 2024-03-26 广东电网有限责任公司 一种应用于数字电网的实时计算***及其工作方法
CN115495251B (zh) * 2022-11-17 2023-02-07 北京滴普科技有限公司 一种数据集成作业中计算资源智能控制方法及***
CN118210615A (zh) * 2022-12-16 2024-06-18 华为技术有限公司 资源分配的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541628A (zh) * 2010-12-17 2012-07-04 三星电子株式会社 多核***的编译装置和方法
CN102929718A (zh) * 2012-09-17 2013-02-13 江苏九章计算机科技有限公司 一种基于任务调度的分布式gpu计算机***
US8943353B2 (en) * 2013-01-31 2015-01-27 Hewlett-Packard Development Company, L.P. Assigning nodes to jobs based on reliability factors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541628A (zh) * 2010-12-17 2012-07-04 三星电子株式会社 多核***的编译装置和方法
CN102929718A (zh) * 2012-09-17 2013-02-13 江苏九章计算机科技有限公司 一种基于任务调度的分布式gpu计算机***
US8943353B2 (en) * 2013-01-31 2015-01-27 Hewlett-Packard Development Company, L.P. Assigning nodes to jobs based on reliability factors

Also Published As

Publication number Publication date
CN107045456A (zh) 2017-08-15
WO2017133351A1 (zh) 2017-08-10

Similar Documents

Publication Publication Date Title
CN107045456B (zh) 一种资源分配方法及资源管理器
US20190324819A1 (en) Distributed-system task assignment method and apparatus
CN108337109B (zh) 一种资源分配方法及装置和资源分配***
US11275609B2 (en) Job distribution within a grid environment
US8869159B2 (en) Scheduling MapReduce jobs in the presence of priority classes
CN105718479B (zh) 跨idc大数据处理架构下执行策略生成方法、装置
CN107688492B (zh) 资源的控制方法、装置和集群资源管理***
CN107885595B (zh) 一种资源分配方法、相关设备及***
CN109564528B (zh) 分布式计算中计算资源分配的***和方法
Jung et al. Synchronous parallel processing of big-data analytics services to optimize performance in federated clouds
US20200174844A1 (en) System and method for resource partitioning in distributed computing
US10360074B2 (en) Allocating a global resource in a distributed grid environment
US20230012487A1 (en) Machine learning workload orchestration in heterogeneous clusters
US9141436B2 (en) Apparatus and method for partition scheduling for a processor with cores
CN111373372A (zh) 在分布式计算环境中对应用分配优先级以进行对角缩放
Yu et al. Gadget: Online resource optimization for scheduling ring-all-reduce learning jobs
Weng et al. Beware of Fragmentation: Scheduling {GPU-Sharing} Workloads with Fragmentation Gradient Descent
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
Tahir et al. UDRF: Multi-resource fairness for complex jobs with placement constraints
CN112685167A (zh) 资源使用方法、电子设备和计算机程序产品
US10540341B1 (en) System and method for dedupe aware storage quality of service
Zhang et al. Multi-resource partial-ordered task scheduling in cloud computing
CN111522637A (zh) 一种基于成本效益的storm任务调度方法
Kumar et al. Resource allocation for heterogeneous cloud computing using weighted fair-share queues
Farhat et al. Towards stochastically optimizing data computing flows

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210428

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.