一种基于多生成树的全局归约方法技术

技术编号:39494001 阅读:7 留言:0更新日期:2023-11-24 11:19
本发明专利技术公开了一种基于多生成树的全局归约方法,具体为:根据当前网络中的剩余带宽,在给定的生成树最大高度

【技术实现步骤摘要】
一种基于多生成树的全局归约方法


[0001]本专利技术属于异构网络通信技术,尤其涉及一种基于多生成树的全局归约方法


技术介绍

[0002]近年来,机器学习在图像识别

语音处理

机器翻译等多个领域取得快速的发展和广泛的应用

由于训练数据的庞大或者出于隐私数据本地存储的要求,一个机器学习任务可能采用数据并行的设计,将训练任务分配到处于不同地域数据中心里的多个工作节点上执行

这些工作节点往往通过异构的网络链路互联,形成一个可能具有任意拓扑结构的网络系统

在训练过程中,为了保证全局模型的收敛,节点之间需要周期性的对各自获得的训练结果
(
如梯度
)
进行全局归约
(AllReduce)
同步

充分利用节点之间异构的网络带宽高效地实现全局归约,对充分利用稀缺的网络带宽资源减少通信耗时,提升分布式机器学习训练的效率非常有用

[0003]根据通信模式的不同,全局归约有包括基于环

基于树等多种实现方案

其中,基于树的方案有很好的通用性,应用广泛

如果将所有工作节点及其之间的链路抽象为一个无向图,在树形全局归约方案中,所有工作节点形成一棵生成树
(
称其为“AllReduce
树”)
,一组进行全局归约操作的数据首先从叶子开始沿着树向根节点传输并组跳“归约”,最终树根节点获得全局归约后的结果后再沿着树逐跳“广播”给所有节点

通过将所要进行全局归约的数据拆分为更小单元的消息并流水线式地进行逐跳归约和广播,通信的效率能够得到提升

基于树形结构的全局归约包含归约和广播两个阶段,分别如图
1、
图2所示

[0004]对于具有任意拓扑结构的异构网络,如果只使用一棵生成树来进行全局归约往往并不能充分利用网络中的所有链路和带宽,一种改进的做法是构造多棵生成树,并发地对不同的数据进行全局归约,从而充分利用网络资源提高全局归约的效率

虽然近期已有一些方案沿着这一思路进行了设计,但是这些方案在生成树的构造上存在不足,在面对具有任意拓扑结构的异构网络场景时效果不佳,存在延迟过高,带宽利用率不佳等一系列问题


技术实现思路

[0005]针对上述问题,本专利技术提供了一种基于多生成树的全局归约方法

[0006]本专利技术的一种基于多生成树的全局归约方法,具体为:
[0007]步骤1:根据当前网络中的剩余带宽,构造一棵高度不大于
H
,可用带宽不少于
r
的生成树,如果成功找到,记录该树的结构,为该树分配一定的带宽
b
,并更新图中各条边的剩余带宽,然后继续尝试寻找下一棵生成树,不断重复进行直到无法找到新的满足要求的生成树则结束

[0008]每次寻找生成树时,从一个随机选择的结点开始,不断选择一条合适的边,对树进行扩展,直到所有节点都被包含,每次被选中的边需要同时满足以下条件:
[0009](1)
边的一端连着已被生成树包含的节点,另一端连着还未包含的节点,并且可用剩余带宽不低于
r。
[0010](2)
添加该边过后,生成树中任意节点之间的最大距离不超过
2H。
[0011]如果有多条边满足条件
(1)、(2)
,优先选择剩余带宽最大的边,如果多条带宽相同的边都满足,随机选择一条即可;如果还未包含所有节点就找不到满足要求的边来对树进行扩展,则表明本次树的构造失败,结束算法

[0012]步骤2:通过反复调用步骤1算法,在整体吞吐率的降低量在允许范围内的前提下,以二分搜索的方式进一步减少生成树的实际最大高度

[0013]步骤3:得到生成树的列表
TL
和相应的速率分配
RL
后,从中选出不超过
K
棵树,并确定各棵树的速率分配,以此按比例进行全局归约任务的分配,从而实现并发的全局归约

[0014]进一步的,步骤1生成树的构造过程如下:
[0015]输入:网络拓扑
G
,生成树的最大高度约束
H
,通信速率下限约束
r。
[0016]输出:构造的生成树列表
TL
,其中每一棵树的根节点给定;以及对应的速率分配
RL。
[0017]变量说明:
G
是无向带权图,
V(G)

E(G)
分别代表图中包含的所有节点集合,以及边集合,其中,每条边具有延迟和带宽两类属性,均是经过量化后的值

[0018]S1、
使用列表
TL
记录所有已构造的生成树,初始化为空;使用列表
RL
记录所有已构造的生成树的速率,初始化为空

