首页 / 专利库 / 物理 / 加速 / 一种加速分布式深度神经网络的训练方法及装置

一种加速分布式深度神经网络的训练方法及装置

阅读:500发布:2023-03-13

专利汇可以提供一种加速分布式深度神经网络的训练方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种 加速 分布式 深度神经网络 的训练方法及装置,所述方法包括:基于并行训练,将深度神经网络的训练设计成为分布式训练的模式,待训练的深度神经网络模型划分为多个子网络;训练样本集划分为多个子样本集;基于分布式集群架构及预设的调度方法,利用多个子样本集对深度神经网络进行训练,每个训练由多个子网络同时进行,进而完成深度神经网络的分布式训练;由于基于分布式集群架构及预设的调度方法可以通过数据本地化减小网络延迟对分布式训练的子网络的影响,并实时调整训练策略,同步并行训练的子网络的进度,进而可以缩短分布式深度神经网络的完成训练的时间,加速深度神经网络的训练。,下面是一种加速分布式深度神经网络的训练方法及装置专利的具体信息内容。

1.一种加速分布式深度神经网络的训练方法,其特征在于,所述方法包括:
将待训练的深度神经网络划分为多个子网络;
将预先获取的训练样本集划分为多个子样本集;
基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设资源节点,使得数据传输时间最短。
2.如权利要求1所述的方法,其特征在于,所述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
所述基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练的步骤,包括:
根据公式 将所述多个任务调度至所述多个云资源节点,加速每
个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
其中,c为所述分布式深度神经网络当前训练所剩的完成时间,p为应用编号,A为应用的数量,ap为编号为p的应用的剩余运行时间和数据传输时间的总和。
3.如权利要求2所述的方法,其特征在于,所述编号为p的应用的剩余运行时间和数据传输时间的总和的计算方式,包括:
根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
其中,NC为云资源节点的集合,fp为编号为p的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间, 为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间, 为编号为t的任务存储在编号为d的云资源节点上的数据量,为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
4.如权利要求2或3所述的方法,其特征在于,所述根据公式 将所
述多个任务调度至所述多个云资源节点的步骤,包括:
将对所述多个任务的调度映射为有向图模型;
将所述有向图模型转换为残差图;
根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点。
5.如权利要求4所述的方法,其特征在于,所述将对所述多个任务的调度映射为有向图模型的步骤,包括:
将对所述多个任务的调度映射为如下有向图模型:
所述有向图模型包括源节点、应用节点、任务节点、计算节点和目的节点以及源节点指向应用节点的有向边、应用节点指向任务节点的有向边、任务节点指向计算节点的有向边、计算节点指向目的节点的有向边;
其中,每个节点对象具有潜值,所述节点对象包括所述源节点、所述应用节点、所述任务节点、所述计算节点和所述目的节点;潜力值为正值,表示节点对象具有可分配任务,且可分配任务的数量为潜力值;潜力值为负值,表示节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,且超出的任务的数量为潜力值的绝对值;每一条有向边具有费用和容量两个属性值,所述源节点指向所述应用节点的有向边的费用表示单位剩余运行时间;所述应用节点指向所述任务节点的有向边的费用为0;所述任务节点指向所述计算节点的有向边的费用表示运行在该计算节点对应的云资源节点上的该任务节点对应的任务所需的数据传输时间;所述计算节点指向所述目的节点的有向边的费用表示等待该计算节点对应的云资源节点的资源变为空闲的等待时间;所述有向边的容量表示该有向边的源节点对象总的可调度的任务数量。
6.如权利要求5所述的方法,其特征在于,所述根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点的步骤,包括:
S401,确定当前是否存在未被调度任务,如果存在,执行步骤S402;如果不存在,结束;
S402,遍历所述残差图中的节点对象,每遍历一个节点对象,判断该节点对象的潜力值是否为正值,如果为正值,执行步骤S403;如果为负值,执行步骤S406;
S403,将该节点对象存储至预设集合中,并计算所述预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量,分别作为第一数量和第二数量;
S404,判断所述第一数量是否大于所述第二数量,如果大于,执行步骤S405;如果小于,返回步骤S402;
S405,沿着具有最小费用的有向边,将所述第二数量的未调度任务分配到对应的节点对象,执行步骤S407;
S406,将该节点对象作为目的节点对象,将所述预设集合中第一个节点对象作为源节点对象,确定所述源节点对象与所述目的节点对象之间的一条最小费用路径,将预设数量的未调度任务分配给该负潜力值的节点对象;其中,所述预设数量为该路径包括的有向边的容量的最小值;
S407,对所述残差图的参数进行更新,并返回所述步骤S401。
7.一种加速分布式深度神经网络的训练装置,其特征在于,所述装置包括:
第一划分模,用于将待训练的深度神经网络划分为多个子网络;
第二划分模块,用于将预先获取的训练样本集划分为多个子样本集;
网络训练模块,用于基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。
8.如权利要求7所述的装置,其特征在于,所述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述的数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
所述网络训练模块包括:
网络训练子模块,用于根据公式 将所述多个任务调度至所述多
个云资源节点,加速每个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
其中,c为所述深度神经网络分布式训练完成时间,p为应用编号,A为应用的数量,ap为通过时间计算模块得到的编号为p的应用的剩余运行时间和数据传输时间的总和。
9.如权利要求8所述的装置,其特征在于,所述时间计算模块包括:
时间计算子模块,用于根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
其中,NC为云资源节点的集合,fp为编号为p的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间, 为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间, 为编号为t的任务存储在编号为d的云资源节点上的数据量,为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
10.如权利要求9所述的装置,其特征在于,所述网络训练子模块包括:
模型映射单元,用于将对所述多个任务的调度映射为有向图模型;
模型转换单元,用于将所述有向图模型转换为残差图;
调度单元,用于根据所述预设的调度方法及所述残差图,将所述多个应用中的多个任务调度至所述多个云资源节点。

