System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 面向网内梯度聚合系统的慢节点调度方法、装置制造方法及图纸_技高网

面向网内梯度聚合系统的慢节点调度方法、装置制造方法及图纸

技术编号:40240149 阅读:9 留言:0更新日期:2024-02-02 22:38
本发明专利技术提出一种面向网内梯度聚合系统的慢节点调度方法及装置,方法包含:通过收集每一工作节点的第一块完成时间;将所述第一块完成时间作为输入,对工作节点的状态进行建模;基于建模结果,得到系统在最快的K个工作节点下的预期训练完成时间;确定满足预期训练完成时间最小的最优K值,生成调度模型,以依据所述调度模型对工作节点进行调度。该方法可以自动跟踪系统内慢节点的变化,减少工作节点的空闲时间。

【技术实现步骤摘要】

本专利技术涉及分布式系统,尤其涉及一种面向网内梯度聚合系统的慢节点调度方法、装置


技术介绍

1、分布式机器学习在图像识别、自然语言处理等多个领域得到了广泛应用。分布式机器学习集群的服务器间需要进行频繁且大量的梯度传输,产生很大的通信开销,影响分布式训练的性能。目前,商用的可编程交换机(如tofino交换机)具备了一定的计算和存储能力,因而研究人员希望将部分分布系数服务器的功能卸载到可编程交换机上,利用可编程交换机高性能的处理器芯片,提前对梯度聚合,减轻分布系数服务器相关的负载。为叙述简便,将用可编程交换机加速分布式机器学习训练的系统称为网内梯度聚合系统。

2、如图1所示,网内梯度聚合系统的每轮迭代时,工作节点将本地训练出来的梯度(称为局部梯度)划分为多个等大的梯度块,然后逐个传输到可编程交换机;只有当系统完成一个梯度块的聚合结果后,工作节点才会开始传输下一个梯度块。也就是说,工作节点传输梯度块的进程是严格同步的。

3、然而,在实际应用中,会存在一些训练节点可能比其他节点训练速度慢,这些节点被称为“慢节点”。慢节点可能由性能差的硬件或繁重的工作负载引起。现有的网内梯度聚合系统采用严格的同步的训练方式,训练速度快的工作节点必须等待训练速度慢的工作节点,因而在网内梯度聚合系统内存在慢节点时会出现训练速度下降的问题。如图2所示,假设局部梯度被分成3个梯度块,在一个由3个工作节点构成的分布式机器学习系统的单轮迭代中,网内梯度聚合系统总共要完成3次聚合。在3次聚合中,先完成梯度块传输的快节点要等待慢节点,从而在图中产生大量的空白,这意味着快节点的计算能力被浪费了,网内梯度聚合系统的训练进度被慢节点拖累了。

4、在分布式机器学习系统中,解决慢节点问题的一个经典方案是k-块同步方法,该方法在训练开始时,由用户选定一个整数这种方法在传输块时,可编程交换机仅需从最快的k个工作节点收集数据,不再等待其余n-k个较慢的工作节点的数据。图3展示了图2对应例子采用k-块同步方法后的情况(k取2),该方法可以有效缩短快节点的等待时间。

5、当后台任务的资源占用发生变化时,机器学习任务能够获得的资源也会随之变化。因此,原来的慢节点可能因为后台任务占用的资源减少而变成快节点;原来的快节点可能因为后台任务占用的资源增多而变成慢节点。此外,同一后台任务在不同时间段的资源占用情况的变化也可能会导致慢节点的变化。由于大型模型通常需要数小时甚至数天的训练时间,因此慢节点的变化是不可避免的。由于k-块同步方法在分布式训练开始前选定一个k值,且这个k值在整个训练过程中不变,因而它无法跟踪慢节点的变化并做出适当的调整。例如,如图4所示,使用k-块同步方法调度一个由4个工作节点组成的网内梯度聚合系统(k取3),假设局部梯度被分成3个梯度块。在某轮迭代的前两个梯度块的传输中,由于系统中恰好有3个快节点和1个慢节点,所以k-块同步方法的效果很好;但在第3个梯度块的传输中,由于第3个工作节点由快节点变为慢节点,导致网内梯度聚合系统被慢节点拖慢。


技术实现思路

1、针对上述的问题,本专利技术提出一种面向网内梯度聚合系统的慢节点调度方法,其可以自动跟踪系统内慢节点的变化,减少工作节点的空闲时间。

