分布式向量计算框架的制作方法

文档序号:8472792阅读:408来源:国知局
分布式向量计算框架的制作方法
【技术领域】
[0001] 本发明涉及一种计算框架,尤其是一种分布式向量计算框架,属于分布式计算的
技术领域。
【背景技术】
[0002] 当前在实现大规模、高性能的机器学习算法的解决方案中普遍采用MPI直接实 现,但是需要研宄人员熟悉MPI编程,MPI程序设计更加偏向于底层,在程序设计的过程中 所需要关注的底层知识过于复杂。而且在研宄过程中还需要考虑,不同节点之间数据的划 分,节点之间通信的控制,还有节点之间同步机制与计算过程中的容错机制等等。因此开发 周期较长,代码复用度低,利用MPI进行开发,对于算法的并行化会存在一定的复杂性。
[0003] 机器学习算法解决方案中缺少类似MapReduce(由Google提出的数据并行模型) 的框架,MapReduce框架在分布式计算领域应用非常广泛,用户只是需要关注数据处理中上 层逻辑,可以像开发单机程序那样开发分布式计算,底层的数据划分,节点数据同步等机制 都对上层用户透明,而且代码的可重用性很高,但对于分布式向量的计算支持不够,且对于 分布式高性能计算的开发会过于复杂。

【发明内容】

