CN113391907A - 一种任务的放置方法、装置、设备和介质 - Google Patents
一种任务的放置方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113391907A CN113391907A CN202110714071.8A CN202110714071A CN113391907A CN 113391907 A CN113391907 A CN 113391907A CN 202110714071 A CN202110714071 A CN 202110714071A CN 113391907 A CN113391907 A CN 113391907A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- graph
- resource
- slot
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 239000013598 vector Substances 0.000 claims abstract description 156
- 238000012545 processing Methods 0.000 claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 42
- 238000013528 artificial neural network Methods 0.000 claims abstract description 37
- 238000005111 flow chemistry technique Methods 0.000 claims abstract description 14
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 33
- 238000011144 upstream manufacturing Methods 0.000 claims description 30
- 230000000306 recurrent effect Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 10
- 238000012935 Averaging Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 230000001934 delay Effects 0.000 claims description 4
- 238000003062 neural network model Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种任务的放置方法、装置、设备和介质。该方法包括:根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成流处理作业对应的任务图;基于预设任务放置模型中的图神经网络,确定任务图中各个任务节点对应的任务embedding向量,并确定资源图中各slot节点对应的资源embedding向量;该资源图为全连接的无向图。基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点。本发明实施例提供的任务放置模型适用于异构资源,通过采用该模型,在实际流处理作业的过程中可使得吞吐量属性和延迟属性均达到预设要求。
Description
技术领域
本发明实施例涉及数据流处理技术领域,具体而言,涉及一种任务的放置方法、装置、设备和介质。
背景技术
在各种不同的工业领域中,有诸多的任务需要使用大量且不同类型的数据来做出数据密集型的决策。数据是从流式的事件中所产生的,比如金融交易,传感器测量值等等。为了能够及时地从如此巨量的数据中提取有价值的信息,数据流处理框架和应用逐渐流行,它们能够以接近实时的方式持续处理任意规模的无边界数据流。
一个数据流处理应用的计算过程一般会通过一个DAG(Directed Acyclic Graph,有向无环图)来描述。DAG中的每个节点代表了要进行一些特定操作(如映射,过滤)的算子。持续到达的数据会被算子处理,并通过DAG中的有向边从源节点一直传输到汇节点。为了充分利用DAG中的并行性,流处理应用通常会被部署到分布式集群中,在此场景下,一个关键的问题是如何决定在哪个计算节点上放置并处理流处理应用中的每个算子,并且能够优化一些相关的质量属性。这个问题被称为算子放置问题。这是一个长期以来一直存在的问题,因为流处理应用在被部署后通常不会停止运行,并且很难在不影响性能的情况下进行运行时的调整。但是,得到最优的算子放置是一个NP(Non-deterministic PolynomialComplete,多项式复杂程度的非确定性问题)困难的问题。因此,诸多可以在可接受的时间内解决算子放置问题的启发式方法被设计出来。一般来说,启发式方法都是根据特定问题的特征手工设计的。
目前,使用深度强化学习来训练启发式方法成为了研究热点,其中包括了基于深度强化学习的方法。目前基于深度强化学习的方法假定所有资源的CPU(CentralProcessing Unit,中央处理器),内存和网络等都是同构的,但是,由于流处理应用的持续部署,实际可用的资源实际上是异构的,并且可用资源的数量也在不断变化。在这种情况下,通过基于深度强化学习的方法得到的任务放置方案并不适用于异构资源。
发明内容
本发明实施例提供一种任务的放置方法、装置、设备和介质,使得任务放置方案适用于异构资源,且该方案被部署到真实集群中是可得到准确性更高的吞吐量值。
第一方面,本发明实施提供了一种任务的放置方法,应用于流处理任务,包括:
根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成所述流处理作业对应的任务图task graph;
基于预设任务放置模型中的图神经网络,确定所述任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源嵌入embedding向量;所述资源图为全连接的无向图,所述资源图中的各slot节点均具有CPU算力属性和可用内存属性;
基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定所述流处理作业的布署方式;
其中,所述预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
第二方面,本发明实施例还提供了一种任务的放置装置,应用于流处理任务,包括:
任务图生成模块,被配置为根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成所述流处理作业对应的任务图task graph;
编码模块,被配置为基于预设任务放置模型中的图神经网络,确定所述任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源嵌入embedding向量;所述资源图为全连接的无向图,所述资源图中的各slot节点均具有CPU算力属性和可用内存属性;
解码模块,被配置为基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定所述流处理作业的布署方式;
其中,所述预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
第三方面,本发明实施例还提供了一种计算设备,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明任意实施例所提供的任务的放置方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的任务的放置方法。
本发明实施例提供的技术方案,根据流处理作业中各算子的并行度以及各个算子之间的连接方式,可生成流处理作业对应的任务图。通过预设任务放置模型中的图神经网络,可对任务图和资源图进行编码,确定出任务图中各个任务节点对应的任务embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源embedding向量。本发明实施例中的资源图为全连接的无向图,在预设任务放置模型的训练过程中,在进行embedding向量的迭代时,由于考虑到了每个slot节点的CPU算力属性和可用内存属性,因此,本实施例提供的预设任务放置模型可适用于异构资源。通过预设任务放置模型中的循环神经网络,可根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,从而确定出流处理作业的布署方式。此外,由于预设任务放置模型在训练的过程中考虑到了吞吐量和延迟属性,因此,本实施例提供的预设放置模型在实际流处理作业的过程中可使得吞吐量属性和延迟属性达到预设要求。
本发明实施例的创新点包括:
1、在利用图神经网络对资源图的建模生成embedding向量时,考虑到了每个slot节点的CPU算力属性和可用内存属性,使得训练出的任务放置模型适用于异构资源,是本发明实施例的创新点之一。
2、在对运行过程中的估算吞吐量时,通过采用迭代回收、分配资源以及应用反压机制来计算吞吐量的方案,实现了在不布署实际应用的情况下,进行吞吐量的离线估算。这样设置不仅可以加速模型的训练进程,还可以使训练出的任务放置模型在实际运行过程中能够使得吞吐量和延迟分别满足预设要求,是本发明实施例的创新点之一。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例一提供的一种数据流处理任务放置模型的训练方法的流程图;
图1b为本发明实施例一提供的一种编码-解码模型的结构框图;
图1c为本发明实施例一提供的一种吞吐量的离线估算算法的流程图;
图1d为实验过程中吞吐量的估算值和实际值之间的关系截图;
图1e为实验过程中估算的吞吐量和实际值之间的误差截图;
图1f为本发明实施例一提供的一种吞吐量测试拓扑的结构示意图;
图1g为本发明实施例一提供的一种吞吐量测试拓扑对应的吞吐量测试的实验效果截图;
图1h为本发明实施例一提供的一种单词计数拓扑的结构示意图;
图1i为本发明实施例一提供的单词计数拓扑对应的吞吐量测试的实验效果截图;
图1j为本发明实施例一提供的一种日志流处理拓扑的结构示意图;
图1k为本发明实施例一提供的日志流处理拓扑对应的吞吐量测试的实验效果截图;
图2a为本发明实施例二提供的一种数据流处理任务放置方法的流程图;
图2b为本发明实施例二提供的流处理作业图及对应生成的任务图;
图3为本发明实施例三提供的一种数据流处理任务放置装置的结构框图;
图4是本发明实施例四提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例公开了一种数据流处理任务放置方法、装置、设备和介质。为了清楚、明白地描述本发明各实施例的内容,下面先对本发明的工作原理进行简单介绍:
1、流处理模型
一个流处理作业可以被表示为一个有向无环图(Directed Acyclic Graph,DAG),通过Gjob=(Vjob,Ejob)来表示。其中,Vjob表示所有算子的集合,Ejob表示所有边的集合。每个作业节点j∈Vjob是执行一个具体操作(如映射,过滤,聚合)的算子。对每个作业节点j∈Vjob都有个一个用户定义的并行度j.p,表示作业节点j的子任务数量。所有的并行子任务tj,k(k=1,2,...,j.p)会被创建并执行。
每条边(ju,jv)∈Ejob连接了作业节点ju和作业节点jv,表示流式数据会从作业节点ju流向作业节点jv,其中,u和v为节点编号。可以使用tuple(元祖)来描述在DAG中流动的一个数据项。对于一条边(ju,jv)∈Ejob,作业节点ju中的任务会与作业节点中的任务通信。这里有两种连接方式:直接连接和广播连接。直接连接仅会在作业节点ju和作业节点具有相同并行度,即ju.p=jv.p时发生,每个任务节点tu,i∈ju仅会与一个任务节点tv,i∈jv相连。广播连接意味着每个任务节点tu,i∈ju会与所有作业节点jv的任务相连。假定每个任务会向其下游任务均匀地发送tuple。根据并行度和连接方式的定义,基于一个给定的作业图,可以构造出一个对应的任务层级图,通过Gtask=(Vtask,Etask)来表示。其中,Vtask表示所有任务节点的集合,Etask表示所有边的集合。任务放置关注的是任务层级图Gtask。每个任务t∈Vtask是可以被放置到资源节点上的最小单位,可以用如下两个参数来描述:t.cpu(CPU利用率)和t.mem(需要的内存)。真实的CPU利用率值非常难以估算,因此这里使用相对值来对其进行描述。t.mem表示任务t可能会消耗的最大内存值,这是一个真实值。
2、资源模型
资源可以被表示为一个全连接的无向图,通过Gres=(Vres,Eres)表示。其中,Vres是slot的集合,slot表示可以用来放置任务的最小单元。Eres中的每条边表示两个slot之间的逻辑连接。每个slot有两个属性:s.cpu(CPU算力)和s.mem(可用内存)。
3、任务放置问题
考虑一对任务层级图Gtask和资源图Gres,DSP(Digital Signal Process,数字信号处理)调度器需要一个放置方案P:Vtask→Vres,表示Vtask和Vres之间的一个合适的映射。具体来说,是需要将每个任务ti∈Vtask放置到一个具体的slot节点sj∈Vres上,同时优化某些质量属性,例如吞吐量属性和延迟属性。在发明实施例中,吞吐量是最为关注的质量属性。换句话说,本发明实施例需要找到一个放置方案,其能够充分利用所有可用资源并支持有高吞吐量要求的DSP应用。
由于任务放置问题是NP困难的,这意味着没有一个算法可以再多项式时间内找到最优解。为了高效地部署DSP应用,需要能够在可行时间内找到一个较优方案的启发式方法。
实际上,任务图中的任务有着不同的CPU利用率,以及复杂的依赖关系。如果调度器将任务都放置在所有slot集合的一个较小子集上,那么通信延迟会变得很小,但是由于单个slot需要执行众多的任务,这会对吞吐量造成不利影响。反过来,如果调度器将任务均匀地分配到所有slot上,每个任务会拥有充分的资源,但通信延迟将会变得很大。考虑到资源的异构性,均匀分配也不是一个较好的选择。因此,一个理想的调度器应该同时考虑任务图和资源图的信息,在不同质量属性间做出比较好的权衡,高效地给出一个合适的分配方案。本发明实施例提供的流处理任务放置方法充分考虑了任务图和资源图的信息。任务放置方案在被部署到真实集群中时能够充分利用所有可用资源并支持有高吞吐量要求的DSP应用。
下面,分别从模型的训练阶段和应用阶段,对本发明实施例提供的流处理任务放置方法的具体实现过程进行详细介绍。
实施例一
图1a为本发明实施例一提供的一种数据流处理任务放置模型的训练方法的流程图,该任务放置模型可应用于流处理任务放置过程中,得到吞吐量属性和延迟属性达到预设要求的放置方案。如图1a所示,该训练方法包括:
S110、获取任务图中各个任务节点对应的初始任务embedding向量、资源图中各个处理单元slot节点对应的初始资源embedding向量,以及随机生成的任务放置数组。
其中,任务放置数组的长度表示任务图中任务的个数,数组中的值是处理单元(slot)的编号。
本实施例中,通过采用图神经网络来感知不同结构的图,包括任务图(taskgraph)和资源图(resource graph)。图神经网络会将图信息编码成一个初始嵌入(embedding)向量的集合。其中,图神经网络可以为图卷积网络图卷积网络(GraphConvolutional Network,GCN)。
S120、基于GraphSAGE算法,分别对初始任务embedding向量和初始资源embedding向量进行迭代更新,得到样本任务embedding向量和样本资源embedding向量。
本实施例中,采用GraphSAGE(Graph SAmple and aggreGatE,一种图神经网络算法),对每个当前节点v的embedding向量进行迭代更新。其中,当前节点v的初始特征定义为fv,其在第k步的embedding向量为当k=0时,由于不同的图类型,编码任务图Gtask和和资源图Gres的过程会有所不同。
本实施例中,对于一个任务图Gtask,由于当前节点v的上下游邻居节点会对生成的放置方案产生不同的影响,因此,当前节点v的上下游邻居节点会被分别聚合。这里将当前节点v的上下游节点的集合分别记为Nu(v)和Nd(v)。用Nu(v)举例来说,对于每个当前节点的上游节点u∈Nu(v),其在第k步的embedding向量为通过如下公式计算
本实施例中,资源图为带有边属性信息(通信延迟)的无向图Gres。对于资源图而言,为了感知其边属性,资源节点的embedding在第一次变换时会与边属性做连接,具体通过如下公式来体现:
由于资源图是全连接的无向图,不存在上下游邻居的区别,聚合的时候只要将不包括v的所有其他节点向量取平均即可,冒号之后的公式意思就是求平均值,具体的,聚合公式可以被调整为:
在K次迭代后,任务图中各任务节点对应的样本任务embedding向量和资源图中所有资源节点对应的样本资源embedding向量均被计算得到。整个任务图的信息可以通过把每个任务的embedding传入一个全连接层和最大池化层后计算得到。图1b为本发明实施例一提供的一种编码-解码模型的结构框图。如图1b所示,将任务图和资源图的编码结果输入循环神经网络中进行解码。下文中,将任务图中每个任务节点ti的embedding向量表示为资源图中每个slot节点si的embedding向量表示为
S130、采用拓扑排序法对各个任务节点进行排序。
本实施例中,任务放置的目标是把每个任务ti∈Vtask放到一个特定的slotsi∈Vres上。对于一个任务ti来说,其上游任务被分配到的slot会对ti的放置产生较大影响。因此,本实施例通过对所有任务进行拓扑排序来保证ti的上游任务在ti之前都被放置完毕。解码器会按照拓扑排序的结果顺序地决定每个任务的放置。
S140、对于任意一个排序后的当前任务节点,根据当前任务节点对应的样本任务embedding向量,以及当前任务节点的各个上游节点分别对应的样本资源embedding向量,计算当前任务节点对应的当前上下文向量。
本实施例中,在计算当前任务节点对应的当前上下文向量时,可对当前任务节点的各个上游节点分别对应的资源embedding向量进行整合操作,使得所有上游节点对应一个整合后的资源embedding向量;其中,整合操作包括:将各个上游节点对应的资源embedding向量中每个维度取最大值,或者将各个维度的元素进行均值化处理;
将整合后的资源embedding向量与当前任务子节点的任务embedding向量进行加法运算;将加法运算的结果输入循环神经网络的注意力单元,得到当前任务节点对应的当前上下文向量。
本实施例中,将解码器最终生成的放置方案记为P,并通过如下公式形式化地描述任务放置问题:
本实施例中,可使用GRU(Gate Recurrent Unit,门循环单元)来学习一个状态表示以此记忆任务间依赖关系。hti编码了S(up)(ti)和Gtask的信息。如图1b所示,在每一步,输入向量会与S(up)(ti)中slot的embedding向量相加,以此来加强与ti相关的放置的理解。与现有技术不同的是,本实施例只考虑与ti的上游任务相关的slot。经过GRU的结果表示为:
为了预测在哪个slot上放置ti,本实施例首先采用了循环神经网络的注意力层来获取中间向量ci。具体的,中间向量ci可通过如下公式来计算:
其中,WQ为系数矩阵,其内的元素为任务放置模型的参数,在任务放置模型训练完成后,其参数得到确定。
S150、根据当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点。
具体的,步骤S150包括:
将当前上下文向量和所有slot节点对应的样本资源emdeding向量输入到循环神经网络模型的softmax单元,得到当前任务节点分配到各个slot节点的概率值p,具体可通过如下公式得到:
对于当前任务节点分配到各个slot节点的概率值,将其中概率值最大的slot节点作为当前任务节点对应的目标slot节点。在所有任务节点都确定出对应的目标slot节点后,即建立了各任务节点及其对应目标slot节点之间的映射关系。
S160、基于各个任务节点与对应目标slot节点的映射关系,计算流处理作业运行过程中的吞吐量和延迟。
其中,对于一个tuple,延迟定义为从源到汇经过的所有slot间通信延迟的总和。从源节点到汇节点可能有多种不同的路径,因此本实施例中,计算最终的延迟为:从源节点到汇节点的所有路径上延迟的平均值。
吞吐量代表一个特定的DSP作业每秒可以处理的tuple数量。对于大多数DSP应用来说,吞吐量是最重要的质量属性。但与延迟不同的是,在不部署作业的情况下估算吞吐量是非常困难的。本实施例在不布署流处理作业的情况下,提供了一种吞吐量的离线估算算法,请参阅图1c,具体包括:
S161、当任务节点中的源节点按照最大发送速度发送tuple时,将各slot节点剩余的CPU算力分配给对应的任务节点;
S162、按照拓扑排序的顺序,计算每个任务节点的当前吞吐量。
S163、按照逆拓扑排序的顺序遍历每个任务节点,并基于反压机制,回收各任务节点对应的目标slot对应的算力。
S164、将各个目标slot对应的算力重新分配给对应的任务节点,直到源节点的吞吐量收敛时,将源节点对应的吞吐量作为运行过程中的吞吐量。
其中,将各个目标slot对应的算力的具体分配方式可根据CPU利用率来进行。
本实施例提供的吞吐量和延迟的估算算法不仅可以加速任务放置模型的训练过程,还可以用来指导流处理任务的实际部署。主要的计算逻辑可以适应不同的部署场景。通过任务放置模型会生成多个不同的放置方案,通过采用本实施例提供的估算算法可从中选择出最优的放置方案用于最终的部署。
进一步的,为了验证本实施例提供的吞吐量估算算法可以适用于异构的DSP应用和资源,本实施例通过生成100个作业图作为验证数据,其中作业节点个数范围为1到10,每个作业节点的并行度范围为1到6,作业图会被部署到集群中所有slot的一个随机子集中。
循环次数可以作为不同任务的CPU利用率的一个度量,这可以通过Flink的DataStream API在用户自定义函数中来控制。
图1d为实验过程中吞吐量的估算值和实际值之间的关系截图,图1e为实验过程中估算的吞吐量和实际值之间的误差截图。如图1d所示,估算值与实际值之间显示出了明显的线性关系,通过采用线性回归的方式可将相对吞吐量值转化为实际值,然后计算误差。如图1e所示,对于78%的测试用例,绝对值误差都不超过10%。最大的绝对值误差为19%。对于所有测试用例,平均的绝对值误差为6.7%,这意味着本实施例提供的吞吐量估算工具在不部署应用的情况下用于估算不同放置方案的质量是可行的。
S170、根据吞吐量和延迟的计算结果确定目标奖励值。
其中,目标奖励值是吞吐量奖励值和延迟奖励值的线性组合,可通过如下公式来表示:
其中,P为放置方案,即确定的各个任务节点与对应目标slot节点的映射关系;λ是可以根据质量属性要求来配置的奖励系数。奖励值的设定非常灵活且具有可扩展性,可以很容易地扩展到其他质量属性。rdelay(p)表示采用本发明实施例提供的放置方案所计算出的延迟的奖励值;rthroughtput(p)表示采用本发明实施例提供的放置方案所计算出的吞吐量的奖励值。具体的,延迟的奖励值和吞吐量的奖励值可分别采用如下公式计算:
其中,delayp表示采用本发明实施例提供的放置方案所计算出的第一延迟值;throughputp表示采用本发明实施例提供的放置方案所计算出的第一吞吐量值;delayQ是采用现有技术提供的启发式方法得出的第二延迟平均值;throughputQ是采用现有技术提供的启发式方法得出的第二吞吐量平均值。本实施例中,采用delayQ和throughputQ是为了避免任务放置模型仅对单个启发式方法进行改进,而非根据实际质量属性(如吞吐量和延迟等)来优化设定的目标的缺陷。
S180、当目标奖励值达到收敛时,得到预设任务放置模型。
该预设任务放置模型使得任务图中的各个任务节点与资源图中的slot节点相关联。
在实际应用过程中,本实施例提供的任务放置模型可以对复杂结构的图找到比较合适的放置方案。具体的,可采用三种不同的拓扑,对本实施例提供的模型进行测试。
图1f为本发明实施例一提供的一种吞吐量测试拓扑的结构示意图,图1g为本发明实施例一提供的一种吞吐量测试拓扑对应的吞吐量测试的实验效果截图。如图1f所示,吞吐量测试拓扑是一个有一个源节点,一个等价节点和一个汇节点的拓扑结构。源节点会不断生成固定10K大小的随机字符串作为tuple。等价节点会将字符串原封不动发送给汇节点。汇节点在每次收到一个tuple后会把计数器加1。如图1g所示,本实施例提供的任务放置模型比现有技术的调度器I-Storm,Flink-even和Flink分别至少提升了8.9%,10%和47%的吞吐量。因此,本实施例提供的任务放置模型具有明显的优势。
图1h为本发明实施例一提供的一种单词计数拓扑的结构示意图,图1i为本发明实施例一提供的单词计数拓扑对应的吞吐量测试的实验效果截图;如图1h所示,单词计数拓扑结构包括源节点、分割节点、计数节点和汇节点。它用于统计在一个或多个文件中每个单词的出现次数。源节点会发送随机长度的单词列表,每次一行(长度在1到1000之间随机生成)。分割节点会将每行分割为单词,计数节点会根据输入单词增加计数器并将结果发送到一个空的汇节点。
如图1i所示,对单词计数拓扑来说,由于输入数据长度随机,因此曲线有略微的波动。Flink(2.6K)与Flink-even(2.3K)的吞吐量差距不大,I-Storm(3.9K)比这两种更好。本实施例提供的任务放置模型可以支持4.3K的吞吐量,相比I-Storm,Flink和Flink-even分别至少提升10%,63%和87%。因此,本实施例提供的任务放置模型具有明显的优势。
图1j为本发明实施例一提供的一种日志流处理拓扑的结构示意图,图1k为本发明实施例一提供的日志流处理拓扑对应的吞吐量测试的实验效果截图;如图1j所示,源节点每次发送一行日志记录。规则应用节点执行基于规则的分析并且发送日志项。日志项会发送到两个算子,分别执行索引和计数操作。
对于日志流处理拓扑,这个拓扑更加复杂,因此找到一个合适的方案并不容易。如图1j所示,不同方法的吞吐量表现差异较大。本实施例提供的任务放置模型有最高的吞吐量(66K),相对I-Storm(50K)至少提升了31%,相对Flink-even(37K)至少提升了75%,相对Flink(27K)至少提升了143%。本实施例提供的任务放置模型具有明显的优势。
本实施例提供的技术方案,在利用图神经网络对资源图的建模生成embedding向量时,考虑到了每个slot节点的CPU算力属性和可用内存属性,使得训练出的任务放置模型适用于异构资源。并且,在任务放置模型的训练过程中,考虑到了运行过程中的吞吐量和延迟。其中,在对运行过程中的估算吞吐量时,通过采用迭代回收、分配资源以及应用反压机制来计算吞吐量的方案,实现了在不布署实际应用的情况下,进行吞吐量的离线估算。这样设置不仅可以加速模型的训练进程,还可以使得训练出的任务放置模型能够使得吞吐量和延迟分别满足预设要求,以用于指导后续流处理作业的实际布署。
实施例二
图2a为本发明实施例二提供的一种数据流处理任务放置方法的流程图,该方法可应用于流处理作业的布署过程中。该方法可通过任务放置装置来执行,该装置可通过软件和/或硬件的方式来实现,如图2a所示,该方法包括:
S210、根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成流处理作业对应的任务图。
具体的,图2b为本发明实施例二提供的流处理作业图及对应生成的任务图。如图2b所示,流处理作业图包括源算子、映射算子、聚合算子、过滤算子和汇算子。根据各算子的并行度(图2b中用p表示),得到的任务图中的节点包括源节点、映射节点、聚合节点、过滤节点和汇节点的个数。其中,各个节点之间的连接方式通过各个算子之间的连接方式来确定,如图2b所示,实线箭头表示广播连接,虚线箭头表示直接连接。
S220、基于预设任务放置模型中的图神经网络,确定任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图中各个slot节点对应的资源嵌入embedding向量。
其中,资源图为全连接的无向图,资源图中的各slot节点均具有CPU算力属性和可用内存属性。
本实施例中,预设任务放置模型包括编码部分和解码部分,其中,编码部分包括图神经网络,该图神经网络可优选采用为GCN。基于图神经网络,可将任务图和资源图中的初始embedding向量进行迭代更新后,得到任务embedding向量和资源embedding向量。
S230、基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定流处理作业的布署方式。
本实施例中,预设任务放置模型还包括解码部分,该解码部分可通过循环神经网络来实现,该循环神经网络将任务图和资源图对应的embedding向量作为输入,通过GRU单元、注意力层和Softmax层后,可建立任务图中的各个任务节点与资源图中的slot之间的映射关系。其中,预设任务放置模型的训练方法请参照上述实施例的内容,此处不再赘述。在预设任务放置模型训练完成后,可使得任务图中的各个任务节点与资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
本实施例中,基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,具体可包括:
采用拓扑排序法对各个任务节点进行排序;对于任意一个排序后的当前任务节点,根据当前任务节点对应的任务embedding向量,以及当前任务节点的各个上游节点分别对应的资源embedding向量,计算当前任务节点对应的当前上下文向量;根据当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点。
具体的,根据当前任务节点对应的任务embedding向量,以及当前任务节点的各个上游节点分别对应的资源embedding向量,计算当前任务节点对应的当前上下文向量,包括:
对当前任务节点的各个上游节点分别对应的资源embedding向量进行整合操作,使得所有上游节点对应一个整合后的资源embedding向量;将整合后的资源embedding向量与当前任务子节点的任务embedding向量进行加法运算;将加法运算的结果输入循环神经网络的注意力单元,得到当前任务节点对应的当前上下文向量。其中,具体上下文向量的计算公式与上述实施例在模型训练过程中对应的上下文向量的计算公式相同,此处不再赘述。
其中,整合操作包括:将各个上游节点对应的资源embedding向量中每个维度取最大值,或者将各个维度的元素进行均值化处理。
具体的,根据当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,包括:
将当前上下文向量和所有slot节点对应的资源emdeding向量输入到循环神经网络模型的softmax单元,得到当前任务节点分配到各个slot节点的概率值,具体概率值的计算公式与上述实施例在模型训练过程中对应概率值的计算公式相同,此处不再赘述。
本实施例提供的技术方案,根据流处理作业中各算子的并行度以及各个算子之间的连接方式,可生成流处理作业对应的任务图。通过预设任务放置模型中的图神经网络,可对任务图和资源图进行编码,确定出任务图中各个任务节点对应的任务embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源embedding向量。本发明实施例中的资源图为全连接的无向图,在预设任务放置模型的训练过程中,在进行embedding向量的迭代时,由于考虑到了每个slot节点的CPU算力属性和可用内存属性,因此,本实施例提供的预设任务放置模型可适用于异构资源。通过预设任务放置模型中的循环神经网络,可根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,从而确定出流处理作业的布署方式。此外,由于预设任务放置模型在训练的过程中考虑到了吞吐量和延迟属性,因此,本实施例提供的预设放置模型在实际流处理作业的过程中可使得吞吐量属性和延迟属性达到预设要求。
实施例三
图3为本发明实施例三提供的一种数据流处理任务放置装置的结构框图,该装置包括:任务图生成模块310、编码模块320和解码模块330;其中,
任务图生成模块310,被配置为根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成所述流处理作业对应的任务图task graph;
编码模块320,被配置为基于预设任务放置模型中的图神经网络,确定所述任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源嵌入embedding向量;所述资源图为全连接的无向图,所述资源图中的各slot节点均具有CPU算力属性和可用内存属性;
解码模块330,被配置为基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定所述流处理作业的布署方式;
其中,所述预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
可选的,所述编码模块,具体包括:
排序单元,被配置为:采用拓扑排序法对各个任务节点进行排序;
上下文向量计算单元,被配置为:对于任意一个排序后的当前任务节点,根据所述当前任务节点对应的任务embedding向量,以及所述当前任务节点的各个上游节点分别对应的资源embedding向量,计算所述当前任务节点对应的当前上下文向量;
目标slot节点确定单元,被配置为:根据所述当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点。
可选的,所述上下文向量计算单元,具体被配置为:
对所述当前任务节点的各个上游节点分别对应的资源embedding向量进行整合操作,使得所有上游节点对应一个整合后的资源embedding向量;
将整合后的资源embedding向量与当前任务子节点的任务embedding向量进行加法运算;
将加法运算的结果输入所述循环神经网络的注意力单元,得到当前任务节点对应的当前上下文向量;
其中,所述整合操作包括:将各个上游节点对应的资源embedding向量中每个维度取最大值,或者将各个维度的元素进行均值化处理。
可选的,所述目标slot节点确定单元,具体被配置为:
将所述当前上下文向量和所有slot节点对应的资源emdeding向量输入到所述循环神经网络模型的softmax单元,得到当前任务节点分配到各个slot节点的概率值。
可选的,所述预设任务放置模型通过如下方式训练得到:
获取任务图中各个任务节点对应的初始任务embedding向量、资源图中各个处理单元slot节点对应的初始资源embedding向量,以及随机生成的任务放置数组;所述任务放置数组的长度表示任务图中任务的个数,数组中的值是slot的编号;
基于GraphSAGE算法,分别对初始任务embedding向量和初始资源embedding向量进行迭代更新,得到样本任务embedding向量和样本资源embedding向量;
采用拓扑排序法对各个任务节点进行排序;
对于任意一个排序后的当前任务节点,根据所述当前任务节点对应的样本任务embedding向量,以及所述当前任务节点的各个上游节点分别对应的样本资源embedding向量,计算所述当前任务节点对应的当前上下文向量;
根据所述当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点;
基于各个任务节点与对应目标slot节点的映射关系,计算流处理作业运行过程中的吞吐量和延迟;
分别根据吞吐量和延迟的计算结果确定目标奖励值;其中,所述目标奖励值是吞吐量奖励值和延迟奖励值的线性组合;
当所述目标奖励值达到收敛时,得到所述预设任务放置模型,该预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot节点相关联。
可选的,所述吞吐量通过如下方式计算得到:
当任务节点中的源节点按照最大发送速度发送元祖tuple时,将各slot节点剩余的CPU算力分配给对应的任务;
按照拓扑排序的顺序,计算每个任务节点的当前吞吐量;
按照逆拓扑排序的顺序遍历每个任务节点,并基于反压机制,回收各任务节点对应的目标slot节点对应的算力;
将各个目标slot节点对应的算力重新分配给对应的任务节点,直到源节点的吞吐量达到收敛时,将源节点对应的吞吐量作为运行过程中的吞吐量。
可选的,所述延迟的计算方式为:从任务节点中的源节点到汇节点的所有路径上延迟的平均值。
本发明实施例所提供的任务放置装置可执行本发明任意实施例所提供的任务放置方法,具备执行方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的任务放置方法。
实施例四
请参阅图4,图4是本发明实施例四提供的一种计算设备的结构示意图。如图4所示,该计算设备可以包括:
存储有可执行程序代码的存储器701;
与存储器701耦合的处理器702;
其中,处理器702调用存储器701中存储的可执行程序代码,执行本发明任意实施例所提供的任务的放置方法。
本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行本发明任意实施例所提供的任务的放置方法。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种任务的放置方法,应用于流处理任务,其特征在于,包括:
根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成所述流处理作业对应的任务图task graph;
基于预设任务放置模型中的图神经网络,确定所述任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源嵌入embedding向量;所述资源图为全连接的无向图,所述资源图中的各slot节点均具有CPU算力属性和可用内存属性;
基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定所述流处理作业的布署方式;
其中,所述预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
2.根据权利要求1所述的方法,其特征在于,基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,包括:
采用拓扑排序法对各个任务节点进行排序;
对于任意一个排序后的当前任务节点,根据所述当前任务节点对应的任务embedding向量,以及所述当前任务节点的各个上游节点分别对应的资源embedding向量,计算所述当前任务节点对应的当前上下文向量;
根据所述当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点。
3.根据权利要求2所述的方法,其特征在于,根据所述当前任务节点对应的任务embedding向量,以及所述当前任务节点的各个上游节点分别对应的资源embedding向量,计算所述当前任务节点对应的当前上下文向量,包括:
对所述当前任务节点的各个上游节点分别对应的资源embedding向量进行整合操作,使得所有上游节点对应一个整合后的资源embedding向量;
将整合后的资源embedding向量与当前任务子节点的任务embedding向量进行加法运算;
将加法运算的结果输入所述循环神经网络的注意力单元,得到当前任务节点对应的当前上下文向量;
其中,所述整合操作包括:将各个上游节点对应的资源embedding向量中每个维度取最大值,或者将各个维度的元素进行均值化处理。
4.根据权利要求2所述的方法,其特征在于,根据所述当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,包括:
将所述当前上下文向量和所有slot节点对应的资源emdeding向量输入到所述循环神经网络模型的softmax单元,得到当前任务节点分配到各个slot节点的概率值。
5.根据权利要求1所述的方法,其特征在于,所述预设任务放置模型通过如下方式训练得到:
获取任务图中各个任务节点对应的初始任务embedding向量、资源图中各个处理单元slot节点对应的初始资源embedding向量,以及随机生成的任务放置数组;所述任务放置数组的长度表示任务图中任务的个数,数组中的值是slot的编号;
基于GraphSAGE算法,分别对初始任务embedding向量和初始资源embedding向量进行迭代更新,得到样本任务embedding向量和样本资源embedding向量;
采用拓扑排序法对各个任务节点进行排序;
对于任意一个排序后的当前任务节点,根据所述当前任务节点对应的样本任务embedding向量,以及所述当前任务节点的各个上游节点分别对应的样本资源embedding向量,计算所述当前任务节点对应的当前上下文向量;
根据所述当前上下文向量,确定当前任务节点分配到各个slot节点的概率值,并将概率值最大的slot节点作为当前任务节点对应的目标slot节点;
基于各个任务节点与对应目标slot节点的映射关系,计算流处理作业运行过程中的吞吐量和延迟;
根据吞吐量和延迟的计算结果确定目标奖励值;其中,所述目标奖励值是吞吐量奖励值和延迟奖励值的线性组合;
当所述目标奖励值达到收敛时,得到所述预设任务放置模型,该预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot节点相关联。
6.根据权利要求5所述的方法,其特征在于,所述吞吐量通过如下方式计算得到:
当任务节点中的源节点按照最大发送速度发送元祖tuple时,将各slot节点剩余的CPU算力分配给对应的任务节点;
按照拓扑排序的顺序,计算每个任务节点的当前吞吐量;
按照逆拓扑排序的顺序遍历每个任务节点,并基于反压机制,回收各任务节点对应的目标slot节点对应的算力;
将各个目标slot节点对应的算力重新分配给对应的任务节点,直到源节点的吞吐量达到收敛时,将源节点对应的吞吐量作为运行过程中的吞吐量。
7.根据权利要求6所述的方法,其特征在于,所述延迟的计算方式为:从任务节点中的源节点到汇节点的所有路径上延迟的平均值。
8.一种任务的放置装置,应用于流处理任务,其特征在于,包括:
任务图生成模块,被配置为根据流处理作业中各算子的并行度以及各个算子之间的连接方式,生成所述流处理作业对应的任务图task graph;
编码模块,被配置为基于预设任务放置模型中的图神经网络,确定所述任务图中各个任务节点对应的任务嵌入embedding向量,并确定资源图resource graph中各个处理单元slot节点对应的资源嵌入embedding向量;所述资源图为全连接的无向图,所述资源图中的各slot节点均具有CPU算力属性和可用内存属性;
解码模块,被配置为基于预设任务放置模型中的循环神经网络,根据任务embedding向量和资源embedding向量,确定每个任务节点对应的slot节点,以确定所述流处理作业的布署方式;
其中,所述预设任务放置模型使得任务图中的各个任务节点与所述资源图中的slot相关联,并使得流处理作业运行过程中吞吐量属性和延迟属性达到预设要求。
9.一种计算设备,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一所述的任务的放置方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的任务的放置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714071.8A CN113391907A (zh) | 2021-06-25 | 2021-06-25 | 一种任务的放置方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714071.8A CN113391907A (zh) | 2021-06-25 | 2021-06-25 | 一种任务的放置方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113391907A true CN113391907A (zh) | 2021-09-14 |
Family
ID=77624004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110714071.8A Pending CN113391907A (zh) | 2021-06-25 | 2021-06-25 | 一种任务的放置方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113391907A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023178766A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京邮电大学 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
CN116841649A (zh) * | 2023-08-28 | 2023-10-03 | 杭州玳数科技有限公司 | 一种基于flink on yarn的热重启方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017521A1 (en) * | 2015-07-13 | 2017-01-19 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
US20190236444A1 (en) * | 2018-01-30 | 2019-08-01 | International Business Machines Corporation | Functional synthesis of networks of neurosynaptic cores on neuromorphic substrates |
US20200136920A1 (en) * | 2019-12-20 | 2020-04-30 | Kshitij Arun Doshi | End-to-end quality of service in edge computing environments |
CN111126668A (zh) * | 2019-11-28 | 2020-05-08 | 中国人民解放军国防科技大学 | 基于图卷积网络的Spark作业时间预测方法和装置 |
CN111309915A (zh) * | 2020-03-03 | 2020-06-19 | 爱驰汽车有限公司 | 联合学习的自然语言训练方法、***、设备及存储介质 |
CN111444009A (zh) * | 2019-11-15 | 2020-07-24 | 北京邮电大学 | 一种基于深度强化学习的资源分配方法及装置 |
US20200257968A1 (en) * | 2019-02-08 | 2020-08-13 | Adobe Inc. | Self-learning scheduler for application orchestration on shared compute cluster |
US20210117624A1 (en) * | 2019-10-18 | 2021-04-22 | Facebook, Inc. | Semantic Representations Using Structural Ontology for Assistant Systems |
CN112753016A (zh) * | 2018-09-30 | 2021-05-04 | 华为技术有限公司 | 神经网络中数据预处理阶段的计算资源的管理方法和装置 |
-
2021
- 2021-06-25 CN CN202110714071.8A patent/CN113391907A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017521A1 (en) * | 2015-07-13 | 2017-01-19 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
US20190236444A1 (en) * | 2018-01-30 | 2019-08-01 | International Business Machines Corporation | Functional synthesis of networks of neurosynaptic cores on neuromorphic substrates |
CN112753016A (zh) * | 2018-09-30 | 2021-05-04 | 华为技术有限公司 | 神经网络中数据预处理阶段的计算资源的管理方法和装置 |
US20200257968A1 (en) * | 2019-02-08 | 2020-08-13 | Adobe Inc. | Self-learning scheduler for application orchestration on shared compute cluster |
US20210117624A1 (en) * | 2019-10-18 | 2021-04-22 | Facebook, Inc. | Semantic Representations Using Structural Ontology for Assistant Systems |
CN111444009A (zh) * | 2019-11-15 | 2020-07-24 | 北京邮电大学 | 一种基于深度强化学习的资源分配方法及装置 |
CN111126668A (zh) * | 2019-11-28 | 2020-05-08 | 中国人民解放军国防科技大学 | 基于图卷积网络的Spark作业时间预测方法和装置 |
US20200136920A1 (en) * | 2019-12-20 | 2020-04-30 | Kshitij Arun Doshi | End-to-end quality of service in edge computing environments |
CN111309915A (zh) * | 2020-03-03 | 2020-06-19 | 爱驰汽车有限公司 | 联合学习的自然语言训练方法、***、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
卢海峰;顾春华;罗飞;丁炜超;杨婷;郑帅;: "基于深度强化学习的移动边缘计算任务卸载研究", 计算机研究与发展, no. 07 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023178766A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京邮电大学 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
CN116841649A (zh) * | 2023-08-28 | 2023-10-03 | 杭州玳数科技有限公司 | 一种基于flink on yarn的热重启方法及装置 |
CN116841649B (zh) * | 2023-08-28 | 2023-12-08 | 杭州玳数科技有限公司 | 一种基于flink on yarn的热重启方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bolukbasi et al. | Adaptive neural networks for efficient inference | |
Piscitelli et al. | Design space pruning through hybrid analysis in system-level design space exploration | |
CN111406264A (zh) | 神经架构搜索 | |
US20210350225A1 (en) | Determining multivariate time series data dependencies | |
CN113391907A (zh) | 一种任务的放置方法、装置、设备和介质 | |
Ni et al. | Generalizable resource allocation in stream processing via deep reinforcement learning | |
Chen et al. | $ d $ d-Simplexed: Adaptive Delaunay Triangulation for Performance Modeling and Prediction on Big Data Analytics | |
Garbi et al. | Learning queuing networks by recurrent neural networks | |
Geyer et al. | Graph-based deep learning for fast and tight network calculus analyses | |
Cheng et al. | Tuning configuration of apache spark on public clouds by combining multi-objective optimization and performance prediction model | |
Sukhija et al. | Portfolio-based selection of robust dynamic loop scheduling algorithms using machine learning | |
Geyer et al. | Tightening network calculus delay bounds by predicting flow prolongations in the FIFO analysis | |
Geyer et al. | On the robustness of deep learning-predicted contention models for network calculus | |
Liu et al. | Service function chain embedding meets machine learning: Deep reinforcement learning approach | |
Hou et al. | A machine learning enabled long-term performance evaluation framework for NoCs | |
Guan et al. | Quantifying the impact of uncertainty in embedded systems mapping for NoC based architectures | |
Heger | Optimized resource allocation & task scheduling challenges in cloud computing environments | |
D'Aronco et al. | Online resource inference in network utility maximization problems | |
Sirocchi et al. | Topological network features determine convergence rate of distributed average algorithms | |
Johnston et al. | Performance tuning of MapReduce jobs using surrogate-based modeling | |
Park et al. | Gemma: reinforcement learning-based graph embedding and mapping for virtual network applications | |
Furno et al. | Reducing pivots of approximated betweenness computation by hierarchically clustering complex networks | |
Pavlidis et al. | Intelligent Client Selection for Federated Learning using Cellular Automata | |
Zhang et al. | Space-invariant projection in streaming network embedding | |
Sinclair et al. | Adaptive discretization in online reinforcement learning |
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 |