CN112579301B - 一种基于ndn的p2p分布式机器学习训练系统数据传输方法 - Google Patents

一种基于ndn的p2p分布式机器学习训练系统数据传输方法 Download PDF

Info

Publication number
CN112579301B
CN112579301B CN202011581614.5A CN202011581614A CN112579301B CN 112579301 B CN112579301 B CN 112579301B CN 202011581614 A CN202011581614 A CN 202011581614A CN 112579301 B CN112579301 B CN 112579301B
Authority
CN
China
Prior art keywords
gpu
name
training
distribution
names
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
Application number
CN202011581614.5A
Other languages
English (en)
Other versions
CN112579301A (zh
Inventor
于珊平
欧阳巧琳
胡晗
安建平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202011581614.5A priority Critical patent/CN112579301B/zh
Publication of CN112579301A publication Critical patent/CN112579301A/zh
Application granted granted Critical
Publication of CN112579301B publication Critical patent/CN112579301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于NDN的P2P分布式机器学习训练系统数据传输方法,属于分布式机器学习领域。本发明方法,将NDN中基于PIT的请求聚合机制、基于CS的网内缓存机制以及“一对多”的内容分发机制应用于P2P架构下的分布式机器学习中,在同步训练与异步训练中,能够满足减小传输冗余数据的需求。本发明方法减小了分布式机器学习训练系统中的传输冗余,从而减小了传输时延,提高了网络传输效率。同时,可以支持异步机器学习。在传输失败进行重传时,可以通过网内缓存实现就近获取,减少了对服务器端链路的占用,降低了传输延迟。

Description

一种基于NDN的P2P分布式机器学习训练系统数据传输方法
技术领域
本发明涉及一种分布式机器学习训练系统中的数据传输方法,尤其涉及一种基于NDN(Named Data Networking,命名数据网络)的P2P(Peer to Peer,对等网络)分布式机器学习训练数据传输方法,属于分布式机器学习领域。
背景技术
分布式机器学习训练系统,利用多个图形处理器(Graphics Processing Unit,GPU)进行模型并行训练,从而加速模型训练的速度。机器学习训练的目标是尽可能让模型预测出的结果与实际的结果接近。在进行训练时,预测结果与实际结果的差距通过以模型参数为自变量的损失函数表示。
在分布式机器学习训练系统中,训练样本被分为多份,每一份样本由训练系统中的一个GPU所持有,训练会进行多轮直至训练出的模型的总体损失小于一定值。每一轮训练包含三个步骤:首先,训练系统中的每一个GPU使用其持有的样本中的部分样本完成一次训练,获得该轮对应的参数梯度;然后,GPU之间交换各自计算所得的参数梯度,并对训练模型进行更新;最后,GPU使用更新后的模型进行下一轮训练。分布式机器学习训练包括同步训练和异步训练两种:在同步训练中,每个GPU收到该轮所有GPU计算的参数梯度后再进行模型更新与下一轮计算;在异步训练中,每个GPU完成一轮训练后立即利用该轮训练开始时收到的参数梯度进行模型更新,并进行下一轮计算。上述分布式训练过程中需要进行训练参数梯度的数据交互。
目前,在采用P2P(Peer to Peer,对等网络)架构进行数据交互的分布式机器学习训练系统中,若每个GPU与其它所有GPU分别建立连接来参数梯度,则每个同样内容的参数梯度需要重复传输N-1次(N为GPU的个数)以传送给其余所有GPU,这种重复的数据传输过程存在大量冗余。为了减小参数梯度的重复传输,目前常用的参数梯度的传输方法为环形全局规约法(RingAllReduce),该方法下所有GPU计算完成后,在GPU间环形传输分块化的参数梯度从而将最新的参数梯度传递给所有GPU。该方法大幅减少了传输冗余,参数梯度的传输次数和GPU的数量呈线性关系。但是,目前的环形全局规约方法存在着在所有GPU计算完成后才能进行参数梯度传递的限制,即其只能在同步训练系统中使用。
发明内容
本发明的目的是为了解决在P2P架构下的分布式机器学习训练系统存在的参数梯度冗余传输的技术问题,创造性地提出一种基于NDN的P2P分布式机器学习训练系统数据传输方法。
本发明的创新点在于:
利用NDN的流量聚合特性,在减少每轮参数梯度冗余传输次数的同时满足同步训练与异步训练的传输需求。NDN通过两种包结构与三种表结构实现数据传输、请求聚合与网内缓存。其中,两种包结构分别为兴趣包与数据包,三种表结构分别为转发信息表(Forwarding Information Base,FIB)、待定请求表(Pending Interest Table,PIT)和内容存储表(Content Store,CS)。NDN通过用户终端发送兴趣包驱动内容发布者回复数据包的方式进行数据通信。将NDN数据传输方式应用到分布式模型训练中时,以GPU的参数梯度作为名称,某个GPU可以向其他GPU发送申请名称为“参数梯度”的兴趣包,当路由器收到兴趣包时,若其CS中储存有同名的参数梯度数据包,路由器会将该数据包直接回复给用户;若CS中没有被请求的参数梯度数据包,但PIT中已经记录了相同的请求,则路由器聚合相同请求,在PIT表项中添加新兴趣包的输入接口,保证接收的参数梯度数据包能按照兴趣包转发的反向路径,以多播的方式回复多个用户终端;若收到兴趣包时CS和PIT均无法提供数据信息,那么路由器会以兴趣包名称与兴趣包输入接口创建一个PIT表项,并根据FIB进行兴趣包的转发,若兴趣包被转发到了发布数据的GPU处,发布数据的GPU根据兴趣包的名称提供相应的参数梯度数据包转发到对应兴趣包的输入接口。
将NDN中基于PIT的请求聚合机制、基于CS的网内缓存机制以及“一对多”的内容分发机制应用于P2P架构下的分布式机器学习中,在同步训练与异步训练中,能够满足减小传输冗余数据的需求。
本发明采用以下技术方案实现。
一种基于NDN的P2P分布式机器学习训练系统数据传输方法,包括以下步骤:
步骤1:由网络中的路由器建立持久PIT表结构。
所述PIT指Pending Interest Table,待定请求表。
其中,持久PIT表是以数据名称为键、以上游接口为值的表。
步骤2:每个GPU发送分发兴趣包及其余GPU回复分发确认数据包。
具体如下:
步骤2.1:每个GPU为其余每个GPU构造一个以“/*插入*/其余GPU名称/训练名称”为名称的分发兴趣包,以便从其余GPU获取其计算得到的参数梯度及损失的推送。
步骤2.2:GPU之间的路由器接收到分发兴趣包,识别名称前缀“/*插入*/”,提取出名称中的“/其余GPU名称/训练名称”,检查其持久PIT表中是否存在以“/其余GPU名称/训练名称”为键的表项,若存在,执行步骤2.2.1,否则,执行步骤2.2.2。
步骤2.2.1:路由器在以“/其余GPU名称/训练名称”为键的持久PIT表项的对应值中添加“分发兴趣包的输入接口”。
步骤2.2.2:路由器在其持久PIT中添加以“/其余GPU名称/训练名称”为键,以“分发兴趣包的输入接口”为值的表项。
步骤2.3:当每个“其余GPU”收到分发兴趣包时,以“/*分发*/该‘其余GPU’名称/训练名称”为名称,构建并发送内容为“空”的分发确认数据包,以通知发送分发兴趣包的GPU其发送的分发兴趣包已被接收。
步骤2.4:GPU之间的路由器接收到分发确认数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/其余GPU名称/训练名称”,与持久PIT表中的同名表项匹配,并根据表项中记录的接口将分发确认数据包转发至所有发送了同名分发兴趣包的GPU。
步骤3:每个GPU发送分发数据包并选择性启动试探计时器。
具体如下:
步骤3.1:每个GPU在完成计算时,以“计算得到的参数梯度与损失函数的值”为内容,以“/*分发*/本GPU名称/训练名称/参数版本”为名称构建并发送分发数据包以将参数梯度发送给其余所有GPU。
步骤3.2:GPU之间的路由器接收到分发数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/‘本GPU’名称/训练名称/参数版本”,与持久PIT表项“/‘本GPU’名称/训练名称”匹配,并根据表项中记录的接口将分发数据包转发至发送了同名分发兴趣包的GPU。
步骤3.3:若本次训练为同步训练,执行步骤3.3.1,否则,执行步骤3.4。
步骤3.3.1:当GPU发送分发数据包后,记录发送的分发数据包名称中的“参数版本”,并根据以往“发送分发数据包至收到其余每个GPU发送的分发数据包的时间差”的经验,为其余每个GPU设置一个试探计时器Ti的时间并开始计时,当试探计时器到期时,执行步骤5。
其中,n为GPU的总数,1≤i≤n-1。试探计时器T1至Tn用于在分发数据包丢包时允许GPU主动获取其他GPU更新后的参数。优选地,T1至Tn的取值范围均为1至3.6×106ms;
步骤3.4:收到分发数据包的GPU,若设置了试探计时器,则将针对“发送了分发数据包的GPU”的试探计时器销毁。
步骤3.5:重复步骤2和3,直至GPU计算出的总体损失小于一定值。其中,总体损失的值由所有GPU计算得到的损失共同求得。
步骤4:每个GPU发送结束兴趣包及其余GPU回复结束数据包。
具体如下:
步骤4.1:在GPU计算得到的总体损失的值小于训练所要求的值时,GPU为其余每个GPU构造一个以“/*删除*/其余GPU名称/训练名称”为名称的结束兴趣包,以便删除训练中使用的持久PIT表项。
步骤4.2:GPU之间的路由器删除持久PIT表中的表项,并在PIT中添加同名表项。具体如下:
步骤4.2.1:GPU之间的路由器接收到结束兴趣包,识别名称前缀“/*删除*/”,提取出名称中的“‘其余GPU’名称/训练名称”。
步骤4.2.2:路由器检查持久PIT中是否有以“/‘其余GPU’名称/训练名称”为键的表项,如果有,则路由器删除以“/‘其余GPU’名称/训练名称”为键的表项,否则,路由器检查PIT中是否有以“/‘其余GPU’名称/训练名称”为键的表项,如果有,则路由器在以“/‘其余GPU’名称/训练名称”为键的PIT表项中添加该兴趣包的输入接口,否则,路由器在其PIT中添加以“/‘其余GPU’名称/训练名称”为键,以兴趣包的输入接口为值的表项。
步骤4.3:当“其余CPU”在收到结束兴趣包时,以“/本‘其余CPU’名称/训练名称”为名称构建并发送内容为“空”的结束确认数据包,以通知发送结束兴趣包的GPU其与本GPU之间用于本次训练的持久PIT表项已被清除,结束本步骤。
步骤5:当试探计时器到期时GPU发送试探兴趣包。
具体如下:
步骤5.1:当试探计时器Ti到期时,GPU以“/训练名称/试探计时器Ti对应的GPU的名称/最新发送的分发数据包的参数版本”为名称构建试探兴趣包,以尝试获得新一轮的参数,若试探兴趣包没有被网内缓存所回复,而被Ti对应的GPU所接收,执行步骤5.2,否则,执行步骤3。
步骤5.2:Ti对应的GPU在收到试探兴趣包时,判断试探兴趣包请求的参数是否计算完毕,若计算完毕,执行步骤5.2.1,否则,执行步骤5.2.2。
步骤5.2.1:Ti对应的GPU以“试探兴趣包的名称”为名称,以“试探兴趣包所请求版本的参数梯度及损失”为内容构建并发送试探数据包,继续执行步骤5;
步骤5.2.2:Ti对应的GPU以“/*分发*/本GPU名称/训练名称/”为名称,以“试探兴趣包所请求的参数版本未计算完成”为内容发送试探数据包,继续执行步骤5.3;
步骤5.3:GPU收到试探数据包,重置试探计时器,并开始计时。
有益效果
本发明方法,与现有的P2P架构分布式机器学习训练系统中的数据传输方法相比,具有如下优点:
1.与基于GPU两两之间建立独立连接的数据传输方法相比,本发明所述的数据传输方法减小了分布式机器学习训练系统中的传输冗余,从而减小了传输时延,提高了网络传输效率。
2.与基于Ring AllReduce的数据传输方法相比,本发明所述的数据传输方法可以支持异步机器学习。
3.与基于多播的数据传输方法相比,本发明所述的数据方法在传输失败进行重传时,可以通过网内缓存实现就近获取,减少了对服务器端链路的占用,降低了传输延迟。
附图说明
图1为本发明方法中路由器收到兴趣包时的匹配执行流程图;
图2为本发明方法中路由器收到数据包时的匹配执行流程图;
图3为本发明实施例中的网络拓扑图。
具体实施方式
下面将结合附图和实施例对本发明加以详细说明,同时论述本发明的技术方案解决的技术问题及有益效果。需要指出的是,所描述的实施例旨在便于对本发明的理解,对本发明不起任何限定作用。
实施例
本实施例描述了基于NDN的P2P分布式机器学习中的数据传输方法,在P2P架构分布式机器学习训练系统中的应用。
本实施例中,所进行的训练名称为Training。网络拓扑及节点设置如图3所示。NDN节点命名格式为“Nodex(x=1,2,3……)”,其中Node4、Node5、Node6、Node7为GPU,其他节点均为路由器,路由器的接口编号已在图中标明,路由器对兴趣包与数据包的匹配执行流程如图1与图2所示。应用本发明数据传输方法的通信实施例如下:
步骤I:网络中的路由器建立持久PIT表结构;
步骤II:每个GPU发送分发兴趣包及其余GPU回复分发确认数据包,具体包括如下子步骤:
步骤II.1:Node4、Node5、Node6、Node7分别为其余每个GPU构造分发兴趣包,具体每个GPU发送的兴趣包如表1所示;
表1分发兴趣包的发送情况
Figure BDA0002865351820000061
Figure BDA0002865351820000071
步骤II.2:Node1、Node2、Node3接收到分发兴趣包,识别名称前缀“/*插入*/”,提取出名称中的“/Nodex/Training”(x=4,5,6,7),检查其持久PIT表中是否存在以“/Nodex/Training”为键的表项,对于Node3,其先接收到来自Node6针对Node4发送的名称为“/*插入*/Node4/Training”的分发兴趣包时,持久PIT表中不存在该表项,因此在持久PIT内添加以“/Node4/Training”为键、以兴趣包输入接口(即2)为值的表项,在之后接收到来自Node7的同名分发兴趣包时,持久PIT表中已经存在对应表项,因此在表项的值中添加兴趣包的输入接口(即3),其余节点操作以此类推;
本实施例中持久PIT表项建立完成情况如表1所示,实际在Node2中存储的持久PIT如表2所示;
表2持久PIT表表项建立情况
Figure BDA0002865351820000072
Figure BDA0002865351820000081
步骤II.3:当Node4、Node5、Node6、Node7收到分发兴趣包时,以“/*分发*/Nodex/Training”(Nodex是收到分发兴趣包的GPU名称,x=4,5,6,7)为名称构建并发送内容为“空”的分发确认数据包,以通知发送分发兴趣包的GPU其发送的分发兴趣包已被接收;
步骤II.4:Node1、Node2、Node3接收到分发确认数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/Nodex/Training”(x=4,5,6,7),与持久PIT表中的同名表项匹配,并根据表项中记录的接口将分发确认数据包转发至所有发送了同名分发兴趣包的GPU;
步骤III:每个GPU发送分发数据包并选择性启动试探计时器,具体包括如下子步骤:
步骤III.1:Node4、Node5、Node6、Node7在完成计算时,以“计算得到的参数梯度与损失函数的值”为内容,以“/*分发*/Nodex/Training/1”(Nodex是构建该分发数据包的GPU名称,x=4,5,6,7)为名称构建并发送分发数据包以将参数梯度发送给其余所有GPU;
步骤III.2:Node1、Node2、Node3接收到分发数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/Nodex/Training/1”(x=4,5,6,7),与持久PIT表项“/Nodex/Training”匹配,并根据表项中记录的接口将分发确认数据包转发至发送了同名分发兴趣包的GPU;
步骤III.3:重复步骤II和III,直至训练精度达到要求;
步骤IV:每个GPU发送结束兴趣包及其余GPU回复结束数据包,具体包括如下子步骤:
步骤IV.1:在Node4、Node5、Node6、Node7计算得到的总体损失的值小于训练所要求的值时,Node4、Node5、Node6、Node7为其余每个GPU构造一个以“/*删除*/其余GPU名称/训练名称”为名称的结束兴趣包,以便删除训练中使用的持久PIT表项,具体每个GPU构造的结束兴趣包表3所示;
表3结束兴趣包的发送情况
Figure BDA0002865351820000082
Figure BDA0002865351820000091
步骤IV.2:Node1、Node2、Node3删除持久PIT表中的表项并在PIT中添加同名表项,具体包括如下子步骤:
步骤IV.2.1:Node1、Node2、Node3接收到结束兴趣包,识别名称前缀“/*删除*/”,提取出数据包中的“/Nodex/Training”(x=4,5,6,7);
步骤IV.2.2:Node1、Node2、Node3检查出持久PIT表中是否有以“/Nodex/Training”(x=4,5,6,7)为键的表项,对于Node3,其先接收到来自Node6针对Node4发送的名称为“/*删除*/Node4/Training”的分发兴趣包时,持久PIT表中存在该表项,因此将持久PIT表中的表项删除,在之后接收到来自Node7的同名分发兴趣包时,持久PIT表中已经不存在对应表项,因此不对持久PIT表进行修改,其余节点操作以此类推;
步骤IV.2.3:Node1、Node2、Node3检查PIT中是否有以“/Nodex/Training”为键的表项,对于Node3,其先接收到来自Node6针对Node4发送的名称为“/*删除*/Node4/Training”的结束兴趣包时,PIT表中不存在该表项,因此在PIT内添加以“/Node4/Training”为键、以兴趣包的输入端口(即2)为值的表项,在之后接收到来自Node7的同名结束兴趣包时,PIT表中已经存在对应表项,因此在表项的值中添加兴趣包的输入接口(即3),其余节点操作以此类推;
本实施例中PIT表项建立完成情况如表4所示;
表4 PIT表表项建立情况
Figure BDA0002865351820000092
Figure BDA0002865351820000101
步骤IV.3:Node4、Node5、Node6、Node7在收到结束兴趣包时,以“/Nodex/Training”(Nodex是收到结束兴趣包的GPU名称,x=4,5,6,7)为名称构建并发送内容为“空”的结束确认数据包,通知其余GPU其与本GPU之间用于本次训练的持久PIT表项已被清除,结束本步骤。
本实施例中使用的多种兴趣包命名实例表如表5所示;多种数据包命名实例表如表6所示;
表5多种兴趣包命名实例表
Figure BDA0002865351820000102
表6多种数据包命名实例表
Figure BDA0002865351820000103
本实例描述的P2P分布式机器学习系统,利用了基于NDN的流量聚合及网内缓存机制,减少了数据传输冗余,降低了数据获取时延,提高了网络传输效率,能够在网络链路带宽有限的情况下,满足同步机器学习训练与异步机器学习训练的数据传输需求。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.基于NDN的P2P分布式机器学习训练系统数据传输方法,其特征在于,包括以下步骤:
步骤1:由网络中的路由器建立持久PIT表结构;
PIT指Pending Interest Table,待定请求表;
所述持久PIT表是以数据名称为键、以上游接口为值的表;
步骤2:每个GPU发送分发兴趣包及其余GPU回复分发确认数据包;
步骤2.1:每个GPU为其余每个GPU构造一个以“/*插入*/其余GPU名称/训练名称”为名称的分发兴趣包,以便从其余GPU获取其计算得到的参数梯度及损失的推送;
步骤2.2:GPU之间的路由器接收到分发兴趣包,识别名称前缀“/*插入*/”,提取出名称中的“/其余GPU名称/训练名称”,检查其持久PIT表中是否存在以“/其余GPU名称/训练名称”为键的表项,若存在,执行步骤2.2.1,否则,执行步骤2.2.2;
步骤2.2.1:路由器在以“/其余GPU名称/训练名称”为键的持久PIT表项的对应值中添加“分发兴趣包的输入接口”;
步骤2.2.2:路由器在其持久PIT中添加以“/其余GPU名称/训练名称”为键,以“分发兴趣包的输入接口”为值的表项;
步骤2.3:当每个“其余GPU”收到分发兴趣包时,以“/*分发*/该‘其余GPU’名称/训练名称”为名称,构建并发送内容为“空”的分发确认数据包,以通知发送分发兴趣包的GPU其发送的分发兴趣包已被接收;
步骤2.4:GPU之间的路由器接收到分发确认数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/其余GPU名称/训练名称”,与持久PIT表中的同名表项匹配,并根据表项中记录的接口将分发确认数据包转发至所有发送了同名分发兴趣包的GPU;
步骤3:每个GPU发送分发数据包并选择性启动试探计时器;
步骤3.1:每个GPU在完成计算时,以“计算得到的参数梯度与损失函数的值”为内容,以“/*分发*/本GPU名称/训练名称/参数版本”为名称构建并发送分发数据包以将参数梯度发送给其余所有GPU;
步骤3.2:GPU之间的路由器接收到分发数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/‘本GPU’名称/训练名称/参数版本”,与持久PIT表项“/‘本GPU’名称/训练名称”匹配,并根据表项中记录的接口将分发数据包转发至发送了同名分发兴趣包的GPU;
步骤3.3:若本次训练为同步训练,执行步骤3.3.1,否则,执行步骤3.4;
步骤3.3.1:当GPU发送分发数据包后,记录发送的分发数据包名称中的“参数版本”,并根据以往“发送分发数据包至收到其余每个GPU发送的分发数据包的时间差”的经验,为其余每个GPU设置一个试探计时器Ti的时间并开始计时,当试探计时器到期时,执行步骤5;
其中,n为GPU的总数,1≤i≤n-1;试探计时器T1至Tn用于在分发数据包丢包时允许GPU主动获取其他GPU更新后的参数;
步骤3.4:收到分发数据包的GPU,若设置了试探计时器,则将针对“发送了分发数据包的GPU”的试探计时器销毁;
步骤3.5:重复步骤2和3,直至GPU计算出的总体损失小于一定值;其中,总体损失的值由所有GPU计算得到的损失共同求得;
步骤4:每个GPU发送结束兴趣包及其余GPU回复结束数据包;
步骤4.1:在GPU计算得到的总体损失的值小于训练所要求的值时,GPU为其余每个GPU构造一个以“/*删除*/其余GPU名称/训练名称”为名称的结束兴趣包,以便删除训练中使用的持久PIT表项;
步骤4.2:GPU之间的路由器删除持久PIT表中的表项,并在PIT中添加同名表项;具体如下:
步骤4.2.1:GPU之间的路由器接收到结束兴趣包,识别名称前缀“/*删除*/”,提取出名称中的“‘其余GPU’名称/训练名称”;
步骤4.2.2:路由器检查持久PIT中是否有以“/‘其余GPU’名称/训练名称”为键的表项,如果有,则路由器删除以“/‘其余GPU’名称/训练名称”为键的表项,否则,路由器检查PIT中是否有以“/‘其余GPU’名称/训练名称”为键的表项,如果有,则路由器在以“/‘其余GPU’名称/训练名称”为键的PIT表项中添加该兴趣包的输入接口,否则,路由器在其PIT中添加以“/‘其余GPU’名称/训练名称”为键,以兴趣包的输入接口为值的表项;
步骤4.3:当“其余CPU”在收到结束兴趣包时,以“/本‘其余CPU’名称/训练名称”为名称构建并发送内容为“空”的结束确认数据包,以通知发送结束兴趣包的GPU其与本GPU之间用于本次训练的持久PIT表项已被清除,结束本步骤;
步骤5:当试探计时器到期时GPU发送试探兴趣包;
步骤5.1:当试探计时器Ti到期时,GPU以“/训练名称/试探计时器Ti对应的GPU的名称/最新发送的分发数据包的参数版本”为名称构建试探兴趣包,以尝试获得新一轮的参数,若试探兴趣包没有被网内缓存所回复,而被Ti对应的GPU所接收,执行步骤5.2,否则,执行步骤3;
步骤5.2:试探计时器Ti对应的GPU在收到试探兴趣包时,判断试探兴趣包请求的参数是否计算完毕,若计算完毕,执行步骤5.2.1,否则,执行步骤5.2.2;
步骤5.2.1:试探计时器Ti对应的GPU以“试探兴趣包的名称”为名称,以“试探兴趣包所请求版本的参数梯度及损失”为内容构建并发送试探数据包,继续执行步骤5;
步骤5.2.2:试探计时器Ti对应的GPU以“/*分发*/本GPU名称/训练名称/”为名称,以“试探兴趣包所请求的参数版本未计算完成”为内容发送试探数据包,继续执行步骤5.3;
步骤5.3:GPU收到试探数据包,重置试探计时器,并开始计时。
2.如权利要求1所述的一种基于NDN的P2P分布式机器学习训练系统数据传输方法,其特征在于,步骤3.3.1中,T1至Tn的取值范围均为1至3.6×106ms。
CN202011581614.5A 2020-12-28 2020-12-28 一种基于ndn的p2p分布式机器学习训练系统数据传输方法 Active CN112579301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011581614.5A CN112579301B (zh) 2020-12-28 2020-12-28 一种基于ndn的p2p分布式机器学习训练系统数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011581614.5A CN112579301B (zh) 2020-12-28 2020-12-28 一种基于ndn的p2p分布式机器学习训练系统数据传输方法

Publications (2)

Publication Number Publication Date
CN112579301A CN112579301A (zh) 2021-03-30
CN112579301B true CN112579301B (zh) 2022-07-01

Family

ID=75140282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011581614.5A Active CN112579301B (zh) 2020-12-28 2020-12-28 一种基于ndn的p2p分布式机器学习训练系统数据传输方法

Country Status (1)

Country Link
CN (1) CN112579301B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112862111B (zh) * 2021-04-26 2021-08-24 之江实验室 一种加速分布式机器学习梯度汇聚的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107317842A (zh) * 2017-05-31 2017-11-03 北京大学深圳研究生院 基于ndn的区块链同步方法和装置
CN107835129A (zh) * 2017-10-24 2018-03-23 重庆大学 内容中心网络边缘节点势能增强路由方法
CN110753003A (zh) * 2019-10-28 2020-02-04 北京理工大学 一种基于字节编号的命名数据网络数据分片可靠传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10614356B2 (en) * 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US11423332B2 (en) * 2019-09-27 2022-08-23 Intel Corporation Distributed machine learning in an information centric network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107317842A (zh) * 2017-05-31 2017-11-03 北京大学深圳研究生院 基于ndn的区块链同步方法和装置
CN107835129A (zh) * 2017-10-24 2018-03-23 重庆大学 内容中心网络边缘节点势能增强路由方法
CN110753003A (zh) * 2019-10-28 2020-02-04 北京理工大学 一种基于字节编号的命名数据网络数据分片可靠传输方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NDN中基于神经网络的兴趣洪泛攻击综合防御方案;张飞等;《重庆邮电大学学报(自然科学版)》;20200228;全文 *
内容中心网络中兴趣包泛洪攻击防御技术研究;吴浔;《中国优秀硕士论文电子期刊网 信息科技辑》;20200215;全文 *

Also Published As

Publication number Publication date
CN112579301A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
WO2020001393A1 (zh) 发送网络性能参数、计算网络性能的方法和网络节点
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
JP5741150B2 (ja) 中継装置、中継プログラム、及び中継方法
CN103152271B (zh) 一种基于内容的数据中心网络路由转发方法
KR101717000B1 (ko) 패킷 처리를 위한 방법 및 장치
EP2835938B1 (en) Message publishing and subscribing method and apparatus
JP6225249B2 (ja) ルーティング及び転送の方法、装置、及びシステム
CN105721311A (zh) 用于使用信息中心网络中的链路状态信息进行有效的基于名称的内容路由的系统和方法
US7096272B1 (en) Methods and apparatus for pooling and depooling the transmission of stream data
CN105872008A (zh) 用于信息中心网络中的基于自适应命名的点播内容交换的系统和方法
CN102075445A (zh) 负载均衡方法及装置
JP6752141B2 (ja) パケットを処理するための方法およびフォワーダ
CN104967677B (zh) 一种基于ndn缓存优化的文件传输方法以及装置
TWI599201B (zh) 網路系統及建立資料連線的方法
JP6195014B2 (ja) 通信システム、通信方法、中継装置、および、通信プログラム
CN104734962B (zh) 一种非结构化p2p网络的资源搜索方法
CN104038425A (zh) 转发以太网报文的方法和装置
CN104301287B (zh) 一种多对多会话的实现方法、网络节点、服务器及系统
CN112579301B (zh) 一种基于ndn的p2p分布式机器学习训练系统数据传输方法
CN109120556B (zh) 一种云主机访问对象存储服务器的方法及系统
CN104883304A (zh) 用于部分纠缠量子对桥接通信网络的路由方法
CN114567592B (zh) 基于fpga加速器的组播转发方法、装置及组播路由器
CN102325093A (zh) 一种结构化p2p网络中的路由系统构建方法
CN107483628A (zh) 基于dpdk的单向代理方法及系统
CN112822110B (zh) 基于ndn的ps架构分布式机器学习训练系统数据传输方法

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