[发明专利]基于NDN的PS架构分布式机器学习训练系统数据传输方法有效
申请号: | 202011580994.0 | 申请日: | 2020-12-28 |
公开(公告)号: | CN112822110B | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 胡晗;欧阳巧琳;刁文澜;安建平 | 申请(专利权)人: | 北京理工大学 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L12/761;H04L29/08;G06N20/00 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 ndn ps 架构 分布式 机器 学习 训练 系统 数据传输 方法 | ||
1.基于NDN的PS架构分布式机器学习训练系统数据传输方法,其特征在于,包括以下步骤:
步骤1:由网络中的路由器建立持久PIT表结构;PIT,是指PendingInterest Table,待定请求表;
所述持久PIT表是以数据名称为键、以上游接口为值的表;
步骤2:PS发送任务分配兴趣包,GPU回复任务分配数据包;
步骤2.1:当PS有训练任务要交给GPU执行时,以“/GPU名称/PS名称/训练名称”为名称,构建并发送任务分配兴趣包,通知各个GPU执行任务;
步骤2.2:当GPU收到任务分配兴趣包时,检查目前是否在进行其它工作,构建并发送以“任务分配兴趣包的名称”为名称,以“是否接受本次训练”为内容的任务分配数据包;
步骤2.3:若GPU接受任务,则执行步骤3,否则,结束流程;
步骤3:GPU发送训练内容兴趣包,PS回复训练内容数据包;
步骤3.1:GPU以“/PS名称/训练名称/GPU名称”为名称,构建并发送训练内容兴趣包向PS请求模型初始化所需数据;
步骤3.2:当PS收到训练内容兴趣包时,构建并发送以“训练内容兴趣包的名称”为名称,以“模型初始化所需数据”为内容的训练内容数据包;
步骤4:GPU发送分发兴趣包,PS回复分发确认数据包;
步骤4.1:GPU以“/*插入*/PS名称/训练名称”为名称,构建并发送分发兴趣包,以便从PS获取模型更新的推送;
步骤4.2:GPU与PS之间的路由器接收到分发兴趣包,识别名称前缀“/*插入*/”,提取名称中的“/PS名称/训练名称”,检查其持久PIT表中是否存在以“/PS名称/训练名称”为键的表项,若存在,执行步骤4.2.1,否则,执行步骤4.2.2;
步骤4.2.1:路由器在以“/PS名称/训练名称”为键的持久PIT表项的对应值中添加“分发兴趣包的输入接口”;
步骤4.2.2:路由器在其持久PIT中添加以“/PS名称/训练名称”为键,以“分发兴趣包的输入接口”为值的表项;
步骤4.3:当PS收到分发兴趣包时,以“/*分发*/PS名称/训练名称”为名称,构建并发送内容为“空”的分发确认数据包,以通知GPU其发送的分发兴趣包PS已经接收;
步骤4.4:GPU与PS之间的路由器接收到分发确认数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/PS名称/训练名称”,与持久PIT表中的同名表项匹配,并根据表项中记录的接口将分发确认数据包转发至GPU;
步骤5:PS发送收集兴趣包,GPU回复收集数据包;
步骤5.1:PS估计GPU完成训练的时间,并在GPU预计完成训练的时间以“/GPU名称/PS名称/训练名称/参数版本”为名称,构建并发送收集兴趣包以获得该GPU计算得到的参数梯度;
步骤5.2:当GPU收到收集兴趣包时,若已经完成所请求参数的计算,则以“收集兴趣包的名称”为名称,以“计算得到的参数梯度”为内容构建并发送收集数据包;若未完成所请求参数的计算,则等待计算完成后,以“收集兴趣包的名称”为名称,以“计算得到的参数梯度”为内容,构建并发送收集数据包;
步骤5.3:若本次训练为同步训练,执行步骤5.3.1,否则,执行步骤6;
步骤5.3.1:当GPU发送收集数据包后,记录发送的收集数据包名称中的“参数版本”,并根据以往“发送收集数据包至收到分发数据包的时间差”的经验,设置试探计时器的时间并开始计时,当试探计时器到期时,执行步骤9;
其中,试探计时器用于在分发数据包丢包时允许GPU主动获取更新后的参数;
步骤6:PS发送分发数据包;
步骤6.1:PS在更新参数时,以“更新后的参数”为内容,以“/*分发*/PS名称/训练名称/参数版本”为名称,构建并发送分发数据包,以将更新后的参数发送给GPU;
步骤6.2:PS与GPU之间的路由器接收到分发数据包,识别名称前缀“/*分发*/”,提取出数据包中的“/PS名称/训练名称/参数版本”,与持久PIT表项“/PS名称/训练名称/”匹配,并根据表项中记录的接口将分发数据包转发至GPU;
步骤6.3:重复步骤5至步骤6,直至训练精度达到要求;
步骤7:PS发送结束通知数据包;
步骤7.1:PS以“训练结束的通知”为内容,以“/*分发*/PS名称/训练名称”为名称,发送结束通知数据包通知GPU训练结束;
步骤7.2:PS与GPU之间的路由器接收到结束通知数据包,识别名称前缀“/*分发*/”,提取出名称中的“/PS名称/训练名称”,与持久PIT表中的同名表项匹配,并根据表项中记录的接口将结束通知数据包转发给GPU;
步骤8:GPU发送结束确认兴趣包,PS回复结束确认数据包;
步骤8.1:GPU在收到结束通知数据包时,以“/*删除*/PS名称/训练名称”为名称,发送结束确认兴趣包以通知PS GPU收到了结束通知数据包;
步骤8.2:PS与GPU之间的路由器删除持久PIT表中的表项并在PIT中添加同名表项;具体如下:
步骤8.2.1:PS与GPU之间的路由器接收到结束确认兴趣包,识别名称前缀“/*删除*/”,提取出名称中的“/PS名称/训练名称”;
步骤8.2.2:路由器检查持久PIT中是否有以“/PS名称/训练名称”为键的表项,如果有,则路由器删除以“/PS名称/训练名称”为键的表项,否则,执行步骤8.2.3;
步骤8.2.3:路由器检查PIT中是否有以“/PS名称/训练名称”为键的表项,如果有,则路由器在以“/PS名称/训练名称”为键的PIT表项中,添加该兴趣包的输入接口,否则,路由器在其PIT中添加以“/PS名称/训练名称”为键,以兴趣包的输入接口为值的表项;
步骤8.3:PS在收到结束通知兴趣包时,以“/PS名称/训练名称”为名称构建并发送内容为“空”的结束确认数据包,通知GPU其与PS之间用于本次训练的持久PIT表项已被清除,结束本步骤;
步骤9:当试探计时器到期时,GPU发送试探兴趣包;
步骤9.1:当试探计时器到期时,GPU以“/PS名称/训练名称/最新发送的收集数据包的参数版本”为名称构建试探兴趣包,以尝试获得新一轮的参数,若试探兴趣包没有被网内缓存所回复,而被PS所接收,执行步骤10.2,否则,执行步骤5;
步骤9.2:PS在收到试探兴趣包时,判断试探兴趣包请求的参数是否计算完毕,若计算完毕,执行步骤9.2.1,否则,执行步骤9.2.2;
步骤9.2.1:PS以“试探兴趣包的名称”为名称,以“试探兴趣包所请求的参数”为内容构建并发送试探数据包,继续执行步骤5;
步骤9.2.2:PS以“/*分发*/PS名称/训练名称/”为名称,以“试探兴趣包所请求的参数版本未计算完成”为内容发送试探数据包,继续执行步骤9.3;
步骤9.3:GPU收到试探数据包,重置试探计时器并开始计时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011580994.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种外壳生产设备、生产方法及电动牙刷
- 下一篇:一种防失灵医院呼叫系统