[0004] 本发明的目的是克服现有技术中存在的不足,提供一种分布式向量计算框架,其 结构紧凑,提升代码的可重用性,降低分布式计算的开发复杂度,适应范围广。
[0005] 按照本发明提供的技术方案,所述分布式向量计算框架,包括MPI框架以及用于 与所述MPI框架连接的MPI接口层;在所述MPI接口层上设置面向用户的计算向量层;所述 计算向量层包括分布式向量接口层以及MapReduce接口层。
[0006] 所述容错模块通过将运行的任务的内存映像写入磁盘中,当出现程序故障或系统 故障时,通过读取存入磁盘中的任务进度来对任务进行重现。
[0007] 所述MPI接口层中,通过异步实现对数据传输的封装。
[0008] 本发明的优点:提出新的分布式向量计算开发框架,有效的结合了MapReduce模 型和MPI并行模型的灵活、高效的特点,提升框架的灵活性和可扩展性;基于分布式向量 计算框架优化PageRank算法,抽象算法计算过程中的矩阵与向量数据结构特点,利用分布 式向量接口,有效的提升分布式计算效率。通过分布式向量计算框架在机器学习典型算法 PageRank中的优化应用,充分验证了分布式向量计算框架的可用性,为进一步提高机器学 习算法的分布式计算应用服务提供支撑。
【附图说明】
[0009] 图1为本发明的结构框图。
[0010] 图2为本发明分布式相连数据结构的逻辑图。
[0011] 图3为本发明PageRank算法的逻辑数据结构。
[0012] 图4为本发明PageRank算法的流程图。
【具体实施方式】
[0013] 下面结合具体附图和实施例对本发明作进一步说明。
[0014] 如图1所示:为了提升代码的可重用性,降低分布式计算的开发复杂度,本发明包 括MPI框架以及用于与所述MPI框架连接的MPI接口层;在所述MPI接口层上设置面向用 户的计算向量层;所述计算向量层包括分布式向量接口层以及MapReduce接口层。
[0015] 具体地,MPI(MessagePassingInterface)是开发并行应用的主要编程模型。 MPI是一套消息通信接口,几乎被所有并行计算环境和流行的多进程操作系统所支持,主 要优点是可移植性好,易于使用,支持的规模大,性能高。MPI在HPC(HighPerformance Computing高性能计算)、机器学习算法实现方面有着重要的应用。
[0016] 在MPI框架之上,设置了MPI接口层,MPI接口层为上层的计算向量层提供简单的 接口,能够较为方便的从计算向量层的数据转化为MPI框架能够计算的数据。通过异步实 现对数据的传输的封装,实现内存中对数据的接收和发送的封装。MPI接口层通过异步实现 数据的传输封装的具体实现是通过循环队列的形式在内存中开辟缓冲区来实现数据的异 步传输。从缓冲区接收的数据队列中取出需要下一步计算的数据,节点之间的数据传输和 同步控制。
[0017] 容错模块是对MPI框架的一个非常重要的补充,防止MPI平台中的服务器故障。 目前的容错机制中能够做到尽量减少对用户程序的影响,方便的设置开启和关闭。对用户 保持透明,降低系统复杂度。在程序出现错误或者服务器故障或者程序Bug的情况下都保 持系统可用。容错机制借助于HDFS的checkpoint方式,通过将系统中运行的任务的内存 映像写入到磁盘中,当程序出现问题或者系统出现故障的时候,通过读取磁盘中任务的进 度来对任务进行重现。进而保证数据能够恢复进而继续完成。本发明实施例中,容错模块、 MPI框架以及MPI接口层形成一个底层。
[0018] MapReduce接口层是借助MapReduce模型中的两个过程函数对数据的处理流程思 想,以完成对Map接口和Reduce接口抽象封装,再引入用户自己定义的计算逻辑方法,用户 定义的计算逻辑方法可以根据需要进行设置,具体定义过程为本技术领域人员所熟知,此 处不再赘述。其中,Map接口按照用户制定的方式,将需要计算的Vector数据包装成统一的 对象,传递给自定义计算逻辑方法接口,由用户自定义的方法接口去执行下面的计算流程。 而在Reduce阶段,同MapReduce模型中的作用一致,该阶段要完成对相同key的value值 进行数据的归纳汇总,如图2所示。
[0019] 分布式向量接口层,通过对常用的矩阵和向量数据结构进行研宄,从面向对象设 计中抽象出Vector对象。抽象出Vector对象可以用于大规模的key-value数据存储,提 供本地的数据输入接口,还可以在多节点数据分布中自定义Partition(划分)方法来控制 数据的划分。主要完成对分布式系统中数据的格式转化,从普通的Key-value数据转化为 Vector对象。为了更加充分的利用分布式系统的资源,将数据进一步切分,进而充分的利用 当前节点中的多核多线程处理机制,更加高效的利用分布式系统的资源。对现有计算过程 的基本抽象,对比现有算法计算中的异同点,提取出算法本身的相似基本模型,有针对性解 决现有开发过程中遇到的扩展性问题。
[0020] 下面将以实例来分析说明本发明的框架设计,基于实例对分布式向量计算的框架 进行可用性分析,选取了PageRank算法来作为分析实例,PageRank算法是排名运算法则 (排名公式)的一部分,是用来标识网页的等级/重要性的一种方法。在揉合了诸如Title 标识和Keywords标识等所有其它因素之后,通过PageRank来调整结果,使那些更具"等级 /重要性"的网页在搜索结果中另网站排名获得提升,从而提高搜索结果的相关性和质量, 该技术最早是由Google创始人提出的,当前该算法广泛应用在各大搜索引擎中。
[0021] 下面将本发明对PageRank算法的过程进行详细说明。
[0022] PageRank算法的模型描述为: 首先求完整的公式:
【主权项】
1. 一种分布式向量计算框架,包括MPI框架以及用于与所述MPI框架连接的MPI接口 层;其特征是:在所述MPI接口层上设置面向用户的计算向量层;所述计算向量层包括分布 式向量接口层以及MapReduce接口层。
2. 根据权利要求1所述的分布式向量计算框架,其特征是:还包括容错模块,所述容错 模块通过将运行的任务的内存映像写入磁盘中,当出现程序故障或系统故障时,通过读取 存入磁盘中的任务进度来对任务进行重现。
3. 根据权利要求1所述的分布式向量计算框架,其特征是:所述MPI接口层中,通过异 步实现对数据传输的封装。
【专利摘要】本发明涉及一种分布式向量计算框架,其包括MPI框架以及用于与所述MPI框架连接的MPI接口层;在所述MPI接口层上设置面向用户的计算向量层;所述计算向量层包括分布式向量接口层以及MapReduce接口层。本发明提出新的分布式向量计算开发框架,有效的结合了MapReduce模型和MPI并行模型的灵活、高效的特点,提升框架的灵活性和可扩展性;基于分布式向量计算框架优化PageRank算法,抽象算法计算过程中的矩阵与向量数据结构特点,利用分布式向量接口,有效的提升分布式计算效率。通过分布式向量计算框架在机器学习典型算法PageRank中的优化应用,充分验证了分布式向量计算框架的可用性,为进一步提高机器学习算法的分布式计算应用服务提供支撑。
【IPC分类】G06F9-46, G06F11-07, G06F9-44
【公开号】CN104793955
【申请号】CN201510213490
【发明人】贾明岳, 刘斌, 台宪青
【申请人】江苏物联网研究发展中心, 北京科电高技术公司
【公开日】2015年7月22日
【申请日】2015年4月29日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1