CN112015539B - 任务分配方法、装置和计算机存储介质 - Google Patents
任务分配方法、装置和计算机存储介质 Download PDFInfo
- Publication number
- CN112015539B CN112015539B CN202011176338.4A CN202011176338A CN112015539B CN 112015539 B CN112015539 B CN 112015539B CN 202011176338 A CN202011176338 A CN 202011176338A CN 112015539 B CN112015539 B CN 112015539B
- Authority
- CN
- China
- Prior art keywords
- task
- node
- target task
- target
- execution time
- 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
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种任务分配方法、装置及计算机存储介质,主要包括根据任务队列中的各目标任务在各节点上的各历史执行时间和各节点对应的各剩余执行时间,获得各目标任务与各节点之间的各第一亲和性参数,并根据各目标任务与各节点之间的各第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。借此,本发明可实现以最短执行时间完成任务队列中的所有目标任务。
Description
技术领域
本发明实施例涉及多任务调度技术领域,尤其涉及一种任务分配方法、装置和计算机存储介质。
背景技术
随着互联网领域的高速发展,网络数据处理量也日益增加,因此,任务分布式调度已成为了当下很常见的一种需求,例如,Hadoop的MapReduce方法。
然而,此类任务调度算法并不是基于最优时间进行资源(任务)调度,而是一种基于静态数据的调度算法,因此,并不能保证是以最优地速度进行任务处理。此外,在大多数的网络应用环境中,待处理数据大都具有实时动态更新的特点,亦即,待处理数据属于动态数据,因此,与之相关联的任务调度算法亦需要根据数据的实时变化进行动态分配。
有鉴于此,需要一种适合于动态数据的任务调度技术,以缩短资源(任务)的总计处理时间。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种任务分配方法、装置和计算机存储介质,可以最短执行时间执行任务调度。
根据本发明的第一方面,提供了一种任务分配方法,包括根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间;根据各所述目标任务在各所述节点上的各所述预计执行时间,各所述目标任务对应的各所述预计平均执行时间和各所述节点对应的各剩余执行时间,获得各所述目标任务与各所述节点之间的各第一亲和性参数,其中,各所述剩余执行时间为在各所述节点上待执行的所述目标任务的所述预计执行时间的总和;以及根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。
根据本发明的第二方面,提供了一种计算机存储介质,所述计算机存储介质中存储有用于执行第一方面所述的任务分配方法的各所述步骤的指令。
根据本发明的第三方面,提供了一种任务分配装置,其包括亲和性参数计算模块,其根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间,并根据各所述目标任务在各所述节点上的各预计执行时间,各所述目标任务对应的各预计平均执行时间和各所述节点对应的各剩余执行时间,获得各所述目标任务与各节点之间的各第一亲和性参数,其中,各所述剩余执行时间为在各所述节点上待执行的所述目标任务的所述预计执行时间的总和;以及目标任务分配模块,其根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。
由以上技术方案可见,本发明实施例提供的任务分配方法、装置和计算机存储介质,根据各目标任务在各节点上的各历史执行时间,计算各目标任务与各节点之间的各第一亲和性参数,并根据各第一亲和性参数与各节点的当前负载情况(即各节点的剩余执行时间),将任务队列中的各目标任务分配至适当的节点上执行,借此,可实现以最短执行时间处理任务队列中的各目标任务的目的。再者,本发明实施例提供的任务分配方法、装置和计算机存储介质,还可根据第一亲和性参数与各节点的运算性能,计算各目标任务的第二亲和性参数,据以确定任务队列中的各目标任务的分配顺序,从而进一步确保以最短执行时间完成任务队列中的各目标任务。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比值绘制的。附图中:
图1示出了本发明第一实施例的任务分配方法的流程示意图;
图2示出了本发明第二实施例的任务分配方法的流程示意图;
图3示出了本发明第三实施例的任务分配方法的流程示意图;
图4示出了本发明第四实施例的任务分配方法的流程示意图;
图5示出了本发明第五实施例的任务分配方法的流程示意图;
图6和图7示出了本发明第七实施例的任务分配装置的架构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
在现有技术中,多任务调度方法大都是基于各节点的实际负载情况来执行任务的调度。然而,在实际应用中,用户更多关注的是所有任务的执行时间的快慢,而非各节点的负载压力情况。
有鉴于此,本发明提供一种基于任务执行时间实现任务调度的技术,可以解决现有分布式任务执行过程中存在的任务分配不合理,导致任务执行过长的问题。下面将结合本发明实施例附图进一步说明本发明各实施例的具体实现。
第一实施例
图1示出了本发明第一实施例的任务分配方法,如图所示,本实施例的任务分配方法包括以下步骤:
步骤S11,根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各目标任务在各节点上的各预计执行时间,并获得各目标任务对应的各预计平均执行时间。
于本实施例中,针对每一个目标任务,可将所述目标任务在各节点上的最近执行的各历史执行时间,确定为所述目标任务在各节点上的各预计执行时间,并针对所述目标任务在各节点上的各历史执行时间执行均值计算,获得所述目标任务的预计平均执行时间。
可选地,所述节点为各种类型的电子设备,包括但不限于,台式电脑、服务器等。
需说明的是,可能会出现不同型号的节点适于执行不同类型的任务,有鉴于此,本发明实施例可以预先针对任务的类型与节点的型号进行关联,以于任务分配过程中,通过识别目标任务的类型查找出适于执行所述目标任务的指定节点。步骤S12,根据各目标任务在各节点上的各预计执行时间,各目标任务对应的各平均执行时间和各节点对应的各剩余执行时间,获得各目标任务与各节点之间的各第一亲和性参数。
可选地,各节点的各剩余执行时间为各节点上待执行的各目标任务的预计执行时间的总和,因此,亦可将各节点的剩余执行时间视为各节点的当前负载情况。例如,当某一节点上存在有三个待执行的目标任务时,假设待执行的各目标任务在所述节点上的预计执行时间分别为t1,t2,t3,则所述节点的剩余执行时间为t1+t2+t3。
又如,当某一节点上不存在待执行的目标任务时,则所述节点的剩余执行时间即为0。
于本实施例中,当目标任务已于节点上执行过时,则可直接调取目标任务在节点上的一笔或多笔历史执行时间。当目标任务未在节点上执行过时,则可通过手动或自动方式令目标任务在节点上进行预执行,据以获得目标任务在节点上的至少一笔预执行时间,并将其作为目标任务在所述节点上的历史执行时间。
于其他实施例中,当目标任务未在节点上执行过时,也可基于任务的资源特征以及节点的配置特征等参数,针对目标任务在节点上的执行时间进行预估,并将预估的执行时间作为其在所述节点上的历史执行时间,本发明对此不作限制。
于本实施例中,目标任务与节点之间的第一亲和性参数代表了目标任务更倾向于在哪一个节点上运行(在不考虑节点的运算能力的情况下)。
步骤S13,根据各目标任务与各节点之间的各第一亲和性参数,确定各节点上待执行的各目标任务,并根据目标任务在节点上的预计执行时间更新节点的剩余执行时间。
可选地,针对任务队列中的每一个目标任务,可根据目标任务与各节点之间的各第一亲和性参数,将目标任务确定为最大的第一亲和性参数对应的节点上待执行的目标任务,从而确定负责执行任务队列中的各目标任务的节点。
于本实施例中,当目标任务与节点之间的第一亲和性参数的数值越大时,表示所述目标任务在所述节点上的预计执行时间越短。因此,基于各目标任务与各节点之间的各第一亲和性参数分配负责各目标任务分配各节点,可以实现以最短执行时间处理任务队列中的各目标任务的目的。
可选地,可将目标任务在节点上的预计执行时间与节点当前的剩余执行时间进行累加,以更新节点的剩余执行时间。
综上所述,本发明实施例的任务分配方法根据各目标任务在各节点上的各历史执行时间和各节点对应的各剩余执行时间,计算各目标任务与各节点之间的各第一亲和性参数,并据以分配负责执行各目标任务的各节点,借此,可以最短执行时间完成任务队列中的各目标任务。
第二实施例
图2示出了本发明第二实施例的任务分配方法的流程示意图。如图所示,本实施例的任务分配方法主要包括:
步骤S21,获取任务队列中的一个目标任务。
于本实施例中,任务队列中可包括有至少一个目标任务。
步骤S22,根据目标任务在各节点上的各预计执行时间和目标任务的预计平均执行时间,计算目标任务与各节点之间的各亲和性系数。
具体而言,可将目标任务在各节点上的最近执行的各历史执行时间,确定为目标任务在各节点上的各预计执行时间t。例如,当目标任务在某一节点上执行过三次并具有三笔历史执行时间,则将目标任务在所述节点上最近执行的历史执行时间确定为预计执行时间。
但并不以此为限,也可根据需求而指定三笔历史执行时间中的任意一笔作为目标任务在所述节点上的预计执行时间,抑或可将三笔历史执行时间进行特定地运算规则处理后,获得目标任务在所述节点上的预计执行时间,本发明对此不作限制。
再者,可针对目标任务在各节点上的各历史执行时间执行均值计算,获得目标任务的预计平均执行时间例如,可针对目标任务在所有节点上的历史执行时间进行平均值计算,以获得目标任务在所有节点上的预计平均执行时间。于本实施例中,可根据预设亲和性系数换算规则和上述的预计执行时间、预计平均执行时间,计算出目标任务与各节点之间的各亲和性系数λ。
可选地,预设亲和性系数换算规则可表示为:
其中,n为节点的数量,m为任务队列中的目标任务的数量,λ(m,n)为任务队列中的第m个目标任务与第n个节点之间的亲和性系数,t(m,n)为第m个目标任务在第n个节点上的预计执行时间,为第m个目标任务在所有节点上的预计平均执行时间。
步骤S23,根据目标任务与各节点之间的各亲和性系数、各节点对应的各剩余执行时间、目标任务在各节点上的各预计执行时间和目标任务的预计平均执行时间,计算目标任务与各节点之间的各第一亲和性参数。
于本实施例中,可根据第一亲和性参数换算规则、目标任务与各节点之间的各亲和性系数λ、各节点对应的各剩余执行时间T、目标任务在各节点上的各预计执行时间t、目标任务在所有节点上的预计平均执行时间计算目标任务与各节点之间的各第一亲和性参数a。
可选地,第一亲和性参数换算规则表示为:
其中,a(m,n)为第m个目标任务与第n个节点之间的第一亲和性参数;Tn为第n个节点的剩余执行时间;t(m,n)为第m个目标任务在第n个节点上的预计执行时间,为第m个目标任务在所有节点上的预计平均执行时间,n为节点的数量。
于本实施例中,当第一亲和性参数a的数值越大时,代表目标任务越倾向于在对应节点上执行。
步骤S24,根据目标任务与各节点之间的各第一亲和性参数,将目标任务确定为最大的第一亲和性参数对应的节点上待执行的目标任务。
于本实施例中,根据步骤S23的处理结果,可以获得一个目标任务与多个节点之间的多个第一亲和性参数a,可从这些第一亲和性参数中获取最大者,并将其所对应的节点确定为负责执行目标任务的节点。
步骤S25,累计目标任务在节点上的预计执行时间与节点的剩余执行时间,以更新节点的剩余执行时间。
例如,当确定负责执行第m个目标任务的是第n个节点时,可将第m个目标任务在第n个节点上的预计执行时间t(m,n)与第n个节点的剩余执行时间Tn进行加总,据以更新节点当前的剩余执行时间Tn,亦即:Tn=Tn+t(m,n)。
步骤S26,判断任务队列中是否存在未分配的目标任务,若是则返回步骤S21,若否,则结束本步骤。
于本实施例中,当判断任务队列中尚存在未分配的目标任务时,则可返回步骤S21,以获取下一目标任务,并执行第一亲和性参数的计算以及分配操作直至任务队列中的所有目标任务均分配完成。
综上所述,本发明实施例提供的任务分配方法,根据目标任务在节点上的历史执行时间以及节点的当前负载情况(即剩余执行时间),计算目标任务与节点之间的第一亲和性参数,据以确定负责执行目标任务的节点,借此,可以达成以最短执行时间处理任务队列中的所有目标任务的技术效果。
第三实施例
图3示出了本发明第三实施例的任务分配方法的流程示意图,如图所示,本实施例的任务分配方法主要包括以下步骤:
步骤S31,获取任务队列中的一个目标任务。
步骤S32,根据目标任务在各节点上的各预计执行时间和目标任务的预计平均执行时间,计算目标任务与各节点之间的各亲和性系数。
步骤S33,根据目标任务与各节点之间的各亲和性系数、各节点对应的各剩余执行时间、目标任务在各节点上的各预计执行时间和目标任务的预计平均执行时间,计算目标任务与各节点之间的各第一亲和性参数。
其中,本发明第三实施例中的步骤S31至步骤S33可分别对应于上述第二实施例中的步骤S21至步骤S23,因此,上述步骤S31至步骤S33的具体实施细节可参考前述的第二实施例,不再予以赘述。
步骤S34,根据目标任务与各节点之间的各第一亲和性参数,获得目标任务的第二亲和性参数。
于本实施例中,可结合考量目标任务与各节点之间的各第一亲和性参数与各节点的运算能力,以获得目标任务的第二亲和性参数。
具体而言,根据目标任务在各节点上的各历史执行时间,获得目标任务的理论执行时间并结合目标任务的理论执行时间目标任务与各节点之间的各第一亲和性参数a、目标任务在所有节点上的预计平均执行时间获得目标任务的第二亲和性参数b。
步骤S35,判断任务队列中所有目标任务是否均计算完成,若否则返回步骤S31,若是则进行步骤S36。
借由本步骤,可以判断任务队列中的所有目标任务是否均已完成第二亲和性参数的计算处理。
步骤S36,根据各目标任务对应的各第二亲和性参数,确定各节点上待执行的目标任务以及确定任务队列中的各目标任务的分配顺序。
于本实施例中,由于目标任务的第二亲和性参数是基于第一亲和性参数所生成,因此,根据目标任务的第二亲和性参数,不仅可确定负责执行任务队列中的各目标任务的节点(即将各目标任务确定为至少一节点上待执行的目标任务),还可通过比对各个亲和性参数的数值大小,以进一步确定各个目标任务的分配顺序。
可选地,可根据任务队列中的各目标任务对应的各第二亲和性参数,按照由大到小的顺序排列各目标任务,并根据各目标任务的排列结果确定任务队列中的各目标任务的分配顺序。
综上所述,本发明实施例的任务分配方法,根据节点的运算能力和第一亲和性参数,计算目标任务的第二亲和性参数,据以确定各目标任务的分配顺序,从而进一步确保以最短执行时间完成任务队列中的所有目标任务的目的。
第四实施例
图4示出了本发明第四实施例的任务分配方法的流程示意图。如图所示,本实施例的任务分配方法示出了图3中步骤S34的示例性处理步骤,其主要包括:步骤S41,根据目标任务在各节点上的各历史执行时间,获得目标任务在各节点上的各最少执行时间。
于本实施例中,可从目标任务在某一节点上的至少一笔历史执行时间中,择取数值最小的历史执行时间以作为目标任务在所述节点上的最少执行时间。步骤S42,根据目标任务在各节点上的各最少执行时间,获得目标任务的理论执行时间。
步骤S43,根据第二亲和性参数换算规则、目标任务与各节点之间的各第一亲和性参数中的最大者、目标任务的理论执行时间、目标任务的预计平均执行时间,获得目标任务的第二亲和性参数b。
于本实施例中,第二亲和性参数换算规则表示为:
其中,bm为第m个目标任务的第二亲和性参数;max(a(m,n))为第m个目标任务与n个节点之间的n个第一亲和性参数中的最大者;为第m个目标任务的所述理论执行时间;为第m个目标任务在所有节点上的预计平均执行时间。
综上所述,本发明实施例通过计算目标任务的第二亲和性参数,可以评估任务队列中的哪一个目标任务更应该优先进行分配,从而进一步提高任务分配的合理性。
以下将详细说明本发明第三实施例和第四实施例中的第一亲和性参数和第二亲和性参数的计算示例:
节点1 | 节点2 | 节点3 | |
剩余执行时间 | 20h | 40h | 100h |
目标任务A | 10h | 12h | 15h |
目标任务B | 100h | 1h | 50h |
目标任务C | 4h | 8h | 2h |
(表1)
于上述表1中示例性地示出了目标任务A、目标任务B、目标任务C各自在节点1、节点2、节点3上的历史执行时间,以及节点1、节点2、节点3各自的剩余执行时间。
节点1 | 节点2 | 节点3 | |
目标任务A | 0.558 | 0.508 | 0.434 |
目标任务B | 0.007 | 0.993 | 0.508 |
目标任务C | 0.517 | 0.417 | 0.566 |
(表2)
如表2所示,根据表1中的各目标任务在各节点上的历史执行时间,可以计算出各目标任务与各节点之间的各亲和性系数λ(例如通过上述的步骤S22)。
节点1 | 节点2 | 节点3 | |
目标任务A | -3.332 | -6.763 | -14.878 |
目标任务B | -0.161 | 3.069 | -16.898 |
目标任务C | -3.44 | -6.119 | -18.494 |
(表3)
如表3所示,根据表2中的各目标任务与各节点之间的各亲和性系数λ以及表1中的各节点各自的剩余执行时间,可以计算出各目标任务与各节点之间的各第一亲和性参数a(例如通过上述的步骤S23)。
于表3中可以看出,目标任务A与节点1之间的第一亲和性参数(-3.332)大于其在节点2和节点3上的第一亲和性参数,因此,可将目标任务A分配至节点1上执行,并根据分配结果更新节点1的剩余执行时间,即表1中节点1的剩余执行时间由当前的20小时更新为30小时。
目标任务B与节点2之间的第一亲和性参数(3.069)大于其在节点1和节点3上的第一亲和性参数,因此,可将目标任务B分配至节点2上执行,并将表1中节点2的剩余执行时间由当前的40小时更新为41小时。
目标任务C与节点1之间的第一亲和性参数(-3.44)大于其在节点2和节点3上的第一亲和性参数,因此,可将目标任务C也分配至节点1上执行,并将表1中节点1的剩余执行时间再次由当前的30小时更新为34小时。
据此,根据节点1最后更新的剩余执行时间34h和节点2最后更新的剩余执行时间41h,可以得知,任务列表中目标任务A、B、C的预计最终完成时间为41小时。
节点1 | 节点2 | 节点3 | |
目标任务A | -3.431 | - | - |
目标任务B | - | 3.105 | - |
目标任务C | -3.496 | - | - |
(表4)
如表4所示,根据表3中的各目标任务与各节点之间的各第一亲和性参数a,可以计算出各目标任务各自对应的第二亲和性参数b(例如通过上述的步骤S41至43)。
于表4中可以看出,目标任务B的第二亲和性参数(3.105)为最大,目标任务A的第二亲和性参数(-3.431)为次之,而目标任务C的第二亲和性参数为最小(-3.496),据此,即可确定任务队列中各目标任务的分配顺序为:目标任务B、目标任务A、目标任务C。
第五实施例
图5示出了本发明第五实施例的任务分配方法的流程示意图。如图所示,本实施例的任务分配方法主要包括以下处理步骤:
步骤S61,预设触发条件和/或预设任务分配时间,接着执行步骤S621和/或步骤S622。
于本实施例中,所设定的预设触发条件包括:当任务队列中新增目标任务时,或者当各节点中的至少一个出现运行异常时。但并不以此为限,也可根据实际任务分配需求,设置其他的触发条件。
于本实施例中,所设定的预设任务分配时间可以是指定的时间点或时间段,此外,预设任务分配时间也可以是间隔时间,例如每隔半小时执行一次。
于本实施例中,当步骤S61中同时设置了预设触发条件和预设任务分配时间时,则同时执行步骤S621和步骤S622,当步骤S61中仅设置了预设触发条件时,则仅执行步骤S621,当步骤S62中仅设置了预设任务分配时间时,则仅执行步骤S622。
步骤S621,判断任务队列或各节点的当前运行状态是否满足预设触发条件,当判断结果为满足时进行步骤S63,否则重复执行本步骤。
例如,可在当判断任务队列中增加了新的目标任务时,触发执行步骤S63。
又如,可在当侦测到各节点的当前运行状态出现异常时,包括但不限于:节点供电异常(例如停电)、节点运行崩溃(例如死机),即触发执行步骤S63。
步骤S622,判断当前运行时间是否满足预设任务分配时间,当判断结果为满足时进行步骤S63,否则重复执行本步骤。
例如,倘若预设任务分配时间为指定的时间点时,则在判断当前运行时间与预设任务分配时间相吻合时,即触发执行步骤S653。
又如,倘若预设任务分配时间为间隔时间时,则在每当判断当前运行时间满足所设定的间隔时间时,即触发执行步骤S63。
步骤S63,执行获得各所述目标任务与各节点之间的各第一亲和性参数的步骤和确定各节点上待执行的各目标任务的步骤。
于本实施例中,在当判断任务队列或各节点的当前运行状态满足预设触发条件时和/或当判断当前运行时间满足预设任务分配时间时,即触发执行图1的步骤S12和步骤S13,借以针对任务队列中的各目标任务的第一亲和性参数和/或第二亲和性参数进行重新计算,并据以重新分配各目标任务。
综上所述,本发明实施例提供的任务分配方法,可在当任务队列发生变更或者节点出现异常时和/或根据预设轮询时间,而重新计算任务队列中的各目标任务的第一亲和性参数和/或第二亲和性参数,并据以重新分配各目标任务。借由上述动态更新机制,可以确保始终以最短执行时间完成任务队列中的各目标任务。
第六实施例
本发明第六实施例提供一种计算机存储介质,于计算机存储介质中存储有用于执行上述第一至第五实施例中的任务分配方法的各步骤的指令。
第七实施例
图6和图7示出了本发明第七实施例的任务分配装置的主要架构,如图6所示,本发明实施例的任务分配装置700主要包括:亲和性参数计算模块710和目标任务分配模块720。
亲和性参数计算模块710用于根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间,并根据各所述目标任务在各所述节点上的各预计执行时间,各所述目标任务对应的各预计平均执行时间和各所述节点对应的各剩余执行时间,获得各所述目标任务与各节点之间的各第一亲和性参数,其中,各所述剩余执行时间为在各所述节点上待执行的所述目标任务的所述预计执行时间的总和。
可选地,亲和性参数计算模块710还包括针对所述任务队列中的每一个所述目标任务,根据所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各亲和性系数,并根据所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数。
可选地,亲和性参数计算模块710还包括根据预设亲和性系数换算规则、所述目标任务在各所述节点上的各所述预计执行时间、所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述亲和性系数。
可选地,亲和性参数计算模块710还包括:将所述目标任务在各所述节点上的最近执行的各所述历史执行时间,确定为所述目标任务在各所述节点上的各所述预计执行时间;针对所述目标任务在各所述节点上的各所述历史执行时间执行均值计算,获得所述目标任务的所述预计平均执行时间。
可选地,亲和性参数计算模块710还包括:根据第一亲和性参数换算规则、所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间、所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数。
可选地,亲和性参数计算模块710还包括:根据各所述目标任务与各所述节点之间的各所述第一亲和性参数获得各所述目标任务对应的各第二亲和性参数。可选地,亲和性参数计算模块710还包括:根据所述目标任务在各所述节点上的各所述历史执行时间,获得所述目标任务在各所述节点上的各最少执行时间;根据所述目标任务在各所述节点上的各所述最少执行时间,获得所述目标任务的理论执行时间;根据第二亲和性参数换算规则、所述目标任务与各所述节点之间的各所述第一亲和性参数中的最大者、所述目标任务的所述理论执行时间、所述目标任务的所述预计平均执行时间,获得所述目标任务的所述第二亲和性参数。
可选地,亲和性参数计算模块710还包括根据所述任务队列中的各所述目标任务对应的各所述第二亲和性参数,按照由大到小的顺序排列各所述目标任务;根据各所述目标任务的排列结果,确定所述任务队列中的各所述目标任务的分配顺序。
目标任务分配模块720用于根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。
可选地,所述目标任务分配模块720包括针对所述任务队列中的每一个所述目标任务,根据所述目标任务与各所述节点之间的各所述第一亲和性参数,将所述目标任务确定为最大的所述第一亲和性参数对应的所述节点上待执行的所述目标任务。
可选地,所述目标任务分配模块720还包括将所述目标任务在所述节点上的所述预计执行时间与所述节点的所述剩余执行时间进行累加,以更新所述节点的所述剩余执行时间。
可选地,所述目标任务分配模块720还包括:根据各所述目标任务对应的各第二亲和性参数,确定所述任务队列中的各所述目标任务的分配顺序。
请配合参阅图7,于另一实施方案中,任务分配装置700还可包括监控模块730,其用于根据预设触发条件,当判断所述任务队列或各所述节点的当前运行状态满足所述预设触发条件时,即控制所述亲和性参数计算模块710更新计算各所述目标任务对应的各所述第一亲和性参数,以供所述目标任务分配模块720根据更新后的各所述目标任务对应的各所述第一亲和性参数,重新确定各所述节点上待执行的各所述目标任务。
可选地,所述预设触发条件包括:当所述任务队列中新增所述目标任务时,或者当各所述节点中的至少一个出现运行异常时。
于又一实施方案中,监控模块730也可用于根据预设任务分配时间,当判断当前运行时间满足所述预设任务分配时间时,即控制所述亲和性参数计算模块710更新计算各所述目标任务对应的各所述第一亲和性参数,以供所述目标任务分配模块720根据更新后的各所述目标任务对应的各所述第一亲和性参数,重新确定各所述节点上待执行的各所述目标任务。
此外,本发明各实施例的任务分配装置700还可用于实现前述各任务分配方法实施例中的其他步骤,并具有相应的方法步骤实施例的有益效果,在此不再赘述。
综上所述,本发明实施例提供的任务分配方法、装置和计算机存储介质可根据各目标任务在各节点上的各历史执行时间以及各节点当前的负载情况(即剩余执行时间),计算目标任务与节点之间的第一亲和性参数,据以确定负责执行任务队列中的各目标任务的节点,从而实现以最短执行时间完成任务队列中的所有目标任务的目的。
再者,本发明实施例所提供的任务分配方法、装置和计算机存储介质还可根据目标任务与节点之间的第一亲和性参数以及节点的配置性能情况,确定任务队列中的各目标任务的分配顺序,从而进一步确保在最短执行时间内处理任务队列中的各目标任务。
另外,本发明实施例还通过设置动态更新机制,以于侦测到任务队列发生变更时或者处理节点的运行出现异常时,重新计算目标任务与节点之间的第一亲和性参数和/或第二亲和性参数,并据以重新针对任务队列中的各目标任务进行分配,据此,可以确保始终以最短处理时间完成任务队列中的所有目标任务的目的。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的任务分配方法。此外,当通用计算机访问用于实现在此示出的任务分配方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的任务分配方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (22)
1.一种任务分配方法,其特征在于,所述方法包括:
根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间;
根据各所述目标任务在各所述节点上的各所述预计执行时间,各所述目标任务对应的各所述预计平均执行时间和各所述节点对应的各剩余执行时间,获得各所述目标任务与各所述节点之间的各第一亲和性参数,其中,各所述剩余执行时间为在各所述节点上待执行的所述目标任务的所述预计执行时间的总和;以及
根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。
2.根据权利要求1所述的任务分配方法,其特征在于,所述根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间包括:
针对每一个所述目标任务,将所述目标任务在各所述节点上的最近执行的各所述历史执行时间,确定为所述目标任务在各所述节点上的各所述预计执行时间,并针对所述目标任务在各所述节点上的各所述历史执行时间执行均值计算,获得所述目标任务的所述预计平均执行时间。
3.根据权利要求2所述的任务分配方法,其特征在于,所述根据各所述目标任务在各所述节点上的各预计执行时间,各所述目标任务对应的各预计平均执行时间和各所述节点对应的各剩余执行时间,获得每一个所述目标任务与各节点之间的各第一亲和性参数包括:
针对所述任务队列中的每一个所述目标任务,重复执行计算所述目标任务与各所述节点之间的各所述第一亲和性参数的步骤,以获得各所述目标任务与各节点之间的各第一亲和性参数;其中,
所述计算所述目标任务与各所述节点之间的各所述第一亲和性参数的步骤包括:
根据所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各亲和性系数;以及
根据所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数。
4.根据权利要求3所述的任务分配方法,其特征在于,所述根据所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各亲和性系数包括:
根据预设亲和性系数换算规则、所述目标任务在各所述节点上的各所述预计执行时间、所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述亲和性系数;
所述预设亲和性系数换算规则表示为:
5.根据权利要求4所述的任务分配方法,其特征在于,所述根据所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数包括:
根据第一亲和性参数换算规则、所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间、所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数;
所述第一亲和性参数换算规则表示为:
其中,所述a(m,n)为第m个所述目标任务与第n个所述节点之间的所述第一亲和性参数;所述Tn为第n个所述节点的所述剩余执行时间。
6.根据权利要求5所述的任务分配方法,其特征在于,所述根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务包括:
针对所述任务队列中的每一个所述目标任务,根据所述目标任务与各所述节点之间的各所述第一亲和性参数,将所述目标任务确定为最大的所述第一亲和性参数对应的所述节点上待执行的所述目标任务。
7.根据权利要求6所述的任务分配方法,其特征在于,所述根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间包括:
将所述目标任务在所述节点上的所述预计执行时间与所述节点的所述剩余执行时间进行累加,以更新所述节点的所述剩余执行时间。
8.根据权利要求5所述的任务分配方法,其特征在于,所述方法还包括:
根据所述目标任务与各所述节点之间的各所述第一亲和性参数,获得所述目标任务的第二亲和性参数;
重复所述获得所述目标任务的第二亲和性参数的步骤,获得所述任务队列中的各所述目标任务对应的各所述第二亲和性参数;
根据各所述目标任务对应的各所述第二亲和性参数,确定所述任务队列中的各所述目标任务的分配顺序。
9.根据权利要求8所述的任务分配方法,其特征在于,所述根据所述目标任务与各所述节点之间的各所述第一亲和性参数,获得所述目标任务的第二亲和性参数包括:
根据所述目标任务在各所述节点上的各所述历史执行时间,获得所述目标任务在各所述节点上的各最少执行时间;
根据所述目标任务在各所述节点上的各所述最少执行时间,获得所述目标任务的理论执行时间;
根据第二亲和性参数换算规则、所述目标任务与各所述节点之间的各所述第一亲和性参数中的最大者、所述目标任务的所述理论执行时间、所述目标任务的所述预计平均执行时间,获得所述目标任务的所述第二亲和性参数;
所述第二亲和性参数换算规则表示为:
10.根据权利要求8所述的任务分配方法,其特征在于,所述根据各所述目标任务对应的各第二亲和性参数,确定所述任务队列中的各所述目标任务的分配顺序还包括:
根据所述任务队列中的各所述目标任务对应的各所述第二亲和性参数,按照由大到小的顺序排列各所述目标任务;
根据各所述目标任务的排列结果,确定所述任务队列中的各所述目标任务的分配顺序。
11.根据权利要求1所述的任务分配方法,其特征在于,所述方法还包括:
根据预设触发条件,当判断所述任务队列或各所述节点的当前运行状态满足所述预设触发条件时,执行所述获得各所述目标任务与各节点之间的各第一亲和性参数的步骤和所述确定各所述节点上待执行的各所述目标任务的步骤。
12.根据权利要求11所述的任务分配方法,其特征在于,所述预设触发条件包括:当所述任务队列中新增所述目标任务时,或者当各所述节点中的至少一个出现运行异常时。
13.根据权利要求1所述的任务分配方法,其特征在于,所述方法还包括:
根据预设任务分配时间,当判断当前运行时间满足所述预设任务分配时间时,执行所述获得各所述目标任务与各节点之间的各第一亲和性参数的步骤和所述确定各所述节点上待执行的各所述目标任务的步骤。
14.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有用于执行根据权利要求1至13中任一项所述的任务分配方法的各所述步骤的指令。
15.一种任务分配装置,其特征在于,所述装置包括:
亲和性参数计算模块,其根据任务队列中的各目标任务在各节点上的各历史执行时间,确定各所述目标任务在各所述节点上的各预计执行时间,并获得各所述目标任务对应的各预计平均执行时间,并根据各所述目标任务在各所述节点上的各预计执行时间,各所述目标任务对应的各预计平均执行时间和各所述节点对应的各剩余执行时间,获得各所述目标任务与各节点之间的各第一亲和性参数,其中,各所述剩余执行时间为在各所述节点上待执行的所述目标任务的所述预计执行时间的总和;以及
目标任务分配模块,其根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,确定各所述节点上待执行的各所述目标任务,并根据所述目标任务在所述节点上的所述预计执行时间更新所述节点的所述剩余执行时间。
16.根据权利要求15所述的任务分配装置,其特征在于,所述亲和性参数计算模块还包括:
针对所述任务队列中的每一个所述目标任务,根据所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各亲和性系数,并根据所述目标任务与各所述节点之间的各所述亲和性系数、各所述节点对应的各所述剩余执行时间、所述目标任务在各所述节点上的各所述预计执行时间和所述目标任务的所述预计平均执行时间,计算所述目标任务与各所述节点之间的各所述第一亲和性参数。
17.根据权利要求15所述的任务分配装置,其特征在于,所述目标任务分配模块包括:
针对所述任务队列中的每一个所述目标任务,根据所述目标任务与各所述节点之间的各所述第一亲和性参数,将所述目标任务确定为最大的所述第一亲和性参数对应的所述节点上待执行的所述目标任务。
18.根据权利要求17所述的任务分配装置,其特征在于,所述目标任务分配模块还包括:
将所述目标任务在所述节点上的所述预计执行时间与所述节点的所述剩余执行时间进行累加,以更新所述节点的所述剩余执行时间。
19.根据权利要求15所述的任务分配装置,其特征在于,所述亲和性参数计算模块还包括:
根据各所述目标任务与各所述节点之间的各所述第一亲和性参数,获得各所述目标任务对应的各第二亲和性参数。
20.根据权利要求19所述的任务分配装置,其特征在于,所述目标任务分配模块还包括:
根据各所述目标任务对应的各第二亲和性参数,确定所述任务队列中的各所述目标任务的分配顺序。
21.根据权利要求15所述的任务分配装置,其特征在于,所述装置还包括监控模块,其用于根据预设触发条件,当判断所述任务队列或各所述节点的当前运行状态满足所述预设触发条件时,即控制所述亲和性参数计算模块更新计算各所述目标任务对应的各所述第一亲和性参数,以供所述目标任务分配模块根据更新后的各所述目标任务对应的各所述第一亲和性参数,重新确定各所述节点上待执行的各所述目标任务。
22.根据权利要求15所述的任务分配装置,其特征在于,所述装置还包括监控模块,其用于根据预设任务分配时间,当判断当前运行时间满足所述预设任务分配时间时,即控制所述亲和性参数计算模块更新计算各所述目标任务对应的各所述第一亲和性参数,以供所述目标任务分配模块根据更新后的各所述目标任务对应的各所述第一亲和性参数,重新确定各所述节点上待执行的各所述目标任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011176338.4A CN112015539B (zh) | 2020-10-29 | 2020-10-29 | 任务分配方法、装置和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011176338.4A CN112015539B (zh) | 2020-10-29 | 2020-10-29 | 任务分配方法、装置和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015539A CN112015539A (zh) | 2020-12-01 |
CN112015539B true CN112015539B (zh) | 2021-02-02 |
Family
ID=73528167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011176338.4A Active CN112015539B (zh) | 2020-10-29 | 2020-10-29 | 任务分配方法、装置和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015539B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968508A (zh) * | 2021-05-06 | 2022-08-30 | 中移互联网有限公司 | 任务处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536530A (zh) * | 2018-04-02 | 2018-09-14 | 北京中电普华信息技术有限公司 | 一种多线程任务调度方法及装置 |
CN110825506A (zh) * | 2019-10-31 | 2020-02-21 | 湖南智领通信科技有限公司 | 一种嵌入式操作系统的任务调度方法、装置及存储介质 |
CN111736959A (zh) * | 2020-07-16 | 2020-10-02 | 南京南软科技有限公司 | 异构集群下考虑数据亲和性的Spark任务调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102182295B1 (ko) * | 2014-04-21 | 2020-11-24 | 삼성전자 주식회사 | 하드웨어 기반 태스크 스케쥴링 장치 및 방법 |
CN104679593B (zh) * | 2015-03-13 | 2017-12-01 | 浪潮集团有限公司 | 一种基于smp系统的任务调度优化方法 |
-
2020
- 2020-10-29 CN CN202011176338.4A patent/CN112015539B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536530A (zh) * | 2018-04-02 | 2018-09-14 | 北京中电普华信息技术有限公司 | 一种多线程任务调度方法及装置 |
CN110825506A (zh) * | 2019-10-31 | 2020-02-21 | 湖南智领通信科技有限公司 | 一种嵌入式操作系统的任务调度方法、装置及存储介质 |
CN111736959A (zh) * | 2020-07-16 | 2020-10-02 | 南京南软科技有限公司 | 异构集群下考虑数据亲和性的Spark任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112015539A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799916B2 (en) | Determining an allocation of resources for a job | |
Beloglazov et al. | Managing overloaded hosts for dynamic consolidation of virtual machines in cloud data centers under quality of service constraints | |
CN110321222B (zh) | 基于决策树预测的数据并行作业资源分配方法 | |
US20140019965A1 (en) | System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing | |
WO2016009311A1 (en) | System and method for electronic work prediction and dynamically adjusting server resources | |
EP2700008A1 (en) | Scheduling map and reduce tasks of jobs for execution according to performance goals | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
KR101471749B1 (ko) | 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법 | |
WO2012154177A1 (en) | Varying a characteristic of a job profile relating to map and reduce tasks according to a data size | |
WO2012105969A1 (en) | Estimating a performance characteristic of a job using a performance model | |
CN111813523A (zh) | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 | |
JP2016042284A (ja) | 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム | |
CN112015539B (zh) | 任务分配方法、装置和计算机存储介质 | |
JP5445739B2 (ja) | リソース割当装置、リソース割当方法、及びプログラム | |
CA2637987C (en) | Method for autonomic system management using adaptive allocation of resources | |
Naghshnejad et al. | A hybrid scheduling platform: a runtime prediction reliability aware scheduling platform to improve hpc scheduling performance | |
CN112000460A (zh) | 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备 | |
CN108139929B (zh) | 用于调度多个任务的任务调度装置和方法 | |
Zhang et al. | Predicting running time of grid tasks based on cpu load predictions | |
US20080195447A1 (en) | System and method for capacity sizing for computer systems | |
Wolke et al. | Evaluating dynamic resource allocation strategies in virtualized data centers | |
CN112416596A (zh) | 一种节点调度方法、装置及设备 | |
CN108897619B (zh) | 一种用于超级计算机的多层级资源柔性配置方法 | |
Smith et al. | Batch mode stochastic-based robust dynamic resource allocation in a heterogeneous computing system. | |
KR102376155B1 (ko) | 병렬계산 가속기 할당률 결정 장치 및 방법 |
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 |