CN113127173B - 一种异构感知的集群调度方法及装置 - Google Patents
一种异构感知的集群调度方法及装置 Download PDFInfo
- Publication number
- CN113127173B CN113127173B CN202110432482.8A CN202110432482A CN113127173B CN 113127173 B CN113127173 B CN 113127173B CN 202110432482 A CN202110432482 A CN 202110432482A CN 113127173 B CN113127173 B CN 113127173B
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- determining
- subtask
- type
- 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 34
- 238000013507 mapping Methods 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 230000008447 perception Effects 0.000 abstract 2
- 238000012545 processing Methods 0.000 description 21
- 238000013473 artificial intelligence Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
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
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种异构感知的集群调度方法及装置。
背景技术
随着摩尔定律的终结,AI(Artificial Intelligence,人工智能)加速器,如GPU、TPU、FPGA和其他特定领域的加速器(比如ASIC)已经出现,作为通用CPU的替代品。这些AI加速器的部署已经取得了巨大的效果,为许多领域训练最先进的模型、大数据计算提供强有力的支持。
当下的集群中,经常是多种加速器都会存在,不同加速器的性能和成本差异很大,每种类型的AI加速器都有其对应的优缺点,然而,现有调度方法并没有考虑这种异构性,而是主要对同类型加速器进行调度。因此,需要一种开拓性的方案,可以实现对异构集群中不同类型AI加速器的调度,从而充分发挥异构集群中不同加速器的使用优势。
发明内容
本说明书一个或多个实施例描述了异构感知的集群调度方法及装置,通过此方法和装置,可以实现对不同类型AI加速器的调度,同时,充分利用每种AI加速器的优点,从而达到优异的调度效果,进而有效提高异构集群对大数据任务的处理效率。
根据第一方面,提供了一种异构感知的集群调度方法,所述异构集群包括多种类型的计算芯片,所述方法包括:获取用户提交的第一计算任务,归入当前待处理的若干计算任务;确定所述第一计算任务的吞吐量估计值,并且,确定所述第一计算任务所对应的多项子任务;基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
在一个实施例中,确定所述第一计算任务的吞吐量估计值,包括:基于所述第一计算任务的类型和数据量,查询预定时间段内完成的相似历史任务;基于所述相似历史任务的吞吐量真实值,确定所述吞吐量估计值。
在一个实施例中,确定所述第一计算任务的吞吐量估计值,包括:将所述第一计算任务的任务特征输入预先训练的预测模型中,得到吞吐量预测值,作为所述吞吐量估计值;所述任务特征包括以下中的至少一种:类型、数据量、计算资源要求。
在一个具体的实施例中,所述第一计算任务的类型是以下中的一种:训练样本预处理任务、机器学习任务、预测任务。
在一个实施例中,确定所述第一计算任务所对应的多项子任务,包括:生成所述第一计算任务的计算流图,其中包括多个计算节点;将所述多个计算节点中的多项计算内容,作为所述多项子任务。
在一个实施例中,基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,包括:针对各项子任务,基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型;基于所述吞吐量估计值,确定所述若干计算芯片类型中各个计算芯片类型所对应的需求数量。
在一个具体的实施例中,针对各项子任务,基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型,包括:针对各项子任务,基于子任务与操作密集类型的映射关系,确定该项子任务所对应的操作密集类型,该操作密集类型为以下中的一种:输入输出IO密集型、通信密集型、串行计算密集型、并行计算密集型和特定计算密集型;基于计算密集类型与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型。
在一个实施例中,所述调度策略涉及以下中的至少一种:平均任务完成时间最小、任务等待时长最小、任务公平性优先。
根据第二方面,提供了一种异构感知的集群调度装置,所述异构集群包括多种类型的计算芯片,所述装置包括:任务获取单元,配置为获取用户提交的第一计算任务,归入当前待处理的若干计算任务;吞吐量估算单元,配置为确定所述第一计算任务的吞吐量估计值;子任务确定单元,配置为确定所述第一计算任务所对应的多项子任务;备选方式确定单元,配置为基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;备选序列确定单元,配置为确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;目标调度确定单元,配置为基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,可以实现对不同类型计算芯片的调度,同时,充分利用每种计算芯片的优点,达到优异的调度效果,从而有效提高异构集群对大数据任务的处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的异构感知的集群调度方法实施架构图;
图2示出根据一个实施例的异构感知的集群调度方法流程图;
图3示出根据一个实施例的异构感知的集群调度装置结构图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
本发明提供一种开拓性的方案,可以实现对异构集群中不同类型AI加速器的调度。需说明的是,AI加速器还可以被称为AI芯片、AI计算卡、或计算芯片、大数据计算芯片等。
图1示出根据一个实施例的异构感知的集群调度方法实施架构图。如图1所示,对于用户提交的大数据处理任务,进行吞吐量估算,从而结合预先设定的集群调度策略,对包括该大数据处理任务在内的当前待处理任务进行异构感知调度,从而得到符合集群调度策略的调度方式,例如,可以根据异构集群中GPU、TPU、CPU、FPGA和ASIC等不同芯片的特点以及估算出的吞吐量,确定大数据处理任务的各个阶段被分配到不同芯片上进行处理的多种可能组合方式,再从中选取满足集群调度策略的最优组合方式,作为实际执行大数据处理任务的组合方式。如此,可以实现对异构感知的集群调度,并且,使得调度方式符合实际需求,调度效果优异。
下面,对本说明书实施例披露的异构集群调度方法的实施步骤进行介绍。
图2示出根据一个实施例的异构感知的集群调度方法流程图,所述方法的执行主体可以是任何具有计算、处理能力的装置、服务器或设备集群。如图2所示,所述方法包括以下步骤:
步骤S210,获取用户提交的第一计算任务,归入当前待处理的若干计算任务;步骤S220,确定所述第一计算任务的吞吐量估计值;步骤S230,确定所述第一计算任务所对应的多项子任务;步骤S240,基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;步骤S250,确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;步骤S260,基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中当前可用的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
针对以上步骤,首先需说明的是,上述“第一计算任务”、“第一备选执行序列”中的“第一”,仅用于区分同类事务,不具有排序等其他限定作用。以上步骤具体如下:
首先,在步骤S210,获取用户提交的第一计算任务,归入当前待处理的若干计算任务。需说明,用户可以通过交互界提交计算任务,相应,本方法的执行主体(如***)可以获取用户提交的计算任务,并且,存在多个用户各自提交计算任务,或者,同一用户同时提交多个计算任务的情况。上述第一计算任务可以指代用户提交的任意一个计算任务。因异构集群中的芯片通常用于处理大数据任务、人工智能领域的任务,故而计算任务可以包含广泛意义上的大数据处理任务、AI任务、机器学习任务。在一个示例中,在应用场景为供应链集成服务场景下,计算任务可以包括对与供应链相关的数据的处理,例如,计算任务可以包括训练针对客户/消费者行为偏好的预测模型,用以预测客户/消费者发生业务需求或消费需求的时间、地点及产品偏好等个性化需求,从而形成智慧供应链的集成管理与服务体系,为客户/消费者及时提供满足需求的商品/服务,提高客户/消费者的体验,增强客户/消费者的粘性。此外,上述“若干计算任务”中的“若干”或者文中他处的“若干”,均指代一个或多个。
然后,在步骤S220,确定第一计算任务的吞吐量估计值。需说明,吞吐量的统计单位可以是样本数量/单位时间,字节数/单位时间,数据行数/单位时间,等等。其中单位时间可以是秒(s)、分(min)等。
在一个实施例中,本步骤可以包括:基于第一计算任务的类型和数据量,查询预定时间段内完成的相似历史任务;基于该相似历史任务的吞吐量真实值,确定上述吞吐量估计值。
需说明,关于计算任务的类型划分,可以从多个角度和/或多个层次进行。在一个实施例中,可以将计算任务划分为数据预处理任务、机器学习任务、预测任务。在另一个实施例中,可以将计算任务划分为数据预处理任务、机器学习任务,并将机器学习任务进一步划分为训练任务和预测任务。
进一步,在一个具体的实施例中,数据预处理任务可以包括异常值处理、缺失值处理和统计特征计算。在一个例子中,其中统计特征计算可以包括均值计算和方差计算等。在一个具体的实施例中,可以根据应用领域,将机器学习任务划分为自然语言处理、图像处理、音频处理等。在另一个具体的实施例中,可以根据学习方式,将机器学习任务划分为监督学习、无监督学习、半监督学习等。另一方面,关于计算任务的数据量,或者说,该计算任务所基于的数据集的大小,可以用样本数量和/或占用的硬盘空间来衡量。
在一个具体的实施例中,对上述相似历史任务的查询,除基于第一计算任务的类型和数据量以外,还可以基于第一计算任务的计算资源要求。具体而言,该计算资源要求可以包括:内存要求,如多少GB或多少TB;计算核要求,如计算核的需求数量;网络带宽,如多少M;对特殊芯片的要求,如需要几个ASIC或几个FGPA等。
如此,可以基于任务类型、数据量,可选地,还有资源量,对第一计算任务和预定时间段内的历史完成任务进行比对,得到与该第一计算任务相似的历史任务。关于预定时间段,可以根据需要设定为最近10min、最近1h或最近12h等。关于相似的判定标准,可以根据实际情况设定,例如,若可比对的历史任务数量较多,判定标准可以设置得较为严格,反之可以设置得偏宽松。在一个示例中,判定标准可以包括:如果某一历史任务与第一计算任务具有相同的任务类型、数据量相差不超过5%,则判定该某一历史任务与该第一计算任务相似。
如此,可以得到第一计算任务的相似历史任务。进而可以基于相似历史任务的吞吐量真实值,确定第一计算任务的吞吐量估计值。需理解,相似历史任务可以是一个或多个。在一个具体的实施例中,可以基于各个相似历史任务的吞吐量真实值进行求平均运算,并将得到的平均值作为上述吞吐量估计值。在另一个具体的实施例中,可以基于各个相似历史任务与第一计算任务之间相似程度,为各个相似历史任务所对应的吞吐量真实值赋予不同的权重,进而通过加权求和,得到上述吞吐量估计值。
由上,可以通过查询相似历史任务的方式,确定出第一计算任务的吞吐量估计值。在另一个实施例中,本步骤还可以包括:将第一计算任务的任务特征输入预先训练的预测模型中,得到吞吐量预测值,作为所述吞吐量估计值。其中任务特征可以包括:任务类型、数据量、计算资源要求。需说明,对任务类型、数据量和计算资源要求的介绍可以参见前述实施例的介绍,不作赘述。此外,该预测模型的训练样本,可以基于历史任务的任务统计信息而构建,包括将历史任务的吞吐量真实值作为样本标签,将其任务特征作为样本特征等。在一个具体的实施例中,上述预测模型可以采用逻辑回归模型,或者多层感知机实现。
以上,可以确定第一计算任务的吞吐量估计值。另一方面,在执行步骤S220之前、之后,或者同时,可以执行步骤S230,确定该第一计算任务所对应的多项子任务。在一个实施例中,本步骤可以包括:生成所述第一计算任务的计算流图,其中包括多个计算节点;将该多个计算节点中的多项计算内容,作为所述多项子任务。在一个具体的实施例中,可以利用Tensorflow等工具,生成计算流图。在一个示例中,假定第一计算任务是某个训练任务,可以确定出其对应的多项子任务包括:读样本、读取模型的当前参数、梯度计算、梯度传送、参数的更新计算等。在另一个实施例中,本步骤可以包括:获取用户针对该第一计算任务输入的多项子任务。
如此,可以确定第一计算任务对应的多项子任务。
在以上确定出第一计算任务的吞吐量估计值和多项子任务后,在步骤S240,基于该吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量。
为清楚说明,将多项子任务中的任一项子任务称为第一子任务。针对该第一子任务,可以确定其所对应的若干计算芯片类型,再基于上述吞吐量估计值,确定其中各个计算芯片类型所对应的需求数量,如此,各个计算芯片类型及其对应的需求数量形成备选执行方式,也就是说,可以将该第一子任务分配到该类型的对应需求数量的计算芯片上去执行。
在一个实施例中,确定第一子任务所对应的若干计算芯片类型可以包括:基于子任务与操作密集类型的映射关系,确定该项子任务所对应的操作密集类型,该操作密集类型为以下中的一种:输入输出IO密集型、通信密集型、串行计算密集型、并行计算密集型和特定计算密集型;基于计算密集类型与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型。需理解,上述两个映射关系均可以是预先建立而得到。在一个具体的实施例中,上述两个映射关系可以参见下表1。简单说明,CPU和GPU属于通用的计算芯片,尤其是CPU,适用于处理各种逻辑的运算处理。而ASIC、FPGA和TPU需要工作人员对其可以执行的运算进行编写,通常编写的运算逻辑较为复杂,用于处理写死的特殊操作,或称特殊计算、特定计算。
表1
在一个示例中,假定第一计算任务是独立矩阵计算任务,根据表1,可以确定出其所对应的操作密集类型是并行计算密集,进而确定出可用于执行该子任务的优选芯片和可替代芯片的类型,包括GPU和CPU。
在另一个实施例中,确定第一子任务所对应的若干计算芯片类型可以包括:基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型。在一个具体的实施例中,可以参见表1,将其中表头为操作密集类型的一列隐去,可以查看到子任务与计算芯片之间的直接映射关系。
由上,可以确定出可用于执行第一子任务的若干芯片类型。接着,基于上述吞吐量估计值,确定出选用其中各个芯片类型时,对应需要的芯片数量。需理解,不同芯片的计算能力不同,为了匹配吞吐量估计值,不同芯片所需的使用数量不同,此外,异构集群中同一类型的芯片所具有的核心(core)数可能相同,也可能不同,比如,CPU可能由一个或多个核心组成,核心数越多,代表这个CPU的运转速度越快,性能越好。在一个示例中,假定第一计算任务是独立矩阵计算任务,吞吐量。估计值是1千个样本每秒,可选用的计算芯片类型是GPU或CPU,此时,可以确定出需要一个100核的GPU,或者,需要10个8核的CPU,或者,需要20个4核的CPU。
以上,可以确定出各个芯片类型以及对应的需求数量,形成对应子任务的备选执行方式,从而得到第一计算任务包括的多项子任务中各项子任务所对应的若干备选执行方式。
基于此,在步骤S250,确定第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括多项子任务中各项子任务的备选执行方式。
在一个实施例中,可以利用排列组合的方式,确定出第一计算任务对应的全量备选执行序列。假定第一计算任务包含3项子任务,3项子任务分别对应的备选执行方式数量为3,2和2,由此可以确定出12个第一备选执行序列。在另一个实施例中,可以从各项子任务对应的备选执行方式进行随机挑选组合,得到预定梳理的备选执行序列。
如此,可以得到第一计算任务对应的多个第一备选执行序列。然后,在步骤S260,基于上述当前待处理的若干计算任务中各计算任务所对应的多个备选执行序列,异构集群中的计算芯片,以及针对异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
在一个实施例中,本步骤的执行可以响应于已有任务的结束,或者,响应于第一计算任务的提交,或者,响应于预定时间窗口(如每1min或每10min)的结束。在一个实施例中,若干计算任务包括多个计算任务,对于其中除第一计算任务以外的其他计算任务,其所对应的多个备选执行序列,可以参照对应第一计算任务的多个第一备选执行序列的确定方式而得到。
关于异构集群中的计算芯片,在一种实施情况下,异构集群中的部分计算芯片因在执行计算任务而不可用,因此,本步骤的执行可以基于当前未被占用的空闲计算芯片而执行。例如,若设定计算任务一旦开始执行就持续执行,直到执行完毕,则在统计异构集群中的可用芯片时需考虑被占用芯片。在另一种实施情况下,本步骤的执行可以基于异构集群中的所有芯片。例如,设定每次对异构集群调度时,正在执行的任务暂停执行并保留进度,针对所有任务重新进行计算芯片的分配,此时,统计可用芯片时可以直接考虑异构集群中的全部计算芯片。
关于上述调度策略,在一个实施例中,调度策略可以是平均任务完成时间最小。例如,若当前待处理任务中包括多个计算任务,通常,数据量小的处理耗时短,或者,可以根据查询到的相似历史任务的消耗时长进行比对,此时,可以优先处理耗时间短的任务。在一个实施例中,调度策略可以是任务等待时长最小。例如,若当前待处理任务中包括多个计算任务,此时,可以优先处理耗时长的任务。在一个实施例中,调度策略可以是任务公平性优先。例如,若当前待处理任务中包括多个计算任务,可以优先处理已等待时间较长的计算任务。有例如,可以响应于预定时间窗口的结束,将当前待处理任务全部加入执行。另一方面,在一个实施例中,调度策略可以是工作人员预先设定的,或者是***默认的。在一个实施例中,不同时段对应不同的调度策略,例如,0-9点实现任务等待时长最小,其余实现任务公平性优先。
本步骤中,针对当前待处理的若干计算任务,基于其中各个计算任务所对应的多个备选执行序列,异构集群中的计算芯片,以及调度策略,可以确定出各个计算任务接下来是否被执行,或者,是否作为最近批次的执行任务,以及若执行,选取哪种执行序列。确定出的最近批次的执行任务作为目标计算任务,为其选取的备选执行序列可称为目标执行序列。需理解,目标计算任务可以是一个或多个,目标计算任务与目标执行序列具有一一对应的关系。
此外需要说明的是,在一个实施例中,对于目标计算任务和目标执行序列的确定,还可以考虑各项子任务所对应的执行时间估算值,例如,可以基于计算任务的数据集大小和吞吐量估计值,计算各项子任务所对应的执行时间,如此,可以帮助实现异构集群中某一时刻同时执行多项计算任务时,计算任务之间对硬件的使用不发生冲突。在一个实施例中,当确定出目标计算任务所对应的符合调度策略的执行序列有多个时,优先选择其中包含优选芯片的序列,或者,包含优选芯片的数量较多的序列。
以上,可以确定出目标计算任务和对应的目标执行序列,其满足调度策略的调度目标以及异构集群中的计算芯片情况。
进一步,在遵照目标执行序列,执行对应的目标计算任务后,可以对执行信息进行统计,统计的信息可以包括任务消耗时长、任务消耗资源(如CPU核数、内存空间、硬盘空间等)。该统计信息可用于后续新提交任务的吞吐量估算。例如,作为用于比对的历史样本,或者,用来构建对吞吐量预测模型进行训练的训练样本。
综上,采用本说明书实施例披露的异构感知的集群调度方法,可以实现对不同类型AI加速器的调度,同时,充分利用每种AI加速器的优点,从而达到优异的调度效果,进而有效提高异构集群对大数据任务的处理效率。
与上述调度方法相对应的,本说明书实施例还披露一种异构感知的集群调度装置。图3示出根据一个实施例的异构感知的集群调度装置结构图,所述异构集群包括多种类型的计算芯片,所述装置可以实现为任何具有计算、处理能力的服务器或设备集群等。如图3所示,所述装置300包括以下单元:
任务获取单元310,配置为获取用户提交的第一计算任务,归入当前待处理的若干计算任务;吞吐量估算单元320,配置为确定所述第一计算任务的吞吐量估计值;子任务确定单元330,配置为确定所述第一计算任务所对应的多项子任务;备选方式确定单元340,配置为基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;备选序列确定单元350,配置为确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;目标调度确定单元360,配置为基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
在一个实施例中,吞吐量估算单元320具体配置为:基于所述第一计算任务的类型和数据量,查询预定时间段内完成的相似历史任务;基于所述相似历史任务的吞吐量真实值,确定所述吞吐量估计值。
在一个实施例中,吞吐量估算单元320具体配置为:将所述第一计算任务的任务特征输入预先训练的预测模型中,得到吞吐量预测值,作为所述吞吐量估计值;所述任务特征包括以下中的至少一种:类型、数据量、计算资源要求。
在一个具体的实施例中,所述第一计算任务的类型是以下中的一种:训练样本预处理任务、机器学习任务、预测任务。
在一个实施中,子任务确定单元330具体配置为:生成所述第一计算任务的计算流图,其中包括多个计算节点;将所述多个计算节点中的多项计算内容,作为所述多项子任务。
在一个实施例中,备选方式确定单元340具体配置为:针对各项子任务,基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型;基于所述吞吐量估计值,确定所述若干计算芯片类型中各个计算芯片类型所对应的需求数量。
在一个具体的实施例中,备选方式确定单元340进一步配置为:针对各项子任务,基于子任务与操作密集类型的映射关系,确定该项子任务所对应的操作密集类型,该操作密集类型为以下中的一种:输入输出IO密集型、通信密集型、串行计算密集型、并行计算密集型和特定计算密集型;基于计算密集类型与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型。
在一个实施例中,备选序列确定单元350具体配置为:响应于已有任务的结束,确定目标计算任务及其对应的目标执行序列。
在一个实施例中,所述调度策略涉及以下中的至少一种:平均任务完成时间最小、任务等待时长最小、任务公平性优先。
综上,采用本说明书实施例披露的异构感知的集群调度装置,可以实现对不同类型AI加速器的调度,同时,充分利用每种AI加速器的优点,从而达到优异的调度效果,进而有效提高异构集群对大数据任务的处理效率。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.一种异构感知的集群调度方法,异构集群包括多种类型的计算芯片,所述方法包括:
获取用户提交的第一计算任务,归入当前待处理的若干计算任务;
确定所述第一计算任务的吞吐量估计值,并且,确定所述第一计算任务所对应的多项子任务;
基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;
确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;
基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
2.根据权利要求1所述的方法,其中,确定所述第一计算任务的吞吐量估计值,包括:
基于所述第一计算任务的类型和数据量,查询预定时间段内完成的相似历史任务;
基于所述相似历史任务的吞吐量真实值,确定所述吞吐量估计值。
3.根据权利要求1所述的方法,其中,确定所述第一计算任务的吞吐量估计值,包括:
将所述第一计算任务的任务特征输入预先训练的预测模型中,得到吞吐量预测值,作为所述吞吐量估计值;所述任务特征包括以下中的至少一种:类型、数据量、计算资源要求。
4.根据权利要求2或3所述的方法,其中,所述第一计算任务的类型是以下中的一种:训练样本预处理任务、机器学习任务、预测任务。
5.根据权利要求1所述的方法,其中,确定所述第一计算任务所对应的多项子任务,包括:
生成所述第一计算任务的计算流图,其中包括多个计算节点;
将所述多个计算节点中的多项计算内容,作为所述多项子任务。
6.根据权利要求1所述的方法,其中,基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,包括:
针对各项子任务,基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型;
基于所述吞吐量估计值,确定所述若干计算芯片类型中各个计算芯片类型所对应的需求数量。
7.根据权利要求6所述的方法,其中,针对各项子任务,基于子任务与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型,包括:
针对各项子任务,基于子任务与操作密集类型的映射关系,确定该项子任务所对应的操作密集类型,该操作密集类型为以下中的一种:输入输出IO密集型、通信密集型、串行计算密集型、并行计算密集型和特定计算密集型;
基于计算密集类型与计算芯片类型之间的映射关系,确定该项子任务所对应的若干计算芯片类型。
8.根据权利要求1所述的方法,其中,确定目标计算任务及其对应的目标执行序列,包括:
响应于已有任务的结束,确定目标计算任务及其对应的目标执行序列。
9.根据权利要求1所述的方法,其中,所述调度策略涉及以下中的至少一种:平均任务完成时间最小、任务等待时长最小、任务公平性优先。
10.一种异构感知的集群调度装置,异构集群包括多种类型的计算芯片,所述装置包括:
任务获取单元,配置为获取用户提交的第一计算任务,归入当前待处理的若干计算任务;
吞吐量估算单元,配置为确定所述第一计算任务的吞吐量估计值;
子任务确定单元,配置为确定所述第一计算任务所对应的多项子任务;
备选方式确定单元,配置为基于所述吞吐量估计值,确定各项子任务所对应的若干备选执行方式,其中各个备选执行方式包括计算芯片的类型和需求数量;
备选序列确定单元,配置为确定所述第一计算任务对应的多个第一备选执行序列,其中各个第一备选执行序列包括所述多项子任务中各项子任务的备选执行方式;
目标调度确定单元,配置为基于所述若干计算任务中各计算任务所对应的多个备选执行序列,所述异构集群中的计算芯片,以及针对所述异构集群设定的调度策略,确定目标计算任务及其对应的目标执行序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110432482.8A CN113127173B (zh) | 2021-04-21 | 2021-04-21 | 一种异构感知的集群调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110432482.8A CN113127173B (zh) | 2021-04-21 | 2021-04-21 | 一种异构感知的集群调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127173A CN113127173A (zh) | 2021-07-16 |
CN113127173B true CN113127173B (zh) | 2021-09-24 |
Family
ID=76778785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110432482.8A Active CN113127173B (zh) | 2021-04-21 | 2021-04-21 | 一种异构感知的集群调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127173B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923132B (zh) * | 2021-09-23 | 2023-05-12 | 深信服科技股份有限公司 | 数据提醒方法、装置、电子设备和存储介质 |
CN116932175B (zh) * | 2023-09-19 | 2024-01-09 | 之江实验室 | 一种基于序列生成的异构芯片任务调度方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967488A (zh) * | 2005-11-15 | 2007-05-23 | 索尼计算机娱乐公司 | 任务分配方法和任务分配装置 |
CN103810137A (zh) * | 2014-01-07 | 2014-05-21 | 南京大学 | 一种基于多fpga平台的ncs算法并行化的方法 |
CN108415771A (zh) * | 2018-02-01 | 2018-08-17 | 深圳市安信智控科技有限公司 | 多芯片分布式并行计算加速*** |
US10083152B1 (en) * | 2012-01-27 | 2018-09-25 | Open Invention Network Llc | Virtualized multicore systems with extended instruction heterogeneity |
CN109426455A (zh) * | 2017-08-30 | 2019-03-05 | 英特尔公司 | 用于将i/o密集操作卸载至数据存储滑板的技术 |
CN112486653A (zh) * | 2020-12-02 | 2021-03-12 | 胜斗士(上海)科技技术发展有限公司 | 调度多类型计算资源的方法、装置和*** |
-
2021
- 2021-04-21 CN CN202110432482.8A patent/CN113127173B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967488A (zh) * | 2005-11-15 | 2007-05-23 | 索尼计算机娱乐公司 | 任务分配方法和任务分配装置 |
US10083152B1 (en) * | 2012-01-27 | 2018-09-25 | Open Invention Network Llc | Virtualized multicore systems with extended instruction heterogeneity |
CN103810137A (zh) * | 2014-01-07 | 2014-05-21 | 南京大学 | 一种基于多fpga平台的ncs算法并行化的方法 |
CN109426455A (zh) * | 2017-08-30 | 2019-03-05 | 英特尔公司 | 用于将i/o密集操作卸载至数据存储滑板的技术 |
CN108415771A (zh) * | 2018-02-01 | 2018-08-17 | 深圳市安信智控科技有限公司 | 多芯片分布式并行计算加速*** |
CN112486653A (zh) * | 2020-12-02 | 2021-03-12 | 胜斗士(上海)科技技术发展有限公司 | 调度多类型计算资源的方法、装置和*** |
Also Published As
Publication number | Publication date |
---|---|
CN113127173A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558498B2 (en) | Method for scheduling data flow task and apparatus | |
CN110096349B (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
US20190324819A1 (en) | Distributed-system task assignment method and apparatus | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
Nguyen et al. | A hybrid scheduling algorithm for data intensive workloads in a mapreduce environment | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
US11422858B2 (en) | Linked workload-processor-resource-schedule/processing-system—operating-parameter workload performance system | |
Ding et al. | Kubernetes-oriented microservice placement with dynamic resource allocation | |
CN113342477A (zh) | 一种容器组部署方法、装置、设备及存储介质 | |
CN115016916A (zh) | 一种线程池调度方法、***、设备及可读存储介质 | |
CN117608840A (zh) | 一种智能监控***资源综合管理的任务处理方法及*** | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
Panneerselvam et al. | An approach to optimise resource provision with energy-awareness in datacentres by combating task heterogeneity | |
CN116089477B (zh) | 分布式训练方法及*** | |
CN117707759A (zh) | 一种多租户gpu集群弹性配额调度方法和*** | |
US20230275848A1 (en) | Network-aware resource allocation | |
US20240086246A1 (en) | Allocating Computational Tasks to Computer Hardware | |
Panneerselvam et al. | An investigation into the impacts of task-level behavioural heterogeneity upon energy efficiency in Cloud datacentres | |
Alatawi et al. | Hybrid load balancing approach based on the integration of QoS and power consumption in cloud computing | |
Rad et al. | Brain drain optimization: a novel approach for task scheduling in the cloud computing | |
Al-muqarm et al. | Dynamic cost-optimized resources management and task scheduling with deadline constraint for mobile crowd sensing environment |
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 |