CN110597626A - 在分布式系统中资源及任务的分配方法、装置及系统 - Google Patents
在分布式系统中资源及任务的分配方法、装置及系统 Download PDFInfo
- Publication number
- CN110597626A CN110597626A CN201910783327.3A CN201910783327A CN110597626A CN 110597626 A CN110597626 A CN 110597626A CN 201910783327 A CN201910783327 A CN 201910783327A CN 110597626 A CN110597626 A CN 110597626A
- Authority
- CN
- China
- Prior art keywords
- resource
- task
- distributed system
- tasks
- 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.)
- Granted
Links
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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种在分布式系统中资源及任务的分配方法、装置、设备及系统,该方法包括:接收用于在分布式系统中执行的作业;根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求;根据预测的资源需求,将每个任务分配给适合的工作节点;以及在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
Description
技术领域
本发明涉及分布式技术领域,更具体地,涉及一种在分布式系统中资源及任务的分配方法、在分布式系统中资源及任务的分配装置、在分布式系统中资源及任务的分配设备以及分布式系统。
背景技术
现有的调度系统,例如Hadoop Yarn中,任务是运行在容器内部的,因此,需要先申请容器,申请时需要人为判断并指定容器资源的大小,这个资源大小是固定的,不可改变的。但是,任务运行时的资源使用量是可变的,而不是某一固定数值,因此,为了任务可以安全运行,往往会申请较大的资源,这样会造成一定程度的资源浪费。
为了避免资源浪费,需要设置合理的资源限制,但这往往是比较困难的。尤其是在一些机器学习任务中,涉及到的数据量会比较大,任务内部流程也会比较复杂,通常情况下都需要多机来运行,所以要划分几个任务来运行,每个任务的资源限制是多少,这是非常困难的。虽然谷歌的Borg会回收已分配出来、但未被使用到的资源,用这些资源来运行一些对资源质量要求低的任务,以实现资源的最大利用,但是这些资源一旦被使用,所有超过资源限制的任务均会被直接杀掉。
发明内容
本发明的一个目的是提供一种在分布式系统中资源及任务的分配的新的技术方案。
根据本发明的第一方面,提供了一种在分布式系统中资源及任务的分配的方法,其包括:
接收用于在分布式系统中执行的作业;
根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求;
根据预测的资源需求,将每个任务分配给适合的工作节点;以及
在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
可选地,所述任务类型包括机器学习中的参数服务器任务和/或训练学习任务;以及,
所述资源相关信息包括相应任务类型的处理数据规模和处理内容之中的至少一项。
可选地,所述资源需求包括任务所需的每种资源类型和相应的资源需求值;
其中,所述资源需求值包括峰值需求值和一般需求值之中的至少一项。
可选地,所述预测由工作节点执行的每个任务的资源需求的步骤,包括:根据规则和/或机器学习模型来预测由工作节点执行的每个任务需被分配的资源需求,
并且,所述方法还包括:收集工作节点执行任务时的实际资源使用情况,以获取所述规则和/或机器学习模型。
可选地,所述根据预测的资源需求,将每个任务分配给适合的工作节点,包括:
获取各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制;
利用预设的分配算法,根据预测的资源需求,并结合获取的各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制,从分布式系统的多个工作节点中筛选出适合执行所述每个任务的工作节点,并将所述每个任务分配给筛选出的工作节点。
可选地,所述在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整的步骤,包括:
监控任务的资源使用情况;
在任务的某种资源使用超过预测的资源需求值的情况下,判断所述某种资源的当前使用总量是否超过所述某种资源的总资源最大限制;
在所述某种资源的当前使用总量超过所述某种资源的总资源最大限制的情况下,根据所述某种资源的压缩性来进行动态调整。
可选地,所述根据所述某种资源的压缩性来进行动态调整的步骤,包括:
查找所述工作节点中针对所述某种资源超过预测的资源需求值的任务作为备选任务,并按照处理优先级和/或启动时间来选择备选任务;
根据所述某种资源的压缩性,针对所选择的备选任务来进行动态调整。
可选地,所述根据所述某种资源的压缩性,针对所选择的备选任务来进行动态调整,包括:
在所述某种资源为可压缩资源的情况下,限制所述备选任务对于所述某种资源的资源使用量。
可选地,所述根据所述某种资源的压缩性,针对所选择的备选任务来进行动态调整,包括:
在所述某种资源为不可压缩资源的情况下,判断所述备选任务是否支持扩容;
在所述备选任务支持扩容的情况下,判断是否存在能够执行所述备选任务的其他工作节点;
在存在所述其他工作节点的情况下,提取所述备选任务中未完成的部分任务;
将提取出的所述部分任务发送到所述其他工作节点。
可选地,所述方法还包括:
在所述备选任务不支持扩容的情况下,判断所述备选任务是否支持冻结;
在所述备选任务支持冻结的情况下,将所述备选任务的内存数据写入所述工作节点的磁盘中。
可选地,所述方法还包括:
在不存在所述其他工作节点的情况下,判断所述备选任务是否支持冻结;
在所述备选任务支持冻结的情况下,将所述备选任务的内存数据写入所述工作节点的磁盘中。
可选地,所述方法在将所述备选任务的内存数据写入所述工作节点的磁盘中之后,还包括:
判断所述备选任务是否支持迁移;
在所述备选任务支持迁移的情况下,判断是否存在能够执行所述备选任务的其他工作节点;
将所述内存数据发送给所述其他工作节点。
可选地,所述方法还包括:
在所述备选任务不支持迁移的情况下,响应于设定的触发事件,获取所述备选任务的当前资源使用情况;
基于所述备选任务的当前资源使用情况,继续由所述工作节点执行所述备选任务。
可选地,所述触发事件包括所述工作节点中已完成所分配的任意一个任务、所述工作节点中存在被释放的所述资源之中的至少一个。
可选地,所述方法还包括:
在所述备选任务不支持冻结的情况下,直接杀掉所述备选任务。
可选地,所述方法在直接杀掉所述备选任务之后,还包括:
收集由所述工作节点发送的所述备选任务的资源使用情况;
基于所述资源使用情况,扩充所述备选任务的资源需求,以根据扩充的资源需求,再次将所述备选任务分配给适合的工作节点。
根据本发明的第二方面,还提供一种在分布式系统中资源及任务的分配装置,其包括:
作业接收单元,用于接收用于在分布式系统中执行的作业;
资源需求预测单元,用于根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求;
任务分配单元,用于根据预测的资源需求,将每个任务分配给适合的工作节点;
资源调度单元,用于在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
根据本发明的第三方面,还提供一种在分布式系统中资源及任务的分配设备,其包括:
存储器,用于存储可执行指令;
处理器,用于根据所述可执行指令的控制,运行所述在分布式系统中资源及任务的分配设备执行如本发明第一方面所述的在分布式系统中资源及任务的分配方法。
根据本发明的第三方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本发明第一方面所述的在分布式系统中资源及任务的分配方法。
根据本发明的第四方面,还提供一种分布式系统,其包括:
多个用于提供资源的设备;
如本发明第二方面所述的在分布式系统中资源及任务的分配装置或如本发明第三方面所述的在分布式系统中资源及任务的分配设备。
根据本发明实施例的方法、装置、设备及系统,一方面,其并不是由业务人员人为的去判断分布式系统中各任务所需资源,而是根据各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,利用系统去预测由工作节点执行的每个任务需被分配的资源需求,这能够有效提高资源计算的效率和准确性;另一方面,其能够根据预测出的资源需求,将每个任务分配给适合的工作节点,并在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调节,从而实现有效率的任务分配和资源调度,提高任务的执行效率以及资源利用率。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明实施例的分布式系统的硬件配置的例子的框图。
图2是根据本发明实施例的在分布式系统中资源及任务的分配方法的示意性流程图;
图3是根据本发明另一实施例的在分布式系统中资源及任务的分配方法的示意性流程图;
图4是根据本发明第三实施例的在分布式系统中资源及任务的分配方法的示意性流程图;
图5是根据本发明实施例的在分布式系统中资源及任务的分配装置的原理框图;
图6是根据本发明实施例的在分布式系统中资源及任务的分配设备的原理框图;
图7是根据本发明实施例的分布式系统的框图;
图8是根据本发明一个例子的资源及任务的分配方法的示意性流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1示出了可以实现本实施例分布式系统的硬件配置框图。
如图1所示,本实施例的分布式系统中包括多个服务器1000,图1中示出了4个服务器1000,分别为服务器1000A、服务器1000B、服务器1000C和服务器1000D。
在本实施例中,分布式系统中具有的服务器1000的数量可以根据实际场景确定,在此不做任何限定。
在本实施例中,这些服务器1000组成分布式系统,每一个服务器1000均可以作为在分布式系统中资源及任务的分配设备。
在本实施例中,可以是分布式系统中的任意一个具有执行(Executor)节点的服务器1000提交用于在分布式系统中执行的作业job,也可以是由与分布式系统连接的客户端向分布式系统中的任意一个服务器1000提交用于在分布式系统中执行的作业job,并由该服务器1000中的资源预测(ResourceGuess)节点根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求,以及,由该服务器1000中的调度(Scheduler)节点根据预测的资源需求,将每个任务分配给适合的工作节点,进而由分布式系统中具有工作(worker)节点的服务器1000在执行分配的任务的过程中,针对资源使用情况进行动态调整。
服务器1000提供处理、数据库、通讯设施的业务点。服务器1000可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
在一个实施例中,服务器1000可以如图1所示,包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600。
在该实施例中,服务器1000还可以包括扬声器、麦克风等等,在此不做限定。
处理器1100可以是专用的服务器处理器,也可以是满足性能要求的台式机处理器、移动版处理器等,在此不做限定。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括各种总线接口,例如串行总线接口(包括USB接口)、并行总线接口等。通信装置1400能够进行有线或无线通信。显示装置1500例如是液晶显示屏、LED显示屏触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。
尽管在图1中示出了服务器1000的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器1000只涉及存储器1200、通信装置1400以及处理器1100。
网络2000可以是无线通信网络也可以是有线通信网络,可以是局域网也可以是广域网。在图1所示的分布式系统中,多个服务器1000之间可以通过网络2000进行通信。此外,多个服务器1000之间通信所基于的网络2000可以是同一个,也可以是不同的。
图1所示的分布式系统仅是解释性的,决不是为了要限制本发明、其应用或用途,在实际应用当中,还可以包含其他数量的分布式系统,例如,还可以包括2个分布式系统,3个分布式系统,5个分布式系统,甚至更多,在此不做任何限定。应用于本发明的实施例中,服务器1000的存储器1200用于存储指令,指令用于控制处理器1100进行操作以执行本发明实施例中提供的任意一项在分布式系统中资源及任务的分配方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例>
图2是根据一个实施例的在分布式系统中资源及任务的分配方法的示意性流程图。
参照图2所示,本实施例的在分布式系统中资源及任务的分配方法可以是由在分布式系统中资源及任务的分配装置实施,也可以是由在分布式系统中资源及任务的分配设备实施,该在分布式系统中资源及任务的分配装置或者在分布式系统中资源及任务的分配设备具体可以是分布在提供资源的设备上,本实施例的资源调度方法可以包括如下步骤S2100~S2400:
步骤S2100,接收用于在分布式系统中执行的作业。
作业job是提交任务的基本单位,一个作业job中包括多个任务task,该多个任务task互相关联。
任务task是运行的最小单位,通常情况下,可以是把一个进程称之为一个任务task。
通过步骤S2100接收用于在分布式系统中执行的作业之后,可以结合后续步骤根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求,并根据预测的资源需求,将每个任务分配给适合的工作节点,使得工作节点根据预测的资源需求向对应的任务提供资源,从而,提高资源利用率。
在接收用于在分布式系统中执行的作业之后,进入:
步骤S2200,根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求。
任务类型包括机器学习中的参数服务器任务和/或训练学习任务,其中,该参数服务器任务是用于进行参数处理(例如,参数更新)的任务,该训练学习任务是用于进行模型训练(例如,样本计算)的任务。
资源相关信息包括相应任务类型的处理数据规模和处理内容之中的至少一项。
本实施例中,对于任意一个任务而言,所需的资源往往可能有多种,在此,为了区分不同的资源,资源需求至少包括任务所需的每种资源类型和相应的资源需求值。当然,资源需求中还可能包含任务对所需的资源的其他信息,在此不做限定。
该资源类型例如可以包括CPU、内存用量、磁盘用量、磁盘输入/输出I/O(Input/Output)、网络I/O、图形处理器(Graphics Processing Unit,GPU)以及FPGA。
该资源需求值包括峰值需求值和一般需求值之中的至少一项。本实施例中,一方面,预测出的资源需求值可能会大于实际使用值,从而造成资源浪费;另一方面,预测出的资源需求值也可能会小于实际使用值,从而造成资源不足,针对于这种情况,可以根据以下步骤S2400在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调增,以提高资源利用率,本步骤S2200在此不做详细赘述。
在本实施例中,利用作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,其可能会将提交的工作中的某个任务划分为多个任务,并进一步预测由工作节点执行的每个任务需被分配的资源类型以及对应类型的资源需求值,进而将任务分配给适合的工作节点,以由工作节点提供相应的资源来执行任务。
在本实施例中,该步骤S2200中预测由工作节点执行的每个任务需被分配的资源需求可以进一步包括:
根据规则和/或机器学习模型来预测由工作节点执行的每个任务需被分配的资源需求。
机器学习模型可以为神经网络模型,例如但不限于是BP(Back Propagation)神经网络模型、卷积神经网络模型等,当然,该机器学习模型也可以为逻辑回归模型,在此并不对机器学习模型进行具体限定,只要能够预测由工作节点执行的每个任务需被分配的资源需求的任意机器学习模型均属于本发明实施例保护的内容。
本实施例中,可以是将任务所实际涉及的数据规模和任务类型作为特征,并将任务实际对应的每种资源及其资源使用值等作为标记来组成训练样本输入至进行资源需求预测的机器学习模型当中,其中,该数据规模例如可以包括数据的行数和数据的列数之中的至少一个,该机器学习模型可被训练为基于待预测任务的数据规模和任务类型来预测该任务对应的每种资源及其资源需求值。
在本实施例中,还可以是在工作节点执行完所分配的任务之后,获取任务的实际资源使用情况作为新的训练样本,修正规则和/或机器学习模型,使得资源需求的预测越来越准确。
通过步骤S2200根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求,并根据预测的资源需求,将每个任务分配给适合的工作节点,使得工作节点根据预测的资源需求向对应的任务提供资源,从而,提高资源利用率。
在根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求之后,进入步骤S2300。
步骤S2300,根据预测的资源需求,将每个任务分配给适合的工作节点。
任务可以包括提交工作时,工作中包括的多个任务,也可以包括提交工作后,根据步骤S2200对某个任务进行划分后得到的多个任务。
在本实施例中,可以是将预测的资源需求发送给工作节点,以控制工作节点根据预测的资源需求,向任务提供资源,也可以是工作节点接收到预测的资源信息之后,自行根据预测的资源需求,向任务提供资源。
在本实施例中,该步骤S2300根据预测的资源需求,将每个任务分配给适合的工作节点可以进一步包括如下步骤S2310~S2320:
步骤S2310,获取各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制。
步骤S2320,利用预设的分配算法,根据预测的资源需求,并结合获取的各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制,从分布式系统的多个工作节点中筛选出适合执行每个任务的工作节点,并将每个任务分配给筛选出的工作节点。
本发明实施例可以采用任意的分配算法进行任务分配,所以在此不做任何限定。
本步骤S2320中,可以是一个工作节点中仅分配一个任务,也可以是一个工作节点中分配多个任务,该多个任务可以是同时执行,也可以是按照预测的资源需求值的大小按照从小到大的顺序依次执行,本发明并不限于一个工作节点中多个任务的执行顺序。
在根据步骤S2300预测由工作节点执行的每个任务需被分配的资源需求,并根据预测的资源需求,将每个任务分配给适合的工作节点,使得工作节点根据预测的在资源需求向对应的任务提供资源,从而,提高资源利用率。
根据预测的资源需求,将每个任务分配给适合的工作节点之后,进入步骤S2400。
步骤S2400,在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
在本实施例中,由于根据步骤S2200预测出的资源需求值可能会大于实际使用值,从而造成资源浪费;或者,预测出的资源需求值也可能会小于实际使用值,从而造成资源不足,针对于这种情况,可以根据该步骤S2400在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整,以提高资源利用率。
在本实施例中,参照图3所示,该步骤S2400在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整可以进一步包括如下步骤S2410~S2440:
步骤S2410,监控任务的资源使用情况,并判断任务的某种资源使用是否超过预测的资源需求值,若是,则执行步骤S2430,若否,则执行步骤S2420。
根据该步骤S2410,可以是在工作节点开始执行所分配的任务之后,实时监控任务的资源使用情况。
以资源包括CPU、GPU为例,可以是在工作节点执行所分配的任务的过程中,实时监控该工作节点中任务的CPU、GPU的使用情况,并判断任务对于CPU或GPU的使用是否超过预测的CPU或GPU的资源需求值,如果任务对于CPU或GPU的使用未超过任务的预测的CPU或GPU的资源需求值,则根据步骤S2420不进行任何处理,继续由该工作节点执行任务,如果任务对于CPU或GPU的使用超过预测的CPU或GPU的资源需求值,则会进一步根据步骤S2430判断CPU或GPU的当前使用总量是否超过CPU或GPU的总资源最大限制。
步骤S2420,不进行任何处理,继续由工作节点执行任务。
继续步骤S2410的示例,如果任务对于CPU或GPU的使用未超过任务的预测的CPU或GPU的资源需求值,则根据本步骤S2420不进行任何处理,继续由该工作节点执行任务,仅通知调度节点实际的CPU或GPU的资源使用情况。
步骤S2430,在任务的某种资源使用超过预测的资源需求值的情况下,判断某种资源的当前使用总量是否超过某种资源的总资源最大限制。
继续上述步骤S2410的示例,如果任务对于CPU的使用超过预测的CPU的资源需求值,则根据本步骤S2430进一步判断CPU的当前使用总量是否超过CPU的总资源最大限制,如果超过CPU的总资源最大限制,则执行步骤S2440根据CPU的压缩性来进行动态调整,如果未超过CPU的总资源最大限制,则根据步骤S2450不进行任何处理,继续由该工作节点执行任务,仅通知调度节点实际的CPU的资源使用情况。
步骤S2440,在某种资源的当前使用总量未超过某种资源的总资源最大限制的情况下,则不进行任何处理,继续由工作节点执行任务。
继续上述步骤S2430的示例,如果未超过CPU的总资源最大限制,则根据本步骤S2440不进行任何处理,继续由该工作节点执行任务,仅通知调度节点实际的CPU的资源使用情况。
步骤S2450,在某种资源的当前使用总量超过某种资源的总资源最大限制的情况下,根据某种资源的压缩性来进行动态调整。
按照资源的压缩性可以是将资源分为可压缩资源和不可压缩资源,其中,可压缩资源包括CPU、磁盘I/O以及网络I/O;以及,不可压缩资源包括内存用量、磁盘用量、图形处理器GPU以及FPGA。
继续上述步骤S2430的示例,如果超过CPU的总资源最大限制,则执行本步骤S2450根据CPU的压缩性来进行动态调整,从而实现有效率的资源调度,提高资源利用率。
根据本发明实施例的方法,一方面,其并不是由用户人为的去判断分布式系统中各任务所需资源,而是根据各任务类型的资源相关信息和分布式系统中工作节点的资源上限,利用系统去预测由工作节点执行的每个任务需被分配的资源需求,这能够有效提高资源计算的效率和准确性;另一方面,其能够根据预测出的资源需求,将每个任务分配给适合的工作节点,并在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调节,从而实现有效率的任务分配和资源调度,提高任务的执行效率以及资源利用率。
在一个实施例中,上述步骤S2450中根据某种资源的压缩性来进行动态调整可以进一步包括如下步骤:
步骤S2451,查找工作节点中针对某种资源超过预测的资源需求值的任务作为备选任务,并按照处理优先级和/或启动时间来选择备选任务。
本步骤S2451中,例如可以是在某种资源的当前使用总量超过某种资源的总资源最大限制的情况下,先查找工作节点中针对某种资源超过预测的资源需求值的任务作为备选任务,再按照备选任务的处理优先级的升序排序次序选择处理优先级低级的备选任务作为选择出的备选任务,还可以是在存在多个优先级最低的备选任务的情况下,接续按照多个优先级最低的备选任务的启动时间的升序排序次序选择启动时间最长的备选任务作为所选择出的备选任务。
继续上述步骤S2450的示例,如果超过CPU的总资源最大限制,则先查找该工作节点中针对CPU超过预测的资源需求值的任务作为备选任务,示例性地,查找出的备选任务例如可以是任务1、任务2以及任务3,在此,可以是在将任务1、任务2以及任务3进行处理优先级从小到大的排序之后得到:任务3、任务2、任务1,并选择处理优先级最低的任务3作为所选择出的备选任务;另外,例如还可以是在任务3和任务2的处理优先级相同的情况下,接续将任务3和任务2进行启动时间从小到大的排序以得到:任务2、任务3,并选取启动时间最长的任务3作为所选择出的备选任务。
步骤S2452,根据某种资源的压缩性,针对所选择的备选任务来进行动态调整。
本步骤S2452中,根据上述步骤S2451选择出备选任务之后,可以根据某种资源的压缩性,针对所选择的备选任务来进行动态调整,以提高资源利用率。
在本发明的一个例子中,该步骤S2452根据某种资源的压缩性,针对所选择的备选任务来进行动态调整可以进一步包括:
在某种资源为可压缩资源的情况下,限制备选任务对于某种资源的资源使用量。
继续上述步骤S2451的示例,由于CPU为可压缩资源,在此,可以是限制所选择出的备选任务即任务3对于CPU的资源使用量。
在本发明的一个例子中,参照图4所示,该步骤S2452根据某种资源的压缩性,针对所选择的备选任务来进行动态调整可以进一步包括:
步骤S2452-1,在某种资源为不可压缩资源的情况下,判断备选任务是否支持扩容,如是,则执行步骤S2452-2,反之,执行步骤S2452-5。
示例性地,以该资源为FPGA,所选择出的备选任务仍为任务3为例,由于FPGA为不可压缩资源,在此,可以是判断任务3是否支持扩容,如果任务3支持扩容,则根据以下步骤S2452-2判断是否存在能够执行任务3的其他工作节点,反之,则根据以下步骤S2452-5判断任务3是否支持冻结。
步骤S2452-2,判断是否存在能够执行备选任务的其他工作节点,如是,则执行步骤S2452-3,反之,执行步骤S2452-5。
继续上述步骤S2452-1的示例,在任务3支持扩容的情况下,进一步判断是否存在能够执行任务3的其他工作节点,如果存在能够执行任务3的其他工作节点,则执行以下步骤S2452-3提取任务3中未完成的部分任务,反之,执行步骤S2452-5判断备选任务是否支持冻结。
步骤S2452-3,在存在其他工作节点的情况下,提取备选任务中未完成的部分任务。
继续上述步骤S2452-2的示例,在存在能够执行任务3的其他工作节点的情况下,提取任务3中未完成的部分任务,并继续执行步骤S2452-4。
步骤S2452-4,将提取出的部分任务发送到其他工作节点。
继续上述步骤S2452-3的示例,在提取出任务3中未完成的部分任务之后,可以根据本步骤S2452-4将提取出的部分任务发送到其他工作节点,以由其他工作节点继续执行该部分任务。
步骤S2452-5,判断备选任务是否支持冻结,如是,则执行步骤S2452-6,反之,执行步骤S2452-12。
继续上述步骤S2452-1或者步骤S2452-2的示例,在任务3不支持扩容的情况下,或者,不存在能够执行备选任务的其他工作节点的情况下,进一步判断任务3是否支持冻结,如果任务3支持冻结,则执行步骤S2452-6冻结任务3,反之,执行步骤S2452-12。
步骤S2452-6,在备选任务支持冻结的情况下,将备选任务的内存数据写入工作节点的磁盘中。
继续上述步骤S2452-5的示例,在任务3支持冻结的情况下,冻结任务3,即,将任务3的内存数据写入工作节点的磁盘中,可以是在将任务3的内存数据写入工作节点的磁盘中之后,继续执行步骤S2452-7判断任务3是否支持迁移。
步骤S2452-7,判断备选任务是否支持迁移,如是,则执行步骤S2452-8,反之,执行步骤S2452-10。
继续上述步骤S2452-6的示例,在任务3支持迁移的情况下,根据以下步骤S2452-8进一步判断是否存在能够执行备选任务的其他工作节点,反之,执行步骤S2452-10的等待恢复。
步骤S2452-8,在备选任务支持迁移的情况下,判断是否存在能够执行备选任务的其他工作节点,如是,则执行步骤S2452-9,反之,执行S2452-5。
继续上述步骤S2452-7的示例,在任务3支持迁移的情况下,进一步判断是否存在能够执行任务3的其他工作节点,如果存在能够执行任务3的其他工作节点,则执行步骤S2452-9将内存数据发送给其他工作节点,反之,执行步骤S2452-5判断任务3是否支持冻结。
步骤S2452-9,将内存数据发送给其他工作节点。
继续上述步骤S2452-8的示例,如果存在能够执行任务3的其他工作节点,则执行本步骤S2452-9将内存数据发送给其他工作节点。
步骤S2452-10,响应于设定的触发事件,获取备选任务的当前资源使用情况。
该设定的触发事件包括工作节点中已完成所分配的任意一个任务、工作节点中存在被释放的资源之中的至少一个。
继续上述步骤S2452-8的示例,在任务3不支持迁移的情况下,执行本步骤S2452-10的等待恢复,例如可以是在工作节点中已完成所分配的任意一个任务、工作节点中存在被释放的GPU之中的至少一个时,获取任务3的当前GPU使用情况。
步骤S2452-11,基于备选任务的当前资源使用情况,继续由工作节点执行备选任务。
继续上述步骤S2452-10的示例,基于任务3的当前GPU使用情况,继续由工作节点执行任务3。
步骤S2452-12,直接杀掉备选任务。
继续上述S2452-5的示例,在任务3不支持冻结的情况下,执行本步骤S2452-12直接杀掉任务3,并接续执行步骤S2452-13。
步骤S2452-13,收集由工作节点发送的备选任务的资源使用情况。
继续上述S2452-12的示例,在杀掉任务3之后,可以收集由工作节点发送的任务3的GPU使用情况,并自动推导新的资源需求。
步骤S2452-14,基于资源使用情况,扩充备选任务的资源需求,以根据扩充的资源需求,再次将备选任务分配给适合的工作节点。
继续上述S2452-13的示例,在收集由工作节点发送的任务3的GPU使用情况之后,便可根据本步骤S2452-14扩充任务3的资源需求,以根据扩充的资源需求,再次将任务3分配给适合的工作节点,进而由该适合的工作节点重新执行任务3。
根据本实施例,其可以在某种资源的当前使用总量超过某种资源的总资源最大限制的情况下,根据某种资源的压缩性来进行动态调整,从而,提高任务处理效率,提高资源利用率。
<装置实施例>
在本实施例中,还提供一种在分布式系统中资源及任务的分配装置5000,如图5所示,其包括作业接收单元5100、资源需求预测单元5200、任务分配单元5300以及资源调度单元5400。
该作业接收单元5100,用于接收用于在分布式系统中执行的作业。
该资源需求预测单元5200,用于根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求。
该任务分配单元5300,用于根据预测的资源需求,将每个任务分配给适合的工作节点。
该资源调度单元5400,用于在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
在一个实施例中,所述任务类型包括机器学习中的参数服务器任务和/或训练学习任务;以及,
所述资源相关信息包括相应任务类型的处理数据规模和处理内容之中的至少一项。
在一个实施例中,所述资源需求包括任务所需的每种资源类型和相应的资源需求值;
其中,所述资源需求值包括峰值需求值和一般需求值之中的至少一项。
在一个实施例中,该资源需求预测单元5200,还用于根据规则和/或机器学习模型来预测由工作节点执行的每个任务需被分配的资源需求;以及,
收集工作节点执行任务时的实际资源使用情况,以获取所述规则和/或机器学习模型。
在一个实施例中,该任务分配单元5300,还用于获取各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制;
利用预设的分配算法,根据预测的资源需求,并结合获取的各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制,从分布式系统的多个工作节点中筛选出适合执行所述每个任务的工作节点,并将所述每个任务分配给筛选出的工作节点。
在一个实施例中,该资源调度单元5400,还用于监控任务的资源使用情况;
在任务的某种资源使用超过预测的资源需求值的情况下,判断所述某种资源的当前使用总量是否超过所述某种资源的总资源最大限制;
在所述某种资源的当前使用总量超过所述某种资源的总资源最大限制的情况下,根据所述某种资源的压缩性来进行动态调整。
在一个实施例中,该资源调度单元5400,还用于查找所述工作节点中针对所述某种资源超过预测的资源需求值的任务作为备选任务,并按照处理优先级和/或启动时间来选择备选任务;
根据所述某种资源的压缩性,针对所选择的备选任务来进行动态调整。
在一个实施例中,该资源调度单元5400,还用于在所述某种资源为可压缩资源的情况下,限制所述备选任务对于所述某种资源的资源使用量。
在一个实施例中,该资源调度单元5400,还用于在所述某种资源为不可压缩资源的情况下,判断所述备选任务是否支持扩容;
在所述备选任务支持扩容的情况下,判断是否存在能够执行所述备选任务的其他工作节点;
在存在所述其他工作节点的情况下,提取所述备选任务中未完成的部分任务;
将提取出的所述部分任务发送到所述其他工作节点。
在一个实施例中,该资源调度单元5400,还用于在所述备选任务不支持扩容的情况下,判断所述备选任务是否支持冻结;
在所述备选任务支持冻结的情况下,将所述备选任务的内存数据写入所述工作节点的磁盘中。
在一个实施例中,该资源调度单元5400,还用于在不存在所述其他工作节点的情况下,判断所述备选任务是否支持冻结;
在所述备选任务支持冻结的情况下,将所述备选任务的内存数据写入所述工作节点的磁盘中。
在一个实施例中,该资源调度单元5400,还用于判断所述备选任务是否支持迁移;
在所述备选任务支持迁移的情况下,判断是否存在能够执行所述备选任务的其他工作节点;
将所述内存数据发送给所述其他工作节点。
在一个实施例中,该资源调度单元5400,还用于在所述备选任务不支持迁移的情况下,响应于设定的触发事件,获取所述备选任务的当前资源使用情况;
基于所述备选任务的当前资源使用情况,继续由所述工作节点执行所述备选任务。
在一个实施例中,所述触发事件包括所述工作节点中已完成所分配的任意一个任务、所述工作节点中存在被释放的所述资源之中的至少一个。
在一个实施例中,该资源调度单元5400,还用于在所述备选任务不支持冻结的情况下,直接杀掉所述备选任务。
在一个实施例中,该资源调度单元5400,还用于收集由所述工作节点发送的所述备选任务的资源使用情况;
基于所述资源使用情况,扩充所述备选任务的资源需求,以根据扩充的资源需求,再次将所述备选任务分配给适合的工作节点。
<在分布式系统中资源及任务的分配设备>
在本实施例中,还提供一种在分布式系统中资源及任务的分配设备6000,如图6所示,包括:
存储器6100,用于存储可执行指令;
处理器6200,用于根据所述可执行指令的控制,运行所述在分布式系统中资源及任务的分配设备执行如本实施例中提供的在分布式系统中资源及任务的分配方法。
在本实施例中,在分布式系统中资源及任务的分配设备6000可以是服务器。例如,在分布式系统中资源及任务的分配设备6000可以是如图1所示的服务器1000。
在分布式系统中资源及任务的分配设备6000还可以包括其他的装置,例如,如图1所示的服务器1000,还可以包括输入装置、通信装置、接口装置以及显示装置等。
<计算机可读存储介质>
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本发明任意实施例的在分布式系统中任务及资源的分配方法。
<分布式系统>
在本实施例中,还提供一种分布式系统7000,如图7所示,包括:
多个用于提供资源的设备7100,例如可以是用于提供资源的设备7100A和用于提供资源的设备7100B,该多个用于提供资源的设备7100可以是一个服务器集群里面的设备,也可以是分别属于不同服务器集群里面的设备。
在本实施例中,用于提供资源的设备7100的数量可以根据实际场景确定,在此不做任何限定。
在本实施例中,分布式系统7000还包括在分布式系统中资源及任务的分配装置5000或在分布式系统中资源及任务的分配设备6000。该在分布式系统中资源及任务的分配装置5000或在分布式系统中资源及任务的分配设备6000可以是分布在提供资源的设备7100上。
该分布式系统7000不仅适用于机器学习场景,也适用于其它对任务不做严格资源限制的非机器学习场景。该机器学习场景为:由于系统复杂,或对数据的一些未知原因,很难对任务的具体资源使用情况作出准确的判断,给出正确的结果的场景。例如,特征处理任务、离线的机器学习训练任务以及在线的机器学习预测任务等。该非机器学习场景为:一些在线服务一般都存在一些高峰期,如外卖系统,在午餐时间会存在很大的峰值,系统需要的资源就会很大,但在半夜,使用量就会很少,使用该系统7000,会在低峰时期,回收一些资源给其他任务使用。
<例子>
以下将进一步举例说明本实施例中提供的分布式系统7000实施的资源及任务的分配方法。
在本例中,分布式系统7000包括多个用于提供资源的设备7100和在分布式系统中资源及任务的分配装置5000,该设备7100可以是具有执行节点、资源预测节点、调度节点以及工作节点的服务器,该在分布式系统中资源及任务的分配装置5000可以分布在多个该设备7100上,例如,可以通过执行节点实现在分布式系统中资源及任务的分配装置5000中作业接收单元5100对应的功能,以及通过资源预测节点实现在分布式系统中资源及任务的分配装置5000中资源预测需求单元5200对应的功能,通过调度节点实现在分布式系统中资源及任务的分配装置5000中任务分配单元5300对应的功能,以及,通过工作节点实现在分布式系统中资源及任务的分配装置5000中资源调度单元5400对应的功能,如图8所示,本例子中,资源及任务的分配方法可以包括:
步骤S8010,执行节点提交在分布式系统中执行的作业job至资源预测单元。
该作业job中可以包括任务task1、任务task2和task3。
步骤S8020,资源预测单元根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求,并将预测出的资源需求返回至执行节点。
步骤S8030,执行单元将工作job中包括的任务task1、任务task2和task3,以及,预测出的由工作节点执行的每个任务需被分配的资源需求提交至调度节点。
步骤S8040,调度节点根据预测的资源需求,将任务task1分配给工作节点1;以及,将任务task2和任务task3分配给工作节点2。
本步骤S8040中,可以是利用预设的分配算法,根据预测的资源需求,并结合获取的各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制,从分布式系统的多个工作节点中筛选出适合执行任务task1、任务task2和任务task3的工作节点,并将任务task1分配给筛选出的工作节点1,以及,将任务task2和task3分配给筛选出的工作节点2。
步骤S8050,工作节点1接收到任务task1,启动任务task1,并实时监控任务task1的资源使用情况;以及,工作节点2接收到任务task2和任务task3之后,启动任务task2和任务task3,并实时监控任务task2和任务task3的资源使用情况。
步骤S8060,在工作节点1执行任务task1的过程中,会将资源的当前使用情况以及任务task1的执行情况发送至执行节点;以及,工作节点2执行任务task1和任务task2的过程中,会将资源的当前使用情况以及任务task2和任务task3的执行情况发送至执行节点。
步骤S8070,任务task1执行完之后,回馈工作节点1的结束状态以及资源使用情况至工作节点1;以及,任务task2和task3执行完之后,回馈工作节点2的结束状态以及资源使用情况至工作节点2。
步骤S8080,工作节点1将任务task1回馈的信息汇报至调度节点;以及,工作节点2将任务task2和task3回馈的信息汇报至调度节点。
步骤S8090,调度节点汇总工作job中的所有任务的信息以及资源使用情况,提交至资源预测节点,以便资源预测节点不断收集真实的资源使用情况,以更新用于执行资源预测的规则和/或机器学习模型。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种在分布式系统中资源及任务的分配方法,所述方法包括:
接收用于在分布式系统中执行的作业;
根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求;
根据预测的资源需求,将每个任务分配给适合的工作节点;以及
在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
2.根据权利要求1所述的方法,其中,
所述任务类型包括机器学习中的参数服务器任务和/或训练学习任务;以及,
所述资源相关信息包括相应任务类型的处理数据规模和处理内容之中的至少一项。
3.根据权利要求1所述的方法,其中,所述资源需求包括任务所需的每种资源类型和相应的资源需求值;
其中,所述资源需求值包括峰值需求值和一般需求值之中的至少一项。
4.根据权利要求1所述的方法,其中,所述预测由工作节点执行的每个任务的资源需求的步骤,包括:根据规则和/或机器学习模型来预测由工作节点执行的每个任务需被分配的资源需求,
并且,所述方法还包括:收集工作节点执行任务时的实际资源使用情况,以获取所述规则和/或机器学习模型。
5.根据权利要求1至4中任一项所述的方法,其中,所述根据预测的资源需求,将每个任务分配给适合的工作节点,包括:
获取各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制;
利用预设的分配算法,根据预测的资源需求,并结合获取的各个工作节点的当前资源使用情况、当前任务运行情况以及总资源最大限制,从分布式系统的多个工作节点中筛选出适合执行所述每个任务的工作节点,并将所述每个任务分配给筛选出的工作节点。
6.根据权利要求1所述的方法,其中,所述在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整的步骤,包括:
监控任务的资源使用情况;
在任务的某种资源使用超过预测的资源需求值的情况下,判断所述某种资源的当前使用总量是否超过所述某种资源的总资源最大限制;
在所述某种资源的当前使用总量超过所述某种资源的总资源最大限制的情况下,根据所述某种资源的压缩性来进行动态调整。
7.一种在分布式系统中资源及任务的分配装置,包括:
作业接收单元,用于接收用于在分布式系统中执行的作业;
资源需求预测单元,用于根据作业中各任务类型的资源相关信息和分布式系统中各工作节点的资源上限,预测由工作节点执行的每个任务需被分配的资源需求;
任务分配单元,用于根据预测的资源需求,将每个任务分配给适合的工作节点;
资源调度单元,用于在工作节点执行分配的任务的过程中,针对资源使用情况进行动态调整。
8.一种在分布式系统中资源及任务的分配设备,包括:
存储器,用于存储可执行指令;
处理器,用于根据所述可执行指令的控制,运行所述在分布式系统中资源及任务的分配设备执行如权利要求1至6任一项所述的在分布式系统中资源及任务的分配方法。
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至6中任一项所述的在分布式系统中资源及任务的分配方法。
10.一种分布式系统,其中,包括:
多个用于提供资源的设备;
如权利要求7所述的在分布式系统中资源及任务的分配装置或如权利要求8所述的在分布式系统中资源及任务的分配设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910783327.3A CN110597626B (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
CN202211328760.6A CN115525438A (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
PCT/CN2020/110544 WO2021036936A1 (zh) | 2019-08-23 | 2020-08-21 | 在分布式系统中资源及任务的分配方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910783327.3A CN110597626B (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211328760.6A Division CN115525438A (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597626A true CN110597626A (zh) | 2019-12-20 |
CN110597626B CN110597626B (zh) | 2022-09-06 |
Family
ID=68855493
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910783327.3A Active CN110597626B (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
CN202211328760.6A Pending CN115525438A (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211328760.6A Pending CN115525438A (zh) | 2019-08-23 | 2019-08-23 | 在分布式系统中资源及任务的分配方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN110597626B (zh) |
WO (1) | WO2021036936A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111507650A (zh) * | 2020-07-02 | 2020-08-07 | 深圳微品致远信息科技有限公司 | 一种边缘计算平台算力分配调度方法及系统 |
CN111782626A (zh) * | 2020-08-14 | 2020-10-16 | 工银科技有限公司 | 任务分配方法和装置、分布式系统、电子设备和介质 |
CN111984408A (zh) * | 2020-08-14 | 2020-11-24 | 薛亮 | 基于大数据和边缘计算的数据协同处理方法及边缘云平台 |
CN112256418A (zh) * | 2020-10-26 | 2021-01-22 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
WO2021036936A1 (zh) * | 2019-08-23 | 2021-03-04 | 第四范式(北京)技术有限公司 | 在分布式系统中资源及任务的分配方法、装置及系统 |
CN112905350A (zh) * | 2021-03-22 | 2021-06-04 | 北京市商汤科技开发有限公司 | 任务调度方法及装置、电子设备和存储介质 |
CN113434302A (zh) * | 2021-08-12 | 2021-09-24 | 阿里云计算有限公司 | 分布式作业执行方法、主节点、系统、物理机及存储介质 |
CN113485833A (zh) * | 2021-07-09 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 资源预测方法和装置 |
CN113742053A (zh) * | 2020-05-29 | 2021-12-03 | 中国电信股份有限公司 | 容器资源的分配方法和装置 |
CN114265695A (zh) * | 2021-12-26 | 2022-04-01 | 特斯联科技集团有限公司 | 基于决策技术的能控装置及系统 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN116860723A (zh) * | 2023-09-04 | 2023-10-10 | 合肥中科类脑智能技术有限公司 | 跨计算中心数据迁移方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564302B (zh) * | 2022-01-29 | 2024-10-15 | 苏州浪潮智能科技有限公司 | 一种gpu资源分配方法、系统、设备以及介质 |
CN118467187B (zh) * | 2024-07-15 | 2024-09-17 | 云南神经元信息技术有限公司 | 分布式集群数据生产系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
US20150081877A1 (en) * | 2013-09-17 | 2015-03-19 | Bank Of America Corporation | Prediction and distribution of resource demand |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107580023A (zh) * | 2017-08-04 | 2018-01-12 | 山东大学 | 一种动态调整任务分配的流处理作业调度方法及系统 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
CN109165093A (zh) * | 2018-07-31 | 2019-01-08 | 宁波积幂信息科技有限公司 | 一种计算节点集群弹性分配系统及方法 |
CN109478147A (zh) * | 2016-07-13 | 2019-03-15 | 华为技术有限公司 | 分布式计算系统中的自适应资源管理 |
CN109669820A (zh) * | 2018-12-24 | 2019-04-23 | 广州君海网络科技有限公司 | 基于Kettle的任务监管方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
CN105159769B (zh) * | 2015-09-11 | 2018-06-29 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
CN105610621B (zh) * | 2015-12-31 | 2019-04-26 | 中国科学院深圳先进技术研究院 | 一种分布式系统架构任务级参数动态调整的方法及装置 |
US11573831B2 (en) * | 2017-06-20 | 2023-02-07 | International Business Machines Corporation | Optimizing resource usage in distributed computing environments by dynamically adjusting resource unit size |
CN110597626B (zh) * | 2019-08-23 | 2022-09-06 | 第四范式(北京)技术有限公司 | 在分布式系统中资源及任务的分配方法、装置及系统 |
-
2019
- 2019-08-23 CN CN201910783327.3A patent/CN110597626B/zh active Active
- 2019-08-23 CN CN202211328760.6A patent/CN115525438A/zh active Pending
-
2020
- 2020-08-21 WO PCT/CN2020/110544 patent/WO2021036936A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150081877A1 (en) * | 2013-09-17 | 2015-03-19 | Bank Of America Corporation | Prediction and distribution of resource demand |
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
CN109478147A (zh) * | 2016-07-13 | 2019-03-15 | 华为技术有限公司 | 分布式计算系统中的自适应资源管理 |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107580023A (zh) * | 2017-08-04 | 2018-01-12 | 山东大学 | 一种动态调整任务分配的流处理作业调度方法及系统 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
CN109165093A (zh) * | 2018-07-31 | 2019-01-08 | 宁波积幂信息科技有限公司 | 一种计算节点集群弹性分配系统及方法 |
CN109669820A (zh) * | 2018-12-24 | 2019-04-23 | 广州君海网络科技有限公司 | 基于Kettle的任务监管方法和装置 |
Non-Patent Citations (2)
Title |
---|
X64.INK: "谷歌Borg论文阅读笔记(二)——任务混部的解决", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/53652》 * |
李思达: "基于Kubernetes的调度方案研究与设计", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021036936A1 (zh) * | 2019-08-23 | 2021-03-04 | 第四范式(北京)技术有限公司 | 在分布式系统中资源及任务的分配方法、装置及系统 |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN113742053A (zh) * | 2020-05-29 | 2021-12-03 | 中国电信股份有限公司 | 容器资源的分配方法和装置 |
CN111507650A (zh) * | 2020-07-02 | 2020-08-07 | 深圳微品致远信息科技有限公司 | 一种边缘计算平台算力分配调度方法及系统 |
CN111782626A (zh) * | 2020-08-14 | 2020-10-16 | 工银科技有限公司 | 任务分配方法和装置、分布式系统、电子设备和介质 |
CN111984408A (zh) * | 2020-08-14 | 2020-11-24 | 薛亮 | 基于大数据和边缘计算的数据协同处理方法及边缘云平台 |
CN111984408B (zh) * | 2020-08-14 | 2021-04-20 | 昆山华泛信息服务有限公司 | 基于大数据和边缘计算的数据协同处理方法及边缘云平台 |
CN112256418B (zh) * | 2020-10-26 | 2023-10-24 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
CN112256418A (zh) * | 2020-10-26 | 2021-01-22 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
CN112905350A (zh) * | 2021-03-22 | 2021-06-04 | 北京市商汤科技开发有限公司 | 任务调度方法及装置、电子设备和存储介质 |
CN113485833A (zh) * | 2021-07-09 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 资源预测方法和装置 |
CN113485833B (zh) * | 2021-07-09 | 2024-02-06 | 支付宝(杭州)信息技术有限公司 | 资源预测方法和装置 |
CN113434302A (zh) * | 2021-08-12 | 2021-09-24 | 阿里云计算有限公司 | 分布式作业执行方法、主节点、系统、物理机及存储介质 |
CN114265695A (zh) * | 2021-12-26 | 2022-04-01 | 特斯联科技集团有限公司 | 基于决策技术的能控装置及系统 |
CN114780225B (zh) * | 2022-06-14 | 2022-09-23 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN116860723A (zh) * | 2023-09-04 | 2023-10-10 | 合肥中科类脑智能技术有限公司 | 跨计算中心数据迁移方法 |
CN116860723B (zh) * | 2023-09-04 | 2023-11-21 | 合肥中科类脑智能技术有限公司 | 跨计算中心数据迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115525438A (zh) | 2022-12-27 |
WO2021036936A1 (zh) | 2021-03-04 |
CN110597626B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597626B (zh) | 在分布式系统中资源及任务的分配方法、装置及系统 | |
CN113243005B (zh) | 按需网络代码执行系统中的基于性能的硬件仿真 | |
CN112486648A (zh) | 任务调度方法、装置、系统、电子设备和存储介质 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN114072766A (zh) | 用于数字劳动力智能编排的系统和方法 | |
KR20170029263A (ko) | 부하 분산 장치 및 방법 | |
EP2755133B1 (en) | Application execution controller and application execution method | |
CN111694646A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN111506401B (zh) | 自动驾驶仿真任务调度方法、装置、电子设备及存储介质 | |
CN111459641B (zh) | 一种跨机房的任务调度和任务处理的方法及装置 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN111782147B (zh) | 用于集群扩缩容的方法和装置 | |
CN104750538B (zh) | 用于为目标应用提供虚拟存储池的方法和系统 | |
KR20210105378A (ko) | 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체 | |
CN114556299A (zh) | 动态修改管线中任务的并行性 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
Wang et al. | Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
CN112000460A (zh) | 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备 | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN111506414A (zh) | 资源调度方法、装置、设备、系统及可读存储介质 | |
CN112685157B (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN116700933B (zh) | 一种面向异构算力联邦的多集群作业调度系统和方法 | |
KR101695238B1 (ko) | 다중 컴퓨팅 자원을 이용한 작업 스케줄링 시스템 및 방법 | |
López-Pires et al. | Machine learning opportunities in cloud computing data center management for 5G services |
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 |