CN110247979A - 一种调度方案确定方法、装置及电子设备 - Google Patents
一种调度方案确定方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110247979A CN110247979A CN201910544325.9A CN201910544325A CN110247979A CN 110247979 A CN110247979 A CN 110247979A CN 201910544325 A CN201910544325 A CN 201910544325A CN 110247979 A CN110247979 A CN 110247979A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- computing resource
- scheduling scheme
- detected
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种调度方案确定方法、装置及电子设备,包括:获取需要进行检测的调度方案,作为待检测调度方案,并且计算待检测调度方案的任务处理成本和任务处理时长,任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长,以及若待检测调度方案的任务处理成本和任务处理时长是否满足预设条件,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案,由于只将任务处理成本和任务处理时长满足预设条件的调度方案作为目标调度方案,使得该调度方案在减少任务处理成本的同时,控制任务处理时间,避免任务处理时间过高。
Description
技术领域
本发明涉及任务调度技术领域,特别是涉及一种调度方案确定方法、装置及电子设备。
背景技术
云计算(Cloud Computing)是一种将大量存储、服务和计算资源通过互联网进行连接成资源池,以应对和解决大规模的科学问题的计算模式,而工作流是为了实现某种标准或业务目标而进行的自动过程。
云工作流是工作流技术在云计算环境下的新应用模式,云工作流中任务的调度工作主要是将云工作流的各任务分配到云计算资源池中的各虚拟或物理资源上进行处理。一个合理的云工作流调度方案可以使云服务商在更小的时间、硬件成本下获得更大的收益。现有技术中,往往都是基于最大限度地减少单个工作流程的执行成本来确定调度方案。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
现有技术中,在确定调度方案时,只考虑单个工作流程的执行成本,而忽略了工作流执行时间,使得现有技术确定的调度方案中,工作流执行时间可能非常高。
发明内容
本发明实施例的目的在于提供一种调度方案确定方法,以确定一种减少任务处理成本的同时,控制任务处理时间,避免任务处理时间过高的调度方案的。具体技术方案如下:
本发明实施例提供一种调度方案确定方法,包括:
获取需要进行检测的调度方案,作为待检测调度方案,所述待检测调度方案为根据待调度的任务集合确定的,所述待检测调度方案用于为所述任务集合中每一个任务分配处理该任务的计算资源;
针对所述任务集合中每一个任务,获取所述待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
针对所述任务集合中每一个任务,若该任务存在父任务,且所述待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,所述依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到所述依赖数据后才能够被处理;
按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,所述任务处理成本表示完成处理所述任务集合中各任务所需的成本,所述任务处理时长表示完成处理所述任务集合中各任务所需的时长;
若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
进一步的,采用如下步骤根据待调度的任务集合确定待检测调度方案:
获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息;
基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案。
进一步的,所述基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案,包括:
基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定所述粒子群算法的搜索空间,并将调度方案中各任务与处理各任务的计算资源之间的对应关系映射为所述搜索空间中粒子的位置坐标;
在所述搜索空间中,根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子;
根据所述迁移后粒子的位置坐标,还原所述迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案。
进一步的,所述按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,包括:
针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;根据所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长;
针对每一个计算资源,按照该计算资源的单位时间成本和第二处理时长,确定该计算资源完成处理该多个任务所需的处理成本;
将所述需要处理任务的多个计算资源的处理成本相加,得到所述待检测调度方案的任务处理成本;
按照所所述任务集合中各任务的第一处理时长和所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定所述待检测调度方案的任务处理时长。
进一步的,所述针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;根据所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长,包括:
针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据所述任务集合中各任务的第一处理时长、所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间;
从确定的该多个任务的处理开始时间和完成处理时间中,确定最大的完成处理时间与最小的处理开始时间;
计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长;
所述按照所述计算资源集合中各计算资源处理所述任务集合中每一个任务所需的第一处理时长和所述任务集合中各任务之间进行数据传输所需的传输时间确定完成处理所述任务集合中各任务的任务处理时长,包括:
在所述任务集合中的各任务的开始处理时间和完成处理时间中,计算最大的完成处理时间与最小的开始处理时间之间的差值,作为完成处理所述任务集合中各任务的任务处理时长。
进一步的,所述针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据所述任务集合中各任务的第一处理时长、所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间,包括:
针对该多个任务中不存在父任务的任务,若该任务之前不存在其他任务,则确定该任务的开始处理时间为处理该任务的计算资源的开始处理时间;若该任务之前存在其他任务,则确定该任务的开始处理时间为该任务前一任务的完成处理时间;将该任务的开始处理时间与该任务的第一处理时间相加得到该任务的完成处理时间;
针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,确定该任务的开始处理时间为该任务前一任务的完成处理时间,以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间;
针对所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间;若该任务之前不存在其他任务,则该任务的开始处理时间为该任务的依赖数据接收完成时间,以及若该任务之前存在其他任务,则将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间;以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
进一步的,所述若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案,包括:
若所述待检测调度方案的任务处理成本小于第一预设阈值并且所述任务处理时长小于第二预设阈值,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
本发明实施例还提供一种调度方案确定装置,所述装置包括:
调度方案获取模块,用于获取需要进行检测的调度方案,作为待检测调度方案,所述待检测调度方案为根据待调度的任务集合确定的,所述待检测调度方案用于为所述任务集合中每一个任务分配处理该任务的计算资源;
成本和时长获取模块,用于针对所述任务集合中每一个任务,获取所述待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
传输时长获取模块,用于针对所述任务集合中每一个任务,若该任务存在父任务,且所述待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,所述依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到所述依赖数据后才能够被处理;
成本和时长计算模块,用于按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,所述任务处理成本表示完成处理所述任务集合中各任务所需的成本,所述任务处理时长表示完成处理所述任务集合中各任务所需的时长;
调度方案确定模块,用于若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
进一步的,所述装置还包括:
关系和信息获取模块,用于获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息;
待检测调度方案确定模块,用于基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案。
进一步的,所述待检测调度方案确定模块,具体用于:基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定所述粒子群算法的搜索空间,并将调度方案中各任务与处理各任务的计算资源之间的对应关系映射为所述搜索空间中粒子的位置坐标,并且在所述搜索空间中,根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子,以及根据所述迁移后粒子的位置坐标,还原所述迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案。
进一步的,所述成本和时长计算模块,具体用于针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;根据所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长,并且针对每一个计算资源,按照该计算资源的单位时间成本和第二处理时长,确定该计算资源完成处理该多个任务所需的处理成本,以及将所述需要处理任务的多个计算资源的处理成本相加,得到所述待检测调度方案的任务处理成本,以及按照所所述任务集合中各任务的第一处理时长和所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定所述待检测调度方案的任务处理时长。
进一步的,所述成本和时长计算模块,具体用于针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据所述任务集合中各任务的第一处理时长、所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间,并且从确定的该多个任务的处理开始时间和完成处理时间中,确定最大的完成处理时间与最小的处理开始时间,以及计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长,以及在所述任务集合中的各任务的开始处理时间和完成处理时间中,计算最大的完成处理时间与最小的开始处理时间之间的差值,作为完成处理所述任务集合中各任务的任务处理时长。
进一步的,所述成本和时长计算模块,具体用于针对该多个任务中不存在父任务的任务,若该任务之前不存在其他任务,则确定该任务的开始处理时间为处理该任务的计算资源的开始处理时间;若该任务之前存在其他任务,则确定该任务的开始处理时间为该任务前一任务的完成处理时间;将该任务的开始处理时间与该任务的第一处理时间相加得到该任务的完成处理时间,并且针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,确定该任务的开始处理时间为该任务前一任务的完成处理时间,以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间,以及针对所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间;若该任务之前不存在其他任务,则该任务的开始处理时间为该任务的依赖数据接收完成时间,以及若该任务之前存在其他任务,则将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间;以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
进一步的,所述调度方案确定模块,具体用于若所述待检测调度方案的任务处理成本小于第一预设阈值并且所述任务处理时长小于第二预设阈值,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一调度方案确定方法的步骤。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一调度方案确定方法的步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一调度方案确定方法。
本发明实施例提供的一种调度方案确定方法、装置及电子设备,方案中,获取需要进行检测的调度方案,作为待检测调度方案,待检测调度方案为根据待调度的任务集合确定的,待检测调度方案用于为任务集合中每一个任务分配处理该任务的计算资源,并且针对任务集合中每一个任务,获取待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长,以及针对任务集合中每一个任务,若该任务存在父任务,且待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到依赖数据后才能够被处理,以及按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算待检测调度方案的任务处理成本和任务处理时长,任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长,以及若待检测调度方案的任务处理成本和任务处理时长是否满足预设条件,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案,由于只将任务处理成本和任务处理时长满足预设条件的调度方案作为目标调度方案,使得该调度方案在减少任务处理成本的同时,控制任务处理时间,避免任务处理时间过高的。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一个实施例提供的调度方案确定方法的流程图;
图2为本发明一个实施例提供的待检测调度方案确定方法的流程图;
图3为本发明一个实施例提供的任务处理成本和任务处理时长确定方法的流程图;
图4为本发明一个实施例提供的第二计算资源计算方法的流程图;
图5为本发明一个实施例提供的调度方案确定方法的流程图;
图6为本发明一个实施例提供的调度方案确定装置的结构示意图;
图7为本发明一个实施例提供的待检测调度方案确定装置的结构示意图;
图8为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了给出确定一种减少任务处理成本的同时,控制任务处理时间,避免任务处理时间过高的调度方案的实现方案,本发明实施例提供了一种调度方案确定方法、装置及电子设备,以下结合说明书附图对本发明的实施例进行说明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的一个实施例中,提供一种调度方案确定方法,如图1所示,该方法包括以下步骤:
S101:获取需要进行检测的调度方案,作为待检测调度方案,待检测调度方案为根据待调度的任务集合确定的,待检测调度方案用于为任务集合中每一个任务分配处理该任务的计算资源。
本步骤中,待调度的任务集合可以是云工作流中各任务的集合,例如,云工作流中可以包括9个需要处理的任务,可以用T1-T9表示。
计算资源可以提供计算能力的电脑、服务器或在服务器中运行的虚拟机等,在实际应用过程中,计算资源的数量可以是固定的,例如,某一云服务可以具有三条计算资源,可以用R1-R3表示,在一个实施例中,云服务中的计算资源数量也可以是不固定的,例如,可以在运行的过程中增加新的计算资源,或者减少了新的计算资源。
在一个实施例中,待检测调度方案用于为任务集合中每一个任务分配处理该任务的计算资源,例如,对于包含三个任务的云工作流,t1-t3,对应处理该云工作流任务的计算资源为r1-r3,则一种可能的待调度方案为,计算资源r1处理任务t1,计算资源r2处理任务t2,计算资源r3处理任务t3,可以进一步的用{r1→t1,r2→t2,r3→t3}或{t1→r1,t2→r2,t3→r3}表示该待检测的调度方案。
S102:针对任务集合中每一个任务,获取待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长。
本步骤中,计算资源的单位时间成本可以是租用计算资源单位时间花费的成本,例如可以是计算资源的价格,或者消耗的其他成本,而第一处理时长可以为待检测调度方案为该任务分配的计算资源完成该任务的处理需要花费的时间长短,例如,计算资源r1处理任务t1需要花费的时间为0.1s。
在一个实施例中,可以提前获取预先设置的各计算资源的价格,以及获取各计算资源处理各任务所需的第一处理时长,示例性的,任务集合中包含i各任务,分别用T1-Ti表示,可用的计算资源为j个,分别用R1-Rj表示,则可以建立第一处理时长矩阵:[T×R],任意[Ti,Rj]处的数据表示计算资源Rj完成任务Ti处理所需的第一处理时长。通过预先建立第一处理时长矩阵可以方便的针对任务集合中每一个任务,获取待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长。
S103:针对任务集合中每一个任务,若该任务存在父任务,且待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到依赖数据后才能够被处理。
本步骤中,对于任务集合中的任务来说,任务处理的顺序可能不是任意的,有的任务之间可能存在依赖关系,示例性的,对于三个任务t1、t2和t3来说,t2需要t1处理完成后生成的数据才可以进行处理,t3需要t2处理完成后生成的数据才可以进行处理,则t1和t2之间,以及t2和t3之间存在依赖关系,且t1是t2的父任务,t2是t1的子任务,t2是t3的父任务,t3是t2的子任务。
对于任意一对具备依赖关系的任务,当该对任务被同一个计算资源处理,则子任务可以实时的获取父任务生成的依赖数据,不存在传输时长,当该对任务被不同的计算资源处理时,则父任务向子任务发送生成的依赖数据需要花费一定的时长,即传输时长。示例性的,任务t1是任务t2和任务t3的父任务,当任务t1和任务t2在r1上被处理,任务t3和在r2上被处理,则任务t1和任务t2之间的不存在传输时长,而任务t1和任务t3之间存在传输时长。
在一个实施例中,可以需要建立各任务之间进行数据传输的传输时长矩阵,使用[T×T]表示,任意位置任意[Ti,Tj]处的数据表示任务Ti和任务Tj在不同的计算资源被处理时,任务Ti向任务Tj发送数据需要花费的时间。通过建立传输时间[T×T]矩阵,可以针对任务集合中每一个任务,若该任务存在父任务,且待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则可以方便的获取该任务与该任务的父任务进行依赖数据传输所需的传输时长。
S104:按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算待检测调度方案的任务处理成本和任务处理时长,任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长。
本步骤中,可以按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算待检测调度方案的任务处理成本和任务处理时长,其中,上述任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长。
在一个实施例中,如图3所示,可以根据以下步骤计算计算待检测调度方案的任务处理成本和任务处理时长,包括:
S301:针对每一个计算资源,按照待检测调度方案,确定该计算资源所需处理的多个任务;根据任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长。
本步骤中,为了计算计算资源的第二处理时长,可以先确定待检测调度方案为该计算资源分配的需要处理的多个任务,例如,确定待检测调度方案为计算资源r1分配的需要处理的任务为任务t1和任务t2。
示例性的,在一个实施例中,任务集合中存在五个任务,分别为任务t1、任务t2、任务t3、任务t4和任务t5,t1是t5的父任务,t2是t3的父任务,存在三个计算资源r1、r2和r3,对应的单位时间成本为8、9、10,待检测调度方案为,计算资源r1处理任务t1和任务t5,对应的第一处理时长为2、5,计算资源r2处理任务t4,对应的第一处理时长为2,计算资源r3处理任务t2和t3,对应的第一处理时长为3、2,则可以按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及传输时长,确定计算资源r1的第二处理时长为2+5=7,计算资源r2的第二处理时长为2,计算资源r3的第二处理时长为3+2=5。
在一个实施例中,如图4所示,还可以通过以下步骤确定确定计算资源的第二处理时长:
S401:针对每一个计算资源,按照待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据任务集合中各任务的第一处理时长、任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间。
本步骤中,预设的计算资源的启动时间可以是每个计算资源固有的属性,也可以是根据实际需要设置的计算资源的启动时间。示例性的,设置计算资源的启动时间为1:00。
针对任务集合中的每一个任务来说,该任务的开始处理时间为该任务被计算资源开始处理的时间,该任务的完成处理时间为该任务被计算资源处理完成的时间。
在一个实施例中,可以根据任务集合中各任务的第一处理时长,任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间,在一个实施例中,对于不同类型的任务可以采用不同的方式确定该任务的开始处理时间和完成处理时间:
第一种:针对该多个任务中不存在父任务的任务,若该任务之前不存在其他任务,则确定该任务的开始处理时间为处理该任务的计算资源的开始处理时间;若该任务之前存在其他任务,则确定该任务的开始处理时间为该任务前一任务的完成处理时间;将该任务的开始处理时间与该任务的第一处理时间相加得到该任务的完成处理时间。
针对该多个任务中不存在父任务的任务,可以存在两种情况,第一种该任务作为计算资源的第一个处理的任务,此时该任务的开始处理时间为该计算资源的启动时间;第二种,在该任务之前还存在其他任务,例如,计算资源r1存在需要处理的任务t1和t2,若t1和t2均不存在父任务,则t1的开始处理时间为计算资源r1的启动时间,t1的完成处理时间为t1的开始处理时间加上t1的第一处理时间,对于t2来说,t2的开始处理时间为t1的完成处理时间,t2的完成处理时间为t2的开始处理时间加上t2的第一处理时间。
第二种:针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,确定该任务的开始处理时间为该任务前一任务的完成处理时间,以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,例如,例如,计算资源r1存在需要处理的任务t1和t2,t1是t2的父任务,则t2的处理开始时间为t1的处理完成时间,当t1和t2之间存在任务t3时,则t2的处理开始时间为t3的处理完成时间。
第三种:针对任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间;若该任务之前不存在其他任务,则该任务的开始处理时间为该任务的依赖数据接收完成时间,以及若该任务之前存在其他任务,则将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间;以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时。
对任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,此时,可以通过将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间,例如,t1是t2的父任务,t1在计算资源r1上处理,t2在计算资源r2上处理,则t2的依赖数据接收完成时间为t1在r1上的完成处理时间加上t1和t2之间的传输时长,示例性的,t1的完成处理时间为2:00,t1和t2之间的传输时长为1,则t2的依赖数据接收完成时间为3:00。
对任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,同样存在两种情况:
第一种该任务作为计算资源的第一个处理的任务,此时,该任务在完成接收到其父任务发送的依赖数据后既可以立即执行,此时,该任务的开始处理时间为该任务的依赖数据接收完成时间;
第二种,在该任务之前还存在其他任务,则可以将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间,例如,计算资源r1存在需要处理的任务t1和t2,t2存在父任务t3,t1的完成处理时间为1:30,当t2的依赖数据接收完成时间为1:00,则t2的开始处理时间为1:00,若t2的依赖数据接收完成时间为2:00,则t2的开始处理时间为2:00。
确定任务的开始处理时间之后,可以将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
S402:从确定的该多个任务的处理开始时间和完成处理时间中,确定最大的完成处理时间与最小的开始处理时间。
本步骤中,从步骤S401确定出计算资源处理的多个任务的处理开始时间和完成处理时间中,确定最大的的完成处理时间与最小的处理开始时间。
示例性的,计算资源r1处理需要处理的任务为任务t1、任务t2和任务t3,其对应的开始处理时间和完成处理时间分别为:任务t1:1:00-3:00,任务t2:3:30-4:00,任务t3:4:00-6:00,则最大的的完成处理时间为6:00,最小的处理开始时间为1:00。
S403:计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长。
本步骤中,可以计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长,例如,对于步骤S10112确定的最大的的完成处理时间为6:00,最小的处理开始时间为1:00,则第二处理时长为5。
S302:针对每一个计算资源,按照该计算资源的单位时间成本和第二处理时长,确定该计算资源完成处理该多个任务所需的处理成本。
本步骤中,针对每一个计算资源,可以将该计算资源的单位时间成本和第二处理时长相乘,得到该计算资源完成处理该多个任务所需的处理成本。
示例性的,计算资源r1的第二处理时长5,单位时间成本为2,则计算资源r1的完成处理该多个任务所需的处理成本5×2=10。
S303:将需要处理任务的多个计算资源的处理成本相加,得到待检测调度方案的任务处理成本。
本步骤中,可以将待检测调度方案分配有任务的计算资源的处理成本相加,得到该待检测调度方案的任务处理成本。
例如,待检测调度方案分配有任务的计算资源为r1和r2,且r1的处理成本为10,r2的任务处理成本为5,则该该待检测调度方案的任务处理成本为10+5=15。
在一个实施例中,在确定了每一个计算资源的单位时间成本和第二处理时长后,还可以根据下述公式计算,计算该待检测调度方案的任务处理成本:
其中,TC为待检测调度方案的任务处理成本,R表示待检测调度方案分配的用于处理任务的计算资源合集,r为计算资源合集R中的计算资源,Tr表示计算资源r的第二处理时长,Cr表示计算资源r的单位时间成本。
S304:按照所任务集合中各任务的第一处理时长和任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定待检测调度方案的任务处理时长。
本步骤中,可以按照所任务集合中各任务的第一处理时长和任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算出各计算资源的完成完成任务处理所花费的时长,将其中最大的作为待检测调度方案的任务处理时长。
在一个实施例中,可以在上述获取了各任务的开始处理时间和完成处理时间的情况下,在任务集合中的各任务的开始处理时间和完成处理时间中,计算最大的完成处理时间与最小的开始处理时间之间的差值,作为完成处理任务集合中各任务的任务处理时长。
示例性的,任务集合中存在三个任务,分别为计算资源r1上处理的任务t1和任务t2,计算资源r2上处理的任务t3,其对应的开始处理时间和完成处理时间分别为:任务t1:1:00-3:00,任务t2:3:30-4:00,任务t3:1:00-3:00,则待检测调度方案的任务处理时长为4-1=3。
在一个实施例中,还可以可以按照下述公式确定任务处理成本和任务处理时长:
TT=max{ETt:t∈T}
其中,TT为待检测调度方案的任务处理时长,T表示需要处理的任务集合,t为任务合集T中的任务,ETt表示任务t的完成处理时间。
示例性的,任务集合中存在三个任务,分别为计算资源r1上处理的任务t1和任务t2,计算资源r2上处理的任务t3,其对应的开始处理时间和完成处理时间分别为:任务t1:1:00-3:00,任务t2:3:30-4:00,任务t3:1:00-3:00,,则根据上述公式确定最大的ETt为4:00,则该待检测调度方案的任务处理时长为4。
S105:若待检测调度方案的任务处理成本和任务处理时长是否满足预设条件,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案。
本步骤中,预设条件可以是根据需求设置的,在一个实施例中,预设条件为:任务处理成本小于第一预设阈值并且任务处理时长小于第二预设阈值,其中,第一预设阈值和第二预设阈值可以是根据实际需求设置的。
在实际使用中,往往存在需要在一定任务处理成本的情况下,确定具有最小任务处理时长的需求,此时,还可以记录不满足预设条件的待监测调度方案的任务处理成本和任务处理时长,通过粒子群算法不断地生成逼近最优解的调度方案,具体的实现步骤本发送说明书后续会详细描述,再次不在赘述。
本发明实施例提供的上述调度方案确定方法中,获取需要进行检测的调度方案,作为待检测调度方案,待检测调度方案为根据待调度的任务集合确定的,待检测调度方案用于为任务集合中每一个任务分配处理该任务的计算资源,并且针对任务集合中每一个任务,获取待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长,以及针对任务集合中每一个任务,若该任务存在父任务,且待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到依赖数据后才能够被处理,以及按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算待检测调度方案的任务处理成本和任务处理时长,任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长,以及若待检测调度方案的任务处理成本和任务处理时长是否满足预设条件,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案,由于只将任务处理成本和任务处理时长满足预设条件的调度方案作为目标调度方案,使得该调度方案在减少任务处理成本的同时,控制任务处理时间,避免任务处理时间过高的。
在本发明的另一个实施例中,还提供一种待检测调度方案确定方法,如图2所示,该方法包括以下步骤:
S201:获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息。
本步骤中,可以获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息,例如,获取待调度的任务集合为{t1、t2、t3、t4},各任务之间的依赖关系为:t1为t2和t3的父任务,t2和t3为t4的父任务。
S202:基于粒子群算法,根据任务集合中各任务之间的依赖关系和可用的计算资源的信息,确定待检测调度方案。
本步骤中,本领域的技术人员可以理解的是,粒子群算法粒(Particle SwarmOptimization,PSO)是一种进化计算技术(evolutionary computation),粒子群算法利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。
在一个实施例中,如图5所示,可以采用以下步骤实现确定待检测调度方案:
S501:基于粒子群算法,根据任务集合中各任务之间的依赖关系和可用的计算资源的信息,确定粒子群算法的搜索空间,并将调度方案中各任务与处理各任务的计算资源之间的对应关系映射为搜索空间中粒子的位置坐标。
本步骤中,可用的计算资源的信息可以为可用的计算资源的数量,为了能够使用粒子群算法确定调度方案,可以将调度方案抽象为粒子群算法中的粒子的位置坐标。
粒子的位置坐标维度可以通过任务集合中任务数量确定,例如任务集合中存在三个任务,则粒子为三维粒子,位置坐标使用(x,y,z)表示,当任务集合中存在五个任务,则位置坐标使用(x,y,z,j,k)表示。
粒子群算法的搜索空间为粒子每一维度的取值范围,可以通过的计算资源的数量确定,例如,可用的计算资源的数量为三个r1、r2和r3,则每一维度的坐标数值的取值范围可以为(0-3),为了简化计算,在一个实施例中,可以设置将[0-1]之间的数对应r1,从(1-2]之间的数对应r2,(2-3]之间的数对应r3。
示例性的,一种调度方案为:任务t1被计算资源r1处理,任务t2被计算资源r3处理,任务t3被计算资源r2处理,任务t4被计算资源r1处理,对应的例子位置坐标为(1,3,2,1),反过来,对于位置坐标为(0.5,0.8,2.6,1.6,2),其表示的调度方案为:任务t1被计算资源r1处理,任务t2被计算资源r1处理,任务t3被计算资源r3处理,任务t4被计算资源r2处理,任务t5被计算资源r2处理。
S502:在搜索空间中,根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子。
本步骤中,可以根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子。
在一个实施例中,粒子群算法的粒子迁移函数为:
pi(t+1)=pi(t)+vi(t)
上述两个公式中,w为惯性权重,c1和c2为学习因子,rand()为随机数,pi为粒子位置,vi为粒子速度向量,为粒子i的最优解,为全局最优解。
在一个实施例中,可以设置惯性权重w设置为0.68,学习因子c1=c2=2,进一步的还可以设置粒子迁移步数为10。
S503:根据迁移后粒子的位置坐标,还原迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案。
本步骤中,可以根据迁移后粒子的位置坐标,还原迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案,具体参见步骤S2021的实施例。
本发明实施例提供的上述调度方案确定方法中,获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息,基于于粒子群算法,根据任务集合中各任务之间的依赖关系和可用的计算资源的信息,确定待检测调度方案,可以快速的确定最优的调度方案。
在一个实施例中,可能存在多个云工作流需要合并的情况,可以选择在基于新增依赖关系的流合并中,通过工作流合并冲突检测算法,可以对新增依赖关系后产生的环路位置进行定位。在找到冲突位置之后,通常需要根据实际需求对两种冲突依赖关系进行取舍,删除其中一条关系,从而实现两条云工作流的顺利合并。
基于同一发明构思,根据本发明实施例提供的调度方案确定方法,本发明实施例还提供了一种调度方案确定装置,如图6所示,该装置包括:
调度方案获取模块601,用于获取需要进行检测的调度方案,作为待检测调度方案,待检测调度方案为根据待调度的任务集合确定的,待检测调度方案用于为任务集合中每一个任务分配处理该任务的计算资源;
成本和时长获取模块602,用于针对任务集合中每一个任务,获取待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
传输时长获取模块603,用于针对任务集合中每一个任务,若该任务存在父任务,且待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到依赖数据后才能够被处理;
成本和时长计算模块604,用于按照获取的各计算单元的单位时间成本、任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算待检测调度方案的任务处理成本和任务处理时长,任务处理成本表示完成处理任务集合中各任务所需的成本,任务处理时长表示完成处理任务集合中各任务所需的时长;
调度方案确定模块605,用于若待检测调度方案的任务处理成本和任务处理时长是否满足预设条件,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案。
进一步的,成本和时长计算模块604,具体用于针对每一个计算资源,按照待检测调度方案,确定该计算资源所需处理的多个任务;根据任务集合中各任务的第一处理时长,以及任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长,并且针对每一个计算资源,按照该计算资源的单位时间成本和第二处理时长,确定该计算资源完成处理该多个任务所需的处理成本,以及将需要处理任务的多个计算资源的处理成本相加,得到待检测调度方案的任务处理成本,以及按照所任务集合中各任务的第一处理时长和任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定待检测调度方案的任务处理时长。
进一步的,成本和时长计算模块604,具体用于针对每一个计算资源,按照待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据任务集合中各任务的第一处理时长、任务集合中存在父任务,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间,并且从确定的该多个任务的处理开始时间和完成处理时间中,确定最大的完成处理时间与最小的处理开始时间,以及计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长,以及在任务集合中的各任务的开始处理时间和完成处理时间中,计算最大的完成处理时间与最小的开始处理时间之间的差值,作为完成处理任务集合中各任务的任务处理时长。
进一步的,成本和时长计算模块604,具体用于针对该多个任务中不存在父任务的任务,若该任务之前不存在其他任务,则确定该任务的开始处理时间为处理该任务的计算资源的开始处理时间;若该任务之前存在其他任务,则确定该任务的开始处理时间为该任务前一任务的完成处理时间;将该任务的开始处理时间与该任务的第一处理时间相加得到该任务的完成处理时间,并且针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,确定该任务的开始处理时间为该任务前一任务的完成处理时间,以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间,以及针对任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间;若该任务之前不存在其他任务,则该任务的开始处理时间为该任务的依赖数据接收完成时间,以及若该任务之前存在其他任务,则将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间;以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
进一步的,调度方案确定模块605,具体用于若待检测调度方案的任务处理成本小于第一预设阈值并且任务处理时长小于第二预设阈值,则将待检测调度方案确定为用于为任务集合分配计算资源的调度方案。
基于同一发明构思,根据本发明实施例提供的待检测调度方案确定方法,本发明实施例还提供了一种待检测调度方案确定装置,如图7所示,该装置包括:
关系和信息获取模块701,用于获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息;
待检测调度方案确定模块702,用于基于粒子群算法,根据任务集合中各任务之间的依赖关系和可用的计算资源的信息,确定待检测调度方案。
进一步的,待检测调度方案确定模块702,具体用于:基于粒子群算法,根据任务集合中各任务之间的依赖关系和可用的计算资源的信息,确定粒子群算法的搜索空间,并将调度方案中各任务与处理各任务的计算资源之间的对应关系映射为搜索空间中粒子的位置坐标,并且在搜索空间中,根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子,以及根据迁移后粒子的位置坐标,还原迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取需要进行检测的调度方案,作为待检测调度方案,所述待检测调度方案为根据待调度的任务集合确定的,所述待检测调度方案用于为所述任务集合中每一个任务分配处理该任务的计算资源;
针对所述任务集合中每一个任务,获取所述待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
针对所述任务集合中每一个任务,若该任务存在父任务,且所述待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,所述依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到所述依赖数据后才能够被处理;
按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,所述任务处理成本表示完成处理所述任务集合中各任务所需的成本,所述任务处理时长表示完成处理所述任务集合中各任务所需的时长;
若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一调度方案确定方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一调度方案确定方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种调度方案确定方法,其特征在于,包括:
获取需要进行检测的调度方案,作为待检测调度方案,所述待检测调度方案为根据待调度的任务集合确定的,所述待检测调度方案用于为所述任务集合中每一个任务分配处理该任务的计算资源;
针对所述任务集合中每一个任务,获取所述待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
针对所述任务集合中每一个任务,若该任务存在父任务,且所述待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,所述依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到所述依赖数据后才能够被处理;
按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,所述任务处理成本表示完成处理所述任务集合中各任务所需的成本,所述任务处理时长表示完成处理所述任务集合中各任务所需的时长;
若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
2.根据权利要求1所述的方法,其特征在于,采用如下步骤根据待调度的任务集合确定待检测调度方案:
获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息;
基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案。
3.根据权利要求2所述的方法,其特征在于,所述基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案,包括:
基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定所述粒子群算法的搜索空间,并将调度方案中各任务与处理各任务的计算资源之间的对应关系映射为所述搜索空间中粒子的位置坐标;
在所述搜索空间中,根据粒子群算法的粒子迁移函数和预设的迁移参数,对当前的粒子进行迁移,生成迁移后粒子;
根据所述迁移后粒子的位置坐标,还原所述迁移后粒子的位置坐标对应的调度方案,作为待检测调度方案。
4.根据权利要求1所述的方法,其特征在于,所述按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,包括:
针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;根据所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长;
针对每一个计算资源,按照该计算资源的单位时间成本和第二处理时长,确定该计算资源完成处理该多个任务所需的处理成本;
将所述需要处理任务的多个计算资源的处理成本相加,得到所述待检测调度方案的任务处理成本;
按照所所述任务集合中各任务的第一处理时长和所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定所述待检测调度方案的任务处理时长。
5.根据权利要求4所述的方法,其特征在于,所述针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;根据所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,确定该计算资源完成处理该多个任务所需的第二处理时长,包括:
针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据所述任务集合中各任务的第一处理时长、所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间;
从确定的该多个任务的处理开始时间和完成处理时间中,确定最大的完成处理时间与最小的处理开始时间;
计算该最大的完成处理时间与该最小的处理开始时间的差值,作为该计算资源的第二处理时长;
所述按照所述计算资源集合中各计算资源处理所述任务集合中每一个任务所需的第一处理时长和所述任务集合中各任务之间进行数据传输所需的传输时间确定完成处理所述任务集合中各任务的任务处理时长,包括:
在所述任务集合中的各任务的开始处理时间和完成处理时间中,计算最大的完成处理时间与最小的开始处理时间之间的差值,作为完成处理所述任务集合中各任务的任务处理时长。
6.根据权利要求5所述的方法,其特征在于,所述针对每一个计算资源,按照所述待检测调度方案,确定该计算资源所需处理的多个任务;针对该多个任务中的每一个任务,根据所述任务集合中各任务的第一处理时长、所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,以及预设的该计算资源的启动时间,确定该任务的开始处理时间和完成处理时间,包括:
针对该多个任务中不存在父任务的任务,若该任务之前不存在其他任务,则确定该任务的开始处理时间为处理该任务的计算资源的开始处理时间;若该任务之前存在其他任务,则确定该任务的开始处理时间为该任务前一任务的完成处理时间;将该任务的开始处理时间与该任务的第一处理时间相加得到该任务的完成处理时间;
针对该多个任务中存在父任务,且与父任务被分配的计算资源相同的任务,确定该任务的开始处理时间为该任务前一任务的完成处理时间,以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间;
针对所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务,将该任务的父任务的完成处理时间与该任务的传输时长相加,得到该任务的依赖数据接收完成时间;若该任务之前不存在其他任务,则该任务的开始处理时间为该任务的依赖数据接收完成时间,以及若该任务之前存在其他任务,则将该任务的依赖数据接收完成时间,和该任务的前一任务的完成任务时间中的最大的时间确定为该任务的开始处理时间;以及将该任务的开始处理时间与该任务的第一处理时长相加得到该任务的完成处理时间。
7.根据权利要求1-6所述的方法,其特征在于,所述若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案,包括:
若所述待检测调度方案的任务处理成本小于第一预设阈值并且所述任务处理时长小于第二预设阈值,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
8.一种调度方案确定装置,其特征在于,包括:
调度方案获取模块,用于获取需要进行检测的调度方案,作为待检测调度方案,所述待检测调度方案为根据待调度的任务集合确定的,所述待检测调度方案用于为所述任务集合中每一个任务分配处理该任务的计算资源;
成本和时长获取模块,用于针对所述任务集合中每一个任务,获取所述待检测调度方案为该任务分配的计算资源的单位时间成本和该任务被该计算资源处理完成的所需的第一处理时长;
传输时长获取模块,用于针对所述任务集合中每一个任务,若该任务存在父任务,且所述待检测调度方案为该任务和该任务的父任务分配的计算资源不同,则获取该任务与该任务的父任务进行依赖数据传输所需的传输时长,其中,所述依赖数据为该任务的父任务被处理完成后输出的,该任务需要在接收到所述依赖数据后才能够被处理;
成本和时长计算模块,用于按照获取的各计算单元的单位时间成本、所述任务集合中各任务的第一处理时长,以及所述任务集合中存在父任务,且与父任务被分配的计算资源不同的任务的传输时长,计算所述待检测调度方案的任务处理成本和任务处理时长,所述任务处理成本表示完成处理所述任务集合中各任务所需的成本,所述任务处理时长表示完成处理所述任务集合中各任务所需的时长;
调度方案确定模块,用于若所述待检测调度方案的任务处理成本和所述任务处理时长是否满足预设条件,则将所述待检测调度方案确定为用于为所述任务集合分配计算资源的调度方案。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
关系和信息获取模块,用于获取待调度的任务集合中各任务之间的依赖关系和可用的计算资源的信息;
待检测调度方案确定模块,用于基于粒子群算法,根据所述任务集合中各任务之间的依赖关系和所述可用的计算资源,确定待检测调度方案。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544325.9A CN110247979B (zh) | 2019-06-21 | 2019-06-21 | 一种调度方案确定方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544325.9A CN110247979B (zh) | 2019-06-21 | 2019-06-21 | 一种调度方案确定方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110247979A true CN110247979A (zh) | 2019-09-17 |
CN110247979B CN110247979B (zh) | 2021-08-17 |
Family
ID=67888781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910544325.9A Active CN110247979B (zh) | 2019-06-21 | 2019-06-21 | 一种调度方案确定方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247979B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330014A (zh) * | 2020-11-03 | 2021-02-05 | 国网江苏省电力有限公司电力科学研究院 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112631746A (zh) * | 2020-12-08 | 2021-04-09 | 南方科技大学 | 业务调度方法、装置、电子设备及存储介质 |
WO2021179588A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京旷视科技有限公司 | 计算资源调度方法、装置、电子设备及计算机可读存储介质 |
WO2024037173A1 (zh) * | 2022-08-17 | 2024-02-22 | 华为技术有限公司 | 一种调度器、作业调度方法及相关设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089078A1 (en) * | 2007-09-28 | 2009-04-02 | Great-Circle Technologies, Inc. | Bundling of automated work flow |
CN103268529A (zh) * | 2013-04-25 | 2013-08-28 | 中山大学 | 基于集合型离散粒子群优化的云工作流调度方法 |
CN103699446A (zh) * | 2013-12-31 | 2014-04-02 | 南京信息工程大学 | 基于量子粒子群优化算法的多目标工作流动态调度方法 |
CN103914754A (zh) * | 2014-03-12 | 2014-07-09 | 中国科学院信息工程研究所 | 一种工作流的任务调度方法、多工作流调度方法及其系统 |
CN104536828A (zh) * | 2014-12-26 | 2015-04-22 | 湖南强智科技发展有限公司 | 基于量子粒子群算法的云计算的任务调度方法和系统 |
US20170277905A1 (en) * | 2016-03-22 | 2017-09-28 | MindTouch, Inc. | Live editing and publishing of documents within a content management system using a hybrid draft authorization workflow |
CN107797863A (zh) * | 2017-09-29 | 2018-03-13 | 西安交通大学 | 一种云计算平台中细粒度资源匹配方法 |
CN107872402A (zh) * | 2017-11-15 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 全局流量调度的方法、装置及电子设备 |
CN108133260A (zh) * | 2018-01-17 | 2018-06-08 | 浙江理工大学 | 基于实时状态监控的多目标粒子群优化的工作流调度方法 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
-
2019
- 2019-06-21 CN CN201910544325.9A patent/CN110247979B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089078A1 (en) * | 2007-09-28 | 2009-04-02 | Great-Circle Technologies, Inc. | Bundling of automated work flow |
CN103268529A (zh) * | 2013-04-25 | 2013-08-28 | 中山大学 | 基于集合型离散粒子群优化的云工作流调度方法 |
CN103699446A (zh) * | 2013-12-31 | 2014-04-02 | 南京信息工程大学 | 基于量子粒子群优化算法的多目标工作流动态调度方法 |
CN103914754A (zh) * | 2014-03-12 | 2014-07-09 | 中国科学院信息工程研究所 | 一种工作流的任务调度方法、多工作流调度方法及其系统 |
CN104536828A (zh) * | 2014-12-26 | 2015-04-22 | 湖南强智科技发展有限公司 | 基于量子粒子群算法的云计算的任务调度方法和系统 |
US20170277905A1 (en) * | 2016-03-22 | 2017-09-28 | MindTouch, Inc. | Live editing and publishing of documents within a content management system using a hybrid draft authorization workflow |
CN107797863A (zh) * | 2017-09-29 | 2018-03-13 | 西安交通大学 | 一种云计算平台中细粒度资源匹配方法 |
CN107872402A (zh) * | 2017-11-15 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 全局流量调度的方法、装置及电子设备 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108133260A (zh) * | 2018-01-17 | 2018-06-08 | 浙江理工大学 | 基于实时状态监控的多目标粒子群优化的工作流调度方法 |
Non-Patent Citations (4)
Title |
---|
K. LU: "An Algorithm Combining Graph-Reduction and Graph-Search for Workflow Graphs Verification", 《2007 11TH INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN》 * |
Z. CHEN: "Deadline Constrained Cloud Computing Resources Scheduling through an Ant Colony System Approach", 《2015 INTERNATIONAL CONFERENCE ON CLOUD COMPUTING RESEARCH AND INNOVATION (ICCCRI)》 * |
刘茜萍: "工作流合并规则中的冲突检浏方法", 《计算机工程》 * |
陈潇凯: "《车辆多学科设计优化方法》", 30 June 2018, 北京理工大学出版社 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179588A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京旷视科技有限公司 | 计算资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112330014A (zh) * | 2020-11-03 | 2021-02-05 | 国网江苏省电力有限公司电力科学研究院 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112330014B (zh) * | 2020-11-03 | 2022-09-30 | 国网江苏省电力有限公司电力科学研究院 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112631746A (zh) * | 2020-12-08 | 2021-04-09 | 南方科技大学 | 业务调度方法、装置、电子设备及存储介质 |
WO2022121041A1 (zh) * | 2020-12-08 | 2022-06-16 | 南方科技大学 | 业务调度方法、装置、电子设备及存储介质 |
WO2024037173A1 (zh) * | 2022-08-17 | 2024-02-22 | 华为技术有限公司 | 一种调度器、作业调度方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110247979B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247979A (zh) | 一种调度方案确定方法、装置及电子设备 | |
Zhu et al. | Scheduling stochastic multi-stage jobs to elastic hybrid cloud resources | |
Huang et al. | Reinforcement learning based resource allocation in business process management | |
CN108090731B (zh) | 一种信息处理方法及设备 | |
Zheng et al. | Stochastic DAG scheduling using a Monte Carlo approach | |
Dorronsoro et al. | A hierarchical approach for energy-efficient scheduling of large workloads in multicore distributed systems | |
CN109523187A (zh) | 任务调度方法、装置和设备 | |
Mashayekhy et al. | A trust-aware mechanism for cloud federation formation | |
CN104520815A (zh) | 一种任务调度的方法、装置及设备 | |
CN104657220A (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN103927229A (zh) | 在动态可用服务器集群中调度映射化简作业 | |
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
CN106775493B (zh) | 一种存储控制器及io请求处理方法 | |
CN109614211A (zh) | 分布式任务预调度方法及装置 | |
Krzysztof et al. | Scheduling jobs on the grid–multicriteria approach | |
Rauchecker et al. | Using high performance computing for unrelated parallel machine scheduling with sequence-dependent setup times: Development and computational evaluation of a parallel branch-and-price algorithm | |
CN108874520A (zh) | 计算方法及装置 | |
Qureshi et al. | A comparative analysis of resource allocation schemes for real-time services in high-performance computing systems | |
CN110097268A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN103677996B (zh) | 用于平衡工作负荷分布的协作方法和系统 | |
CN108563774A (zh) | Gps数据处理方法及装置 | |
Hu et al. | A Dynamic Distributed Scheduler for Computing on the Edge | |
CN115729687A (zh) | 任务调度方法、装置、计算机设备、存储介质 | |
CN112862385B (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 |