2、为了实现上述目的,本专利技术一方面提供一种面向网内梯度聚合系统的慢节点调度方法,包含:

3、收集每一工作节点的第一块完成时间,所述第一块完成时间为工作节点实际完成单个梯度块传输的时间、或预期完成单个梯度块传输需要的时间;

4、将所述第一块完成时间作为输入,对工作节点的状态进行建模;

5、基于建模结果,得到系统在最快的k个工作节点下的预期训练完成时间;

6、确定满足预期训练完成时间最小的最优k值,生成调度模型;

7、依据所述调度模型对工作节点进行调度。

8、在一些实施例中,采用泊松分布对工作节点的状态进行建模,包含:

9、统计每一梯度块中,每个工作节点的阻塞时间,确定每一工作节点的平均阻塞时间;

10、利用每一工作节点的平均阻塞时间,构建服从第一分布系数λ的泊松分布,第一分布系数

11、其中,表示第j个梯度块中第i个工作节点的阻塞时间,第i个工作节点在时间t内的平均阻塞时间表示为e[yi(t)]表示期望值,n为梯度块数量。

12、在一些实施例中,依据最快的k个工作节点的第一块完成时间小于或等于一预设的块完成时间阈值t的概率,计算出完成一轮梯度块传输所需的预期训练完成时间为:

13、

14、其中,ek[t]为预期训练完成时间,s表示最小块完成时间,为不发生阻塞事件时完成单个梯度块传输需要的时间;每一工作节点的第一块完成时间为阻塞时间和最小块完成时间的和;t为一预设的块完成时间阈值,k满足n为工作节点总数。

15、在一些实施例中,当n个工作节点具有不同后台任务时,不同工作节点对应的第一分布系数不同,得到最优k值的方法为:

16、当工作节点的数量未超过预设节点数量阈值时,遍历所有工作节点的第一分布系数,获得最优k值为:λ∈{λ1,λ2,…,λn},n个工作节点的第一分布系数分别表示为λ1,λ2,…,λn。

17、在一些实施例中,当工作节点的数量超过预设节点数量阈值,按照每个工作节点对应的第一分布系数的大小进行排序并均匀划分为多组;

18、对于分到同一组内的工作节点,计算该组所有工作节点的第一分布系数的均值,作为该组的第一分布系数;

19、依据每组的第一分布系数,确定最优k值为:其中m个分组对应的第一分布系数分别表示为

20、在一些实施例中,将训练速度最慢的n-k个工作节点的数据进行存储;

21、当下一个迭代的传输开始时,将存储的数据与下一个迭代的同一数据块的数据加和。

22、本专利技术另一方面还提供了一种面向网内梯度聚合系统的慢节点调度装置,至少包含:

23、一训练平面、以及一控制平面,所述训练平面用于执行模型训练任务,包含多个工作节点和至少一交换机数据平面,所述控制平面负责部署可变k块同步方法,包含测量模块、建模模块和执行模块;

24、所述测量模块用于收集每一工作节点的第一块完成时间,所述第一块完成时间为工作节点实际完成单个梯度块传输的时间、或预期完成单个梯度块传输需要的时间;

25、所述建模模块用于将所述第一块完成时间作为输入,对工作节点的状态进行建模,计算出第一分布系数并传递给执行模块;

26、所述执行模块用于根据第一分布系数计算出在最快的k个工作节点下的预期训练完成时间;

27、以及

28、确定满足预期训练完成时间最小的最优k值,生成调度模型并发送至所述训练平面,以依据所述调度模型对工作节点进行调度。

29、在一些实施例中,所述控制平面分别通过grpc连接和p4runtimeapi将最优k值通信给所述工作节点和本文档来自技高网...

【技术保护点】

1.一种面向网内梯度聚合系统的慢节点调度方法,其特征在于,包含:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求2所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求1所述的方法,其特征在于,

7.一种面向网内梯度聚合系统的慢节点调度装置,其特征在于,至少包含:

8.根据权利要求7所述的装置,其特征在于,

9.根据权利要求7所述的装置,其特征在于,

10.根据权利要求7所述的装置,其特征在于,

【技术特征摘要】

1.一种面向网内梯度聚合系统的慢节点调度方法,其特征在于,包含:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求2所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求4所述的方法,其特征在于,

<...

【专利技术属性】
技术研发人员:李振宇崔鹏来
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1