[发明专利]一种适用于分布式机器学习的自动化任务并行的方法及其系统有效
申请号: | 201610255970.5 | 申请日: | 2016-04-22 |
公开(公告)号: | CN105956021B | 公开(公告)日: | 2019-05-21 |
发明(设计)人: | 廖小飞;曹镇山;郭人通;刘海坤;金海;陆枫 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/27;G06K9/62 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种适用于分布式机器学习的自动化任务并行方法及其系统,解决现有分布式机器学习编程接口的缺陷:仅提供键值对的读写接口导致系统数据访问行为和应用逻辑紧耦合。该缺陷加剧分布式集群中网络带宽资源竞争,造成编程人员不易对任务进行并行化。本发明系统包括工作节点模块、服务节点模块、主节点模块、张量模块、调度模块、消息跟踪模块、阶段模块、阶段组模块以及执行引擎模块。本发明通过提供较高层次的编程抽象将读写访问行为和应用程序的逻辑进行解耦,运行时系统首先根据服务节点的负载情况进行动态的任务划分,其次将机器学习任务自动化并行执行,大大减轻编程人员编写高并发机器学习应用的负担。 | ||
搜索关键词: | 一种 适用于 分布式 机器 学习 自动化 任务 并行 方法 及其 系统 | ||
【主权项】:
1.一种适用于分布式机器学习的自动化任务并行系统,其特征在于,包括工作节点模块、服务节点模块、主节点模块、张量模块、调度模块、消息跟踪模块、阶段模块、阶段组模块以及执行引擎模块;其中阶段模块、调度模块都和张量模块相连;阶段模块与阶段组模块相连;引擎执行模块和阶段模块相连;调度模块、张量模块、阶段组都和消息跟踪模块相连;所述的工作节点模块和服务节点模块,分别用于针对工作节点和参数服务节点的行为进行抽象描述;所述的主节点模块,用于对主节点的抽象描述,主节点是用于协调整个系统的工作流程,包括系统的初始化以及系统的结束;所述张量模块用于描述机器学习中模型参数的键值对(key,value);应用程序需要多种张量对象来描述训练所需的模型参数,每个张量对象具有tensor_id属性作为其唯一标识;张量对象的类型有三种:全局可共享的(global shared)、全局唯一的(global unique)和本地的(local);全局可共享的表示该张量对象被分布式节点维护,不同的节点之间维护的数据可以具有交集;全局唯一的表示该张量对象被分布式节点维护,不同的节点之间维护的没有交集;本地的表示该张量对象只存在于一个节点中;张量对象具有加载(load)、拉取(pull)、推送(push)等操作接口供编程人员使用;所述阶段模块,用于描述应用程序中某段程序逻辑,应用程序的整体逻辑分解成不同的阶段,且每个阶段对象含有stage_id属性作为其唯一标识;阶段对象之间,可通过设置依赖函数set_dependency设置它们之间的依赖关系;阶段对象需要若干张量对象作为其输入以及一个可选的输出;对于阶段对象而言其输入具有2种类型,一种被称为主变量primary_variable,另一种被称为辅助性变量secondary_variable;主变量的(key,value)对,其key之间没有依赖关系,而辅助性变量的(key,value)对,其key之间具有依赖关系;对于一个阶段,编程人员需要提供核心函数kernel_function,作为此阶段的核心逻辑;同时编程人员还需要提供主变量的键和辅助性变量的键之间的映射函数key_projection,运行时系统自动根据主变量的键以及key_projection函数推导出辅助变量的键;针对阶段的每个主变量和辅助变量,都有一个对应的变量称为update_variable;update_variable用于更新对应的变量,而更新逻辑由用户提供的update_function定义;所述阶段组模块,用于描述一组阶段;阶段组所表示的这组阶段之间联系紧密;阶段组具有属性group_id作为其唯一标识;阶段组具有run和set_barrier这两个接口;run方法的可选参数是一个整型数num_run,用于指定此阶段组的执行次数;set_barrier接口用于设置同步操作,表示当前此阶段组执行完之后,需要所有工作节点进入栅栏同步等待状态,当所有工作节点的该阶段组执行完之后,才能继续运行;所述调度模块用于决策对于某个张量对象,工作节点下阶段需要处理的键的集合key_set;服务节点上的调度器定时广播其节点上的带宽信息,工作节点上的调度器根据其获取的服务节点的带宽信息,决策分配工作节点下次需要处理的模型参数的键的集合;所述执行引擎模块,用于将阶段组中的阶段及其相互依赖关系描述为有向无环图(directed acyclic graph,简称DAG),在该有向无环图中,图中的结点表示阶段,图中的有向边表示阶段之间的依赖关系,边的尾部的阶段要先于边的头部的阶段执行;所述消息跟踪模块,用于记录程序运行中由张量模块、调度模块、工作组模块、工作节点模块、服务节点模块、主节点模块提交的消息,当消息交付给消息跟踪模块,消息跟踪模块负责将消息传输给接收方,接收方返回消息回执之后,消息跟踪模块负责通知消息的初始发起方,并交付回执消息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610255970.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种二氯喹啉酸除草剂致烟草药害的修复方法
- 下一篇:一种新型施肥装置