CN112000485B - 任务分配方法、装置、电子设备及计算机可读存储介质 - Google Patents
任务分配方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112000485B CN112000485B CN202010906291.6A CN202010906291A CN112000485B CN 112000485 B CN112000485 B CN 112000485B CN 202010906291 A CN202010906291 A CN 202010906291A CN 112000485 B CN112000485 B CN 112000485B
- Authority
- CN
- China
- Prior art keywords
- time unit
- random numbers
- estimated
- time
- allocated
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种任务分配方法、装置、电子设备及计算机可读存储介质,涉及计算机应用技术领域。该方法包括:根据每个待分配设备完成子任务的预估时间单位和能够用于完成子任务的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位;在预估运行时间单位对应的数值范围内,生成多个随机数来分别作为待分配设备用于完成子任务的时间单位;从多个随机数对应的多个时间单位中确定一个时间单位作为参考运行时间单位;将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。本申请的实施能够更对任务进行分配,能够以较大的概率保证任务被计算完成。
Description
技术领域
本申请涉及计算机应用技术领域,具体而言,本申请涉及一种任务分配方法、装置、电子设备及计算机可读存储介质。
背景技术
在边缘计算以及很多类似领域,会出现如下的场景:一台设备(可以视为中心设备)和很多台电子设备(可以视为边缘设备)通信连接。中心设备有计算任务要完成,边缘设备具有能够运行操作系统的处理器,执行一定的计算任务。在多数情况下,中心设备会将全部或部分计算任务分配给一些边缘设备,由边缘设备完成计算。
通常,边缘设备的计算能力并不强,而且边缘设备还有自身的任务需要处理,例如,边缘设备操作系统上的应用运行,会占用边缘设备的计算资源,边缘设备往往只能利用剩余的计算资源来完成中心设备分配的计算任务。如果中心设备的分配不合理,很可能导致边缘设备无法按时完成中心设备分配给自己的计算任务。
发明内容
本申请提供了一种任务分配方法、装置、电子设备及计算机可读存储介质,可以提高子任务被边缘设备计算完成的概率,使得任务分配更合理。所述技术方案包括:
第一方面,本申请实施例提供了一种任务分配方法,该方法包括:根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位,所述子任务由一个计算任务分解得到;在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位;从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位;将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备。
第二方面,本申请实施例提供了一种任务分配装置,该装置包括:预估运行时间确定模块,用于根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位,所述子任务由一个计算任务分解得到;随机时间确定模块,用于在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位;参考运行时间确定模块,用于从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位;任务分配模块,用于将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备。
第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器调用执行时实现如上述第一方面所述的方法。
本申请实施例提供的一种任务分配方法、装置、电子设备及计算机可读存储介质,通过根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位,其中,子任务由一个计算任务分解得到,然后在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位,接着从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位,最后将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。由此,本申请实施例可通过预估每个待分配设备完成子任务所需的完成时间,然后将子任务分配给完成时间最靠前的前几个待分配设备,从而能够实现更合理的任务分配,提高子任务可被待分配设备计算完成的概率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1示出了本申请一个实施例提供的任务分配方法的流程示意图。
图2示出了本申请一个示例性实施例提供的中心设备执行准备工作的流程示意图。
图3示出了本申请一个示例性实施例提供的图1中步骤S120的详细流程示意图。
图4示出了本申请另一个实施例提供的任务分配方法的流程示意图。
图5示出了本申请一个示例性实施例提供的图4中步骤S230的详细流程示意图。
图6示出了本申请一个示例性实施例提供的图4中步骤S270的详细流程示意图。
图7示出了本申请一个实施例提供的任务分配装置的模块框图。
图8示出了本申请实施例提供的电子设备的结构框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。本申请提供的技术方案主要用于合理估算边缘设备对子任务的运算能力,从而合理分配任务,能够以较大的概率保证子任务被边缘设备计算完成。
下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
下面将通过具体实施例对本申请实施例提供的任务分配方法、装置、电子设备及计算机可读存储介质进行详细说明。
请参阅图1,图1示出了本申请一个实施例提供的任务分配方法的流程示意图,本申请实施例可应用于第一设备,第一设备与多台第二设备通信连接,第一设备有计算任务要完成,第一设备可将计算任务分解为多个子任务,并分配给多个第二设备,即第二设备可接收由第一设备分配的子任务,在本申请实施例中,可记第二设备为待分配设备。其中,第一设备可以为但不限于为中心设备,待分配设备可以为但不限于为边缘设备。其中,待分配设备具有处理器如中央处理器(Central Processing Unit,CPU)或者功能弱于CPU的数字信号处理器(Digital Signal Processing,DSP)芯片,再或者其他能够运行操作系统、执行一定的计算任务的处理器。在很多情况下,第一设备会将全部或部分计算任务分配给一些待分配设备,由待分配设备完成计算。下面针对图1所示的流程进行详细的阐述,该任务分配方法可以包括以下步骤:
S110:根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位。
其中,子任务由一个计算任务分解得到,用于分配给与第一设备通信连接的多个待分配设备。
需要说明的是,本实施例提供的任务分配方法可以基于下述场景:(1)第一设备将计算任务分解为若干个子任务,子任务不再分解,即子任务只有计算完成与计算未完成两种结果;(2)第一设备将同一子任务分配给若干个待分配设备,只要有一个待分配设备完成计算,就视为该子任务已经完成,第一设备通知其他尚未完成计算的待分配设备舍弃相同的子任务;(3)第一设备分配的任务在待分配设备中的优先级较低,如果待分配设备有其他优先级更高的任务时,暂不运行第一设备分配的子任务。在一些实施方式中,待分配设备所处理的优先级更高的任务可以是随机产生的,其产生规律难以预测;(4)假设所有待分配设备执行第一设备分配的任务时以设定的时间单位(例如100毫秒,本申请实施例对此不作限定)为最小单位,在设定的时间单位内,待分配设备要么以固定比例的计算资源不间断地执行任务,要么完全不执行任务。
基于上述场景,第一设备将一个完整的计算任务拆份为若干个子任务,将子任务分配到待分配设备,若所有的子任务被计算完成则任务完成。
在一些实施例中,第一设备分配每一个子任务前,可进行准备工作,获取每个待分配设备的预估时间单位和预估时间占比,以用于确定每个待分配设备完成子任务所预计需要的预估运行时间单位,即在步骤S110之前,还可包括步骤S101至S103。具体地,请参阅图2,其示出了本申请一个示例性实施例提供的第一设备执行准备工作的流程示意图,其中:
S101:根据每个待分配设备的性能以及待分配设备对子任务的计算资源的分配比例,确定每个待分配设备完成子任务的预估时间单位。
第一设备根据不同待分配设备的处理器如CPU或DSP芯片等的性能以及计算资源的分配比例(例如分配总计算资源的25%),可估算每台待分配设备需要多少个时间单位能够完成子任务的计算,即每个待分配设备完成子任务所预计需要的时间单位,记为预估时间单位。
其中,上述性能可以是芯片的硬件性能,例如芯片的频率(包括主频、外频、倍频等)。
S102:根据每个待分配设备在一次历史总运行时间内所完成的子任务的数量以及对应的完成时间,确定每个待分配设备完成一个子任务所需的子任务时间。
第一设备可以根据每个待分配设备在一次历史总运行时间内所完成的子任务的数量以及完成该子任务对应的完成时间,确定每个待分配设备完成一个子任务所需的时间,记为子任务时间。
在一些实施例中,第一设备也可获取待分配设备在多次历史总运行时间内所完成的子任务的数量以及对应的完成时间,从而取对应的均值,作为该待分配设备在一次历史总运行时间内所完成的子任务的数量以及对应的完成时间,再进一步确定每个待分配设备完成一个子任务所需的子任务时间。
S103:根据每个待分配设备的子任务时间、已分配给待分配设备的子任务的子任务数量以及历史总运行时间,确定每个待分配设备能够用于完成新的子任务的时间占待分配设备的历史总运行时间的预估占比,作为预估时间占比。
在一些实施方式中,第一设备根据每个待分配设备完成一个子任务所需的子任务时间、已分配给待分配设备的子任务的子任务数量以及历史总运行时间,可通过“历史总运行时间-(已分配的子任务数量×子任务时间)”,确定每个待分配设备能够用于完成新的子任务的时间占待分配设备的历史总运行时间的预估占比,作为预估时间占比。
由此,第一设备可根据待分配设备的历史运行情况、已经承担的子任务数量等相关数据,估算每台待分配设备能用于计算子任务的时间相对总运行时间的占比,即预估时间占比。显然,如果一台待分配设备自身的任务较多或者已承担了较多的子任务,则其能用于计算新的子任务的时间占比会相对较低。
通过上述方法第一设备可完成任务分配前的准备工作,第一设备可根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位。
在一些实施方式中,针对每个待分配设备,第一设备可通过将该待分配设备对应的预估时间单位作为被除数,将该待分配设备对应的预估时间占比作为除数,对预估时间单位和预估时间单位进行除法运算,并根据得到的结果确定该待分配设备对应的预估运行时间单位。
在一些示例中,可将除法运算后得到的结果作为该待分配设备对应的预估运行时间单位;在另一些示例中,若除法运算后得到的结果非整数,可对该结果进行取整处理,并将取整后的结果作为该待分配设备对应的预估运行时间单位。其中,对该结果进行取整处理可以是对结果进行向上取整(即取大于该结果的最小整数),也可以是对结果进行向下取整(即取小于该结果的最小整数),还可以是按四舍五入进行取整,在此不作限定。
在一个具体示例中,以第一设备为中心设备,边缘设备A为其中一个与第一设备通信连接的待分配设备为例,边缘设备A的预估时间单位为30个时间单位,预估时间占比为30%,即边缘设备A完成子任务a预计需要30个时间单位,且边缘设备A用于计算子任务a的时间占边缘设备的总运行时间的30%,则边缘设备A完成该子任务a所预计需要的总时间单位(即预估运行时间单位)为30/30%=100个时间单位。
S120:在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位。
第一设备在预估运行时间单位对应的数值范围内,可以生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位。其中,第一设备所生成的随机数的数量可以根据实际需要确定,可以与待分配设备完成子任务所预计需要的预估时间单位的数量相同,也可以小于或大于预估时间单位的数量。
在一些实施方式中,可以对预估运行时间单位包含的所有时间单位从1开始连续递增编号,则预估运行时间单位对应的数值范围即为预估运行时间单位的编号范围。此时,第一设备可利用随机数生成算法,在预估运行时间单位的数值范围内生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于执行子任务计算的时间单位,即作为用于完成子任务的时间单位。
在另一些实施例中,步骤S120可包括步骤S121至S122,具体地,请参阅图3,其示出了本申请一个示例性实施例提供的图1中步骤S120的详细流程示意图,于本实施例中,步骤S120可包括:
S121:根据预估时间单位确定待生成的随机数的数量。
S122:在预估运行时间单位对应的数值范围内,生成与上述随机数的数量相同的随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位。
在一些实施方式中,可对预估运行时间单位包含的所有时间单位从1开始连续递增编号,则预估运行时间单位对应的数值范围即为预估运行时间单位的编号范围。此时,第一设备可利用随机数生成算法,在预估运行时间单位的数值范围内生成与待分配设备完成子任务所需的预估时间单位的数量相同的随机数,并将每个随机数对应的时间单位作为待分配设备用于执行子任务计算的时间单位,即作为用于完成子任务的时间单位。
在一个具体示例中,基于前述边缘设备A的示例,预估运行时间单位的数量为100、预估时间单位的数量为30,则中心设备可在1-100这100个数字中生成30个随机数,这30个随机数对应的时间单位即为边缘设备用于计算子任务的时间单位。
在一些实施例中,生成的随机数可以是整数;在其他一些可能的实施例中,生成的随机数也可以不是整数。
需要说明的是,为了便于计算,每个待分配设备完成子任务所需的时间单位即预估时间单位、预估时间占比一律取为整数,如果有小数则进行取整处理。可选地,取整处理可以是向上取整。
S130:从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位。
第一设备可从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的时间单位,记为参考运行时间单位。在一些实施方式中,可取多个随机数中数值最大的随机数对应的时间单位作为参考运行时间单位,也可取多个随机数的任意分位数对应的时间单位作为参考运行时间单位,在此不作限定。
在一些实施例中,假设所有待分配设备同时开始执行子任务,则每个待分配设备中的最后一个随机数可代表子任务的完成时间,显然最后一个随机数越大表示完成时间越晚。则步骤S130的具体实施方式可以为:将每个待分配设备对应的数值最大的随机数对应的时间单位确定为每个待分配设备完成子任务所需的参考运行时间单位。例如,边缘设备A生成的30个随机数中,数值最大的随机数为80,则边缘设备A完成子任务a所需的参考运行时间单位即为80个时间单位。
S140:将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。
可以理解的是,参考运行时间单位越短,则待分配设备计算子任务所需的时间越短,即有越高的概率可完成第一设备分配的子任务。故第一设备确定了每个待分配设备对应的参考运行时间单位后,可按参考运行时间单位由小至大的顺序对多个待分配设备进行排序,将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备,由多个目标设备进行子任务的计算,其中任一目标设备完成子任务的计算均可。
其中,指定数量可以根据实际需要确定,也可以是程序预设的,还可以是用户自定义的,在此不作限定。例如,指定数量可以是2、3、4、5等。
则在一个示例中,第一设备可选取2-5个完成时间最靠前的待分配设备作为目标设备,将子任务分配给这些目标设备,从而可以以较大的概率保证子任务被计算完成。
由此,本实施例提供的任务分配方法,通过根据每个待分配设备完成子任务的预估时间单位和每个待分配能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位,其中,子任务由一个计算任务分解得到,然后在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位,接着从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位,最后将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。由此,本申请实施例可通过预估每个待分配设备完成子任务所需的完成时间,然后将子任务分配给完成时间最靠前的前几个待分配设备,从而使得第一设备可合理分配子任务,提高子任务可被计算完成的概率。
在一些实施例中,第一设备还可通过调整实际执行子任务的待分配设备(即目标设备)的数量,可进一步优化任务分配的合理性,提高子任务被计算完成的概率,也不会增加过多的冗余让数量远高于实际需要的待分配设备被分配到子任务,浪费待分配设备的资源。具体地,请参阅图4,其示出了本申请另一个实施例提供的任务分配方法的流程示意图,于本实施例中,该方法可包括:
S210:根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位。
S220:在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位。
S230:根据多个随机数的数值大小,从多个随机数中确定多个目标随机数。
第一设备将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位后,可根据多个随机数的数值大小,从多个随机数中确定多个目标随机数,以替换多个目标随机数。
在一些实施例中,可以将多个随机数按数值大小排序,并在前预设数量个随机数中确定多个目标随机数,也可以在中间预设数量个随机数中确定多个目标随机数,还可以在后预设数量个随机数中确定多个目标随机数,在此不作限定。进一步地,确定多个目标随机数的方式可以是按比例确定,比例可以是20%、50%、100%等,本实施例对目标随机数的数量也不作限定。另外,在一些实施方式中,确定多个目标随机数的方式可以是随机选取,在此不作限定。
在另一些实施例中,步骤S230也可具体包括步骤S231至S232,具体地,请参阅图5,其示出了本申请一个示例性实施例提供的图4中步骤S230的详细流程示意图,于本实施例中,步骤S230可包括:
S231:将预估运行时间单位对应的数值范围拆分为多个子数值范围。
S232:从多个子数值范围中确定目标子数值范围,并从落在目标子数值范围内的多个随机数中,选取预设比例的多个随机数作为候选随机数。
S233:将除候选随机数之外的其他随机数作为待更新的目标随机数。
第一设备可以将预估运行时间单位对应的数值范围拆分为多个子数值范围,例如,可以拆分为2-4个子数值范围,使得落在每个子数值范围内的随机数的数量相同或者近似相同(例如,不同子数值范围内所包含的随机数的数量之间的差值不超过2,可以视为近似相同)。然后,从多个子数值范围中确定目标子数值范围,例如可将数值最靠后的子数值范围作为目标子数值范围,则不考虑落在目标子数值范围内的随机数,并在落在目标子数值范围内的多个随机数中,选取预设比例的多个随机数作为多个候选随机数。其中,预设比例可根据实际需要确定,例如可为30%-50%中任一比例,在此不作限定。
进一步地,第一设备可将除候选随机数之外的其他随机数作为待更新的目标随机数。
S240:生成与多个目标随机数的数量相同的多个新的随机数,并将多个目标随机数替换为多个新的随机数。
S250:将多个随机数中除多个目标随机数之外的其它随机数与多个新的随机数一起作为更新后的多个随机数。
在前述步骤S231至S233的实施例中,步骤S240-S250的具体实施方式可以为:在预估运行时间单位对应的数值范围内,生成与多个目标随机数的数量相同的多个新的随机数,并将多个目标随机数替换为多个新的随机数,将多个随机数中除多个目标随机数之外的其它随机数与多个新的随机数一起作为更新后的多个随机数。由此可保持预设比例的随机数不变,而对剩下的随机数即目标随机数进行重新生成,相当于将多个目标随机数从原来的多个随机数中移出,并将重新生成的与多个目标随机数的数量相同的多个新的随机数作为补充,加入原来的多个随机数中,与原来的多个随机数中除多个目标随机数之外的其它随机数一齐组成更新后的多个随机数,由此实现将多个目标随机数替换为多个新的随机数,得到更新后的多个随机数。在一种实施方式中,可以在预估运行时间单位对应的数值范围内,将候选随机数对应的数值排除掉,在剩下的数值中生成新的随机数。
另外,在符合预设比例的前提下,具体选取哪些随机数保持不变,哪些随机数作为目标随机数要重新生成,可以随机选取,也可按其他任意方式选取,本实施例对此不作限定。
在一个具体示例中,基于前述边缘设备A的示例,预估运行时间单位的数值范围对应1-100,可拆分为1-50和51-100两个子数值范围,不考虑51-100这部分的子数值范围。如果原先1-50这个子数值范围内包含18个随机数,可保留其中50%的随机数即9个随机数不变,则随机选取9个随机数,保持该9个随机数不变,将其他的21个随机数作为待更新的目标随机数,另外,在1-100中剩余的91个数字中再生成21个随机数,替换掉目标随机数,得到更新后的30个随机数。由此,更新后的30个随机数中的最大随机数(记为处理后的最大随机数)的数值可能超过更新前的原30个随机数中的最大随机数(记为处理前的最大随机数)的数值。
S260:从更新后的多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位。
其中,步骤S260的具体实施方式可参考前述实施例中步骤S130的描述,在此不作赘述。
S270:将参考运行时间单位最短的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。
在一些实施例中,若将更新后的随机数中数值最大的随机数对应的时间单位确定为待分配设备完成子任务所需的参考运行时间单位,则由于更新后的多个随机数中的最大随机数(记为处理后的最大随机数)的数值可能超过更新前的原多个随机数中的最大随机数(记为处理前的最大随机数)的数值,而如果处理后的最大随机数超过了处理前的最大随机数,则表明对应的待分配设备计算子任务可能出现延迟。故在一个示例性实施例中,步骤S270可具体包括步骤S271至S277,如图6所示,其示出了本申请一个示例性实施例提供的图4中步骤S270的详细流程示意图,于本实施例中,步骤S270可包括:
S271:将参考运行时间单位最短的前指定数量个待分配设备作为目标设备。
其中,步骤S271的具体实施方式可参考前述实施例中步骤S140中相应部分的具体描述,在此不再赘述。
S272:分别对每个目标设备对应的多个随机数,按预设次数重复执行从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位的步骤。
第一设备针对已选取的目标设备,可分别对每个目标设备对应的多个随机数,按预设次数重复执行步骤S230至S260。其中,预设次数可以根据实际需要确定,例如可以为8次、10次等,在此不作限定。
S273:判断每次得到的新的最大随机数是否超过前一次得到的最大随机数,并累计超过次数。
将每次执行完步骤S230至S260或步骤S230至S250后得到更新后的多个随机数中的最大随机数,记为每次得到的新的最大随机数,则中心设备判断每次得到的新的最大随机数是否超过前一次得到的最大随机数,并累计超过次数,由此统计其中处理后的最大随机数超过了处理前的最大随机数的情况。
S274:若超过次数占预设次数的比例超过预设次数比例,计算每次得到的新的最大随机数超过前一次得到的最大随机数时,新的最大随机数与前一次得到的最大随机数的比例值,得到多个比例值。
在一些实施方式中,若超过次数占预设次数的比例未超过预设次数比例,即如果新的最大随机数超过前一次得到的最大随机数的次数未超过预设次数比例,可以忽略不计。也就是说,如果处理后的最大随机数超过了处理前的最大随机数的次数未超过设定的比例,可以忽略不计。
其中,预设次数比例可根据实际需要确定,例如可以为30%、40%等,在此不作限定。以30%为例,则10次中处理后的最大随机数超过了处理前的最大随机数的次数不超过3次,即超过次数不超过3次,可以忽略不计。
若超过次数占预设次数的比例超过预设次数比例,则计算每次得到的新的最大随机数超过前一次得到最大随机数时,“新的最大随机数/前一次得到的最大随机数”的比例值,显然该比例值大于1,由此可得到多个比例值,比例值的数量与超过次数相等。
对于每个待分配设备,第一设备按照预设次数重复执行步骤S230至S260或步骤S230至S250后,如果超过次数占预设次数的比例超过预设次数比例,则可得到每个待分配设备对应的多个比例值。
S275:将多个比例值的指定分位数作为目标比例值。
对于每个待分配设备,从多个比例值中确定目标比例值,并根据目标比例值和指定数量确定更新后的指定数量。其中,从多个比例值确定目标比例值的方式可以根据实际需要确定,例如,可以将多个比例值的均值、指定分位数作为目标比例值,本实施例对此不作限定。
在一些实施方式中,考虑到利用随机数生成算法可能生成数值过大或过小的随机数,使得均值失真,故可将多个比例值的指定分位数作为目标比例值。其中,指定分位数可以是75%分位数(则得到的目标比例值大于等于多个比例值中75%的比例值)、60%分位数(则得到的目标比例值大于等于多个比例值中60%的比例值)等,在此不作限定。
另外,在一些实施方式中,若多个比例值的数量不超过指定比例值数量,可取多个比例值中的最大值作为目标比例值;若多个比例值的数量超过指定比例值数量,则可将多个比例值的指定分位数作为目标比例值。其中,指定比例值数量可以为大于或等于3个的正整数,以使得在多个比例值的数量超过指定比例值数量时,可正常取多个比例值的指定分位数。
S276:根据目标比例值和指定数量确定更新后的指定数量。
第一设备可根据确定好的目标比例值和指定数量确定更新后的指定数量,即可确定最终要把子任务分配给多少个待分配设备。在执行步骤S271至S275之后,第一设备可得到与已选取的目标待分配设备相对应的多个比例值。根据目标比例值和指定数量,可通过对指定数量和目标比例值作乘法运算得到更新后的指定数量,即指定数量×目标比例值=更新后的指定数量。在一些示例中,若指定数量×目标比例值得到的结果不是整数,可对结果作取整处理,例如可向上取整。由此可调整被分配子任务的待分配设备的数量,保证第一设备分配子任务的待分配设备的数量是一个较合理的数值,既能以较大的概率保证子任务计算完成,也不会增加过多的冗余让数量远高于实际需要的待分配设备被分配子任务,浪费待分配设备的资源。
需要说明的是,由于在一些实施方式中,若一个待分配设备的超过次数占预设次数的比例未超过预设次数比例,可以忽略不计,则可能存在部分待分配设备没有对应的比例值,如果所有待分配设备都没有对应的比例值,则可不执行步骤S276。
另外,在一些实施例中,根据实际需要,也可在步骤S276之后,再对步骤S271至S276重复执行若干次,重复过程中,待分配设备的数量可调整为“上次步骤S276中得到的更新后的指定数量×本次步骤S276中所取的目标比例值”。在一些示例中,若调整得到的结果不是整数,可对结果作取整处理,例如可向上取整。
S276:将参考运行时间单位最短的前更新后的指定数量个待分配设备作为更新后的目标设备,并将子任务分配给更新后的目标设备。
需要说明的是,本实施例中未详细描述的部分可参考前述实施例的相应部分,在此不再赘述。
由此,本实施例提供的任务分配方法,在前述实施例的基础上,还可通过两次或多次生成随机数的方式,保证第一设备分配子任务的待分配设备的数量是一个较为合理的数值,既能以较大的概率保证子任务计算完成,也不会增加过多的冗余让数量远高于实际需要的待分配设备被分配子任务,浪费待分配设备的资源。
请参照图7,本申请一实施例提供的一种任务分配装置的模块框图,该任务分配装置700可应用于与多台设备通信连接的电子设备,电子设备可以为服务器,也可以为如手机、个人数字助理、平板电脑、笔记本电脑、计算机等终端,该任务分配装置700具体可以包括:预估运行时间确定模块710、随机时间确定模块720、参考运行时间确定模块730以及任务分配模块740,其中:
预估运行时间确定模块710,用于根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位,所述子任务由一个计算任务分解得到;
随机时间确定模块720,用于在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位;
参考运行时间确定模块730,用于从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位;
任务分配模块740,用于将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备。
进一步地,随机时间确定模块720包括:数量确定子模块以及随机数生成子模块,其中:
数量确定子模块,用于根据所述预估时间单位确定待生成的随机数的数量;
随机数生成子模块,用于在所述预估运行时间单位对应的数值范围内,生成与所述随机数的数量相同的随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位。
进一步地,参考运行时间确定模块730包括:参考时间确定子模块,用于将每个待分配设备对应的数值最大的随机数对应的时间单位确定为每个所述待分配设备完成子任务所需的参考运行时间单位。
进一步地,所述根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位之前,任务分配装置700还包括:预估时间确定模块、子任务时间确定模块以及预估时间占比确定模块,其中:
预估时间确定模块,用于根据每个待分配设备的性能以及所述待分配设备对子任务的计算资源的分配比例,确定每个所述待分配设备完成子任务的预估时间单位;
子任务时间确定模块,用于根据每个所述待分配设备在一次历史总运行时间内所完成的子任务的数量以及对应的完成时间,确定每个所述待分配设备完成一个子任务所需的子任务时间;
预估时间占比确定模块,用于根据每个所述待分配设备的所述子任务时间、已分配给所述待分配设备的子任务的子任务数量以及所述历史总运行时间,确定每个所述待分配设备能够用于完成新的子任务的时间占所述待分配设备的所述历史总运行时间的预估占比,作为所述预估时间占比。
进一步地,参考运行时间确定模块730包括:目标随机数确定子模块、新的随机数生成子模块、随机数更新子模块以及参考运行时间确定子模块,其中:
目标随机数确定子模块,用于根据所述多个随机数的数值大小,从所述多个随机数中确定多个目标随机数;
新的随机数生成子模块,用于生成与所述多个目标随机数的数量相同的多个新的随机数,并将所述多个目标随机数替换为所述多个新的随机数;
随机数更新子模块,用于将所述多个随机数中除所述多个目标随机数之外的其它随机数与所述多个新的随机数一起作为更新后的多个随机数;
参考运行时间确定子模块,用于从所述更新后的多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位。
进一步地,目标随机数确定子模块包括:数值范围拆分单元、候选随机数选取单元以及目标随机数确定单元,其中:
数值范围拆分单元,用于将所述预估运行时间单位对应的数值范围拆分为多个子数值范围;
候选随机数选取单元,用于从所述多个子数值范围中确定目标子数值范围,并从落在所述目标子数值范围内的多个随机数中,选取预设比例的多个随机数作为候选随机数;
目标随机数确定单元,用于将除所述候选随机数之外的其他随机数作为目标随机数。
进一步地,任务分配模块740包括:目标设备确定子模块、重复执行子模块、次数累计子模块、比例值获取子模块、目标比例值确定子模块、指定数量更新子模块以及目标设备更新子模块,其中:
目标设备确定子模块,用于将参考运行时间单位最小的前指定数量个待分配设备作为目标设备;
重复执行子模块,用于分别对每个所述目标设备对应的多个随机数,按预设次数重复执行所述从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位的步骤;
次数累计子模块,用于判断每次得到的新的最大随机数是否超过前一次得到的最大随机数,并累计超过次数;
比例值获取子模块,用于若超过次数占所述预设次数的比例超过预设次数比例,计算每次得到的新的最大随机数超过前一次得到的最大随机数时,新的最大随机数与前一次得到的最大随机数的比例值,得到多个比例值;
目标比例值确定子模块,用于将所述多个比例值的指定分位数作为目标比例值;
指定数量更新子模块,用于根据所述目标比例值和所述指定数量确定更新后的指定数量;
目标设备更新子模块,用于将参考运行时间单位最小的前所述更新后的指定数量个待分配设备作为更新后的目标设备,并将子任务分配给所述更新后的目标设备。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:通过根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位,其中,子任务由一个计算任务分解得到,然后在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位,接着从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位,最后将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。由此,本申请实施例可通过预估每个待分配设备完成子任务所需的完成时间,然后将子任务分配给完成时间最靠前的前几个待分配设备,从而能够实现更合理的任务分配,提高子任务可被计算完成的概率。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备800包括:处理器801和存储器803。其中,处理器801和存储器803相连,如通过总线802相连。可选地,电子设备800还可以包括收发器804。需要说明的是,实际应用中收发器804不限于一个,该电子设备800的结构并不构成对本申请实施例的限定。
处理器801可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器801也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线802可包括一通路,在上述组件之间传送信息。总线802可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线802可以分为地址总线、数据总线、控制总线等。为便于表示,在图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储终端,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储终端,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscReadOnly Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储终端、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器803用于存储执行本申请方案的计算机程序代码,并由处理器801来控制执行。处理器801用于执行存储器803中存储的计算机程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:服务器、台式机、笔记本电脑等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例通过根据每个待分配设备完成子任务的预估时间单位和每个待分配设备能够用于完成子任务的时间占待分配设备的总运行时间的预估时间占比,确定每个待分配设备完成子任务的预估运行时间单位,其中,子任务由一个计算任务分解得到,然后在预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为待分配设备用于完成子任务的时间单位,接着从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为待分配设备完成子任务所需的参考运行时间单位,最后将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给目标设备。由此,本申请实施例可通过预估每个待分配设备完成子任务所需的完成时间,然后将子任务分配给完成时间最靠前的前几个待分配设备,从而能够实现更合理的任务分配,提高子任务可被计算完成的概率。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种任务分配方法,其特征在于,所述方法包括:
根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位,所述子任务由一个计算任务分解得到;其中,所述预估时间单位表征每个待分配设备完成子任务所预计需要的时间单位;所述预估运行时间单位由所述预估时间单位和所述预估时间占比进行运算得到;所述总运行时间为所述待分配设备完成所有子任务的运行时间;
在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位;其中,所述预估运行时间单位对应的数值范围通过对所述预估运行时间单位包含的所有时间单位递增编号得到;所述随机数数量与所述数值范围内的预估运行时间单位数量相同;
从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位;
将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备。
2.根据权利要求1所述的方法,其特征在于,所述在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位,包括:
根据所述预估时间单位确定待生成的随机数的数量;
在所述预估运行时间单位对应的数值范围内,生成与所述随机数的数量相同的随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位。
3.根据权利要求1或2所述的方法,其特征在于,所述从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位,包括:
将每个所述待分配设备对应的数值最大的随机数对应的时间单位确定为每个所述待分配设备完成子任务所需的参考运行时间单位。
4.根据权利要求1所述的方法,其特征在于,所述根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位之前,所述方法还包括:
根据每个所述待分配设备的性能以及所述待分配设备对子任务的计算资源的分配比例,确定每个所述待分配设备完成子任务的预估时间单位;
根据每个所述待分配设备在一次历史总运行时间内所完成的子任务的数量以及对应的完成时间,确定每个所述待分配设备完成一个子任务所需的子任务时间;
根据每个所述待分配设备的所述子任务时间、已分配给所述待分配设备的子任务的子任务数量以及所述历史总运行时间,确定每个所述待分配设备能够用于完成新的子任务的时间占所述待分配设备的所述历史总运行时间的预估占比,作为所述预估时间占比。
5.根据权利要求1所述的方法,其特征在于,所述从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位,包括:
根据所述多个随机数的数值大小,从所述多个随机数中确定多个目标随机数;
生成与所述多个目标随机数的数量相同的多个新的随机数,并将所述多个目标随机数替换为所述多个新的随机数;
将所述多个随机数中除所述多个目标随机数之外的其它随机数与所述多个新的随机数一起作为更新后的多个随机数;
从所述更新后的多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位。
6.根据权利要求5所述的方法,其特征在于,所述根据所述多个随机数的数值大小,从所述多个随机数中确定多个目标随机数,包括:
将所述预估运行时间单位对应的数值范围拆分为多个子数值范围;
从所述多个子数值范围中确定目标子数值范围,并从落在所述目标子数值范围内的多个随机数中,选取预设比例的多个随机数作为候选随机数;
将除所述候选随机数之外的其他随机数作为目标随机数。
7.根据权利要求6所述的方法,其特征在于,所述将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备,包括:
将参考运行时间单位最小的前指定数量个待分配设备作为目标设备;
分别对每个所述目标设备对应的多个随机数,按预设次数重复执行所述从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位的步骤;
判断每次得到的新的最大随机数是否超过前一次得到的最大随机数,并累计超过次数;
若超过次数占所述预设次数的比例超过预设次数比例,计算每次得到的新的最大随机数超过前一次得到的最大随机数时,新的最大随机数与前一次得到的最大随机数的比例值,得到多个比例值;
将所述多个比例值的指定分位数作为目标比例值;
根据所述目标比例值和所述指定数量确定更新后的指定数量;
将参考运行时间单位最小的前所述更新后的指定数量个待分配设备作为更新后的目标设备,并将子任务分配给所述更新后的目标设备。
8.一种任务分配装置,其特征在于,所述装置包括:
预估运行时间确定模块,用于根据每个待分配设备完成子任务的预估时间单位和每个所述待分配设备能够用于完成子任务的时间占所述待分配设备的总运行时间的预估时间占比,确定每个所述待分配设备完成子任务的预估运行时间单位,所述子任务由一个计算任务分解得到;其中,所述预估时间单位表征每个待分配设备完成子任务所预计需要的时间单位;所述预估运行时间单位由所述预估时间单位和所述预估时间占比进行运算得到;所述总运行时间为所述待分配设备完成所有子任务的运行时间;
随机时间确定模块,用于在所述预估运行时间单位对应的数值范围内,生成多个随机数,并将每个随机数对应的时间单位作为所述待分配设备用于完成子任务的时间单位;其中,所述预估运行时间单位对应的数值范围通过对所述预估运行时间单位包含的所有时间单位递增编号得到;所述随机数数量与所述数值范围内的预估运行时间单位数量相同;
参考运行时间确定模块,用于从多个随机数对应的多个时间单位中确定一个随机数对应的时间单位作为所述待分配设备完成子任务所需的参考运行时间单位;
任务分配模块,用于将参考运行时间单位最小的前指定数量个待分配设备作为目标设备,并将子任务分配给所述目标设备。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行如权利要求1-7中任一项所述的任务分配方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器调用执行如权利要求1-7中任一项所述的任务分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010906291.6A CN112000485B (zh) | 2020-09-01 | 2020-09-01 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010906291.6A CN112000485B (zh) | 2020-09-01 | 2020-09-01 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000485A CN112000485A (zh) | 2020-11-27 |
CN112000485B true CN112000485B (zh) | 2024-01-12 |
Family
ID=73465575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010906291.6A Active CN112000485B (zh) | 2020-09-01 | 2020-09-01 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000485B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954930B (zh) * | 2023-09-20 | 2023-11-28 | 成都拓林思软件有限公司 | 一种基于边缘计算的操作系统数据处理方法 |
CN117806807B (zh) * | 2024-02-29 | 2024-05-17 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103713949A (zh) * | 2012-10-09 | 2014-04-09 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN104915557A (zh) * | 2015-06-04 | 2015-09-16 | 中山大学 | 一种基于双目标蚁群算法的云任务分配方法 |
CN105577572A (zh) * | 2014-10-11 | 2016-05-11 | 南京理工大学 | 基于预算限制自组织云任务执行时间最短化资源分配方法 |
WO2017133351A1 (zh) * | 2016-02-05 | 2017-08-10 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN108415760A (zh) * | 2018-01-29 | 2018-08-17 | 东南大学 | 一种基于移动机会网络的群智计算在线任务分配方法 |
CN109298940A (zh) * | 2018-09-28 | 2019-02-01 | 考拉征信服务有限公司 | 计算任务分配方法、装置、电子设备及计算机存储介质 |
CN109657952A (zh) * | 2018-12-07 | 2019-04-19 | 万翼科技有限公司 | 客户的分配方法、装置和存储介质 |
CN111107075A (zh) * | 2019-12-13 | 2020-05-05 | 中国工商银行股份有限公司 | 请求响应方法、装置、电子设备和计算机可读存储介质 |
CN111260106A (zh) * | 2018-11-30 | 2020-06-09 | 顺丰科技有限公司 | 运输任务分配方法、装置、设备及其存储介质 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010193B2 (en) * | 2017-04-17 | 2021-05-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
-
2020
- 2020-09-01 CN CN202010906291.6A patent/CN112000485B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103713949A (zh) * | 2012-10-09 | 2014-04-09 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN105577572A (zh) * | 2014-10-11 | 2016-05-11 | 南京理工大学 | 基于预算限制自组织云任务执行时间最短化资源分配方法 |
CN104915557A (zh) * | 2015-06-04 | 2015-09-16 | 中山大学 | 一种基于双目标蚁群算法的云任务分配方法 |
WO2017133351A1 (zh) * | 2016-02-05 | 2017-08-10 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN108415760A (zh) * | 2018-01-29 | 2018-08-17 | 东南大学 | 一种基于移动机会网络的群智计算在线任务分配方法 |
CN109298940A (zh) * | 2018-09-28 | 2019-02-01 | 考拉征信服务有限公司 | 计算任务分配方法、装置、电子设备及计算机存储介质 |
CN111260106A (zh) * | 2018-11-30 | 2020-06-09 | 顺丰科技有限公司 | 运输任务分配方法、装置、设备及其存储介质 |
CN109657952A (zh) * | 2018-12-07 | 2019-04-19 | 万翼科技有限公司 | 客户的分配方法、装置和存储介质 |
CN111107075A (zh) * | 2019-12-13 | 2020-05-05 | 中国工商银行股份有限公司 | 请求响应方法、装置、电子设备和计算机可读存储介质 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
Jing Zhang ; Cheng Chen ; Huan-ke Zheng ; Qing-yi Luo."A High Priority Random Task Fuzzy Scheduling Algorithm for CPS".《 2019 Chinese Control And Decision Conference (CCDC)》.2019,全文. * |
分布式实时系统中的预测调度算法;许建峰, 朱晴波, 胡宁, 谢立;软件学报(第01期);全文 * |
异构多核处理器的任务调度算法;蒋建春;汪同庆;;计算机工程与应用(第33期);全文 * |
时空众包环境下时效均衡的在线任务分配算法;张兴盛;余敦辉;张万山;王晨旭;;计算机应用(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112000485A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190080244A1 (en) | Scheduling method and system based on improved variable neighborhood search and differential evolution algorithm | |
CN112000485B (zh) | 任务分配方法、装置、电子设备及计算机可读存储介质 | |
CN110852882B (zh) | 用于区块链网络的分组共识方法、装置、设备和介质 | |
CN113159190B (zh) | 联邦激励分配方法、装置、计算机设备及存储介质 | |
CN111245732A (zh) | 一种流量控制方法、装置及设备 | |
CN112286658A (zh) | 一种集群任务调度方法、装置、计算机设备及存储介质 | |
CN111124644B (zh) | 任务调度资源的确定方法、装置及系统 | |
CN114429195A (zh) | 混合专家模型训练的性能优化方法和装置 | |
CN113703975A (zh) | 模型分配方法、装置、电子设备及计算机可读存储介质 | |
CN109445863B (zh) | 一种基于fpga的数据处理方法、装置、设备及介质 | |
CN109032766A (zh) | 一种事务处理方法、装置及电子设备 | |
CN110413393B (zh) | 集群资源管理方法、装置、计算机集群及可读存储介质 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
CN111338803A (zh) | 一种线程处理方法和装置 | |
CN115421926A (zh) | 任务调度方法、分布式系统、电子设备及存储介质 | |
CN115794421A (zh) | 资源分配方法、装置和电子设备 | |
CN111475277A (zh) | 一种资源分配方法、系统、设备及机器可读存储介质 | |
CN109901931B (zh) | 一种归约函数数量确定方法、装置及系统 | |
CN108090029B (zh) | 矩阵求逆中的算粒调度装置 | |
CN111831095A (zh) | 一种物理机上架密度优化方法、装置及设备 | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
CN116566992B (zh) | 边缘计算的动态协同方法、装置、计算机设备和存储介质 | |
CN116382925B (zh) | 一种任务队列的动态调整方法、装置及存储介质 | |
CN115951988B (zh) | 一种作业调度方法、计算设备及存储介质 | |
CN117314067A (zh) | 工单分配方法、装置、设备、存储介质和程序产品 |
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 |