[0019]S2、
使用
T
记录当前正在构造的生成树,初始化为空;使用
V(T)

E(T)
分别表示其中包含的节点和边集合

[0020]S3、

V(G)
中随机取出1个节点加入树
T
中,以开始生成树的构造

[0021]S4、

E(G)
中找到所有带宽大于
r
,两个端点分别属于
V(T)
以及不属于
V(T)
的所有边,以此形成边的列表
EC。
[0022]S5、

ei
记录本次将使用哪条边来扩展生成树,初始化为无效值;使用
di
记录如果将边
ei
和对应节点加入
T
中后,该树中任意两节点之间距离的最大值,初始化为
2H。
[0023]S6、
如果
EC
为空,说明本次边的扩展结束,执行
S11
;否者执行下一步

[0024]S7、

EC
中弹出当前带宽最大的边
ej

(u,v)
,如果有多条边带宽相同,优先弹出编号更小的,其中
u
属于集合
V(T)

v
不属于
V(T)。
[0025]S8、
如果
ei
不为无效值,并且
ei
所对应边的带宽大于
ej
所对应边的带宽,执行
S11
;否者执行下一步

[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于多生成树的全局归约方法,其特征在于,具体为:步骤1:根据当前网络中的剩余带宽,构造一棵高度不大于
H
,可用带宽不少于
r
的生成树,如果成功找到,记录该树的结构,为该树分配一定的带宽
b
,并更新图中各条边的剩余带宽,然后继续尝试寻找下一棵生成树,不断重复进行直到无法找到新的满足要求的生成树则结束;每次寻找生成树时,从一个随机选择的结点开始,不断选择一条合适的边,对树进行扩展,直到所有节点都被包含,每次被选中的边需要同时满足以下条件:
(1)
边的一端连着已被生成树包含的节点,另一端连着还未包含的节点,并且可用剩余带宽不低于
r

(2)
添加该边过后,生成树中任意节点之间的最大距离不超过
2H
;如果有多条边满足条件
(1)、(2)
,优先选择剩余带宽最大的边,如果多条带宽相同的边都满足,随机选择一条即可;如果还未包含所有节点就找不到满足要求的边来对树进行扩展,则表明本次树的构造失败,结束算法;步骤2:通过反复调用步骤1算法,在整体吞吐率的降低量在允许范围内的前提下,以二分搜索的方式进一步减少生成树的实际最大高度;步骤3:得到生成树的列表
TL
和相应的速率分配
RL
后,从中选出不超过
K
棵树,并确定各棵树的速率分配,以此按比例进行全局归约任务的分配,从而实现并发的全局归约
。2.
根据权利要求1所述的一种基于多生成树的全局归约方法,其特征在于,所述步骤1生成树的构造过程如下:输入:网络拓扑
G
,生成树的最大高度约束
H
,通信速率下限约束
r
;输出:构造的生成树列表
TL
,其中每一棵树的根节点给定;以及对应的速率分配
RL
;变量说明:
G
是无向带权图,
V(G)

E(G)
分别代表图中包含的所有节点集合,以及边集合,其中,每条边具有延迟和带宽两类属性,均是经过量化后的值;延迟属性用于计算节点之间的距离,以及计算生成树的高度;
S1、
使用列表
TL
记录所有已构造的生成树,初始化为空;使用列表
RL
记录所有已构造生成树的速率,初始化为空;
S2、
使用
T
记录当前正在构造的生成树,初始化为空;使用
V(T)

E(T)
分别表示其中包含的节点和边集合;
S3、

V(G)
中随机取出1个节点加入树
T
中,以开始生成树的构造;
S4、

E(G)
中找到所有带宽大于
r
,两个端点分别属于
V(T)
以及不属于
V(T)
的所有边,以此形成边的列表
EC

S5、

ei
记录本次将使用哪条边来扩展生成树,初始化为无效值;使用
di
记录如果将边
ei
和对应节点加入
T
中后,该树中任意两节点之间距离的最大值,初始化为
2H

S6、
如果
EC
为空,说明本次边的扩展结束,执行
S11
;否者执行下一步;
S7、

EC
中弹出当前带宽最大的边
ej

(u,v)
,如果有多条边带宽相同,优先弹出编号更小的,其中
u
属于集合
V(T)

v
不属于
V(T)

S8、
如果
ei
不为无效值,并且
ei
所对应边的带宽大于
ej
所对应边的带宽,执行
S11
;否者执行下一步;
S9、
计算若将节点
v
和边
ej
加入生成树
T
中后,该生成树中任意两个节点之间的距离,并
统计出其最大值,假设为
dj

S10、

d...

【专利技术属性】
技术研发人员:罗寿西王仁毅邢焕来
申请(专利权)人:西南交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1