CN117149393B - 一种可调试的计算机多任务调度方法和系统 - Google Patents
一种可调试的计算机多任务调度方法和系统 Download PDFInfo
- Publication number
- CN117149393B CN117149393B CN202311261011.0A CN202311261011A CN117149393B CN 117149393 B CN117149393 B CN 117149393B CN 202311261011 A CN202311261011 A CN 202311261011A CN 117149393 B CN117149393 B CN 117149393B
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- state
- computing resource
- evaluation
- 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 45
- 238000011156 evaluation Methods 0.000 claims abstract description 130
- 238000006243 chemical reaction Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims description 41
- 230000007704 transition Effects 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000003709 image segmentation Methods 0.000 description 7
- 238000013145 classification model Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000725 suspension Substances 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/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
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
技术领域
本发明涉及计算机技术领域,具体地涉及一种可调试的计算机多任务调度方法和系统。
背景技术
随着计算机技术的不断进步和发展,其涉及的业务规模也在不断扩大,企业也面临如何通过有限的计算资源处理大量的任务需求。其通常做法为建立服务器集群,使用负载均衡技术将任务分发到不同的服务器节点。在每个服务器节点中,再使用任务调度策略改变任务状态以实现任务调度,合理的调度策略可充分利用服务器资源,减少任务等待时间,提高整个服务器集群的计算效率。
而基于任务调度策略,现有技术中通常采用:先来先服务算法、短作业有限算法、高优先级优先算法、基于时间片的轮询算法等等。但上述任务调度策略都基于特定领域、任务类型执行的算法。例如中国发明专利文献(CN114035930A)公开了车辆调度的高优先级算法,适用于车辆这一领域的任务类型的调度;中国发明专利文献(CN113687938B)公开了一种医疗数据计算任务智能调度方法及系统,适用于医疗行业。
但随着业务的发展,任务类型也越来越繁杂,这些特定领域、类型的任务调度方法无法适用于实际业务中根据不用任务采取的不同调度方法的方式,且易出现资源浪费、整体计算效率低的现象。
发明内容
本发明提供了一种可调试的计算机多任务调度方法,以解决现有技术中任务调度方法无法应对多类型任务的问题。
为解决上述技术问题,本发明采用的技术方案是提供一种可调试的计算机多任务调度方法,可调试的计算机多任务调度方法包括:获取多个任务请求,并根据所述多个任务请求生成第一任务队列,其中,所述第一任务队列中的每一个任务的任务状态为等待。
对所述第一任务队列中的所有的所述任务进行优先级评估,其中,所述优先级评估包括对每一个所述任务进行处理等级评估,和当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估。
生成任务状态转换表,所述任务状态转换表包括所述任务的当前状态和所述任务的后续状态,其中,所述当前状态和所述后续状态的状态转换条件能够自定义设置。
根据所述优先级评估的结果对所述第一任务队列进行重新排序,并遍历所述任务状态转换表,生成第二任务队列,其中,所述第二任务队列中的所述任务的所述任务状态包括等待和/或执行。遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务。
本发明提供的技术方案带来的有益效果是:
根据获取的任务请求生成第一任务队列,其中,第一任务队列为所有待执行的任务的等待队列,通过对第一任务队列进行优先级评估,其中,根据处理等级评估,能够根据用户的实际应用场景进行选择采用的等级评估条件,从而自定义设置不同的等级。其中,再对任务等级相同的任务执行响应比评估,能够有效地优化计算处理程序。
其中,根据生成的任务状态转换表,通过遍历任务状态转换表中的任务的后续状态,能够确定第二任务队列中的当前任务状态。其中,当前任务状态为第一任务队列中的任务状态,后续任务状态为第二任务队列中的任务状态。
其中,状态转换条件能够根据实际应用场景进行自定义设置,即,当前状态转换为后续状态的判定条件能够自定义设置。
此外,删除第二任务队列中任务状态为执行的任务,当获取新的任务请求时,能够添加新的任务请求,并再次进行优先级评估,依此循环,从而有效地实现同一任务调度方法能够适用于多个不用类型的任务。
在一些实施方案中,对每一个所述任务进行处理等级评估包括,根据排序因子判断所述任务的处理等级,并根据所述任务的处理等级评估结果对所述第一任务队列进行排序生成第一顺序队列,其中,所述排序因子至少包括所述任务的用户等级、任务等级和任务类型。
采用上述技术方案,当第一任务队列转换为第二任务队列时需进行优先级评估,其中,第一任务队列中的所有任务的状态均为等待。对任务进行处理等级评估,能够有效地将任务优先级进行一个初步的评估,其中,排序因子为第一任务队列的排序条件,并能够自定义设置,即,根据用户预设的等级评估条件对任务进行评估,包括但不限于任务的用户等级、任务等级和任务类型评估。
在一些实施方案中,当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估包括,对所述第一顺序队列进行后置评估,并生成第二顺序队列,其中,所述后置评估包括对所述任务进行响应比评估;
其中,所述响应比评估步骤为:
分别计算多个任务的响应比,其中,响应比计算公式为:
RR=(W+S)/S
其中,RR代表响应比,W代表任务的已等候时间,S代表任务的预估处理时间;响应比值较高的任务的优先级大于响应比值较低的任务的优先级。
采用上述技术方案,基于自定义的优先级评估方法,对于处理等级评估时,当其出现相同等级时,进行响应比评估,其中,响应比评估通过任务的已等候时间(W)和任务的预估处理时间(S)进行公式计算,从而确定同一等级下的优先级排序,进一步优化计算资源。
在一些实施方案中,当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估还包括:根据所述任务的等候时间、资源使用量、预估处理时间对每一个所述任务进行排序。
采用上述技术方案,在任务处理过程中,由于任务量巨大,由用户提出的任务时间点、任务类型是近乎随机的,因此,当出现多个任务的处理等级相同时,按照先来先处理算法,根据其任务到达时间进行优先级评估。
或根据任务的资源使用量以及预估处理时间对任务的优先级进行评估。其中,资源使用量、预估处理时间以及等候时间等评估条件,能够根据用户需求进行自定义权重分配。
在一些实施方案中,任务状态转换表还包括计算资源使用量、任务资源占用量和计算资源余量。
当任务的计算资源使用量小于或等于第一预设值时,若计算资源余量执行任务大于第二预设值,状态转换表中的所述任务的所述后续状态为执行;
当任务的计算资源使用量大于第一预设值时,若任务资源占用量小于顺序任务队列中的后续三个的任务的资源占用量的总和,且任务的计算资源余量大于第二预设值,状态转换表中的所述任务的所述后续状态为执行。
采用上述技术方案,任务执行后计算资源余量=资源总量-(当前资源占用量+预估的执行该任务的资源占用量),从而根据计算资源使用量、计算资源余量、任务资源占用量以及任务执行后计算资源余量能够有效地作为任务状态转换条件,并在最大限度的情况下利用计算资源。
在一些实施方案中,所述后续状态包括执行、等待和挂起。
当所述任务的计算资源余量大于所述任务的计算资源使用量时,所述任务的所述后续状态为执行;当所述任务的计算资源余量小于所述任务的计算资源使用量,且在设定时间后,预估计算资源余量大于所述任务的所述计算资源使用量时,所述任务的所述后续状态为等待。
当所述任务的计算资源余量小于所述任务的计算资源使用量,且在所述设定时间后,所述预估计算资源余量小于所述任务的所述计算资源使用量时,所述任务的所述后续状态为挂起。
采用上述技术方案,根据任务状态转换表的状态转换条件判断所述任务的后续状态,并能够根据后续状态以及预估计算资源余量第二任务队列其本质上也是等待任务队列,判断该任务的后续操作。从而进一步利用计算资源,避免资源浪费。
在一些实施方案中,遍历第二任务队列,并删除第二任务队列中的任务状态为执行的任务还包括,分配计算资源余量并用于执行任务状态为执行的任务。
采用上述技术方案,当任务执行后,该任务开始占用计算资源,因此删除任务状态为执行的任务,以免在下一轮任务调度循环中形成冗余计算,造成资源浪费。
在一些实施方案中,设定第一任务队列中的任务数阈值,
当第一任务队列中的任务数大于任务阈值时,对第一任务队列中的多个任务进行优先级评估,并根据优先级评估的结果对第一任务队列进行重新排序,并生成第二任务队列,遍历第二任务队列,并删除第二任务队列中的任务状态为执行的任务;
当第一任务队列中的任务数小于或等于任务阈值时,第一任务队列结束优先级评估,并生成第二任务队列。
采用上述技术方案,当第一任务队列中的任务数量等于或小于任务数阈值时,将不再进行优先级评估和计算,进一步的释放计算资源。
在一些实施方案中,本申请还提供一种多任务调度系统,包括:用户端和服务器端。所述用户端用于发送任务请求;所述服务器端用于执行以下操作,包括:
获取多个任务请求,并根据所述多个任务请求生成第一任务队列,其中,所述第一任务队列中的每一个任务的任务状态为等待。
对所述第一任务队列中的所有的所述任务进行优先级评估,其中,所述优先级评估包括对每一个所述任务进行处理等级评估,和当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估。
生成任务状态转换表,所述任务状态转换表包括所述任务的当前状态和所述任务的后续状态,其中,所述当前状态和所述后续状态的状态转换条件能够自定义设置。
根据所述优先级评估的结果对所述第一任务队列进行重新排序,并遍历所述任务状态转换表,生成第二任务队列,其中,所述第二任务队列中的所述任务的所述任务状态包括等待和/或执行。
遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务。
附图说明
为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1是本发明提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图一;
图2是本发明提供的一种可调试的计算机多任务调度方法的优先级评估步骤的一实施例的流程图示意图;
图3是本发明提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图二;
图4是本发明提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明保护的范围。
参见图1至图2所示,图1示出了本申请提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图一;图2示出了本申请提供的一种可调试的计算机多任务调度方法的优先级评估步骤的一实施例的流程图示意图。
在一些实施方案中,可调试的计算机多任务调度方法包括:
步骤S10,获取多个任务请求,并根据多个任务请求生成第一任务队列,其中,第一任务队列中的每一个任务的任务状态为“等待”。
示例性地,当计算机计算资源,例如CPU(Central Processing Unit,中央处理器)、GPU(graphics processing unit,图形处理器)无法同时分配多个任务进行执行时,例如,当多名用户向服务器端提出占用大量CPU资源的数学计算任务、图像配准任务以及图像滤波任务和占用大量GPU资源的人工智能图像分割模型推理任务、人工智能图像分类模型推理任务等多个任务请求时,计算机计算资源无法同时执行,服务器端接收请求并根据该多个任务请求生成任务执行的等待队列(即,第一任务队列)。例如按照服务器端接收任务请求的时间点对任务请求进行排序的第一任务队列。
步骤S20,对第一任务队列中的所有任务进行优先级评估,其中,优先级评估包括对每一个任务进行处理等级评估,和当多个任务的处理等级评估结果相同时,对多个任务进行后置评估。
任务的处理等级评估包括:步骤S200,根据排序因子判断任务的处理等级;步骤S210,根据处理等级评估结果对第一任务队列进行排序并生成第一顺序队列。
示例性地,排序因子为可自定义设置的第一任务队列的排序评估条件,例如,当多名用户向服务器端提交大量占用GPU计算资源的人工智能图像分割任务请求和人工智能图像分类模型推理任务请求时,排序因子为任务等级,若预定义人工智能图像分类模型推理的任务等级为“紧急”,人工智能图像分割的任务任务等级为“普通”时,对第一任务队列进行排序并生成的第一顺序队列,处理等级评估结果为:人工智能图像分类模型推理的任务处理优先级大于人工智能图像分割的任务处理。
当多个任务的处理等级评估结果相同时,对多个任务进行后置评估,包括:步骤S220,对第一顺序队列进行后置评估和步骤S230,根据后置评估的结果对第一顺序队里而进行排序并生成第二顺序队列。
其中,后置评估包括响应比评估、任务的等候时间评估、资源使用量评估和预估处理时间评估。
示例性地,分别计算第一顺序队列中的多个任务的响应比;根据响应比评估结果对第一顺序队列进行排序并生成第二顺序队列;步骤S30,根据优先级评估的结果对第一任务队列进行重新排序,并生成第二任务队列,其中,第二任务队列中的任务状态包括“等待”或“执行”。
根据响应比评估结果能够生成第二顺序队列。其中,第二顺序队列中的任务状态均为“等待”状态。通过对第一任务队列的多次排序进而有效地实现其优先级的评估调节的可调整化。即,在处理等级评估中,先一步进行的任务等级能够根据任务类型等进行自定义调整。
步骤S50,遍历第二任务队列,并删除第二任务队列中的任务状态为“执行”的任务。
删除任务状态为“执行”的任务,第二任务队列实质上为根据优先级排序后的并进行过状态转换的任务等待队列,去除非“等待”状态的任务,能够有效地节约计算机的计算资源。示例性地,当人工智能图像分割的任务处于“执行”状态时,删除第二任务队列中的该任务请求。
其中,执行步骤S50后,还能够增设步骤S60,判断是否接收到新任务,当接收到新任务时,在第一任务队列中插入新任务,并更新第一任务队列,重新对第一任务队列中的所有任务请求进行优先级评估。
本申请实施例中,用户能够根据不同类型的任务的特点进行自定义优先级评估的条件,从而有效地实现同一种任务调度方法能够适用于多个不用类型的任务。
在一些实施方案中,对每一个任务进行处理等级评估包括,步骤S200,根据排序因子判断任务的处理等级和步骤S210,根据任务的处理等级评估结果对第一任务队列进行排序生成第一顺序队列,其中,排序因子至少包括任务的用户等级、任务等级和任务类型。
本申请实施例中,处理等级的评估条件能够自定义设置。即,用户能够结合自身的业务需求对任务进行优先级划分。示例性地,根据用户资源权限等级(即,提出该任务的用户等级)进行评估(例如将用户划分为VIP用户和普通用户),当一名VIP用户和一名普通用户同时提出人工智能图像分类模型推理的任务请求时,通过任务处理等级评估结果进行排序并生成第一顺序队列,从而优先执行VIP用户的人工智能图像分类模型推理的任务请求。
示例性地,当用户等级相同时,进一步按照任务类型进行处理等级评估,使得所占计算资源较少的任务类型在前,例如,图像分割任务占用4g显存,图像配准任务占用2g显存,则图像配准类型的任务排序在前。
在一些实施方案中,当多个任务的处理等级评估结果相同时,对多个任务进行后置评估包括,步骤S220,对第一顺序队列进行后置评估,和步骤S230,根据后置评估的结果对第一顺序队列进行排序并生成第二顺序队列,其中,后置评估包括对任务进行响应比评估,其中,响应比评估步骤为:
分别计算多个任务的响应比,其中,响应比计算公式为:
RR=(W+S)/S
其中,RR代表响应比,W代表任务的已等候时间,S代表任务的预估处理时间;第一任务队列根据响应比的计算结果进行排序并生成第二任务队列,其中,响应比值较高的任务的优先级大于响应比值较低的任务的优先级。
本申请实施例中,基于自定义的优先级评估方法,对于处理等级评估时,当其出现相同等级时,进行响应比评估,其中,响应比评估通过任务的已等候时间(W)和任务的预估处理时间(S)进行公式计算,从而确定同一等级下的优先级排序。示例性地,当两个普通用户先后提出图形配准任务请求和图像滤波任务请求时,通过任务处理等级评估结果两者的处理等级相同时,根据响应比计算公式分别计算图形配准任务请求和图像滤波任务请求的响应比值。
例如图形配准任务请求的已等候时间为10S,预估处理时间为50S,其响应比值为1.2;图像滤波任务请求的已等候时间为15S,预估处理时间为100S,其响应比值为1.15。由于图像配准任务请求的响应比值较大,对任务请求进行排序并生成第二顺序队列,其中,优先执行图像配准任务请求。
在一些实施方案中,当多个任务的处理等级评估结果相同时,对多个任务进行后置评估还包括:根据任务的等候时间、资源使用量、预估处理时间对每一个任务进行排序。
本申请实施例中,在任务处理过程中,由于任务量巨大,由用户提出的任务时间点、任务类型是近乎随机的,因此,当出现小概率情况(即,多个任务的处理等级相同、任务响应比相同时),按照先来先处理算法进行优先级评估,例如服务器10S前获取的图像配准任务请求的优先级大于5S前获取的数学计算任务请求(当数学计算任务请求和图像配准任务请求的响应比值相同时)。
其中,根据任务的资源使用量以及预估处理时间对任务的优先级进行评估。其中,响应比、资源使用量、预估处理时间以及等候时间等评估条件,能够根据用户需求进行自定义权重分配。
但本申请对评估条件的评估先后不做限定,例如先对处理等级相同的任务进行响应比评估,然后进行资源使用量评估和预估处理时间评估。或先对处理等级相同的任务进行资源使用量评估,然后进行等候时间评估和响应比评估,其目的是适用于不同任务类型的任务的不同需求。
参见图3所示,图3示出了本申请提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图二。
在一些实施方案中,任务状态转换表还包括计算资源使用量、任务资源占用量和计算资源余量。
当任务的计算资源使用量小于或等于第一预设值时,若计算资源余量执行任务大于第二预设值,状态转换表中的任务的后续状态为执行;
当任务的计算资源使用量大于第一预设值时,若任务资源占用量小于顺序任务队列中的后续三个的任务的资源占用量的总和,且任务的计算资源余量大于第二预设值,状态转换表中的任务的后续状态为执行。
本申请实施例中,结合图2和图3所示,还包括步骤S210和步骤S230,其中,对步骤S230所生成的第二顺序队列执行步骤S400,遍历第二顺序队列中的所有任务;并执行步骤S410,获取当前计算资源使用情况;从而根据自定义的任务状态转换条件执行步骤S420,查询状态转换表并改变第二顺序队列中的任务状态并生成第二任务队列。例如当前状态为“等待”,转换为后续状态为“等待”状态,或当前状态为“等待”,后续状态为“执行”。
此外,步骤S400和步骤S420中,第二顺序任务队列实质上的任务状态并未发生改变,仅根据第一任务队列进行的优先级评估后对多个任务进行排序。其中,遍历任务状态转换表中所有任务的后续状态,并根据任务状态转换表中所有任务的后续状态确认第二任务队列中的任务状态。示例性地,只考虑计算资源余量为任务状态转换条件的状态转换表如表1所示:
表1一种只考虑计算资源余量为任务状态转换条件的状态转换表
当前状态 | 计算资源余量足够 | 后续状态 |
等待 | 是 | 执行 |
等待 | 否 | 等待 |
任务状态表中的后续状态为该任务是否满足任务状态的转换条件进行转换,当满足任务状态转换条件时,后续状态为执行,当不满足任务状态转换条件时,后续状态为等待。其中,任务状态的转换条件,用户能够根据任务的特点对其进行自定义调整,从而使其能够适用于不同的任务需求。
其中,任务从“等待”状态到“执行”状态需满足的条件需根据实际应用场景进行调整。例如在一些应用场景中,用户仅考虑资源足够就执行,其它无需考虑,则状态转换条件只设置“资源余量是否足够”即可。
示例性地,提供一种任务状态转换条件,即,在根据第一任务队列执行优先级评估之后,其中,任务的状态仍为“等待”,对第一任务队列进行排序生成第一顺序队列和第二顺序队列,遍历任务顺序任务队列中的多个任务并查询任务状态转换表来确认并更改任务的当前状态,生成第二任务队列。
示例性地,一种任务状态转换条件的一实施例的状态转换表如表2所示:
表2一种任务状态转换条件的一实施例的状态转换表
其中,表2中的“N/A”表示当前不适用该计算方式,例如不需判断后续3个任务的资源占用量总和与该任务资源占用量比较或当计算资源不足以执行该任务时,不再判断后续执行后计算资源余量等。
根据用户自定义的第一预设值(例如50%、70%),能够判断任务资源的占用量是否过大,根据用户自定义的第二预设值(例如5%、10%),能够判断剩余的计算容量是否便于计算的顺利运行以及应对偶然性时间(例如其他事件占用计算资源),从而避免导致系统缺乏运行余量而卡顿。
此外,考虑该任务的任务资源占用量小于顺序任务队列中的后续三个的任务的资源占用量的总和,能够有效的应对当该任务优先级较高,当预估的计算资源占用量较大时,即,缺少足够的计算资源余量用于执行该任务时,优先执行后续任务以占用当前计算资源余量,能够有效地节约时间,并增加计算资源的利用率。
此外,任务执行后计算资源余量=资源总量-(当前资源占用量+预估的执行该任务的资源占用量),从而根据计算资源使用量、计算资源余量、任务资源占用量以及任务执行后计算资源余量能够有效地作为任务状态转换条件,并在最大限度的情况下利用计算资源。
在一些实施方案中,后续状态包括执行、等待和挂起。
当任务的计算资源余量大于任务的计算资源使用量时,任务的后续状态为执行;当任务的计算资源余量小于任务的计算资源使用量,且在设定时间后,预估计算资源余量大于任务的计算资源使用量时,任务的后续状态为等待。
当任务的计算资源余量小于任务的计算资源使用量,且在设定时间后,预估计算资源余量小于任务的计算资源使用量时,任务的后续状态为挂起。
本申请实施例中,后续状态增加挂起状态,使得第二任务队列在遍历状态转换表和执行任务时,能够根据当前的资源余量进行插空执行第二任务队列的后续任务,进而有效地提高计算资源的利用率。即,当设定时间后不足以具备充足的计算资源余量执行该任务,且预计在设定时间后系统也无法释放出足以执行该任务的计算资源时,继续遍历后续状态转换表,以使得充分利用计算资源以执行后续任务。
示例性地,当计算资源余量为3G时,若图像分割任务的计算资源使用量为4G,且在设定时间(例如10S)后也无法获得4G的计算资源余量时,继续遍历第二任务队列中的后续任务的状态转换表,若图像配准任务只需2G时,并能够在设定时间内执行时,可优先执行图像配准任务。从而有效地“见缝插针”式利用资源。
示例性地,一种任务状态转换条件的一实施例的状态转换表如表3所示:
表3一种任务状态转换条件的一实施例的状态转换表
其中,表3中的“T”表示设定时间,“N/A”表示当前不适用该计算方式,例如不需判断资源等待时间小于设定时间等。
其中,“结束本轮循环”为该轮任务调度(第二任务队列对状态转换表进行查询进而更新第二任务队列)不再查询状态转换表中的对应任务;“下一任务继续查表”为该轮任务调度时,在访问下一任务的状态转换表时同时继续访问该任务的状态转换表。
示例性地,当本轮任务调度时,执行该任务的计算资源余量不足,但在设定时间后预计能够释放出足够执行该任务的计算资源时,该任务结束循环遍历,且该任务的后续状态仍为等待。例如当前计算资源余量只剩1G时,预计设定时间(例如10S)后能够释放出3G的计算资源,使得图像配准任务(所需计算资源使用量为2G)能够执行时,由于其在下一轮任务调度中能够执行,将其后续状态定为等待,从而能够有效地协调多个任务等待的时间。
当本轮调度中存在有任务的后续状态为挂起时,判断当前的计算资源余量能够执行该任务,且该任务所需的执行时间小于挂起的任务的资源等待时间时,执行该任务;若不满足则将该任务的后续状态维持为“等待”,继续向后遍历是否存在满足上述条件的任务。示例性地,当存在图像滤波任务挂起时,图像配准任务能够在图像滤波任务的资源等待时间内完成,且图像配准任务的计算资源使用量小于当前计算资源余量时,执行该图像配准任务。
其中,挂起的任务是为节约当前资源所采用的暂时调离的一种调度手段,并在本轮调度完成后至下一轮调度时,仍需将该任务的后续状态调整为等待。
在一些实施方案中,步骤S50,遍历第二任务队列,并删除第二任务队列中的任务状态为“执行”的任务还包括,分配计算资源余量并用于执行任务状态为“执行”的任务。
本申请实施例中,增加步骤S510,判断任务是否为执行状态,当任务处于执行状态时,执行步骤S50,示例性地,步骤S50包括步骤S220,删除第二任务队列中任务状态为“执行”的任务和步骤S530,为任务状态为“执行”的任务分配计算资源并执行任务。从而有效地表面在后续判断计算资源余量等数据时收到影响。
参见图4所示,图4示出了本申请提供的一种可调试的计算机多任务调度方法的一实施例的流程示意图三。
在一些实施方案中,设定第一任务队列中的任务数阈值,当第一任务队列中的任务数大于任务阈值时,对第一任务队列中的多个任务进行优先级评估,并根据优先级评估的结果对第一任务队列进行重新排序,并生成第二任务队列,遍历第二任务队列,并删除第二任务队列中的任务状态为“执行”的任务;当第一任务队列中的任务数小于或等于任务阈值时,第一任务队列结束优先级评估,并生成第二任务队列。
本申请实施例中,增加步骤S70,判断任务数是否小于任务数阈值,当第一任务队列中的任务数量等于或小于任务数阈值(例如任务数阈值为1)时,将不再进行优先级评估和计算,进一步的释放计算资源。其中,步骤S430,根据优先级的评估的结果对第一任务队列进行排序,并生成第二顺序队列,依次包括步骤S210和步骤S230。
在一些实施方案中,本申请还提供一种多任务调度系统,包括:用户端和服务器端。用户端用于发送任务请求;服务器端用于执行以下操作,包括:
获取多个任务请求,并根据多个任务请求生成第一任务队列,其中,第一任务队列中的每一个任务的任务状态为等待。
对第一任务队列中的所有的任务进行优先级评估,其中,优先级评估包括对每一个任务进行处理等级评估,和当多个任务的处理等级评估结果相同时,对多个任务进行后置评估。
生成任务状态转换表,任务状态转换表包括任务的当前状态和任务的后续状态,其中,当前状态和后续状态的状态转换条件能够自定义设置。
根据所述优先级评估的结果对所述第一任务队列进行重新排序,并遍历所述任务状态转换表,生成第二任务队列,其中,所述第二任务队列中的所述任务的所述任务状态包括等待和/或执行。
遍历第二任务队列,并删除第二任务队列中的任务状态为执行的任务。
本申请实施例中,本领域的技术人员应该明白,本发明的实施例可提供为方法、系统或计算机程序产品。本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在电子设备中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所做的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均应携带在本发明的保护范围之内。
Claims (8)
1.一种可调试的计算机多任务调度方法,其特征在于,包括:
获取多个任务请求,并根据所述多个任务请求生成第一任务队列,其中,所述第一任务队列中的每一个任务的任务状态为等待;
对所述第一任务队列中的所有的所述任务进行优先级评估,其中,所述优先级评估包括对每一个所述任务进行处理等级评估,和当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估;
生成任务状态转换表,所述任务状态转换表包括所述任务的当前状态和所述任务的后续状态,其中,所述当前状态和所述后续状态的状态转换条件能够自定义设置;
根据所述优先级评估的结果对所述第一任务队列进行重新排序,并遍历所述任务状态转换表,生成第二任务队列,其中,所述第二任务队列中的所述任务的所述任务状态包括等待和/或执行;
遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务;
其中,所述后续状态包括执行、等待和挂起,
当所述任务的计算资源余量大于所述任务的计算资源使用量时,所述任务的所述后续状态为执行;
当所述任务的计算资源余量小于所述任务的计算资源使用量,且在设定时间后,预估计算资源余量大于所述任务的所述计算资源使用量时,所述任务的所述后续状态为等待;
当所述任务的计算资源余量小于所述任务的计算资源使用量,且在所述设定时间后,所述预估计算资源余量小于所述任务的所述计算资源使用量时,所述任务的所述后续状态为挂起。
2.根据权利要求1所述的可调试的计算机多任务调度方法,其特征在于,对每一个所述任务进行处理等级评估包括,根据排序因子判断所述任务的处理等级,并根据所述任务的处理等级评估结果对所述第一任务队列进行排序生成第一顺序队列,其中,所述排序因子至少包括所述任务的用户等级、任务等级和任务类型。
3.根据权利要求2所述的可调试的计算机多任务调度方法,其特征在于,当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估包括,对所述第一顺序队列进行后置评估,并生成第二顺序队列,其中,所述后置评估包括对所述任务进行响应比评估;
其中,所述响应比评估步骤为:
分别计算所述处理等级相同的所述多个任务的响应比,其中,所述响应比计算公式为:
RR=(W+S)/S
其中,RR代表响应比,W代表任务的已等候时间,S代表任务的预估处理时间;
所述响应比值较高的所述任务的优先级大于所述响应比值较低的所述任务的优先级。
4.根据权利要求2所述的可调试的计算机多任务调度方法,其特征在于,当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估还包括:
根据所述任务的等候时间、资源使用量、预估处理时间对每一个所述任务进行排序。
5.根据权利要求1所述的可调试的计算机多任务调度方法,其特征在于,所述任务状态转换表还包括计算资源使用量、任务资源占用量和计算资源余量,
当所述任务的所述计算资源使用量小于或等于第一预设值时,若所述计算资源余量执行所述任务大于第二预设值,所述状态转换表中的所述任务的所述后续状态为执行;
当所述任务的所述计算资源使用量大于第一预设值时,若所述任务资源占用量小于顺序任务队列中的后续三个的所述任务的所述资源占用量的总和,且所述任务的所述计算资源余量大于所述第二预设值,所述状态转换表中的所述任务的所述后续状态为执行。
6.根据权利要求1所述的可调试的计算机多任务调度方法,其特征在于,遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务还包括,分配计算资源余量并用于执行所述任务状态为执行的所述任务。
7.根据权利要求1所述的可调试的计算机多任务调度方法,其特征在于,设定所述第一任务队列中的任务数阈值,
当所述第一任务队列中的所述任务数大于所述任务数阈值时,对所述第一任务队列中的所述多个任务进行优先级评估,并根据所述优先级评估的结果对所述第一任务队列进行重新排序,并生成第二任务队列,遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务;
当所述第一任务队列中的所述任务数小于或等于所述任务数阈值时,所述第一任务队列结束所述优先级评估,并生成所述第二任务队列。
8.一种多任务调度系统,其特征在于,包括:
用户端,所述用户端用于发送任务请求;
服务器端,所述服务器端用于执行以下操作,包括:
获取多个所述任务请求,并根据所述多个任务请求生成第一任务队列,其中,所述第一任务队列中的每一个任务的任务状态为等待;
对所述第一任务队列中的所有的所述任务进行优先级评估,其中,所述优先级评估包括对每一个所述任务进行处理等级评估,和当多个所述任务的处理等级评估结果相同时,对多个所述任务进行后置评估;
生成任务状态转换表,所述任务状态转换表包括所述任务的当前状态和所述任务的后续状态,其中,所述当前状态和所述后续状态的状态转换条件能够自定义设置;
根据所述优先级评估的结果对所述第一任务队列进行重新排序,并遍历所述任务状态转换表,生成第二任务队列,其中,所述第二任务队列中的所述任务的所述任务状态包括等待和/或执行;
遍历所述第二任务队列,并删除所述第二任务队列中的所述任务状态为执行的所述任务;
其中,所述后续状态包括执行、等待和挂起,
当所述任务的计算资源余量大于所述任务的计算资源使用量时,所述任务的所述后续状态为执行;
当所述任务的计算资源余量小于所述任务的计算资源使用量,且在设定时间后,预估计算资源余量大于所述任务的所述计算资源使用量时,所述任务的所述后续状态为等待;
当所述任务的计算资源余量小于所述任务的计算资源使用量,且在所述设定时间后,所述预估计算资源余量小于所述任务的所述计算资源使用量时,所述任务的所述后续状态为挂起。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311261011.0A CN117149393B (zh) | 2023-09-27 | 2023-09-27 | 一种可调试的计算机多任务调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311261011.0A CN117149393B (zh) | 2023-09-27 | 2023-09-27 | 一种可调试的计算机多任务调度方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149393A CN117149393A (zh) | 2023-12-01 |
CN117149393B true CN117149393B (zh) | 2024-04-02 |
Family
ID=88898878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311261011.0A Active CN117149393B (zh) | 2023-09-27 | 2023-09-27 | 一种可调试的计算机多任务调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149393B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016168590A1 (en) * | 2015-04-15 | 2016-10-20 | Alibaba Group Holding Limited | System, apparatus and method for resource provisioning |
CN111400022A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种资源调度方法、装置及电子设备 |
CN112087503A (zh) * | 2020-08-29 | 2020-12-15 | 北京明略昭辉科技有限公司 | 集群任务调度方法、系统、计算机和计算机可读存储介质 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN113722056A (zh) * | 2020-12-23 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 任务调度方法、装置、电子设备和计算机可读介质 |
CN113900783A (zh) * | 2021-09-29 | 2022-01-07 | 深圳壹账通智能科技有限公司 | 基于有限资源的任务处理方法、装置、设备及存储介质 |
CN114064232A (zh) * | 2021-10-13 | 2022-02-18 | 中国科学院苏州生物医学工程技术研究所 | 基于面向对象的全自动设备异步并发调度控制系统及方法 |
CN115237613A (zh) * | 2022-09-20 | 2022-10-25 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算任务调度方法、装置和可读存储介质 |
CN115658292A (zh) * | 2022-09-30 | 2023-01-31 | 上海浦东发展银行股份有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN116149821A (zh) * | 2023-02-13 | 2023-05-23 | 刘学 | 一种集群多任务滑窗调度处理方法、系统、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291548B (zh) * | 2016-03-31 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 任务的资源调度方法及装置 |
-
2023
- 2023-09-27 CN CN202311261011.0A patent/CN117149393B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016168590A1 (en) * | 2015-04-15 | 2016-10-20 | Alibaba Group Holding Limited | System, apparatus and method for resource provisioning |
CN111400022A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种资源调度方法、装置及电子设备 |
CN112087503A (zh) * | 2020-08-29 | 2020-12-15 | 北京明略昭辉科技有限公司 | 集群任务调度方法、系统、计算机和计算机可读存储介质 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN113722056A (zh) * | 2020-12-23 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 任务调度方法、装置、电子设备和计算机可读介质 |
CN113900783A (zh) * | 2021-09-29 | 2022-01-07 | 深圳壹账通智能科技有限公司 | 基于有限资源的任务处理方法、装置、设备及存储介质 |
CN114064232A (zh) * | 2021-10-13 | 2022-02-18 | 中国科学院苏州生物医学工程技术研究所 | 基于面向对象的全自动设备异步并发调度控制系统及方法 |
CN115237613A (zh) * | 2022-09-20 | 2022-10-25 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算任务调度方法、装置和可读存储介质 |
CN115658292A (zh) * | 2022-09-30 | 2023-01-31 | 上海浦东发展银行股份有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN116149821A (zh) * | 2023-02-13 | 2023-05-23 | 刘学 | 一种集群多任务滑窗调度处理方法、系统、设备及介质 |
Non-Patent Citations (2)
Title |
---|
Task scheduling and resource allocation in cloud computing using a heuristic approach;Mahendra Bhatu Gawali 等;《Journal of Cloud Computing》;20181231;第7卷;第1-16页 * |
云计算环境下基于公平与效率的多资源调度优化研究;赵丽花;《中国博士学位论文全文数据库 信息科技辑》;20230515(第5期);I139-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN117149393A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
CN111427679B (zh) | 面向边缘计算的计算任务调度方法、系统、装置 | |
US8510741B2 (en) | Computing the processor desires of jobs in an adaptively parallel scheduling environment | |
CN107992359B (zh) | 一种云环境下代价感知的任务调度方法 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN105159782A (zh) | 基于云主机为订单分配资源的方法和装置 | |
CN108681481B (zh) | 业务请求的处理方法及装置 | |
KR101886072B1 (ko) | 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법 | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
US8024741B2 (en) | Dynamic latch request scaling back function to conditionally place task in suspended state | |
CN111367644A (zh) | 一种面向异构融合系统的任务调度方法及装置 | |
CN108446179A (zh) | 基于负载均衡机制的权重优先Task任务调度方法 | |
CN112148454A (zh) | 一种支持串行和并行的边缘计算方法及电子设备 | |
CN106201681B (zh) | Hadoop平台下基于预释放资源列表的任务调度方法 | |
US20220291959A1 (en) | Activity scheduling method, system, terminal and storage medium based on high response ratio | |
JP2008226023A (ja) | ジョブ割当装置、及びジョブ割当方法 | |
CN116991585A (zh) | 一种ai算力自动调度方法、装置及介质 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
CN115454602A (zh) | 一种任务调度方法、装置及设备 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN117149393B (zh) | 一种可调试的计算机多任务调度方法和系统 | |
CN111930485B (zh) | 一种基于性能表现的作业调度方法 | |
CN112306642B (zh) | 一种基于稳定匹配博弈理论的工作流调度方法 | |
CN109614222A (zh) | 一种多线程资源分配方法 | |
Dubey et al. | QoS driven task scheduling in cloud computing |
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 |