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

文档序号:9200205阅读:221来源:国知局
一种图模型计算的方法及装置的制造方法
【技术领域】
[0001 ] 本发明涉及电子信息技术领域,尤其涉及一种图模型计算的方法及装置。
【背景技术】
[0002]现阶段,图模型在各个领域中有着广泛的应用,比如:将互联网、社交网络、蛋白质交互网络等表示成图模型的数据结构,之后再对图模型进行分析和挖掘,从而实现更方便的对互联网、社交网络、蛋白质交互网络等数据进行分析和挖掘。但是,随着数据的增长,图模型中往往包含了上亿个点和上亿条边,图模型的数据规模已经超过了一台计算机的内存容量,所以在现有技术中,采用Pregel分布式并行框架或GraphLab分布式并行框架来处理图模型,这两种分布式并行框架支持细粒度并行计算方法,将图模型以分割边或分割顶点的方式,将分割出的边或顶点存放在多台计算设备上进行计算,每两台计算设备之间都需要进行通信,综合计算设备之间的通信结果,得到最后的细粒度并行计算结果。
[0003]但是,现阶段的图模型中往往包含了上亿个顶点和上亿条边,在细粒度并行计算方法中,图模型中大量的顶点和边需要大量的计算设备来存放并计算,因为每两台计算设备之间都需要进行通信,大量的计算设备之间存在的通信开销过大,降低了图模型计算的计算性能。

【发明内容】

[0004]本发明的实施例提供一种图模型计算的方法及装置,在图模型计算过程中,能够减少计算设备或节点之间的通信开销,提高图模型计算的计算性能。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,本发明实施例提供一种图模型计算的方法,用于一种分层系统,所述分层系统包括至少两个集群,一个集群至少包括一个节点,所述方法包括:
[0007]接收图模型数据,并将所述图模型数据划分为至少两个数据组;
[0008]获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法;
[0009]将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。
[0010]结合第一方面,在第一种可能的实现方式中,所述方法用于图模型计算分布式并行框架,所述图模型计算分布式并行框架包括编程接口、源源编译器和运行系统;所述编程接口包括粗粒度编程接口和细粒度编程接口 ;所述源源编译器用于将源程序编译为所述运行系统执行的指令;所述运行系统用于执行所述源源编译器编译生成的指令。
[0011]结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述图模型数据划分为至少两个数据组,包括:
[0012]从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令;
[0013]根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。
[0014]结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果,包括:
[0015]从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间;
[0016]根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令;
[0017]根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果;
[0018]根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。
[0019]结合第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,在所述生成数据划分指令之后,包括:
[0020]执行第一同步指令,所述第一同步指令用于保证所述图模型数据被划分为数据组的完成;
[0021]在所述生成并行计算指令和合并计算指令之后,包括:
[0022]执行第二同步指令,所述第二同步指令用于保证所述每一个集群中的节点的细粒度并行计算和所述合并计算的完成。
[0023]结合第一方面或第一方面的第一种至第四种中任意一种可能的实现方式,在第五种可能的实现方式中,还包括:
[0024]获取调用的所述编程接口 ;
[0025]当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算;
[0026]当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算;
[0027]当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。
[0028]第二方面,本发明实施例提供一种图模型计算的装置,用于一种分层系统,所述分层系统包括至少两个集群,一个集群至少包括一个节点,所述装置包括:
[0029]数据分组模块,用于接收图模型数据,并将所述图模型数据划分为至少两个数据组;
[0030]集群划分模块,用于获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群,所述集群分组配置文件用于配置划分集群的方法;
[0031]计算模块,用于将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。
[0032]结合第二方面,在第一种可能的实现方式中,所述装置用于图模型计算分布式并行框架,所述图模型计算分布式并行框架包括编程接口、源源编译器和运行系统;所述编程接口包括粗粒度编程接口和细粒度编程接口 ;所述源源编译器用于将源程序编译为所述运行系统执行的指令;所述运行系统用于执行所述源源编译器编译生成的指令。
[0033]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据分组模块,包括:
[0034]数据指令生成单元,用于从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令;
[0035]数据划分单元,用于根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。
[0036]结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述计算模块,包括:
[0037]迭代空间划分单元,用于从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间;
[0038]计算指令生成单元,用于根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令;
[0039]细粒度计算单元,用于根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果;
[0040]合并计算单元,用于根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。
[0041]结合第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述数据分组模块,还包括:
[0042]第一同步单元,用于执行第一同步指令,所述第一同步指令用于保证所述图模型数据被划分为数据组的完成;
[0043]所述计算模块,还包括:
[0044]第二同步单元,用于执行第二同步指令,所述第二同步指令用于保证所述每一个集群中的节点的细粒度并行计算和所述合并计算的完成。
[0045]结合第二方面或第二方面的第一种至第四种中任意一种可能的实现方式,在第五种可能的实现方式中,还包括:
[0046]接口获取模块,用于获取调用的所述编程接口 ;
[0047]粗粒度模块,用于当调用的所述编程接口为所述粗粒度编程接口时,进行粗粒度并行计算;
[0048]细粒度模块,用于当调用的所述编程接口为所述细粒度编程接口时,进行细粒度并行计算;
[0049]粗细粒度模块,用于当调用的所述编程接口为所述粗粒度编程接口和所述细粒度编程接口时,进行粗细粒度并行计算。
[0050]本发明实施例提供的一种图模型计算的方法及装置,能够接收图模型数据,并将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,通过集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能。
【附图说明】
[0051]为了
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1