CN112817721B - 基于人工智能的任务调度方法、装置、计算机设备和介质 - Google Patents
基于人工智能的任务调度方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN112817721B CN112817721B CN202110134299.XA CN202110134299A CN112817721B CN 112817721 B CN112817721 B CN 112817721B CN 202110134299 A CN202110134299 A CN 202110134299A CN 112817721 B CN112817721 B CN 112817721B
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- scheduled
- label
- task scheduling
- 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
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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
Abstract
本申请涉及大数据技术领域,特别是涉及一种基于人工智能的任务调度方法、装置、计算机设备和介质,包括:接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求;获取各待调度任务之间的任务依赖图谱;根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签;获取资源库的可消耗总资源数;建立任务调度模型以及对应的条件函数,并对各待调度任务进行调度。采用本方法能够提升任务调度的准确性。此外,本发明还涉及区块链技术,任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数均可存储于区块链中。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种基于人工智能的任务调度方法、装置、计算机设备和介质。
背景技术
在数据化转型的过程中,保障数据仓库任务队列完成的时效性,避免任务拥堵,造成系统宕机等事故的发生,是关系着企业日常经营的重要指标。因此,对数据仓库任务队列性能的稳定性有着极高的要求。
在传统方式中,任务调度多采用人工设置、人工调整的方式。
但是,在面对任务量达到千以上数量级,或者是依赖关系相对复杂的任务调度时,人工无法实现调度的合理分配,使得任务调度的准确性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升任务调度准确性的基于人工智能的任务调度方法、装置、计算机设备和介质。
一种基于人工智能的任务调度方法,所述方法包括:
接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求;
获取各待调度任务之间的任务依赖图谱;
根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项;
获取资源库的可消耗总资源数;
根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数;
基于任务调度模型以及条件函数,对各待调度任务进行调度。
一种基于人工智能的任务调度装置,所述装置包括:
任务调度请求接收模块,用于接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求;
任务依赖图谱获取模块,用于获取各待调度任务之间的任务依赖图谱;
任务标签生成模块,用于根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项;
可消耗总资源数获取模块,用于获取资源库的可消耗总资源数;
模型与函数建立模块,用于根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数;
任务调度模块,用于基于任务调度模型以及所述条件函数,对各待调度任务进行调度。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法的步骤。
上述基于人工智能的任务调度方法、装置、计算机设备和介质,通过接收任务调度请求,任务调度请求中携带有对预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求,然后获取各待调度任务之间的任务依赖图谱,并根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,进一步根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,基于任务调度模型以及条件函数,对各待调度任务进行调度。从而,可以根据各待调度任务的任务调度时长、任务调度要求以及各待调度任务之间的任务依赖图谱,对各个待调度任务进行综合考量,并生成对应的任务标签,然后通过构建任务调度模型进行任务调度,可以提升任务调度的准确性以及合理性。并且,通过根据任务调度请求,自动进行任务的调度,相比于人工进行任务的调度,可以提升任务调度处理的智能化水平,以及提升任务调度的效率。
附图说明
图1为一个实施例中基于人工智能的任务调度方法的应用场景图;
图2为一个实施例中基于人工智能的任务调度方法的流程示意图;
图3为一个实施例中任务依赖图谱的示意图;
图4为一个实施例中任务调度曲线的示意图;
图5为一个实施例中任务队列资源波动的示意图;
图6为一个实施例中任务波动幅度的示意图;
图7为一个实施例中资源库资源波动资源预测的示意图;
图8为一个实施例中资源库资源分配的示意图;
图9为一个实施例中任务调度区间的示意图;
图10为一个实施例中任务调度顺序的示意图;
图11为另一个实施例中任务波动幅度的示意图;
图12为一个实施例中基于人工智能的任务调度装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于人工智能的任务调度方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。用户可以通过在终端102进行操作,生成任务调度请求,并发送至服务器104,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求。服务器104在接收任务调度请求后,可以获取各待调度任务之间的任务依赖图谱,并根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签。然后服务器104可以获取资源库的可消耗总资源数,并根据可消耗总资源数以及各待调度任务的任务标签,对各待调度任务进行调度。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于人工智能的任务调度方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求。
其中,任务调度请求是指请求进行任务调度的请求,任务调度请求中可以携带有在预设时间段内需要进行调度的各个待调度任务相关的数据。例如,每个待调度任务的任务调度时长以及任务调度需求。
在本实施例中,任务调度时长可以是指任务运行所消耗的CPU时间,即CPUtime,CPUtime可以包括读取对应进程的用户CPU时间(UserCPUtime)和操作系统CPU时间(OSCPUtime)之和,即:CPUtime=UserCPUtime+OSCPUtime。
在本实施例中,CPUtime是可以包括I/O耗时,可以包括输入输出的等待时间,电信号之间的交换时间,数据传输时间,任务响应时间等。
任务调度需求是对任务调度时效性的要求,例如,任务A要求在9:00~10点之间调度,任务B要求在11:00~12:00之间调度。
在本实施例中,服务器可以接收终端的任务调度请求,并基于请求中携带的任务调度时长以及任务调度需求等数据,进行后续的处理。
步骤S204,获取各待调度任务之间的任务依赖图谱。
其中,任务依赖图谱是指示任务之间嵌套依赖关系的图谱,参考图3,可以包括各个待调度任务之间的嵌套依赖关系,例如,任务F和其他任务之间互不依赖,任务D的执行依赖于任务A、任务B、任务C以及任务E的执行,任务C的执行依赖于任务B的执行,任务E的执行依赖于任务C的执行。
在本实施例中,在系统创建或者是业务创建的时候,服务器可以基于用户输入的数据,构建不同任务之间的嵌套依赖关系,例如,根据excel表格中写入的依赖层级,生成任务依赖图谱。在后续任务增加或者是删除的时候,可以根据任务代码等在原有任务依赖图谱中增加任务依赖关系,已对任务依赖图谱进行更新。
在本实施例中,生成的任务依赖图谱可以存储于数据库中,在服务器检测到任务调度请求的时候,可以通过对数据库进行查询,以获取对应的任务依赖图谱。
步骤S206,根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项。
其中,任务标签是指示任务特性的标签,可以包括但不限于任务之间的依赖关系以及任务的执行时效等标签,例如,可以包括资源耗费标签、任务依赖标签以及任务时效标签中的一项或者是多项。
在本实施例中,资源耗费标签用于指示各任务被调度时需耗费的资源数,任务依赖标签用于指示多个待调度任务之间的依赖关系,任务时效标签用于指示待调度任务之间的执行先后顺序以及所要求的执行时间。
在本实施例中,服务器可以根据各个待调度任务的任务调度时长、任务调度需求以及该多个待调度任务的任务依赖图谱,确定对应各个待调度任务的任务标签。
在本实施例中,任务标签可以是基于大数据生成,例如,通过大数据统计分析后生成的任务标签体系,并存储指数据库中。
步骤S208,获取资源库的可消耗总资源数。
其中,可消耗总资源数一般是指提供的任务调度资源,例如,可以是指CPU核数,如Resources vCores。例如,一台设备的核数为8核,20台设备的核数即160核。
在本实施例中,服务器可以根据任务调度设备的数量,确定资源库的可消耗总资源数,并进行后续的处理。
步骤S210,根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
在本实施例中,由于各个待调度任务的消耗资源各异,且每一时间点,可用资源也是不一样的,此时任务调度安排就需要考虑到整体可用资源和各个任务消耗资源情况。对此,可以将任务调度问题抽象数学化,并考虑各任务间依赖关系、时效要求等,基于运筹学的理论,构建了满足任务调度要求的模型,即服务器可以基于各待调度任务的任务标签以及资源库可消耗总资源数,构建满足任务调度需求的模型。
步骤S212,基于任务调度模型以及条件函数,对各待调度任务进行调度。
在本实施例中,服务器可以根据构建的任务调度模型以及条件函数,确定各待调度任务的优先级或者是各待调度任务的先后顺序。
进一步,服务器可以根据任务调度设备的可消耗总资源数以及各待调度任务的优先级或者是各待调度任务的先后顺序,对各待调度任务进行任务的调度。
在传统方案中,通过人工进行任务调度,调度人员会本能的抢占优先顺序,并且无序地将各自任务前置到最早时刻,从而造成任务拥堵,引发系统宕机。而在使用本申请方案后,在不同时间的任务调度实现了均衡分派,得到的任务调度曲线更加平滑和均匀。传统方案的人工任务调度曲线与本方案的任务调度曲线可以参考图4所示。
上述基于人工智能的任务调度方法中,通过接收任务调度请求,任务调度请求中携带有对预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求,然后获取各待调度任务之间的任务依赖图谱,并根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,进一步根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,基于任务调度模型以及条件函数,对各待调度任务进行调度。从而,可以根据各待调度任务的任务调度时长、任务调度要求以及各待调度任务之间的任务依赖图谱,对各个待调度任务进行综合考量,并生成对应的任务标签,然后通过构建任务调度模型进行任务调度,可以提升任务调度的准确性以及合理性。并且,通过根据任务调度请求,自动进行任务的调度,相比于人工进行任务的调度,可以提升任务调度处理的智能化水平,以及提升任务调度的效率。
并且,本申请方案可以有效利用现有有效资源,确保任务运行不延时、任务运行稳定以及自动化分配。并且,通过本申请方案,可以实现各任务错峰运行,提升了任务调度的稳定性。
例如,参考图5,在使用本申请方案前,任务队列资源一直处于峰值,使用本申请方案后,任务队列消耗资源明显下降,平均任务总耗时大大节省,使得效率得到有效提升。
在本实施例中,参考图6,对于同一调度任务,在使用本申请方案后,任务的波动幅度显著降低,CPUtime稳定在2500分钟左右。
在其中一个实施例中,任务时效标签可以包括第一任务时效标签以及第二任务时效标签。
在本实施例中,根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,可以包括:根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签;基于任务依赖图谱,确定待调度任务之间的依赖关系,并生成对应各待调度任务的任务依赖标签以及第二任务时效标签。
在本实施例中,服务器可以通过对调度时长以及所述任务调度需求进行分析,并与标准标签库进行匹配,以确定各待调度任务的资源耗费标签以及第一任务时效标签。
同理,服务器可以通过对任务依赖图谱进行分析,以确定任务之间的嵌套依赖关系,例如,确定哪些是上游任务,哪些是下游任务,哪些任务的执行依赖于别人的任务执行后才能执行等,以生成对应各待调度任务的任务依赖标签以及第二任务时效标签。
在本实施例中,根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、资源耗费标签、第一任务时效标签、任务依赖标签以及第二任务时效标签,建立任务调度模型以及对应的条件函数。
上述实施例中,通过调度时长以及任务调度需求,成对应各待调度任务的资源耗费标签以及第一任务时效标签,以及根据任务依赖图谱,确定多个待调度任务的依赖关系,并生成对应各待调度任务的任务依赖标签以及第二任务时效标签,从而可以从任务的调度时长、任务调度需求以及任务之间的依赖关系等多个维度上对待调度任务进行标签的标定,并进行模型以及条件函数的建立,可以提升建立的模型和条件函数的合理性,进而可以提升调度的合理性以及准确性。
在其中一个实施例中,根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签,可以包括:根据各待调度任务的任务调度时长,确定各待调度任务对应的消耗资源数,并根据各消耗资源数生成对应的资源耗费标签;基于各任务调度要求,确定各待调度任务的任务时效区间;根据各任务时效区间,确定各待调度任务的第一执行先后顺序,并根据第一执行先后顺序生成对应各待调度任务的第一任务时效标签。
在本实施例中,服务器可以根据待调度任务的调度时长,即CPUtime,计算与资源库中核数Resources_vCores之间的内在关系。
如前所述CPUtime=UserCPUtime+OSCPUtime,CPUtime可以包含I/O耗时,即time(I/O)。因此,我们对CPUtime与Resources vCores构建内在联系时考虑每个I/O耗时time(I/O),并对上述公式进行了改进,提出公式(1):
CPUtime=(ResourcesvCores)*r+time(I/O) (1)
在本实施例中,依据上述公式可知,若time(I/O)取极限值0,则可以得到公式(2),如下所示:
即可通过CPUtime/ResourcesvCores的比值来量化r,即得到CPUtime与ResourcesvCores之间的关系。
在本实施例中,服务器可以通过对待调度任务的调度时长,转换为资源库中核数Resources_vCores,并基于Resources_vCores,确定待调度任务的资源耗费标签,例如,消耗8核等。
进一步,服务器可以基于各任务调度需求,确定各所述待调度任务的任务时效区间。例如,前文所述的,任务A要求在9:00~10:00之间调度,任务B要求在11:00~12:00之间调度,则任务A对应的任务时效区间为9:00~10:00,任务B对应的任务时效区间为11:00~12:00。
进一步,服务器可以根据任务时效区间,确定各待调度任务的第一执行先后顺序,继续沿用前例,任务A先于任务B执行,然后生成对应各待调度任务的第一任务时效标签,例如,任务A的第一任务时效标签为“9~10”,任务B的第一任务时效标签为“11~12”等。
在其中一个实施例中,获取资源库的可消耗总资源数之后,还可以包括:获取资源库在预设历史区间的历史资源波动数据;根据历史资源波动数据预估资源库在预设时间段的预估资源波动数据。
在本实施例中,任务调度设备的可消耗总资源数并不是随时都是可全部使用的,其存在一定的波动,即存在资源波动数据。
其中,历史资源波动数据是指在当前时间点之前所采集到的任务调度设备的可消耗总资源中波动的资源数据,其可以是一个周或者是一个月的数据。
在本实施例中,服务器可以根据采集到的历史资源波动数据,对任务调度设备在预设时间段的资源波动进行预测。例如,服务器可以通过ARIMA机器学习模型,对预设时间段的预估资源波动数据进行预测。
在本实施例中,预测可以是对整个预设时间段进行预测,也可以是将预设时间段拆分成多个时间子区间,并分别进行预测,例如,预设时间段为一天,则可以进行全天预测,或者是半天预测,或者是逐小时进行预测。
在其中一个实施例中,服务器可以使用python工具,甄选预测方法,对全天资源波动情况进行了预测,如图7所示,图中曲线cputime_h为实际资源波动情况,曲线predict为预测值。图(a)为近几月来资源情况及预测值,图(b)为某一天预测阶段放大后的预测结果与实际情况对比。
在本实施例中,根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、预估资源波动数据以及各待调度任务的任务标签,建立任务调度模型以及对应的条件函数。
在本实施例中,可消耗总资源数分为专用资源和公共资源,而公共资源是共享抢占模式,因此在不同时段资源上限是波动的,资源波动一般是公共资源所带来的波动。
在本实施例中,服务器在进行模型以及条件函数建立的时候,可以根据可消耗总资源数、预估资源波动数据以及各待调度任务的任务标签,进行模型以及对应条件函数的建立,并对各待调度任务进行调度,例如,参考图8,a时刻有资源2300 CPUtime,考虑到公共资源存在波动,实际可用资源会存在上下浮动50 CPUtime。根据任务时效标签发现有11个任务(任务1至11,均为200 CPUtime)需要在a时刻调度,另外有任务①(50 CPUtime)和任务②(100 CPUtime)可以在B时刻进行调度,稍晚调度对系统并无影响。此时,服务器可以根据时效性要求,将2200 CPUtime分配给11个需要此时运行的待调度任务,剩下100 CPUtime,考虑到公共资源的波动性,为确保业务数据的稳定及时效性,将剩余资源分配给任务①。
上述实施例中,获取资源库在预设历史区间的历史资源波动数据,并根据历史波动数据预估预设时间段的预估资源波动数据,然后进行模型以及条件函数的建立,并对待调度任务的调度,从而,使得任务调度模型以及对应的条件函数综合考量的资源库的资源波动,可以进一步提升任务调度模型以及对应的条件函数的合理性以及准确性,进而可以提升任务调度的准确性。
在其中一个实施例中,根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据任务标签,对预设时间段进行拆分,得到多个时间调度区间;根据各时间调度区间、任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
在本实施例中,任务调度的时间间隔设置会显著影响时间碎片(CPUtime资源碎片)的大小,从而对可消耗总资源数的最优调度产生影响。
在本实施例中,服务器可以根据任务标签,确定各个待调度任务的CPUtime,然后根据CPUtime确定将预设时间段拆分成多个调取区间。
例如,参考下表,针对总任务数的CPUtime的数学期望为20分钟,则服务器可以确定调取区间为30min,当预设时间段为一天时,则可以将一天24小时划分为48个调取区间。
进一步,服务器可以根据确定的调度区间,任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,然后对各待调度任务进行调度。
上述实施例中,通过根据任务标签,将预设时间段拆分成多个调取区间,然后根据各调度区间、任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,并对各待调度任务进行调度,从而,可以使得调度区间的划定根据任务的标签进行的,可以提升调取区间划分的准确性。
在其中一个实施例中,根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据各待调度任务的任务时效标签以及待调度任务的任务向量,建立任务调度模型;根据各待调度任务的任务时效标签、资源耗费标签以及资源库的可消耗总资源数,建立任务调度频率条件函数、消耗总资源数条件函数、任务调取区间条件函数以及任务依赖条件函数中至少一个。
在本实施例中,当任务数量n个时,即可以建立待调度任务矩阵P,P=(P1 P2 ...Pn-1 Pn),各个待调度任务的消耗资源分别为c1 c2 ... cn-1 cn,即待调度任务P1的消耗资源为c1,待调度任务P2的消耗资源为c2,以此类推。
在本实施例中,在预设时间区间内,需要安排这n个任务在各个调度区间ds(s=1…m)进行调度,各调度区间可使用资源为分别为b1 b2 ... bm-1 bm。
在本实施例中,根据以上条件,可以建立对应的任务调度模型以及对应的条件函数,即任务调度模型为min((Dm×1)TPm×nAn×1)。
其中,An×1表示每个待调度任务的调度频率的向量表达,(An×1)T=(1 1 ... 11)1×n,An×1中各向量元素均为1,表示各个待调度任务仅可以调用一次。(Dm×1)T=(d1 d2 ...dm+1 dm),表示各个待调度任务的可调度区间,向量元素为1表示从该调度区间开始调度。各个待调度任务的调度时间顺序矩阵P,具体如下公式(3)所示:
其中,每一列表示一个待调度任务的调度时间,P11~Pmn均为0或者是1,0表示该时间点不可调度,1表示该时间点可调度。
在本实施例中,服务器基于任务标签以及可消耗总资源数,可以构建对应任务调度模型的多个条件函数,例如,构建5个条件函数,条件函数表达式具体可以参见公式(4)所示:
在本实施例中,条件函数1为限定任务调度的频率,即在预设时间段内每个任务可以调度的次数,例如,预设时间段为1天,每个待调度任务仅可以调度1次。(An×1)T=(1 1... 1 1)1×n的含义如前文所述,各个待调度任务仅可以调用一次。(Fm×1)T=(1 1 ... 1 1)向量的所有元素均为1。
条件函数2限定各时段任务消耗资源不超过各时点可用资源,即限定各个时间段调度各待调度任务所消耗的资源不能超过资源库的可消耗总资源。其中,(Cn×1)T=(c1 c2... cn-1 cn),ci为各任务消耗的资源。(Bm×1)T=(b1 b2 ... bm-1 bm),为各调度时间可用资源列向量。
在本实施例中,对于某一时间区间(ts,td),该时间区间整体消耗资源计算公式如下公式(5)所示:
该区间调度任务需满足条件tl≤td且tf≥ts。
在本实施例中,ri为在(ts,td)区间内调度执行的任务所消耗的资源;tl、tf分别为该任务的执行开始时间和执行完成时间,即可以根据待调度任务的任务时效标签确定,n为在该时段存在任意长度时序曲线重叠的任务个数。具体可以参考图9所示。
在本实施例中,条件函数3用于限定各待调度任务的可调度区间,即根据各个待调度任务的时效标签,确定各个待调度任务的可调度区间。
在本实施例中,根据任务依赖情况、任务强制调度时间及任务时效性要求设定任务可调度区间。其中,Q可以通过公式(6)所示:
在本实施例中,(Q1)T=(01...10)1×m,表示任务P1实际可以调度时间,即从第二个时间点到倒数第二个时间点,即可以调度的时间区间为d2至dm+1。
进一步,条件函数4用于限定调度安排确保满足依赖关系,即上游任务的调度时间早于下游任务的调度时间。
其中,(Rn×n)T=(R1 R2 ... Rn-1 Rn),表示各任务依赖关系,如R1表示任务P1的所有上游任务情况,例如,任务P1的上游任务为P3和P5,则r31=1,r51=1,其他元素均为0。在本实施例中,服务器可以根据各个待调度任务之间的任务依赖标签,建立任务依赖关系矩阵。
○符号表示哈达玛积(Hadamard product),具体表达可以如下公式(7)所示:
在本实施例中,条件函数5用于限定调度安排实际可操作性,即不存在小数的情况,矩阵元素pij为1或者是0,其中1表示待调度任务被调用,0表示待调度任务不被调用。
在本实施例中,在任务存在高频调度时,需要将该任务视作多个相互独立的任务,即彼此之间不存在依赖关系。同时,Q需要根据调度频率要求严格限制,下游对应时刻任务仅依赖于上游高频调度中对应时刻的任务。如存在一任务为每1个时间点调度一次的高频任务,按要求需要将该任务拆分为Pi、Pi+1...Pi+m-1,而这m个任务对应的调度矩阵可以如下公式(8)所示,下游依赖关系R可以参见如下公式(9)。
在本实施例中,服务器可以基于各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型,然后执行所述任务调度模型,对各所述待调度任务进行调度。
例如,参考图10,有5个待调度任务,每个待调度任务消耗CPUtime各不相同,且这5个任务充分利用了时点a至时点b间的资源。而在时点b后,任务B已经运行完,时点b将会有剩余资源,此时需要根据时点b剩余资源进行新的任务配置,同理在时点c、时点d进行相同操作。
在一个实施例中,现有12个任务调度时点,时点a已经安排了5个任务,现讨论时点b对剩下的4个任务进行调度时间安排。此时,规划问题中的最晚调度时间矩阵可以如下公式(10)所示,根据任务调度不晚于最晚调度时间,可限定各任务可能调度时间参考如下公式(11)所示,由此可知,任务F、H、I可在a、b、c、d点时调度,任务G需要在a、b、c点前调度。
进一步,由条件函数2可知∑lici要小于现有资源(li为第i个任务是否可执行,ci为第i个任务的消耗资源),可以得到在时间点b时,仅可以调度一个任务。由条件函数1可知,每个任务只能调度一次,故满足目标函数min((Dm×1)TPm×nAn×1)时,需要任务F在b点运行。同理,可以知道任务G、H、I调度时间点。
在本实施例中,由于不同时段的资源波动曲线不同,服务器可以分时间段(例如,上下午)进行任务调度分配的算法模型代入,并进行调度。例如,在上午8点-11点有22个任务需要安排调度,根据以上模型,可得到调度矩阵如公式(12)所示,即8点安排调度任务8个(任务10、11、12、13、16、19、20、22),9点安排调度任务9个(任务1、3、4、6、8、9、17、18、21),10点安排调度任务3个(任务5、14、15),11点安排调度任务2个(任务2、7)。
对于调度时间为下午的任务时间规划,同理可得调度矩阵。最终可得到一个全天任务。
对于调度时间为下午的任务时间规划,同理可得调度矩阵。最终可得到一个全天任务,86个任务排序进入13小时时间段,即13×86的矩阵最优解。
通过模型进行预测及智能分配,解决了任务数量过多时,人工无法合理分配关键任务的情况,避免关键任务拥堵,造成事故。如图11所示,在未使用本方案模型时,任务调度耗时波动巨大,而采用本方案后,波动显著下降。
上述实施例中,通过根据各待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型,然后执行所述任务调度模型,对各待调度任务进行调度,从而可以将待调度任务之间的关系以及与可消耗总资源数之间的关系转换为数学处理逻辑,可以提升处理的准确性。
在其中一个实施例中,上述方法还可以包括:将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中的至少一个上传至区块链节点中进行存储。
其中,区块链是指分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
具体地,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本实施例中,服务器可以将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中的一个或者多个数据上传并存储于区块链的节点中,以保证数据的私密性和安全性。
上述实施例中,通过将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中至少一个上传至区块链并存储于区块链的节点中,从而可以保障存储至区块链节点中数据的私密性,可以提升数据的安全性。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种基于人工智能的任务调度装置,包括:任务调度请求接收模块100、任务依赖图谱获取模块200、任务标签生成模块300、可消耗总资源数获取模块400、模型与函数建立模块500以及任务调度模块600,其中:
任务调度请求接收模块100,用于接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求。
任务依赖图谱获取模块200,用于获取各待调度任务之间的任务依赖图谱。
任务标签生成模块300,用于根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项。
可消耗总资源数获取模块400,用于获取资源库的可消耗总资源数。
模型与函数建立模块500,用于根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
任务调度模块600,用于基于任务调度模型以及所述条件函数,对各待调度任务进行调度。
在其中一个实施例中,模型与函数建立模块500可以包括:
模型构建子模块,用于根据各待调度任务的任务时效标签以及待调度任务的任务向量,建立任务调度模型。
条件函数构建子模块,用于根据各待调度任务的任务时效标签、资源耗费标签以及资源库的可消耗总资源数,建立任务调度频率条件函数、消耗总资源数条件函数、任务调取区间条件函数以及任务依赖条件函数中至少一个。
在其中一个实施例中,任务时效标签可以包括第一任务时效标签以及第二任务时效标签。
在本实施例中,任务标签生成模块300可以包括:
第一任务标签生成子模块,用于根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签。
第二任务标签生成子模块,用于基于任务依赖图谱,确定待调度任务之间的依赖关系,并生成对应各待调度任务的任务依赖标签以及第二任务时效标签。
在本实施例中,模型与函数建立模块500用于根据可消耗总资源数、资源耗费标签、第一任务时效标签、任务依赖标签以及第二任务时效标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,第一任务标签生成子模块可以包括:
资源耗费标签生成单元,用于根据各待调度任务的任务调度时长,确定各待调度任务对应的消耗资源数,并根据各消耗资源数生成对应的资源耗费标签。
任务时效区间确定单元,用于基于各任务调度要求,确定各待调度任务的任务时效区间。
第一任务时效标签生成单元,用于根据各任务时效区间,确定各待调度任务的第一执行先后顺序,并根据第一执行先后顺序生成对应各待调度任务的第一任务时效标签。
在其中一个实施例中,上述装置还可以包括:
历史资源波动数据获取模块,用于在获取资源库的可消耗总资源数之后,获取资源库在预设历史区间的历史资源波动数据。
预估模块,用于根据历史资源波动数据预估资源库在预设时间段的预估资源波动数据。
在本实施例中,模型与函数建立模块500用于根据可消耗总资源数、预估资源波动数据以及各待调度任务的任务标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,模型与函数建立模块500可以包括:
调度区间划分子模块,用于根据任务标签,对预设时间段进行拆分,得到多个时间调度区间。
模型与函数建立子模块,用于根据各时间调度区间、任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,上述装置还可以包括:
存储模块,用于将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中的至少一个上传至区块链节点中进行存储。
关于基于人工智能的任务调度装置的具体限定可以参见上文中对于基于人工智能的任务调度方法的限定,在此不再赘述。上述基于人工智能的任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人工智能的任务调度方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求;获取各待调度任务之间的任务依赖图谱;根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项;获取资源库的可消耗总资源数;根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数;基于任务调度模型以及条件函数,对各待调度任务进行调度。
在其中一个实施例中,处理器执行计算机程序时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据各待调度任务的任务时效标签以及待调度任务的任务向量,建立任务调度模型;根据各待调度任务的任务时效标签、资源耗费标签以及资源库的可消耗总资源数,建立任务调度频率条件函数、消耗总资源数条件函数、任务调取区间条件函数以及任务依赖条件函数中至少一个。
在其中一个实施例中,任务时效标签可以包括第一任务时效标签以及第二任务时效标签。
在本实施例中,处理器执行计算机程序时实现根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,可以包括:根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签;基于任务依赖图谱,确定待调度任务之间的依赖关系,并生成对应各待调度任务的任务依赖标签以及第二任务时效标签。
在本实施例中,处理器执行计算机程序时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、资源耗费标签、第一任务时效标签、任务依赖标签以及第二任务时效标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,处理器执行计算机程序时实现根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签,可以包括:根据各待调度任务的任务调度时长,确定各待调度任务对应的消耗资源数,并根据各消耗资源数生成对应的资源耗费标签;基于各任务调度要求,确定各待调度任务的任务时效区间;根据各任务时效区间,确定各待调度任务的第一执行先后顺序,并根据第一执行先后顺序生成对应各待调度任务的第一任务时效标签。
在其中一个实施例中,处理器执行计算机程序时实现获取资源库的可消耗总资源数之后,还可以实现以下步骤:获取资源库在预设历史区间的历史资源波动数据;根据历史资源波动数据预估资源库在预设时间段的预估资源波动数据。
在本实施例中,处理器执行计算机程序时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、预估资源波动数据以及各待调度任务的任务标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,处理器执行计算机程序时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据任务标签,对预设时间段进行拆分,得到多个时间调度区间;根据各时间调度区间、任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,处理器执行计算机程序时还可以实现以下步骤:将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中的至少一个上传至区块链节点中进行存储。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收任务调度请求,任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求;获取各待调度任务之间的任务依赖图谱;根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项;获取资源库的可消耗总资源数;根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数;基于任务调度模型以及条件函数,对各待调度任务进行调度。
在其中一个实施例中,计算机程序被处理器执行时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据各待调度任务的任务时效标签以及待调度任务的任务向量,建立任务调度模型;根据各待调度任务的任务时效标签、资源耗费标签以及资源库的可消耗总资源数,建立任务调度频率条件函数、消耗总资源数条件函数、任务调取区间条件函数以及任务依赖条件函数中至少一个。
在其中一个实施例中,任务时效标签可以包括第一任务时效标签以及第二任务时效标签。
在本实施例中,计算机程序被处理器执行时实现根据各待调度任务的任务调度时长、任务调度要求以及任务依赖图谱,生成对应各待调度任务的任务标签,可以包括:根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签;基于任务依赖图谱,确定待调度任务之间的依赖关系,并生成对应各待调度任务的任务依赖标签以及第二任务时效标签。
在本实施例中,计算机程序被处理器执行时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、资源耗费标签、第一任务时效标签、任务依赖标签以及第二任务时效标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,计算机程序被处理器执行时实现根据任务调度时长以及任务调度要求,生成对应各待调度任务的资源耗费标签以及第一任务时效标签,可以包括:根据各待调度任务的任务调度时长,确定各待调度任务对应的消耗资源数,并根据各消耗资源数生成对应的资源耗费标签;基于各任务调度要求,确定各待调度任务的任务时效区间;根据各任务时效区间,确定各待调度任务的第一执行先后顺序,并根据第一执行先后顺序生成对应各待调度任务的第一任务时效标签。
在其中一个实施例中,计算机程序被处理器执行时实现获取资源库的可消耗总资源数之后,还可以实现以下步骤:获取资源库在预设历史区间的历史资源波动数据;根据历史资源波动数据预估资源库在预设时间段的预估资源波动数据。
在本实施例中,计算机程序被处理器执行时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据可消耗总资源数、预估资源波动数据以及各待调度任务的任务标签,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,计算机程序被处理器执行时实现根据各待调度任务的任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数,可以包括:根据任务标签,对预设时间段进行拆分,得到多个时间调度区间;根据各时间调度区间、任务标签以及可消耗总资源数,建立任务调度模型以及对应的条件函数。
在其中一个实施例中,计算机程序被处理器执行时还可以实现以下步骤:将任务调度请求、任务调度时长、任务调度要求、任务依赖图谱、任务标签以及可消耗总资源数中的至少一个上传至区块链节点中进行存储。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于人工智能的任务调度方法,其特征在于,所述方法包括:
接收任务调度请求,所述任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求,所述任务调度要求是对任务调度时效性的要求;
获取各所述待调度任务之间的任务依赖图谱;
根据各所述待调度任务的任务调度时长、所述任务调度要求以及所述任务依赖图谱,生成对应各所述待调度任务的任务标签,所述任务标签包括资源耗费标签、任务依赖标签以及任务时效标签中的至少一项;其中,所述资源耗费标签是根据所述待调度任务的任务调度时长与资源库中的核数计算得到的;
获取资源库的可消耗总资源数;
根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数,其中,所述任务调度模型是最小化目标函数,所述目标函数是根据每个待调度任务的调度频率的向量表达、各个待调度任务的可调度区间以及待调度任务的调度时间顺序矩阵计算得到的,所述条件函数包括用于任务调度的频率的条件函数、用于限定各时段任务消耗资源不超过各时点可用资源的条件函数、用于限定各待调度任务的可调度区间的条件函数、用于限定调度安排确保满足依赖关系的条件函数以及用于限定调度安排实际可操作性的条件函数;
基于所述任务调度模型以及所述条件函数,对各所述待调度任务进行调度。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数,包括:
根据各所述待调度任务的任务时效标签以及待调度任务的任务向量,建立任务调度模型;
根据各所述待调度任务的任务时效标签、资源耗费标签以及所述资源库的可消耗总资源数,建立任务调度频率条件函数、消耗总资源数条件函数、任务调取区间条件函数以及任务依赖条件函数中至少一个。
3.根据权利要求1所述的方法,其特征在于,所述任务时效标签包括第一任务时效标签以及第二任务时效标签;
所述根据各所述待调度任务的任务调度时长、所述任务调度要求以及所述任务依赖图谱,生成对应各所述待调度任务的任务标签,包括:
根据所述任务调度时长以及所述任务调度要求,生成对应各所述待调度任务的所述资源耗费标签以及所述第一任务时效标签;
基于所述任务依赖图谱,确定所述待调度任务之间的依赖关系,并生成对应各所述待调度任务的所述任务依赖标签以及所述第二任务时效标签;
所述根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数,包括:
根据所述可消耗总资源数、所述资源耗费标签、所述第一任务时效标签、所述任务依赖标签以及所述第二任务时效标签,建立任务调度模型以及对应的条件函数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述任务调度时长以及所述任务调度要求,生成对应各所述待调度任务的资源耗费标签以及第一任务时效标签,包括:
根据各所述待调度任务的任务调度时长,确定各所述待调度任务对应的消耗资源数,并根据各所述消耗资源数生成对应的资源耗费标签;
基于各所述任务调度要求,确定各所述待调度任务的任务时效区间;
根据各所述任务时效区间,确定各所述待调度任务的第一执行先后顺序,并根据所述第一执行先后顺序生成对应各所述待调度任务的第一任务时效标签。
5.根据权利要求1所述的方法,其特征在于,所述获取资源库的可消耗总资源数之后,还包括:
获取所述资源库在预设历史区间的历史资源波动数据;
根据所述历史资源波动数据预估所述资源库在所述预设时间段的预估资源波动数据;
所述根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数,包括:
根据所述可消耗总资源数、所述预估资源波动数据以及各所述待调度任务的任务标签,建立任务调度模型以及对应的条件函数。
6.根据权利要求1所述的方法,其特征在于,所述根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数,包括:
根据所述任务标签,对所述预设时间段进行拆分,得到多个时间调度区间;
根据各所述时间调度区间、所述任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
将所述任务调度请求、所述任务调度时长、任务调度要求、所述任务依赖图谱、所述任务标签以及所述可消耗总资源数中的至少一个上传至区块链节点中进行存储。
8.一种基于人工智能的任务调度装置,其特征在于,所述装置包括:
任务调度请求接收模块,用于接收任务调度请求,所述任务调度请求中携带有在预设时间段内进行调度的各待调度任务的任务调度时长以及任务调度要求,所述任务调度要求是对任务调度时效性的要求;
任务依赖图谱获取模块,用于获取各所述待调度任务之间的任务依赖图谱;
任务标签生成模块,用于根据各所述待调度任务的任务调度时长、所述任务调度要求以及所述任务依赖图谱,生成对应各所述待调度任务的任务标签,所述任务标签包括资源耗费标签、任务依赖标签、第一任务时效标签以及第二任务时效标签中的至少一项;其中,所述资源耗费标签是根据所述待调度任务的任务调度时长与资源库中的核数计算得到的;
可消耗总资源数获取模块,用于获取资源库的可消耗总资源数;
模型与函数建立模块,用于根据各所述待调度任务的任务标签以及所述可消耗总资源数,建立任务调度模型以及对应的条件函数;其中,所述任务调度模型是最小化目标函数,所述目标函数是根据每个待调度任务的调度频率的向量表达、各个待调度任务的可调度区间以及待调度任务的调度时间顺序矩阵计算得到的,所述条件函数包括用于任务调度的频率的条件函数、用于限定各时段任务消耗资源不超过各时点可用资源的条件函数、用于限定各待调度任务的可调度区间的条件函数、用于限定调度安排确保满足依赖关系的条件函数以及用于限定调度安排实际可操作性的条件函数;
任务调度模块,用于基于所述任务调度模型以及所述条件函数,对各所述待调度任务进行调度。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6或7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6或7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134299.XA CN112817721B (zh) | 2021-01-29 | 2021-01-29 | 基于人工智能的任务调度方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134299.XA CN112817721B (zh) | 2021-01-29 | 2021-01-29 | 基于人工智能的任务调度方法、装置、计算机设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817721A CN112817721A (zh) | 2021-05-18 |
CN112817721B true CN112817721B (zh) | 2022-08-09 |
Family
ID=75860832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110134299.XA Active CN112817721B (zh) | 2021-01-29 | 2021-01-29 | 基于人工智能的任务调度方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817721B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113793063A (zh) * | 2021-09-28 | 2021-12-14 | 广东电网有限责任公司 | 一种配电网规划项目方案冲突检测的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN110096345A (zh) * | 2019-03-16 | 2019-08-06 | 平安科技(深圳)有限公司 | 智能任务调度方法、装置、设备及存储介质 |
CN110162393A (zh) * | 2019-05-30 | 2019-08-23 | 奇瑞汽车股份有限公司 | 任务调度方法、装置及存储介质 |
CN111008072A (zh) * | 2019-12-25 | 2020-04-14 | 青梧桐有限责任公司 | 任务调度方法、装置、存储介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793294B2 (en) * | 2005-02-22 | 2010-09-07 | Northrop Grumman Corporation | System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task |
GB0513045D0 (en) * | 2005-06-27 | 2005-08-03 | Vidus Ltd | Resource scheduling method and system |
WO2015139164A1 (zh) * | 2014-03-17 | 2015-09-24 | 华为技术有限公司 | 一种任务调度的方法、装置及设备 |
-
2021
- 2021-01-29 CN CN202110134299.XA patent/CN112817721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN110096345A (zh) * | 2019-03-16 | 2019-08-06 | 平安科技(深圳)有限公司 | 智能任务调度方法、装置、设备及存储介质 |
CN110162393A (zh) * | 2019-05-30 | 2019-08-23 | 奇瑞汽车股份有限公司 | 任务调度方法、装置及存储介质 |
CN111008072A (zh) * | 2019-12-25 | 2020-04-14 | 青梧桐有限责任公司 | 任务调度方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112817721A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294733B2 (en) | Dynamic autoscaler for cloud platform | |
CN108647914B (zh) | 生产排程方法、装置、计算机设备和存储介质 | |
CN111108480B (zh) | 一种用于分布式资源需求及分配的系统和方法 | |
Pan et al. | A novel approach to scheduling workflows upon cloud resources with fluctuating performance | |
Venugopal et al. | A deadline and budget constrained scheduling algorithm for eScience applications on data grids | |
CN112817721B (zh) | 基于人工智能的任务调度方法、装置、计算机设备和介质 | |
CN110968947A (zh) | 虚拟电厂调度方法、装置及系统 | |
CN111813524A (zh) | 一种任务执行方法、装置、电子设备和存储介质 | |
CN115129481B (zh) | 一种计算资源分配方法、装置及电子设备 | |
CN116662014A (zh) | 一种任务分配方法、装置、设备及介质 | |
Garí et al. | Markov decision process to dynamically adapt spots instances ratio on the autoscaling of scientific workflows in the cloud | |
CN115545248A (zh) | 目标对象预测方法、装置、设备及介质 | |
Bohlouli et al. | Grid-HPA: Predicting resource requirements of a job in the grid computing environment | |
CN113988769B (zh) | 一种智能匹配分布式资源的方法、装置和计算机设备 | |
CN112181498A (zh) | 并发控制方法、装置和设备 | |
US20200279199A1 (en) | Generating a completion prediction of a task | |
US20200234149A1 (en) | Information processing device, information processing system, information processing method, and storage medium | |
US11922310B1 (en) | Forecasting activity in software applications using machine learning models and multidimensional time-series data | |
Na et al. | An adaptive replanning mechanism for dependable service-based systems | |
US20200364640A1 (en) | Optimizing Reserve Crew Patterns | |
US20240015595A1 (en) | Distributed Network Management System | |
Gonthier et al. | Data-Driven Locality-Aware Batch Scheduling | |
Gonthier et al. | Locality-aware batch scheduling of I/O intensive workloads | |
CN117575113A (zh) | 基于马尔科夫链的边端协同任务处理方法、装置和设备 | |
Mistry et al. | Long-Term IaaS Composition for Deterministic Requests |
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 |