说明书全文

一种加速分布式深度神经网络的训练方法及装置

技术领域

[0001] 本发明涉及深度神经网络训练技术领域,特别是涉及一种加速分布式深度神经网络的训练方法及装置。

背景技术

[0002] 深度神经网络已成功应用于很多领域,包括图像识别、纹理分类、语音识别等领域。近年来,深度神经网络由于采用更深的网络架构和更大的训练样本集来进行训练,所以在性能上有了显著的提升。但是在训练过程中,也产生了一个严重的问题,随着网络参数和训练样本的爆发式增长,导致深度神经网络训练时间很长。
[0003] 为了解决这个问题,研究人员提出了对深度神经网络进行并行训练的方法,主要是利用多个图形处理器内核来实现并行训练,从而减少训练时间。目前样本并行训练和模型并行训练是两个主要的并行训练的类型。其中,样本并行训练是将训练样本集分成许多子集,进而来并行训练相同的深度神经网络。模型并行训练是将深度神经网络切分成多个分层网络,进而在不同图形处理器进行训练。
[0004] 以上两种方式都通过减少单个图形处理器训练的工作量,增加多个图形处理器并行训练来减少深度神经网络的训练时间。但是多个图形处理器并不一定同处于同一个物理设备,对于多个图形处理器组成的分布式集群,如何实现大幅度减少网络延迟对于深度神经网络的分布式训练时间的影响成为当前深度神经网络技术领域亟待解决的问题。

发明内容

[0005] 本发明实施例的目的在于提供一种加速分布式深度神经网络的训练方法及装置,以缩短深度神经网络的训练时间,提高深度神经网络的训练效率。具体技术方案如下:
[0006] 第一方面,本发明实施例提供了一种加速分布式深度神经网络的训练方法,所述方法包括:
[0007] 将待训练的深度神经网络划分为多个子网络;
[0008] 将预先获取的训练样本集划分为多个子样本集;
[0009] 基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设资源节点,使得数据传输时间最短。
[0010] 可选的,所述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
[0011] 所述基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练的步骤,包括:
[0012] 根据公式 将所述多个任务调度至所述多个云资源节点,加速每个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
[0013] 其中,c为所述分布式深度神经网络当前训练所剩的完成时间,p为应用编号,A为应用的数量,ap为编号为p的应用的剩余运行时间和数据传输时间的总和。
[0014] 可选的,所述编号为p的应用的剩余运行时间和数据传输时间的总和的计算方式,包括:
[0015] 根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
[0016]
[0017]
[0018] 其中,NC为云资源节点的集合,fp为编号为p的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间,prp为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间, 为编号为t的任务存储在编号为d的云资源节点上的数据量,为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
[0019] 可选的,所述根据公式 将所述多个任务调度至所述多个云资源节点的步骤,包括:
[0020] 将对所述多个任务的调度映射为有向图模型;
[0021] 将所述有向图模型转换为残差图;
[0022] 根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点。
[0023] 可选的,所述将对所述多个任务的调度映射为有向图模型的步骤,包括:
[0024] 将对所述多个任务的调度映射为如下有向图模型:
[0025] 所述有向图模型包括源节点、应用节点、任务节点、计算节点和目的节点以及源节点指向应用节点的有向边、应用节点指向任务节点的有向边、任务节点指向计算节点的有向边、计算节点指向目的节点的有向边;
[0026] 其中,每个节点对象具有潜值,所述节点对象包括所述源节点、所述应用节点、所述任务节点、所述计算节点和所述目的节点;潜力值为正值,表示节点对象具有可分配任务,且可分配任务的数量为潜力值;潜力值为负值,表示节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,且超出的任务的数量为潜力值的绝对值;每一条有向边具有费用和容量两个属性值,所述源节点指向所述应用节点的有向边的费用表示单位剩余运行时间;所述应用节点指向所述任务节点的有向边的费用为0;所述任务节点指向所述计算节点的有向边的费用表示运行在该计算节点对应的云资源节点上的该任务节点对应的任务所需的数据传输时间;所述计算节点指向所述目的节点的有向边的费用表示等待该计算节点对应的云资源节点的资源变为空闲的等待时间;所述有向边的容量表示该有向边的源节点对象总的可调度的任务数量。
[0027] 可选的,所述根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点的步骤,包括:
[0028] S401,确定当前是否存在未被调度任务,如果存在,执行步骤S402;如果不存在,结束;
[0029] S402,遍历所述残差图中的节点对象,每遍历一个节点对象,判断该节点对象的潜力值是否为正值,如果为正值,执行步骤S403;如果为负值,执行步骤S406;
[0030] S403,将该节点对象存储至预设集合中,并计算所述预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量,分别作为第一数量和第二数量;
[0031] S404,判断所述第一数量是否大于所述第二数量,如果大于,执行步骤S405;如果小于,返回步骤S402;
[0032] S405,沿着具有最小费用的有向边,将所述第二数量的未调度任务分配到对应的节点对象,执行步骤S407;
[0033] S406,将该节点对象作为目的节点对象,将所述预设集合中第一个节点对象作为源节点对象,确定所述源节点对象与所述目的节点对象之间的一条最小费用路径,将预设数量的未调度任务分配给该负潜力值的节点对象;其中,所述预设数量为该路径包括的有向边的容量的最小值。
[0034] S407,对所述残差图的参数进行更新,并返回所述步骤S401。
[0035] 第二方面,本发明实施例提供了一种加速分布式深度神经网络的训练装置,所述装置包括:
[0036] 第一划分模,用于将待训练的深度神经网络划分为多个子网络;
[0037] 第二划分模块,用于将预先获取的训练样本集划分为多个子样本集;
[0038] 网络训练模块,用于用于基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。
[0039] 可选的,所述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述的数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
[0040] 所述网络训练模块包括:
[0041] 网络训练子模块,用于根据公式 将所述多个任务调度至所述多个云资源节点,加速每个子网络的训练,并对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
[0042] 其中,c为所述深度神经网络分布式训练完成时间,p为应用编号,A为应用的数量,ap为通过时间计算模块得到的编号为p的应用的剩余运行时间和数据传输时间的总和。
[0043] 可选的,所述时间计算模块包括:
[0044] 时间计算子模块,用于根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
[0045]
[0046]
[0047] 其中,NC为云资源节点的集合,fp为编号为P的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间,prp为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间, 为编号为t的任务存储在编号为d的云资源节点上的数据量,为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
[0048] 可选的,所述网络训练子模块包括:
[0049] 模型映射单元,用于将对所述多个任务的调度映射为有向图模型;
[0050] 模型转换单元,用于将所述有向图模型转换为残差图;
[0051] 调度单元,用于根据所述预设的调度方法及所述残差图,将所述多个应用中的多个任务调度至所述多个云资源节点。
[0052] 本发明实施例所提供的方案中,将待训练的深度神经网络划分为多个子网络模块,并将预先获取的训练样本集划分为多个子样本集,进而,基于分布式集群架构及预设的调度方法,利用多个子样本集对待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。由于基于分布式集群架构及预设的调度方法可以优化利用多个子样本集对多个子网络的进行同步训练,实时调整训练策略,同步并行训练的子网络,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,进而可以缩短分布式深度神经网络的完成训练的时间,提高深度神经网络的训练效率。附图说明
[0053] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0054] 图1为本发明实施例所提供的一种加速分布式深度神经网络的训练方法的流程图
[0055] 图2为本发明实施例所提供的任务调度的一种方式的流程图;
[0056] 图3为本发明实施例所提供的有向图模型的一种示意图;
[0057] 图4为图2所示实施例中步骤S203的一种具体流程图;
[0058] 图5为本发明实施例所提供的一种加速分布式深度神经网络的训练装置的结构示意图。

