分布式图计算GraphLab分析1

分布式图计算GraphLab分析1

ID:42556776

大小:566.23 KB

页数:21页

时间:2019-09-17

分布式图计算GraphLab分析1_第1页
分布式图计算GraphLab分析1_第2页
分布式图计算GraphLab分析1_第3页
分布式图计算GraphLab分析1_第4页
分布式图计算GraphLab分析1_第5页
资源描述:

《分布式图计算GraphLab分析1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、GraphLab准备阶段的研究与分析GraphLab的准备阶段即从加载图文件到GAS计算之前的GraphLab内部准备过程。共分为三个阶段:图的加载、图的构建和图的完成。下图为GraphLab准备阶段的流程图:参数:owning_proc,record图的加载Load图的加载即从外部将图文件加载到GraphLab屮。该过程分为两步:加载图文件和解析图文件。1.加载图文件通过load_fofmat()函数将图文件以用户指定的格式加载到GraphLab中。在load()函数中判断文件的存储路径,即NFS(网络文件系统)和HDFS(分布式文件系统),根据图文件的存储位置不同,可调用函数load」ro

2、m_hdfs()或者load_from_posixfs()加载图文件。GraphLab支持的标准图文件格式如下:Formats*Differences*Classify^Regulation^e・"Advantages*PortableFormat^1P该图文件祜式只能存储图结构,不能存储图的数据」三种通用的團文件格式Q[$rcID][targetID]Q12q15卩75、57p7如vertexIDsdonotne^dtobeconsecutiveandthisformatcannotstoreverticeswithnoedges.asnap*TheformatisidenticaltoTS

3、VTSVwithoneminordifference:linesbeginningwith"tt"aretreatedascommentsandignored*'flvertices:4edges:5^12215・75卩527IpThisformatcannotstoreverticeswithnoedges*adj«?[vertexID][numberoftargetvertices][targetID1][targetID2][targetID3]・・*p1225“711^517^Wemavincludethelin卄

4、onnectedvertices・Suchlinesareonlynecessarj*fortrukdisconnectedvertices.t5_种GraphLab余定的格式』biinsv"Whereeachblockstoresapairof32bitunsignedintegervaluesinx86littleendianformat*'0x00000001000000020x00000001000000ot>0x00000005000000070x00000007000000050x0000000700000001Disconnectedverticesarestoredas:-'

5、

6、0

7、l

8、2

9、3

10、4

11、5

12、6

13、7p

14、0

15、l

16、2

17、3

18、4

19、5

20、6

21、7p

22、VID

23、2*32-1p

24、stcVID

25、destVID»Non-PortableFormats*该图文件格式可以存储图结构和图的数抿卩两种GraphLab特定的格式」grapbjrbP&binaQp2.解析图文件GraphLab利用内置的行解析器对不同类型的图文件采取不同的解析方式。首先对加载的图文件进行类型判断,即tsv,snapzbintsv4等儿种标准图文件类型。再根据图文件类型调用不同的行解析器对图文件解析,如果图文件类型是用户口定义的,需口行编写解析器。如果该文件类型为snap,则调用行解析器snap_parser()

26、对该文件解析。通过解析可获得每条边的源节点和目标节点对。在图加载过程屮涉及到的函数及其简单分析如下:Load_format(conststd::string&path,conststd::string&format)"以标准图文件格式加载图//以标准图文件格式加载图,并且构建一个行解析器,使它指向该图文件类型的行解析西数{line_parser_typeline_p且rser;//彳亍解析器if(format==Hsnapn){怩析snap类型的行解析函数line_parser=builtin_parsers::snap_parser;load()函数lo

27、ad(path,line_parser);Load(std::stringprefix,line_parser_typeline_parser)在文件系统或HDFS中加载所看文件茗匹配"[prefix]*啲文件〃在文件系统或者HDFS中加载所有文件名匹配“[prefix]*11的文件{rpc•full_barrier();if(prefix.length()==0)return;//判断路径名,选

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。