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

文档序号:9200205阅读:来源:国知局
更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0052]图1为本发明实施例提供的一种分层系统的结构示意图;
[0053]图2为本发明实施例提供的一种图模型计算的方法的流程图;
[0054]图2a为本发明实施例提供的一种图模型计算分布式并行框架的结构示意图;
[0055]图3为本发明实施例提供的一种图模型计算的方法的一种具体实现方式的流程图;
[0056]图4为本发明实施例提供的一种图模型计算的方法的另一种具体实现方式的流程图;
[0057]图5为本发明实施例提供的一种图模型计算的方法的又一种具体实现方式的流程图;
[0058]图6为本发明实施例提供的一种图模型计算的装置的结构示意图;
[0059]图7为本发明实施例提供的一种图模型计算的装置的一种具体实现方式的结构示意图;
[0060]图8为本发明实施例提供的一种图模型计算的装置的另一种具体实现方式的结构示意图;
[0061]图9为本发明实施例提供的一种图模型计算的装置的又一种具体实现方式的结构示意图;
[0062]图10为本发明实施例提供的一种计算设备的结构示意图。
【具体实施方式】
[0063]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0064]本发明实施例提供的技术方案可以应用于一种分层系统,如图1所示,该分层系统包括至少两个集群,一个集群包括至少一个节点,节点参与细粒度并行计算。其中,节点可以是计算机等实体计算设备,也可以是系统中的处理计算的虚拟机等,集群可以是包括多个计算机或虚拟机等的工作组,一个集群可以完成一个工作任务。
[0065]本发明实施例提供了一种图模型计算的方法,用于一种分层系统,该分层系统包括至少两个集群,其中,一个集群包括至少一个节点,方法如图2所示,包括:
[0066]101,接收图模型数据,并将所述图模型数据划分为至少两个数据组。
[0067]其中,可以由用户设置将图模型数据划分为数据组的方法,分层系统也可以根据图模型的类型,分层系统在已存储的划分数据组的方法中选取合适的划分数据组方法,将接受的图模型数据划分为至少两个数据组。具体的划分数据组的方法可以由计算设备运行编程代码、执行指令实现。
[0068]102,获取集群分组配置文件,根据所述集群分组配置文件,将所述节点划分为至少两个集群。
[0069]其中,集群分组配置文件用于配置划分集群的方法,集群分组配置文件可以由用户根据实际情况编写,也可以图模型的类型,由分层系统在已存储的各个类型的集群分组配置文件中选取合适的集群分组配置文件,将节点划分为至少两个集群。
[0070]需要说明的是,节点可以是计算机等实体设备,也可以是虚拟机等虚拟设备。
[0071]103,将所述数据组导入所述集群,通过所述集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。
[0072]其中,将数据组导入集群,并将数据组中的数据分配给集群中的节点,通过节点来对数据进行细粒度计算,这样每一个集群都会得到一个细粒度并行计算结果,根据得到的所有细粒度计算结果,可以得到最终的粗细粒度并行计算结果。一个集群对应一个工作任务,工作任务相当于是粗粒度并行计算。
[0073]本发明实施例提供的一种图模型计算的方法,能够接收图模型数据,并将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,通过集群中的节点进行细粒度并行计算,利用每一个集群的细粒度并行计算结果,得到粗细粒度并行计算结果。与使用只支持细粒度并行计算方法的Pregel分布式并行框架或GraphLab分布式并行框架的现有技术相比,本方案将图模型数据分组,将分析、计算图模型数据的节点分成至少两个集群,由这个集群中的节点进行细粒度并行计算,同一个集群中的节点存在两两互相通信,不同的集群中的节点不存在通信,避免了现有技术中,所有参与细粒度并行计算的计算设备或节点都需要进行两两通信的情况,因此,本发明的技术方案减少了计算设备或节点之间的通信开销,提高了图模型计算的计算性能。
[0074]进一步的,在图2所示的方案的基础上,本发明实施例还提供了一种图模型计算的方法的具体方案,具体的,该方案应用于图模型计算分布式并行框架,如图2a所示,图模型计算分布式并行框架包括编程接口、源源编译器和运行系统,编程接口包括粗粒度编程接口和细粒度编程接口。本方案对图2所示的101和103的执行过程进行进一步细化,其中,101可以具体实现为1011和1012,103可以具体实现为1031-1034,如图3所示,包括:
[0075]1011,接收图模型数据,从所述编程接口获取粗细粒度并行源程序,根据所述粗细粒度并行源程序,通过所述源源编译器,生成数据划分指令。
[0076]其中,编程接口包括粗粒度编程接口和细粒度编程接口,编程接口用于接收粗细粒度并行源程序。如图2a所示,粗粒度编程接口形式为Iterators:foreach (datatypeitem: domain),细粒度编程接口形式为 Vertex: gather (),apply O,scatter ()。源源编译器用于将源程序编译为运行系统可以执行的指令,在本方案的本步骤中,源源编译器分析粗细粒度并行源程序中的foreach结构,根据foreach结构,找到粗细粒度并行源程序中关于数据划分的源程序部分,并根据数据划分的源程序部分,编译并生成数据划分指令。
[0077]1012,根据所述数据划分指令,通过所述运行系统,将所述图模型数据划分为至少两个数据组。
[0078]其中,运行系统用于执行源源编译器编译生成的指令。在本方案的本步骤中,运行系统执行数据划分指令,将图模型数据划分为至少两个数据组。
[0079]1031,从所述编程接口获取所述粗细粒度并行源程序,根据所述粗细粒度并行源程序,划分迭代空间。
[0080]其中,编程接口包括粗粒度编程接口和细粒度编程接口,编程接口用于接收粗细粒度并行源程序。粗粒度编程接口形式为Iterators: foreach (datatype item: domain),细粒度编程接口形式为Vertex: gather O,apply O, scatter ()。源源编译器用于将源程序编译为运行系统可以执行的指令,在本方案的本步骤中,根据粗细粒度并行源程序中的foreach结构来划分迭代空间,迭代空间表示工作任务的范围,比如:图模型数据共有编号为I一 100的100个顶点,划分迭代空间后,迭代空间A包括编号为1一30的顶点,迭代空间B包括编号为31 — 70的顶点,迭代空间C包括编号为71 —100的顶点。
[0081]1032,根据所述迭代空间,通过所述源源编译器,生成并行计算指令和合并计算指令。
[0082]其中,根据利用粗细粒度并行源程序中的foreach结构划分的迭代空间,源源编译器编译生成并行计算指令和合并计算指令。
[0083]1033,根据所述并行计算指令,通过所述运行系统,利用所述每一个集群中的节点进行细粒度并行计算,得到所述每一个集群的细粒度并行计算结果。
[0084]其中,运行系统用于执行源源编译器编译生成的指令。在本方案的本步骤中,运行系统执行并行计算指令,利用每一个集群中的节点进行细粒度计算,一个集群内的节点进行细粒度并行计算,得到一个细粒度并行计算结果。所以每一个集群可以得到一个细粒度并行计算结果。
[0085]1034,根据所述合并计算指令,将所述每一个集群的细粒度并行计算结果进行合并计算,得到所述粗细粒度并行计算结果。
[0086]其中,运行系统用于执行源源编译器编译生成的指令。在本方案的本步骤中,运行系统执行合并计算指令,将1033中得到的每一个集群的系粒度并行计算结果进行合并计算,相当于集群与集群进行通信,得到最终的粗细粒度并行计算结果。
[0087]需要说明的是,本方案的流程与框架结构如图2a所示,实现粗粒度并行计算的是集群,实现细粒度并行计算的是集群中的节点,其中,Master的主要作用是将数据组和工作任务分配给集群,ZooKeeper的主要作用是监控集群及集群中的节点的状态。
[0088]本发明实施例提供的一种图模型计算的方法,能够接收图模型数据,根据粗细粒度并行源程序,生成数据划分指令,将图模型数据划分为至少两个数据组;根据集群分组配置文件,将节点划分为至少两个集群;将数据组导入集群,根据粗细粒度并行源程序,划分迭代空间,并生成并行计算指令和合并计算指令,利用集群中的节点进行细粒度并行计算,根据每一个集群的细粒度并行计
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1