具体实施方式

[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 为了缩短深度神经网络的训练时间,提高深度神经网络的训练效率,本发明实施例提供了一种加速分布式深度神经网络的训练方法、装置及计算机可读存储介质。
[0061] 下面首先对本发明实施例所提供的一种加速分布式深度神经网络的训练方法进行介绍。
[0062] 本发明实施例所提供的一种加速分布式深度神经网络的训练方法可以用于任意可以进行分布式训练的深度神经网络的训练,在此不做具体限定。为了实现基于分布式集群架构的分布式深度神经网络的训练,本发明实施例所提供的一种加速分布式深度神经网络的训练方法可以应用于分布式集群中的管理设备,以下均简称管理设备,该管理设备用于调度管理分布式集群中的其他分布式训练节点设备。
[0063] 如图1所示,一种分布式深度神经网络的训练方法,所述方法包括:
[0064] S101,将待训练的深度神经网络划分为多个子网络;
[0065] S102,将预先获取的训练样本集划分为多个子样本集;
[0066] S103,基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练。
[0067] 其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。
[0068] 可见,本发明实施例所提供的方案中,首先,管理设备可以利用编程架构将待训练的深度神经网络划分为多个子网络,并将预先获取的训练样本集划分为多个子样本集,进而,基于分布式集群架构及预设的调度方法,利用多个子样本集对待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。由于基于分布式集群架构及预设的调度方法,管理设备可以优化多个子网络的训练,实时调整训练策略,同步并行训练的子网络,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,进而可以缩短分布式深度神经网络的完成训练的时间,提高深度神经网络的训练效率。
[0069] 在上述步骤S101中,为了能够缩短对深度神经网络进行训练所需的时间,首先管理设备利用编程架构可以将待训练的深度神经网络划分为多个子网络。其中,待训练的深度神经网络即为可以进行分布式训练的深度神经网络,对于其具体类型及用途在此不作具体限定,可以根据实际需要确定。
[0070] 对于待训练的深度神经网络的划分,可以根据待训练的深度神经网络的结构确定,在此不做具体限定。例如,若待训练的深度神经网络包括5个卷积层和2个全连接层,那么可以将该深度神经网络划分为7个子网络。
[0071] 在上述步骤S102中,管理设备利用编程架构可以将预先获取的训练样本集划分为多个子样本集。其中,训练样本集即为用于训练待训练的深度神经网络的训练样本的集合。对于训练样本集的划分,可以根据训练样本集包括训练样本的数量等因素确定,在此不做具体限定。
[0072] 需要说明的是,上述步骤S101和步骤S102的执行顺序并没有限定,可以先执行步骤S101,再执行步骤S102,也可以先执行步骤S102,再执行步骤S101,当然也可以同时执行步骤S101和步骤S102,并不会对后续步骤中对多个子网络的训练造成影响。
[0073] 接下来,划分得到多个子网络和多个子样本集后,编程架构便可以执行上述步骤S103,即基于分布式集群架构及预设的调度方法,利用多个子样本集对深度神经网络进行训练,其中,该多个子网络可以同时进行训练,进而实现分布式深度神经网络的训练。其中,该分布式集群架构可以为MapReduce架构等分布式集群架构。
[0074] 具体来说,管理设备可以基于分布式集群架构及预设的调度方法,通过数据本地化减小网络延迟对分布式训练的子网络的影响,同步并行的子网络的训练进度,实现分布式深度神经网络的训练加速。其中,预设的调度方法可以理解为通过数据本地化来减小网络延迟对分布式训练的子网络的影响,同步并行的子网络的训练进度。
[0075] 数据本地化可以理解为任务执行在预设云资源节点,使得数据传输时间最短。也就是说,分布式集群架构中的云资源节点同时承担数据存储和任务运行的功能,数据存储的功能用于存储任务运行所需的数据,在本方案中,也就是用于存储子样本集或训练子网络所得到训练结果;任务运行的功能则用于运行任务,在本方案中,也就是用于训练子网络。那么数据本地化即指任务执行在存储该任务所需数据的数据存储节点,或者与该数据存储节点尽可能靠近的任务运行节点,以使得执行任务所需的数据不通过或者快速通过网络传输,最大可能地缩短数据传输所需时间。
[0076] 可以理解的是,在分布式集群架构中,图形处理器分布在云资源节点上,形成一种图形处理器云服务架构。因此,管理设备可以利用编程架构,基于分布式集群架构,利用云资源节点对多个子网络模块进行分布式训练。
[0077] 举例来说,假设训练样本集分为5个子样本集,那么在训练开始时,可以同时将该5个子样本集分别输入待训练的深度神经网络划分得到的输入层子网络,此时分布式集群架构中包括5个该子网络,该5个子网络并行训练。在后续的训练过程中,其他子网络依赖与其相关的子网络的训练结果,也可以进行并行训练。为了方案清楚及布局清晰,后续将会对基于分布式集群架构,利用多个子样本集对深度神经网络进行训练的分布式训练方式进行进一步举例介绍。
[0078] 作为本发明实施例的一种实施方式,上述分布式集群架构可以包括多个云资源节点,该多个云资源节点可以运行多个应用,每个应用可以包括多个任务,其中,任务用于根据输入的数据集训练子网络,该数据集可以为子样本集或训练前一阶段的子网络输出的阶段性训练结果。
[0079] 在一种实施方式中,如果上述分布式集群架构为MapReduce架构,那么上述多个任务可以为map任务及多个reduce任务,其中,map任务用于根据子样本集训练子网络,reduce任务用于汇总来自map任务输出的阶段性训练结果。
[0080] 在这种情况下,上述基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练的步骤,可以包括:
[0081] 根据公式 将所述多个任务调度至所述多个云资源节点,加速每个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
[0082] 其中,c为分布式深度神经网络当前训练所剩的完成时间,p为应用编号,A为应用的数量,ap为编号为p的应用的剩余运行时间和数据传输时间的总和。
[0083] 由于在深度神经网络训练过程中,快速的数据传输是缩短深度神经网络训练的关键,任何延迟的数据传输都会延长子网络的训练时间,同时网络参数的更新需要不同云资源节点上并行训练的结果,因此在这种情况下,并行训练的子网络的进度差异会影响更新待训练的深度神经网络参数的时间。
[0084] 如果将深度神经网络的训练过程称为分布式集群中的应用,那么为了完成深度神经网络的分布式训练,上述分布式集群架构可以包括三种完成并行训练的应用。第一种是分发应用,它将每个训练样本集划为多个小数据量样本集,即子样本集。第二种是训练应用,它完成一个或多个深度神经网络的训练。最后一种是更新程序,它根据所有的训练结果来更新当前的深度神经网络。可见,分布式深度神经网络的训练中的应用是并发且连续的。
[0085] 在一个应用中,可以包括多个任务,多个任务协作处理小数据量的子样本集,即根据子样本集训练深度神经网络,。
[0086] 假设有一个有多个云资源节点的分布式集群,用1,2,...,C为每个云资源节点编号。同时,编号为1,2,...,A的应用已准备好调度进该集群中运行。云资源节点的集合用NC表示,应用的集合用PA表示。编号为p的应用包括pt个任务。
[0087] 可以理解的,所有应用的剩余运行时间和数据传输时间的总和决定了深度神经网络的训练时间。因此,想要尽可能地缩短深度神经网络的训练时间,就需要找到所有应用的剩余运行时间和数据传输时间的总和的最小值。因此,管理设备可以根据公式将多个任务调度至多个云资源节点,以对多个子网络进行分布式训练,这样,便可以使深度神经网络的训练时间尽可能地得到缩短。
[0088] 而数据传输的时间是减少训练时间,加快分布式集群架构下的深度神经网络的并行训练速度的关键。而影响数据传输时间的主要因素有两个:数据量的大小和可用网络带宽。
[0089] 由于任务的数据传输时间由传输的数据量与链路带宽的比值确定,所以运行在编号为n的云资源节点上的编号为t的任务的数据传输时间可以通过下列公式(1)表示:
[0090]
[0091] 其中, 为编号为t的任务存储在编号为d的云资源节点上的数据量, 为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
[0092] 由于在分布式集群架构下,存储数据的云资源节点对于每个任务来说都是固定的,因此,数据的传输时间取决于存储数据的云资源节点和运行任务的云资源节点之间的可用带宽。显然,数据的传输时间的最小化即为选择具有最佳可用带宽的运行任务的云资源节点。
[0093] 下列公式(2)表示编号为t的任务的预计数据传输时间的最小值:
[0094]
[0095] 其中,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间。
[0096] 如果云资源计算节点当前为空闲状态,则其可以上开始运行任务,那么等待时间为0;如果云资源计算节点当前正处于繁忙状态,也就是正在运行任务,则等待时间为正在运行的任务中最快的一个任务的剩余运行时间。
[0097] 由于任务来自于不同的应用,而应用在深度神经网络的训练中是连续的。为了使应用不会造成后续应用的延迟启动,应用需要是同步并发的。当任务针对数据传输进行优化时,基于应用进度的剩余运行时间可以用公式(3)表示。
[0098]
[0099] 其中,fp为编号为p的应用的剩余运行时间,up为编号为p的应用的已运行时间,prp为编号为p的应用的运行进度。在这种实施方中,当任务还未开始运行时,应用的进度为0。对于已经开始运行任务的应用而言,其进度是可以获取的。
[0100] 进而,为了尽可能地缩短分布式深度神经网络的训练时间,管理设备需要最小化每个应用的剩余运行时间和数据传输时间的总和,每个应用的剩余运行时间和数据传输时间的总和可以通过公式(4)表示。
[0101]
[0102] 那么,分布式集群架构中每次加速分布式神经网络训练的目标即为最小化所有应用的剩余运行时间和数据传输时间的总和,也就是下列公式(5)。
[0103]
[0104] 因此,需要合理地调度任务至各云资源节点,从而最小化所有应用的剩余运行时间和数据传输时间的总和。
[0105] 作为本发明实施例的一种实施方式 ,如图2所示,上述根据公式将所述多个任务调度至所述多个云资源节点的步骤,可以包括:
[0106] S201,将对所述任务的调度映射为有向图模型;
[0107] 为了合理地调度多个任务,以达到上述公式(5)表示的目标,管理设备可以将对分布式集群架构中的多个任务的调度问题映射为有向图模型。其中,有向图模型即为包括节点以及节点之间有向边的模型。
[0108] S202,将对所述有向图模型转换为残差图;
[0109] S203,根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点。
[0110] 进而,为了实现训练时间最小化的目的,管理设备可以进一步将有向图模型转换为残差图。然后根据预设的调度方法及残差图,将多个任务调度至多个云资源节点,以实现最小化分布式深度神经网络模型的训练时间。
[0111] 作为本发明实施例的一种实施方式,上述将对所述多个任务的调度映射为有向图模型的步骤,可以包括:
[0112] 将对所述多个任务的调度映射为如下有向图模型:
[0113] 所述有向图模型包括源节点、应用节点、任务节点、计算节点和目的节点以及源节点指向应用节点的有向边、应用节点指向任务节点的有向边、任务节点指向计算节点的有向边、计算节点指向目的节点的有向边。
[0114] 在该有向图模型中,为了方便描述,源节点、应用节点、任务节点、计算节点和目的节点可以称为节点对象。其中,应用节点与分布式集群架构中的应用对应,任务节点与分布式集群架构中的任务对应,计算节点与分布式集群架构中的云资源节点对应。源节点及目的节点则用于限制任务调度的总数量。
[0115] 每个节点对象具有潜力值,如果潜力值为正值,表示该节点对象具有可分配任务,且可分配任务的数量为潜力值;如果潜力值为负值,表示该节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,且超出的任务的数量为潜力值的绝对值。
[0116] 在该有向图模型中,如果应用节点与任务节点之间具有有向边,那么该任务节点对应的任务属于该应用节点对应的应用;如果任务节点与计算节点之间具有有向边,那么该计算节点对应的云资源节点可以满足运行该任务节点对应的任务的要求。
[0117] 每一条有向边具有费用和容量两个属性值,其中,源节点指向应用节点的有向边的费用表示单位剩余运行时间,即为该应用的剩余运行时间除以容量。应用节点指向任务节点的有向边的费用为0,表示不区分所有任务。任务节点指向计算节点的有向边的费用表示运行在该计算节点对应的云资源节点上的该任务节点对应的任务所需的数据传输时间。计算节点指向目的节点的有向边的费用表示等待该计算节点对应的云资源节点的资源变为空闲的等待时间。各有向边的容量表示该有向边的源节点对象总的可调度的任务的数量。
[0118] 这样,在该有向图模型中,所有有向边的费用之和即为所有应用的剩余运行时间和数据传输时间的总和,因此,上述公式(5)可以转化为有向图模型中所有有向边的费用之和的最小化。
[0119] 那么管理设备则可以通过合理调度任务,在完成分布式深度神经网络的训练的同时,使有向图模型中所有有向边的费用之和的最小化。
[0120] 图3所示为一种有向图模型的示例,该有向图模型包括两个应用程序,分别为应用1和应用2,包括两个计算节点,分别为计算节点1和计算节点2。应用1具有两个任务需要调度,在图3中为任务节点1及任务节点2。应用2只有一个任务需要调度,即任务节点3。如果源节点指向应用1的有向边的容量为1,那么应用1将只能选择1个任务进行调度。对于图3所示的有向图模型,假设分布式集群具有足够的计算能力,那么源节点的潜力值即为3。
[0121] 图3中的容量(A,B)表示有A指向B的有向边的容量,费用(A,B)表示有A指向B的有向边的费用。其中,A、B分别表示各节点对象名称。
[0122] 针对上述将对多个任务的调度映射为上述有向图模型的情况而言,作为本发明实施例的一种实施方式,如图4所示,上述根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点的步骤,可以包括:
[0123] S401,确定当前是否存在未被调度任务,如果存在,执行步骤S402;如果不存在,结束;
[0124] 首先,管理设备可以确定当前是否存在未被调度任务,如果存在,说明深度神经网络的训练还未结束,那么为了完成深度神经网络的训练,管理设备则可以执行步骤S402。如果当前不存在未被调度任务,说明深度神经网络的训练已经完成,那么便可以结束操作。
[0125] 其中,管理设备可以确定当前是否存在未被调度任务的方式可以通过遍历残差图中的节点对象实现,当然也可以通过其他方式实现,只要可以确定当前是否存在未被调度任务即可,在此不做具体限定。
[0126] S402,遍历所述残差图中的节点对象,每遍历一个节点对象,判断该节点对象的潜力值是否为正值,如果为正值,执行步骤S403;如果为负值,执行步骤S406;
[0127] 在确定当前存在未被调度任务时,管理设备可以遍历残差图中的节点对象,每遍历一个节点对象,管理设备可以判断该节点对象的潜力值是否为正值,如果为正值,说明该节点对象具有可分配任务,那么便可以继续执行步骤S403。
[0128] 如果该节点对象的潜力值为负值,说明该节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,那么便可以继续执行步骤S406。
[0129] S403,将该节点对象存储至预设集合中,并计算所述预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量,分别作为第一数量和第二数量;
[0130] 在确定该节点对象的潜力值为正值时,管理设备可以将其存储至预设集合中,并计算当前未调度任务的总数量以及以最小费用可分配的任务的数量,由于各有向边的费用是可以获取的,所以管理设备可以确定预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量。为了方便描述,本文中将当前未调度任务的总数量作为第一数量,将以最小费用可分配的任务的数量作为第二数量。
[0131] 管理设备计算预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量后,可以继续执行步骤S404。
[0132] S404,判断所述第一数量是否大于所述第二数量,如果大于,执行步骤S405;如果小于,返回步骤S402;
[0133] 管理设备可以判断第一数量是否大于第二数量,如果第一数量是否大于第二数量,说明预设集合中当前未调度任务的总数量大于以最小费用可分配的任务的数量,那么为了尽可能以最小费用分配任务,管理设备可以执行步骤S405。
[0134] 如果第一数量不大于第二数量,说明当前未调度任务的总数量不大于以最小费用可分配的任务的数量,为了不浪费节点对象的资源,那么便可以返回步骤S402,继续遍历残差图中的节点对象,以确定其潜力值是否为正值。
[0135] S405,沿着具有最小费用的有向边,将所述第二数量的未调度任务分配到对应的节点对象,执行步骤S407;
[0136] 当前未调度任务的总数量大于以最小费用可分配的任务的数量,那么管理设备便可以沿着具有最小费用的有向边,将第二数量的未调度任务分配到对应的节点对象。这样可以充分利用该节点对象的资源,以最小费用运行任务,缩短运行任务所需时间,也就可以缩短深度神经网络的训练时间。
[0137] S406,将该节点对象作为目的节点对象,将所述预设集合中第一个节点对象作为源节点对象,确定所述源节点对象与所述目的节点对象之间的一条最小费用路径,将预设数量的未调度任务分配给该负潜力值的节点对象;
[0138] 如果该节点对象的潜力值是否为负值,管理设备可以将该节点对象作为目的节点对象,将上述预设集合中第一个节点对象作为源节点对象,进而确定该源节点对象与该目的节点对象之间的一条最小费用路径,然后将预设数量的未调度任务分配给该负潜力值的节点对象。
[0139] 其中,上述预设数量为该路径包括的有向边的容量的最小值。可以理解的是,为节点对象分配的未调度任务的数量不能超过路径包括的每条有向边的容量,否则该未调度任务是无法正常运行的。
[0140] 例如,管理设备确定该源节点对象与该目的节点对象之间的一条最小费用路径包括3条有向边,其容量分别为4、5、6,那么管理设备则可以将4个未调度任务分配给该负潜力值的节点对象。
[0141] S407,对所述残差图的参数进行更新,并返回所述步骤S401。
[0142] 在进行了任务分配后,及执行步骤S405或步骤S406后,当前未被调度任务以及节点对象的潜力值、有向边的容量等参数均会发生变化,因此,管理设备可以根据实际任务调度情况,对残差图的参数进行更新,得到参数已更新的残差图,进而返回上述步骤S401,以循环执行后续步骤,直到确定当前不存在未被调度任务,便完成深度神经网络的训练。
[0143] 在上述任务调度方式中,由于均是采用最小费用路径调度任务,最小化有向边的费用之和,因此尽可能地缩短了数据传输时间,也就达到了最小化深度神经网络训练时间的目的。
[0144] 相应于上述分布式深度神经网络的训练方法,本发明实施例还提供了一种加速分布式深度神经网络的训练装置。
[0145] 下面对本发明实施例所提供的一种加速分布式深度神经网络的训练装置进行介绍。
[0146] 如图5所示,一种加速分布式深度神经网络的训练装置,所述装置包括:
[0147] 第一划分模块510,用于将待训练的深度神经网络划分为多个子网络;
[0148] 第二划分模块520,用于将预先获取的训练样本集划分为多个子样本集;
[0149] 网络训练模块530,用于基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。
[0150] 可见,本发明实施例所提供的方案中,管理设备可以通过编程架构可以将待训练的深度神经网络划分为多个子网络,并将预先获取的训练样本集划分为多个子样本集,进而,利用多个子样本集对待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。由于基于分布式集群架构及预设的调度方法,管理设备可以优化利用多个子样本集对多个子网络的进行同步训练,实时调整训练策略,同步并行训练的子网络,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,进而可以缩短分布式深度神经网络的完成训练的时间,提高深度神经网络的训练效率。
[0151] 作为本发明实施例的一种实施方式,上述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述的数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
[0152] 上述网络训练模块530可以包括:
[0153] 网络训练子模块(图5中未示出),用于根据公式 将所述多个任务调度至所述多个云资源节点,加速每个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
[0154] 其中,c为所述深度神经网络分布式训练完成时间,p为应用编号,A为应用的数量,ap为通过时间计算模块(图5中未示出)得到的编号为p的应用的剩余运行时间和数据传输时间的总和。
[0155] 作为本发明实施例的一种实施方式,上述时间计算模块可以包括:
[0156] 时间计算子模块(图5中未示出),用于根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
[0157]
[0158]
[0159] 其中,NC为云资源节点的集合,fp为编号为p的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间,prp为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间; 为编号为t的任务存储在编号为d的云资源节点上的数据量;为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
[0160] 作为本发明实施例的一种实施方式,上述网络训练子模块可以包括:
[0161] 模型映射单元(图5中未示出),用于将对所述多个任务的调度映射为有向图模型;
[0162] 模型转换单元(图5中未示出),用于将所述有向图模型转换为残差图;
[0163] 任务调度单元(图5中未示出),用于根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点。
[0164] 作为本发明实施例的一种实施方式,上述模型映射单元可以包括:
[0165] 模型映射子单元(图5中未示出),用于将对所述多个任务的调度映射为如下有向图模型:
[0166] 所述有向图模型包括源节点、应用节点、任务节点、计算节点和目的节点以及源节点指向应用节点的有向边、应用节点指向任务节点的有向边、任务节点指向计算节点的有向边、计算节点指向目的节点的有向边;
[0167] 其中,每个节点对象具有潜力值,所述节点对象包括所述源节点、所述应用节点、所述任务节点、所述计算节点和所述目的节点;潜力值为正值,表示节点对象具有可分配任务,且可分配任务的数量为潜力值;潜力值为负值,表示节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,且超出的任务的数量为潜力值的绝对值;每一条有向边具有费用和容量两个属性值,所述源节点指向所述应用节点的有向边的费用表示单位剩余运行时间;所述应用节点指向所述任务节点的有向边的费用为0;所述任务节点指向所述计算节点的有向边的费用表示运行在该计算节点对应的云资源节点上的该任务节点对应的任务所需的数据传输时间;所述计算节点指向所述目的节点的有向边的费用表示等待该计算节点对应的云资源节点的资源变为空闲的等待时间;所述有向边的容量表示该有向边的源节点对象总的可调度的任务数量。
[0168] 作为本发明实施例的一种实施方式,上述任务调度单元可以包括:
[0169] 第一判断子单元(图5中未示出),用于确定当前是否存在未被调度任务,如果存在,触发遍历子单元;如果不存在,结束;
[0170] 遍历子单元(图5中未示出),用于遍历所述残差图中的节点对象,每遍历一个节点对象,判断该节点对象的潜力值是否为正值,如果为正值,触发计算子单元;如果为负值,触发第二调度子单元;
[0171] 计算子单元(图5中未示出),用于将该节点对象存储至预设集合中,并计算所述预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量,分别作为第一数量和第二数量;
[0172] 第二判断子单元(图5中未示出),用于判断所述第一数量是否大于所述第二数量,如果大于,触发第一调度子单元;如果小于,触发遍历子单元;
[0173] 第一调度子单元(图5中未示出),用于沿着具有最小费用的有向边,将所述第二数量的未调度任务分配到对应的节点对象,触发更新子单元;
[0174] 第二调度子单元(图5中未示出),用于将该节点对象作为目的节点对象,将所述预设集合中第一个节点对象作为源节点对象,确定所述源节点对象与所述目的节点对象之间的一条最小费用路径,将预设数量的未调度任务分配给该负潜力值的节点对象;其中,所述预设数量为该路径包括的有向边的容量的最小值。
[0175] 更新子单元(图5中未示出),用于对所述残差图的参数进行更新,并触发第一判断子单元。
[0176] 本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0177] 将待训练的深度神经网络划分为多个子网络;
[0178] 将预先获取的训练样本集划分为多个子样本集;
[0179] 基于分布式集群架构及预设的调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,所述多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,所述数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。
[0180] 可见,本发明实施例所提供的方案中,计算机程序被处理器执行时,可以将待训练的深度神经网络划分为多个子网络,并将预先获取的训练样本集划分为多个子样本集,进而,基于分布式集群架构及预设调度方法,利用多个子样本集对待训练的深度神经网络进行分布式训练,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,其中,多个子网络同时进行训练,并行的子网络之间同步训练进度,实现分布式深度神经网络的加速训练,数据本地化是指任务执行在预设云资源节点,使得数据传输时间最短。由于基于分布式集群架构及预设的调度方法可以优化多个子网络的训练,实时调整训练策略,同步并行训练的子网络,每个子网络的训练加速通过数据本地化减小网络延迟的影响实现,进而可以缩短分布式深度神经网络的完成训练的时间,提高深度神经网络的训练效率。
[0181] 其中,上述分布式集群架构包括多个云资源节点,所述多个云资源节点运行多个应用,每个应用包括多个任务,其中,所述任务用于根据输入的数据集训练子网络,所述数据集为子样本集或训练前一阶段的子网络输出的阶段性训练结果;
[0182] 上述基于分布式集群架构及预设调度方法,利用所述多个子样本集对所述待训练的深度神经网络进行分布式训练的步骤,可以包括:
[0183] 根据公式 将所述多个任务调度至所述多个云资源节点,加速每个子网络的训练,对所述多个子网络的训练进度进行同步,以加速整个待训练的深度神经网络的分布式训练;
[0184] 其中,c为所述分布式深度神经网络当前训练所剩的完成时间,p为应用编号,A为应用的数量,ap为编号为p的应用的剩余运行时间和数据传输时间的总和。
[0185] 其中,上述编号为p的应用的剩余运行时间和数据传输时间的总和的计算方式,可以包括:
[0186] 根据如下公式计算所述编号为p的应用的剩余运行时间和数据传输时间的总和:
[0187]
[0188]
[0189] 其中,NC为云资源节点的集合,fp为编号为p的应用的剩余运行时间,t表示任务的编号,pt为编号为p的应用包含的任务的数量,up为编号为p的应用的已运行时间,prp为编号为p的应用的运行进度,mt为编号为t的任务的预计最小数据传输时间,wn为等待编号为n的云资源节点的资源变为空闲的等待时间, 为运行在编号为n的云资源节点上的编号为t的任务的数据传输时间, 为编号为t的任务存储在编号为d的云资源节点上的数据量,为编号为n的云资源节点与编号为d的云资源节点之间的链路带宽。
[0190] 其中,上述根据公式 将所述多个任务调度至所述多个云资源节点的步骤,可以包括:
[0191] 将对所述多个任务的调度映射为有向图模型;
[0192] 将所述有向图模型转换为残差图;
[0193] 根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点。
[0194] 其中,上述将对所述多个任务的调度映射为有向图模型的步骤,可以包括:
[0195] 将对所述多个任务的调度映射为如下有向图模型:
[0196] 所述有向图模型包括源节点、应用节点、任务节点、计算节点和目的节点以及源节点指向应用节点的有向边、应用节点指向任务节点的有向边、任务节点指向计算节点的有向边、计算节点指向目的节点的有向边;
[0197] 其中,每个节点对象具有潜力值,所述节点对象包括所述源节点、所述应用节点、所述任务节点、所述计算节点和所述目的节点;潜力值为正值,表示节点对象具有可分配任务,且可分配任务的数量为潜力值;潜力值为负值,表示节点对象的已分配任务的数量超出该节点对象具有的可分配任务的数量,且超出的任务的数量为潜力值的绝对值;每一条有向边具有费用和容量两个属性值,所述源节点指向所述应用节点的有向边的费用表示单位剩余运行时间;所述应用节点指向所述任务节点的有向边的费用为0;所述任务节点指向所述计算节点的有向边的费用表示运行在该计算节点对应的云资源节点上的该任务节点对应的任务所需的数据传输时间;所述计算节点指向所述目的节点的有向边的费用表示等待该计算节点对应的云资源节点的资源变为空闲的等待时间;所述有向边的容量表示该有向边的源节点对象总的可调度的任务数量。
[0198] 其中,上述根据所述预设的调度方法及所述残差图,将所述多个任务调度至所述多个云资源节点的步骤,可以包括:
[0199] S401,确定当前是否存在未被调度任务,如果存在,执行步骤S402;如果不存在,结束;
[0200] S402,遍历所述残差图中的节点对象,每遍历一个节点对象,判断该节点对象的潜力值是否为正值,如果为正值,执行步骤S403;如果为负值,执行步骤S406;
[0201] S403,将该节点对象存储至预设集合中,并计算所述预设集合中当前未调度任务的总数量以及以最小费用可分配的任务的数量,分别作为第一数量和第二数量;
[0202] S404,判断所述第一数量是否大于所述第二数量,如果大于,执行步骤S405;如果小于,返回步骤S402;
[0203] S405,沿着具有最小费用的有向边,将所述第二数量的未调度任务分配到对应的节点对象,执行步骤S407;
[0204] S406,将该节点对象作为目的节点对象,将所述预设集合中第一个节点对象作为源节点对象,确定所述源节点对象与所述目的节点对象之间的一条最小费用路径,将预设数量的未调度任务分配给该负潜力值的节点对象;其中,所述预设数量为该路径包括的有向边的容量的最小值。
[0205] S407,对所述残差图的参数进行更新,并返回所述步骤S401。
[0206] 需要说明的是,对于上述装置及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0207] 进一步需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0208] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0209] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
相关专利内容
标题 发布/更新时间 阅读量
一种电子加速器内部冷却装置 2020-05-13 850
电子加速器 2020-05-11 356
一种电子加速器 2020-05-11 292
粒子加速器 2020-05-11 753
一种加速器控制系统 2020-05-12 464
高电压加速管 2020-05-11 320
粒子加速器 2020-05-11 417
一种加速器的束斑自动矫正器及加速器 2020-05-12 244
电子加速器 2020-05-11 970
一种离子加速器 2020-05-12 637
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