一种图模型计算的方法及装置的制造方法_5

文档序号:9200205阅读:来源:国知局
施例提供的一种计算设备,能够调用不同的编程接口,并根据调用的编程接口,使用不同的图模型计算法,如:粗粒度并行计算、细粒度并行计算或粗细粒度并行计算。当调用的编程接口为粗粒度编程接口和细粒度编程接口时,接收图模型数据,根据粗细粒度并行源程序,生成数据划分指令,执行第一同步指令,将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,根据粗细粒度并行源程序,划分迭代空间,并生成并行计算指令和合并计算指令,执行第二同步指令,利用集群中的节点进行细粒度并行计算,根据每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能;而且,通过源源编译器,将粗细粒度并行源程序编译为运行系统可直接执行的指令,不需要人为操作,在不增加编程负担的前提下,充分利用了硬件资源;执行第一同步指令和第二同步指令,可以保证不同图模型数据之间处理过程的隔离,避免了造成不同图模型数据之间处理过程混杂的情况,保证了图模型计算的正确率;而且,运行系统可以调用不同的编程接口,根据编程接口,确定图模型计算方法,本方案支持三种图模型并行计算方法,提高了图模型计算的灵活性。
[0144]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0145]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0146]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【主权项】
1.一种图模型计算的方法,其特征在于,用于一种分层系统,所述分层系统包括至少两个集群,一个集群至少包括一个节点,所述方法包括: 接收图模型数据,并将所述图模型数据划分为至少两个数据组; 获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法; 将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。2.根据权利要求1所述的方法,其特征在于,所述方法用于图模型计算分布式并行框架,所述图模型计算分布式并行框架包括编程接口、源源编译器和运行系统;所述编程接口包括粗粒度编程接口和细粒度编程接口 ;所述源源编译器用于将源程序编译为所述运行系统执行的指令;所述运行系统用于执行所述源源编译器编译生成的指令。3.根据权利要求1或2所述的方法,其特征在于,所述将所述图模型数据划分为至少两个数据组,包括: 从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令; 根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。4.根据权利要求1或2所述的方法,其特征在于,所述通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果,包括: 从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间; 根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令; 根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果; 根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。5.根据权利要求3或4所述的方法,其特征在于,在所述生成数据划分指令之后,包括: 执行第一同步指令,所述第一同步指令用于保证所述图模型数据被划分为数据组的完成; 在所述生成并行计算指令和合并计算指令之后,包括: 执行第二同步指令,所述第二同步指令用于保证所述每一个集群中的节点的细粒度并行计算和所述合并计算的完成。6.根据权利要求1-5中任意一项所述的方法,其特征在于,还包括: 获取调用的所述编程接口; 当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算; 当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算; 当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。7.一种图模型计算的装置,其特征在于,用于一种分层系统,所述分层系统包括至少两个集群,一个集群至少包括一个节点,所述装置包括: 数据分组模块,用于接收图模型数据,并将所述图模型数据划分为至少两个数据组;集群划分模块,用于获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法; 计算模块,用于将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。8.根据权利要求7所述的装置,其特征在于,所述装置用于图模型计算分布式并行框架,所述图模型计算分布式并行框架包括编程接口、源源编译器和运行系统;所述编程接口包括粗粒度编程接口和细粒度编程接口 ;所述源源编译器用于将源程序编译为所述运行系统执行的指令;所述运行系统用于执行所述源源编译器编译生成的指令。9.根据权利要求7或8所述的装置,其特征在于,所述数据分组模块,包括: 数据指令生成单元,用于从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令; 数据划分单元,用于根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。10.根据权利要求7或8所述的装置,其特征在于,所述计算模块,包括: 迭代空间划分单元,用于从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间; 计算指令生成单元,用于根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令; 细粒度计算单元,用于根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果; 合并计算单元,用于根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。11.根据权利要求9或10所述的装置,其特征在于,所述数据分组模块,还包括: 第一同步单元,用于执行第一同步指令,所述第一同步指令用于保证所述图模型数据被划分为数据组的完成; 所述计算模块,还包括: 第二同步单元,用于执行第二同步指令,所述第二同步指令用于保证所述每一个集群中的节点的细粒度并行计算和所述合并计算的完成。12.根据权利要求7-11中任意一项所述的装置,其特征在于,还包括: 接口获取模块,用于获取调用的所述编程接口 ; 粗粒度模块,用于当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算; 细粒度模块,用于当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算; 粗细粒度模块,用于当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。
【专利摘要】本发明实施例公开了一种图模型计算的方法及装置,涉及电子信息技术领域,能够在图模型计算过程中,减少计算设备或节点之间的通信开销,提高图模型计算的计算性能。本发明的方法包括:接收图模型数据,并将所述图模型数据划分为至少两个数据组;获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法;将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。本发明适用于计算图模型数据的场景中。
【IPC分类】G06F9/38, G06F9/44
【公开号】CN104915187
【申请号】CN201410091566
【发明人】王蕾, 冯子畅, 冯晓兵
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年9月16日
【申请日】2014年3月13日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1