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

文档序号:9200205阅读:来源:国知局
将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,根据粗细粒度并行源程序,划分迭代空间,并生成并行计算指令和合并计算指令,利用集群中的节点进行细粒度并行计算,根据每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能;而且,通过源源编译器,将粗细粒度并行源程序编译为运行系统可直接执行的指令,不需要人为操作,在不增加编程负担的前提下,充分利用了硬件资源。
[0119]此外,如图8所示,数据分组模块201,还包括:
[0120]第一同步单元2013,用于执行第一同步指令。
[0121]其中,第一同步指令用于保证图模型数据被划分为数据组的完成。
[0122]计算模块203,还包括:
[0123]第二同步单元2035,用于执行第二同步指令。
[0124]其中,第二同步指令用于保证每一个集群中的节点的细粒度并行计算和合并计算的完成。
[0125]本发明实施例提供的一种图模型计算的装置,能够接收图模型数据,根据粗细粒度并行源程序,生成数据划分指令,执行第一同步指令,将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,根据粗细粒度并行源程序,划分迭代空间,并生成并行计算指令和合并计算指令,执行第二同步指令,利用集群中的节点进行细粒度并行计算,根据每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能;而且,通过源源编译器,将粗细粒度并行源程序编译为运行系统可直接执行的指令,不需要人为操作,在不增加编程负担的前提下,充分利用了硬件资源;执行第一同步指令和第二同步指令,可以保证不同图模型数据之间处理过程的隔离,避免了造成不同图模型数据之间处理过程混杂的情况,保证了图模型计算的正确率。
[0126]可选的,如图9所示,装置200,还包括:
[0127]接口获取模块204,用于获取调用的所述编程接口。
[0128]粗粒度模块205,用于当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算。
[0129]细粒度模块206,用于当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算。
[0130]粗细粒度模块207,用于当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。
[0131]本发明实施例提供的一种图模型计算的装置,能够调用不同的编程接口,并根据调用的编程接口,使用不同的图模型计算法,如:粗粒度并行计算、细粒度并行计算或粗细粒度并行计算。当调用的编程接口为粗粒度编程接口和细粒度编程接口时,接收图模型数据,根据粗细粒度并行源程序,生成数据划分指令,执行第一同步指令,将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,根据粗细粒度并行源程序,划分迭代空间,并生成并行计算指令和合并计算指令,执行第二同步指令,利用集群中的节点进行细粒度并行计算,根据每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能;而且,通过源源编译器,将粗细粒度并行源程序编译为运行系统可直接执行的指令,不需要人为操作,在不增加编程负担的前提下,充分利用了硬件资源;执行第一同步指令和第二同步指令,可以保证不同图模型数据之间处理过程的隔离,避免了造成不同图模型数据之间处理过程混杂的情况,保证了图模型计算的正确率;而且,运行系统可以调用不同的编程接口,根据编程接口,确定图模型计算方法,本方案支持三种图模型并行计算方法,提高了图模型计算的灵活性。
[0132]本发明还提供一种计算设备300,计算设备300用于一种分层系统,分层系统包括至少两个集群,一个集群至少包括一个节点。优选的,计算设备300也可以应用于图模型计算分布式并行框架,图模型计算分布式并行框架包括编程接口、源源编译器和运行系统;编程接口包括粗粒度编程接口和细粒度编程接口 ;源源编译器用于将源程序编译为运行系统执行的指令;运行系统用于执行源源编译器生成的指令。如图10所示,该计算设备300包括:至少一个处理器301,例如CPU,至少一个网络接口 304或者其他用户接口 303,硬盘305,内存306,至少一个通信总线302。通信总线302用于实现这些组件之间的连接通信。可选的,还包含用户接口 303,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。硬盘305可选的可以包含至少一个位于远离前述处理器301的存储装置。
[0133]在一些实施方式中,硬盘305存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0134]操作系统3051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0135]应用程序3052,包含各种应用程序,用于实现各种应用业务。
[0136]应用程序3052中包括但不限于数据分组模块201、集群划分模块202、计算模块203、数据指令生成单元2011、数据划分单元2012、迭代空间划分单元2031、计算指令生成单元2032、细粒度计算单元2033、合并计算单元2034、第一同步单元2013、第二同步单元2035、接口获取模块204、粗粒度模块205、细粒度模块206、粗细粒度模块207。
[0137]应用程序3052中各模块的具体实现参见图6-9所示实施例中的相应模块,在此不赘述。处理器301可以从硬盘305中获取操作系统3051和应用程序3052等数据,并加载至内存306中,以便于处理器301运行或执行操作系统3051和应用程序3052等数据。
[0138]具体地,处理器301用于接收图模型数据,并将所述图模型数据划分为至少两个数据组;以及,用于获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法;以及,用于将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。
[0139]进一步的,处理器301还可以用于从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令;以及,用于根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。
[0140]进一步的,处理器301还可以用于从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间;以及,用于根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令;以及,用于根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果;以及,用于根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。
[0141]此外,处理器301还可以用于执行第一同步指令,所述第一同步指令用于保证所述图模型数据被划分为数据组的完成;以及,用于执行第二同步指令,所述第二同步指令用于保证所述每一个集群中的节点的细粒度并行计算和所述合并计算的完成。
[0142]可选的,处理器301还可以用于获取调用的所述编程接口 ;以及,用于当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算;以及,用于当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算;以及,用于当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。
[0143]本发明实
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1