CN115525400A - 基于批次来管理多个计算任务的方法、设备和程序产品 - Google Patents
基于批次来管理多个计算任务的方法、设备和程序产品 Download PDFInfo
- Publication number
- CN115525400A CN115525400A CN202110706189.6A CN202110706189A CN115525400A CN 115525400 A CN115525400 A CN 115525400A CN 202110706189 A CN202110706189 A CN 202110706189A CN 115525400 A CN115525400 A CN 115525400A
- Authority
- CN
- China
- Prior art keywords
- computing
- batch
- tasks
- task
- computing tasks
- 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.)
- Pending
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
-
- 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/466—Transaction processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及基于批次来管理多个计算任务的方法、设备和程序产品。在一种方法中,响应于接收到使用计算系统中的计算单元来执行多个计算任务的请求,标识多个计算任务的任务类型。获取用于调度多个计算任务以便由计算单元执行所产生的调度时间开销。基于任务类型和调度时间开销来确定用于划分多个计算任务的批次大小。基于批次大小,将多个计算任务划分为至少一个批次。提供了相应的设备和计算机程序产品。利用本公开的示例性实现方式,可以动态地确定用于划分多个计算任务的批次大小,进而并且使得计算系统的性能满足用户需求。
Description
技术领域
本公开的各实现方式涉及管理计算任务,更具体地,涉及用于基于批次来管理多个计算任务的方法、设备和计算机程序产品。
背景技术
随着计算机技术的发展,计算系统可以包括多种类型的计算单元。这些计算单元可以逐个处理每个计算任务和/或按照批次来一次处理多个计算任务。由于计算单元的带宽资源和计算资源都存在限制,如何更充分地利用计算单元处理多个计算任务,成为一个研究热点。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理计算任务的技术方案。期望该技术方案能够与已有的计算系统相兼容,并且以更为方便和有效的方式来管理计算任务。
根据本公开的第一方面,提供了一种用于基于批次来管理多个计算任务的方法。在该方法中,响应于接收到使用计算系统中的计算单元来执行多个计算任务的请求,标识多个计算任务的任务类型。获取用于调度多个计算任务以便由计算单元执行所产生的调度时间开销。基于任务类型和调度时间开销来确定用于划分多个计算任务的批次大小。基于批次大小,将多个计算任务划分为至少一个批次。
根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行根据本公开的第一方面的方法。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了其中可以实现本公开的示例性实现方式的应用环境的框图;
图2A示意性示出了根据本公开的示例性实现方式的用于基于单一任务模式来管理计算任务的框图;
图2B示意性示出了根据本公开的示例性实现方式的用于基于批处理模式来管理计算任务的框图;
图3示意性示出了根据本公开的示例性实现方式的用于管理计算任务的过程的框图;
图4示意性示出了根据本公开的示例性实现方式的用于管理计算任务的方法的流程图;
图5示意性示出了根据本公开的示例性实现方式的映射模型的框图;
图6示意性示出了根据本公开的示例性实现方式的用于确定批次的方法的流程图;以及
图7示意性示出了根据本公开的示例性实现的用于管理计算任务的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为了便于描述起见,首先参见图1描述本公开的应用环境。图1示意性示出了其中可以实现本公开的示例性实现方式的应用环境100的框图。如图1所示,计算系统110可以包括计算单元120(例如,中央处理单元(CPU))以及计算单元130(例如,快速辅助技术(QAT)加速器)。QAT是目前已经提出的一种基于专用硬件加速器的技术,该技术可以处理某些类型的计算任务从而分担CPU的工作负载。
然而,调度计算任务以便由QAT加速器执行该计算任务需要额外的调度时间开销。例如,为了使用QAT加速器来执行计算任务,需要将计算任务的待处理数据输入至指定的地址,由QAT加速器轮训是否存在待处理数据,由QAT加速器执行计算任务,将处理结果输出至指定地址,以及通知工作线程取回处理结果,等等。在上述过程的全部处理时间中,可以将由QAT加速器执行计算任务以外的全部其他时间开销称为调度时间开销。将会理解,调度时间开销可能会在全部处理时间中占据较大比例,这导致计算系统110的整体计算性能并不理想。
在下文中,将参见图2A和图2B描述QAT加速器的工作过程。图2A示意性示出了根据本公开的示例性实现方式的用于基于单一任务模式来管理计算任务的框图200A。如图2A所示,多个计算任务132中的每个计算任务210、…、212、…、以及214可以逐个被输入至计算单元130。此时,计算单元130将按照上文描述的过程依次执行每个计算任务210、…、212、…、以及214。由此,多个计算任务132的调度时间开销将包括针对每个计算任务执行输入、轮训、输出、通知等步骤的时间开销。尽管单一处理模式可以随时处理单个计算任务并且降低单个计算任务的响应延迟,然而处理多个计算任务132的总体调度时间较高,这导致计算单元130的数据吞吐量较低。
目前已经提出了批处理的技术方案,例如,QAT加速器支持批处理工作模式。具体地,可以将多个计算任务封装至一个数据包,并且将数据包提交至QAT加速器进行处理。图2B示意性示出了根据本公开的示例性实现方式的用于基于批处理模式来管理计算任务的框图200B。如图2所示,可以将计算任务210、…、212、…、以及214封装至批次220,继而在一个提交过程中将批次220中的全部计算任务提交至计算单元130。此时,针对单一的批次220来来执行输入、轮训、输出和通知步骤,由此可以降低处理多个计算任务的整体调度时间开销。尽管批处理模式可以提高计算单元130的整体数据吞吐量,然而各个计算任务的响应延迟较高。例如,提交计算任务210的用户不得不等到最后一个计算任务214处理完毕,才能获得计算任务210的处理结果。
因而,期待可以提供一种以更为有效的方式来处理计算任务的方案,并且期望该技术方案可以按照不同用户的需求,以更高的性能处理计算任务。
为了至少部分地消除上述技术方案中的缺陷,根据本公开的一个示例性实现方式,提供了一种用于基于批次来管理多个计算任务的方法。在下文中,参见图3描述根据本公开的一个示例性实现方式的概要。图3示意性示出了根据本公开的示例性实现方式的用于管理计算任务的过程300的框图。如图3所示,可以标识接收到的多个计算任务132的任务类型310,并且可以获取用于调度多个计算任务132以便由计算单元130执行所产生的调度时间开销320。可以将任务类型310和调度时间开销320输入至映射模型330,来确定用于划分多个计算任务132的批次大小340。进一步,可以基于批次大小340,将多个计算任务划分为至少一个批次,以便由计算单元130处理每个批次中的一个或多个计算任务。
利用本公开的示例性实现方式,可以基于当前的调度时间开销320来动态地调整批次大小340,进而在计算系统110的响应延迟和数据吞吐量之间进行平衡,以便提高计算系统的整体性能并且使得处理过程更加符合用户需求。
在下文中,将参见图4提供根据本公开的一个示例性实现方式的更多细节。图4示意性示出了根据本公开的示例性实现方式的用于管理计算任务的方法400的流程图。可以在计算系统110中执行方法400,在此的计算任务例如可以包括由QAT加速器以及CPU中的至少任一项所执行的计算任务。
在框410处,响应于接收到使用计算系统110中的计算单元130来执行多个计算任务132的请求,标识多个计算任务132的任务类型310。根据本公开的一个示例性实现方式,计算系统110可以包括数据保护系统。将会理解,数据保护系统可以涉及大量计算任务,例如,压缩任务、解压任务、加密任务、解密任务、哈希任务、备份任务、以及复制任务,等等。这些计算任务的计算复杂度通常较低并且数量巨大,因而特别适合于利用QAT加速器来处理。在数据保护系统中使用根据本公开的方法,可以将大量繁琐的重复工作负载从CPU卸载至QAT加速器,缓解CPU的工作压力,并且进而使得CPU可以优先处理更为复杂的计算任务。
根据本公开的一个示例性实现方式,可以基于以下至少任一项来标识任务类型310:多个计算任务对于吞吐量和响应延迟的要求。将会理解,用户对于不同的计算任务的需求并不相同。例如,一个用户希望尽快处理某个/某些计算任务(也即,要求较低的响应延迟)。又例如,另一用户希望在较短时间内处理大量计算任务(也即,要求较高的数据吞吐量)。因而,可以基于响应延迟和数据吞吐量两方面来标识计算任务的任务类型。
通常而言,可以认为并发度较低的计算任务要求较低的响应延迟,并且对于数据吞吐量并不敏感。举例而言,备份任务用于在用户系统与数据保护系统之间备份数据,以便将用户的新鲜数据备份至数据保护系统,可以在文件级别来执行备份任务并且各个文件相互独立。此时,依次执行涉及多个文件的多个备份任务(例如,可以使用单线程技术实现)。为了避免数据丢失,期望尽快地完成每个备份任务。又例如,可以认为并发度较高的计算任务要求较大的数据吞吐量,并且对于响应延迟并不敏感。举例而言,在数据保护系统内部执行的复制任务通常可以并发执行,例如,可以使用多线程技术来实现。此时,复制任务目的在于在较短时间内完成大量数据的备份。根据本公开的一个示例性实现方式,可以将任务类型划分为如下类型:要求较低响应延迟的类型和要求较高数据吞吐量的类型。
根据本公开的一个示例性实现方式,可以预先标记各个计算任务的类型。例如,可以在请求和/或计算任务的描述中添加类型字段,以便可以迅速确定各个计算任务的任务类型。具体地,可以将类型字段设置为0,以便表示计算任务要求较低响应延迟;可以将类型字段设置为1,以便表示计算任务要求较高数据吞吐量。
根据本公开的一个示例性实现方式,可以基于计算任务的请求者来标识计算任务的类型。例如,可以将来自用户系统的请求所涉及的计算任务标识为要求较低响应延迟,并且可以将来自数据保护系统内部的请求所涉及的计算任务标识为要求较高数据吞吐量。将会理解,上文仅示意性示出了用于标识任务类型的具体示例,在其他应用环境中,可以基于其他方式来标识任务类型。例如,可以存在第三种任务类型,并且该类型指定响应延迟和数据吞吐量两方面应当平衡。利用本公开的示例性实现方式,可以基于不同用户对于响应延迟和数据吞吐量两方面的要求,管理多个计算任务。以此方式,可以提高计算系统的性能进而提高用户满意度。
在框420处,可以获取用于调度多个计算任务132以便由计算单元130执行所产生的调度时间开销320。根据本公开的一个示例性实现方式,可以基于计算系统110的运行状态,获取调度时间开销320。例如,可以基于计算系统110在先前时间段的运行历史,来统计调度时间开销。具体地,可以基于从提交计算任务到获得处理结果的时间长度与真正由计算单元执行计算任务的时间长度之间的差异,来确定调度时间开销320。将会理解,调度时间开销320将会随着计算系统的工作状态的改变而变化,因而可以周期性地确定调度时间开销,以便使得后续的调度策略符合当前的计算系统的状态。
在框430处,基于任务类型310和调度时间开销320来确定用于划分多个计算任务的批次大小。根据本公开的一个示例性实现方式,可以首先获取与任务类型310相对应的映射模型330。在此的映射模型330描述任务类型、计算单元的调度时间开销以及多个计算任务的批次大小之间的关联关系。根据本公开的一个示例性实现方式,可以以多种方式来表示批次大小:可以以数据量为单位来表示批次大小,例如,16、32、64KB等;可以以计算任务的数量来表示批次大小,例如,16、32、64等。映射模型330例如可以以表格方式存储,例如下文表1示出了映射模型的一个示例性数据结构。
表1映射模型的示例
表1分别示出针对映射模型1和2的批次大小1和2,在此映射模型1和2分别是关联于不同类型的计算任务的映射模型。例如,映射模型1关联于要求较高数据吞吐量的计算任务。如表1第二行所示,针对分布类型1的批次大小1随着调度时间开销的提高而迅速提高,因而可以提供较高的数据吞吐量。当调度时间开销在0至200μs时,批次大小为0,这表示不进行封装而是针对每个计算任务进行单独处理。当调度时间开销大于200μs时,开始基于批处理模式操作:例如,调度时间开销为400μs时,批次大小为100KB。
又例如,如表1第三行所示,映射模型2关联于要求较低响应延迟的计算任务。针对分布类型2的批次大小2随着调度时间开销的提高而缓慢提高,并且在调度时间开销低于400μs时,不进行封装而是针对每个计算任务单独处理。此时,每个计算任务都可以被迅速处理,进而可以获得较低的响应延迟。
根据本公开的一个示例性实现方式,还可以使用其他方式来表示上文描述的映射模型。图5示意性示出了根据本公开的示例性实现方式的映射模型的框图500。在图5中,横坐标表示调度时间开销并且纵坐标表示针对不同任务类型的批次大小。具体地,映射模型510和520分别示出了针对要求较高数据吞吐量的任务类型以及要求较低响应延迟的任务类型的映射模型。将会理解,表1和图1仅仅提供了映射模型的示例,根据本公开的一个示例性实现方式,可以存在更多的任务类型,并且可以分别为每种任务类型提供相应的映射模型。例如,另一任务类型表示对于响应延迟和数据吞吐量两方面的需求平衡,此时可以在图5中提供对应于该任务类型的另一线条(例如,通过坐标点(0,0)和(1200,128)的线段))。
根据本公开的一个示例性实现方式,可以基于机器学习的方式来获取上文描述的映射模型。例如,可以使用由技术专家标注的历史数据来训练该映射模型。利用本公开的示例性实现方式,可以基于机器学习技术来积累任务类型、计算单元的调度时间开销以及多个计算任务的批次大小之间的关联关系的历史知识,以便指导未来的计算任务调度过程。
根据本公开的一个示例性实现方式,可以基于任务类型、调度时间开销以及映射模型,确定批次大小。以此方式,在计算系统未来的运行期间,映射模型中的这些历史知识可以有效地用于确定计算系统中的批次大小,进而提高计算系统的性能并且使得该性能更加符合于用户需求。
返回图4描述有关基于批次大小340进行后续处理的更多细节。在图4的框440处,基于批次大小340,将多个计算任务划分为至少一个批次。根据本公开的一个示例性实现方式,可以首先基于任务类型来对多个计算任务进行分类。进一步,对于具有相同任务类型的多个计算任务,可以按照相应的批次大小来划分批次。首先描述多个计算任务涉及相同的任务类型的情况,可以将多个计算任务中的第一计算任务添加至一个批次。如果该批次中的各个计算任务的数据量之和不大于批次大小,将多个计算任务中的第一计算任务之后的第二计算任务添加至该批次。可以不断地重复上述过程,直到该批次中的各个计算任务的数据量之和大于批次大小340。图6示意性示出了根据本公开的示例性实现方式的用于确定批次的方法600的流程图。
在框610处,可以接收计算任务。可以陆续地接收多个计算任务并且在每个循环中处理一个计算任务。在框620处,可以基于接收的计算任务的数据量来更新批次中的各个计算任务的总数据量,例如,基于如下公式来执行更新操作:总数据量=总数据量+计算任务的数据量。在框630处,可以确定总数据量与批次大小的关系。如果数据总量不大于批次大小,则方法600前进至框650以便将计算任务添加至该批次。继而,方法600将返回框610以便接收下一计算任务。
将会理解,多个计算任务可以在指定的队列中排队,如果队列为空则可以等待请求使用计算单元来执行另一计算任务的新的请求。在接收到新的请求之后,可以将新的请求所定义的计算任务添加至批次。可以不断地重复上文描述的过程,直到在框630处的判断结果为“是”。
在框630处,如果总数据量大于批次大小,则方法600前进至框640并且提交批次。换言之,如果确定批次中的各个计算任务的数据量之和大于批次大小,则向计算单元130提交该批次以使得计算单元130执行提交的批次中的各个计算任务。此时,批次中的各个计算任务将会被封装至单一的数据包并且发生至计算单元130。
在下文中,将描述多个计算任务涉及不同任务类型的情况。如果确定多个计算任务涉及不同的任务类型,可以分别为每种任务类型建立相应的批次。可以基于上文描述的方法400来分别确定与每种任务类型相关联的批次大小。假设获取的调度时间开销为600μs,可以基于表1来确定与两种任务类型相对应的批次大小分别为110KB和8KB。此时,可以分别按照两个批次大小来分别处理两种类型的计算任务。
具体地,可以首先将多个计算任务分类为要求较低响应延迟的第一类型和要求较高数据吞吐量的第二类型。可以分别将两种类型的多个计算任务划分至相应的批次。例如,对于第一类型的多个计算任务,可以按照方法600来划分批次,此时批次大小为110KB。又例如,对于第二类型的多个计算任务,可以按照方法600来划分批次,此时批次大小为8KB。利用本公开的示例性实现方式,可以分别按照不同的用户需求来生成相应的批次,进而将各个相应的批次提交至计算单元130用于执行。以此方式,可以基于用户需求来处理计算任务,并且使得处理结果在响应延迟和数据吞吐量两方面尽量满足用户需求。
根据本公开的一个示例性实现方式,可以在计算系统中周期性地执行方法400。例如,可以设置定时器,并且按照预定的周期(例如,半小时)执行方法400。以此方式,可以不断地获取最近的调度时间开销320,从而可以以更为准确的方式确定批次大小340。将会理解,当计算系统中的工作负载出现变化时,计算系统的资源分配和响应速度等将会改变,这导致调度时间开销320可能会出现较大变化。因而,可以预先设置变化阈值(例如,20%),当计算系统的工作负载的变化率高于该变化阈值时,则启动上文描述的方法400。以此方式,可以及时获取最新的调度时间开销,从而以更为准确的方式确定批次大小。
利用本公开的示例性实现方式,可以基于当前的调度时间开销来动态地更新批次大小,从而使得计算单元可以按照动态确定的批次大小来处理多个计算任务。进一步,批次大小是基于不同用户对于计算任务的需求(例如,要求较低响应延迟或者要求较高数据吞吐量)确定的,此时,按照这样的批次大小来执行多个计算任务,可以使得处理结果满足不同用户的需求。
将会理解,尽管上文以数据保护系统作为示例描述了根据本公开的一个示例性实现方式的方法。备选地和/或附加地,可以在其他计算系统中执行上述方法。尽管上文以QAT加速器作为计算单元的示例来描述了根据本公开的一个示例性实现方式的方法。备选地和/或附加地,可以针对将要由其他计算单元处理的多个计算任务执行上文描述的方法。例如,可以在普通计算系统中针对将要由CPU执行的多个计算任务执行上文描述的方法。
在上文中已经参见图2至图6详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于基于批次来管理多个计算任务的装置。该装置包括:标识模块,配置用于响应于接收到使用计算系统中的计算单元来执行多个计算任务的请求,标识多个计算任务的任务类型;获取模块,配置用于获取用于调度多个计算任务以便由计算单元执行所产生的调度时间开销;确定模块,配置用于基于任务类型和调度时间开销来确定用于划分多个计算任务的批次大小;以及划分模块,配置用于基于批次大小,将多个计算任务划分为至少一个批次。根据本公开的示例性实现方式,该装置进一步包括用于执行上文描述的方法400中的其他步骤的模块。
图7示意性示出了根据本公开的示例性实现的用于管理计算任务的设备700的框图。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400,可由处理单元701执行。例如,在一些实现中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实现中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实现中,CPU 701也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现,提供了一种电子设备,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行一种用于基于批次来管理多个计算任务的方法,包括:响应于接收到使用计算系统中的计算单元来执行多个计算任务的请求,标识多个计算任务的任务类型;获取用于调度多个计算任务以便由计算单元执行所产生的调度时间开销;基于任务类型和调度时间开销来确定用于划分多个计算任务的批次大小;以及基于批次大小,将多个计算任务划分为至少一个批次。
根据本公开的一个示例性实现方式,标识任务类型包括基于以下至少任一项来标识任务类型:对于多个任务的吞吐量和响应延迟的要求。
根据本公开的一个示例性实现方式,确定批次大小包括:获取与任务类型相对应的映射模型,映射模型描述任务类型、计算单元的调度时间开销以及多个计算任务的批次大小之间的关联关系;以及基于任务类型、调度时间开销以及映射模型,确定批次大小。
根据本公开的一个示例性实现方式,获取调度时间开销包括:基于计算系统的运行状态,获取调度时间开销。
根据本公开的一个示例性实现方式,将多个计算任务划分为至少一个批次包括:响应于确定多个计算任务涉及相同的任务类型,将多个计算任务中的第一计算任务添加至至少一个批次中的批次;以及响应于确定批次中的各个计算任务的数据量之和不大于批次大小,将多个计算任务中的第一计算任务之后的第二计算任务添加至批次。
根据本公开的一个示例性实现方式,方法进一步包括:等待使用计算单元来执行另一计算任务的另一请求;以及将另一计算任务添加至批次。
根据本公开的一个示例性实现方式,方法进一步包括:响应于确定批次中的各个计算任务的数据量之和大于批次大小,向计算单元提交批次以使得计算单元执行提交的批次中的各个计算任务。
根据本公开的一个示例性实现方式,将多个计算任务划分为至少一个批次包括:响应于确定多个计算任务涉及不同的任务类型,基于与多个计算任务的第一任务类型和第二任务类型相关联的第一批次大小和第二批次大小,分别设置第一批次和第二批次;以及根据第一任务类型和第二任务类型,将多个计算任务划分至第一批次和第二批次。
根据本公开的一个示例性实现方式,该设备基于以下至少任一项而被启动:计算系统的工作负载出现变化;以及预定的定时器。
根据本公开的一个示例性实现方式,计算单元包括快速辅助技术加速器以及中央处理单元中的至少任一项,计算系统包括数据保护系统,以及多个计算任务包括数据保护系统中的以下至少任一任务:压缩任务、解压任务、加密任务、解密任务、哈希任务、备份任务、以及复制任务。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (20)
1.一种用于基于批次来管理多个计算任务的方法,包括:
响应于接收到使用计算系统中的计算单元来执行所述多个计算任务的请求,标识所述多个计算任务的任务类型;
获取用于调度所述多个计算任务以便由所述计算单元执行所产生的调度时间开销;
基于所述任务类型和所述调度时间开销来确定用于划分所述多个计算任务的批次大小;以及
基于所述批次大小,将所述多个计算任务划分为至少一个批次。
2.根据权利要求1所述的方法,其中标识所述任务类型包括基于以下至少任一项来标识所述任务类型:对于所述多个任务的吞吐量和响应延迟的要求。
3.根据权利要求1所述的方法,其中确定所述批次大小包括:
获取与所述任务类型相对应的映射模型,所述映射模型描述所述任务类型、所述计算单元的调度时间开销以及多个计算任务的批次大小之间的关联关系;以及
基于所述任务类型、所述调度时间开销以及所述映射模型,确定所述批次大小。
4.根据权利要求1所述的方法,其中获取所述调度时间开销包括:基于所述计算系统的运行状态,获取所述调度时间开销。
5.根据权利要求1所述的方法,其中将所述多个计算任务划分为所述至少一个批次包括:响应于确定所述多个计算任务涉及相同的任务类型,
将所述多个计算任务中的第一计算任务添加至所述至少一个批次中的批次;以及
响应于确定所述批次中的各个计算任务的数据量之和不大于所述批次大小,将所述多个计算任务中的所述第一计算任务之后的第二计算任务添加至所述批次。
6.根据权利要求5所述的方法,进一步包括:
等待使用所述计算单元来执行另一计算任务的另一请求;以及
将所述另一计算任务添加至所述批次。
7.根据权利要求5所述的方法,进一步包括:响应于确定所述批次中的各个计算任务的数据量之和大于所述批次大小,向所述计算单元提交所述批次以使得所述计算单元执行提交的所述批次中的各个计算任务。
8.根据权利要求1所述的方法,其中将所述多个计算任务划分为所述至少一个批次包括:响应于确定所述多个计算任务涉及不同的任务类型,
基于与所述多个计算任务的第一任务类型和第二任务类型相关联的第一批次大小和第二批次大小,分别设置第一批次和第二批次;以及
根据所述第一任务类型和所述第二任务类型,将所述多个计算任务划分至所述第一批次和所述第二批次。
9.根据权利要求1所述的方法,其中所述方法基于以下至少任一项而被执行:
所述计算系统的工作负载出现变化;以及
预定的定时器。
10.根据权利要求1所述的方法,其中所述计算单元包括快速辅助技术加速器以及中央处理单元中的至少任一项,所述计算系统包括数据保护系统,以及所述多个计算任务包括数据保护系统中的以下至少任一任务:压缩任务、解压任务、加密任务、解密任务、哈希任务、备份任务、以及复制任务。
11.一种电子设备,包括:
至少一个处理器;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行一种用于基于批次来管理多个计算任务的方法,包括:
响应于接收到使用计算系统中的计算单元来执行所述多个计算任务的请求,标识所述多个计算任务的任务类型;
获取用于调度所述多个计算任务以便由所述计算单元执行所产生的调度时间开销;
基于所述任务类型和所述调度时间开销来确定用于划分所述多个计算任务的批次大小;以及
基于所述批次大小,将所述多个计算任务划分为至少一个批次。
12.根据权利要求11所述的设备,其中标识所述任务类型包括基于以下至少任一项来标识所述任务类型:对于所述多个任务的吞吐量和响应延迟的要求。
13.根据权利要求11所述的设备,其中确定所述批次大小包括:
获取与所述任务类型相对应的映射模型,所述映射模型描述所述任务类型、所述计算单元的调度时间开销以及多个计算任务的批次大小之间的关联关系;以及
基于所述任务类型、所述调度时间开销以及所述映射模型,确定所述批次大小。
14.根据权利要求11所述的设备,其中获取所述调度时间开销包括:基于所述计算系统的运行状态,获取所述调度时间开销。
15.根据权利要求11所述的设备,其中将所述多个计算任务划分为所述至少一个批次包括:响应于确定所述多个计算任务涉及相同的任务类型,
将所述多个计算任务中的第一计算任务添加至所述至少一个批次中的批次;以及
响应于确定所述批次中的各个计算任务的数据量之和不大于所述批次大小,将所述多个计算任务中的所述第一计算任务之后的第二计算任务添加至所述批次。
16.根据权利要求15所述的设备,其中所述方法进一步包括:
等待使用所述计算单元来执行另一计算任务的另一请求;以及
将所述另一计算任务添加至所述批次。
17.根据权利要求15所述的设备,其中所述方法进一步包括:响应于确定所述批次中的各个计算任务的数据量之和大于所述批次大小,向所述计算单元提交所述批次以使得所述计算单元执行提交的所述批次中的各个计算任务。
18.根据权利要求11所述的设备,其中将所述多个计算任务划分为所述至少一个批次包括:响应于确定所述多个计算任务涉及不同的任务类型,
基于与所述多个计算任务的第一任务类型和第二任务类型相关联的第一批次大小和第二批次大小,分别设置第一批次和第二批次;以及
根据所述第一任务类型和所述第二任务类型,将所述多个计算任务划分至所述第一批次和所述第二批次。
19.根据权利要求11所述的设备,其中:
所述设备基于以下至少任一项而被启动:所述计算系统的工作负载出现变化;以及预定的定时器;以及
所述计算单元包括快速辅助技术加速器以及中央处理单元中的至少任一项,所述计算系统包括数据保护系统,以及所述多个计算任务包括数据保护系统中的以下至少任一任务:压缩任务、解压任务、加密任务、解密任务、哈希任务、备份任务、以及复制任务。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1至10中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110706189.6A CN115525400A (zh) | 2021-06-24 | 2021-06-24 | 基于批次来管理多个计算任务的方法、设备和程序产品 |
US17/388,644 US20220413906A1 (en) | 2021-06-24 | 2021-07-29 | Method, device, and program product for managing multiple computing tasks based on batch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110706189.6A CN115525400A (zh) | 2021-06-24 | 2021-06-24 | 基于批次来管理多个计算任务的方法、设备和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525400A true CN115525400A (zh) | 2022-12-27 |
Family
ID=84541062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110706189.6A Pending CN115525400A (zh) | 2021-06-24 | 2021-06-24 | 基于批次来管理多个计算任务的方法、设备和程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220413906A1 (zh) |
CN (1) | CN115525400A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501499B (zh) * | 2023-05-17 | 2023-09-19 | 建信金融科技有限责任公司 | 数据跑批方法、装置、电子设备及存储介质 |
CN117648200A (zh) * | 2024-01-29 | 2024-03-05 | 龙芯中科技术股份有限公司 | 内存管理方法、装置、电子设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468527B2 (en) * | 2007-04-16 | 2013-06-18 | Xerox Corporation | Method and system for optimal batching in a production environment |
US20240004776A1 (en) * | 2020-10-22 | 2024-01-04 | Arizona Board Of Regents On Behalf Of Arizona State University | User-space emulation framework for heterogeneous soc design |
US20220206975A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Circuitry and methods for low-latency page decompression and compression acceleration |
US11716257B1 (en) * | 2021-05-24 | 2023-08-01 | Neureality Ltd. | Batching of artificial intelligence jobs |
-
2021
- 2021-06-24 CN CN202110706189.6A patent/CN115525400A/zh active Pending
- 2021-07-29 US US17/388,644 patent/US20220413906A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220413906A1 (en) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314551B2 (en) | Resource allocation and scheduling for batch jobs | |
JP6849642B2 (ja) | 要求処理技術 | |
CN108182111B (zh) | 任务调度系统、方法和装置 | |
US8990821B2 (en) | Task dispatching based on composite queue size and upper and lower compare values | |
CN111786895A (zh) | 动态全局限流的方法和装置 | |
WO2019056695A1 (zh) | 任务调度的方法、装置、终端设备及计算机可读存储介质 | |
Xie et al. | Pandas: robust locality-aware scheduling with stochastic delay optimality | |
KR20140007004A (ko) | 문서들로부터 토픽들의 병렬 생성 | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
US11635994B2 (en) | System and method for optimizing and load balancing of applications using distributed computer clusters | |
CN115525400A (zh) | 基于批次来管理多个计算任务的方法、设备和程序产品 | |
WO2015075856A1 (en) | Cross-platform workload processing | |
CN109933422A (zh) | 处理任务的方法、装置、介质及电子设备 | |
EP4060496A2 (en) | Method, apparatus, device and storage medium for running inference service platform | |
US10776012B2 (en) | Lock-free datapath design for efficient parallel processing storage array implementation | |
CN111858040A (zh) | 一种资源调度方法和装置 | |
WO2018144404A1 (en) | Completion-side client throttling | |
US11513856B2 (en) | Method, devices and computer program products for resource usage | |
CN113742057A (zh) | 一种任务执行方法和装置 | |
CN113760982A (zh) | 一种数据处理方法和装置 | |
CN112559179A (zh) | 一种作业处理方法和装置 | |
CN111831503B (zh) | 一种基于监控代理的监控方法和监控代理装置 | |
CN112667368A (zh) | 一种任务数据处理方法和装置 | |
US11388050B2 (en) | Accelerating machine learning and profiling over a network |
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 |