
图(Graph)
文章平均质量分 56
Graph computing
delibk
从零开始学习计算机
展开
-
PageRank 标准计算 C++
PageRank标准计算大文件数据集,C++。原创 2023-04-18 10:19:11 · 75 阅读 · 0 评论 -
mmap 写空文件时,出现段错误
执行成功则返回0,失败返回-1,错误原因存于errno。ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length大,则超过的部分会被删去。函数作用:给定fd文件描述符,去file_seek大小。原创 2023-06-06 11:01:16 · 453 阅读 · 0 评论 -
大文件快速读写之MMAP
大文件读写之mmap:文本文件或二进制文件。原创 2023-05-30 17:31:48 · 768 阅读 · 0 评论 -
BSR:Block compressed Sparse Row matrix format
块压缩存储原创 2023-05-10 10:30:49 · 1058 阅读 · 0 评论 -
Graph PageRank Push Pull
原创 2023-04-21 17:18:46 · 56 阅读 · 0 评论 -
C++实现大规模图数据的PageRank算法
Graph PageRank原创 2023-04-21 10:52:52 · 71 阅读 · 0 评论 -
Graph push pull
图数据的存储结构键值对存储因具有可扩展强、结构简单、查找迅速等特点被广泛应用于图查询系统中,如Wukong、Trinity.RDF。在Wukong系统中,图上的边会转换成键值对进行存储,将顶点编号、边的类型、边的方向、值的地址和大小等信息组合成键(key),对应邻居顶点构成值(value),如图1所示。当需要查询顶点1、边类型为2的所有入边(in)时,先通过Hash函数找到对应的键的存储位置,然后根据键得到值的存储地址(offset),最后再通过远端或者本地访问的方式获取值的信息,即对应的邻居有顶点8和顶原创 2023-04-19 10:40:59 · 609 阅读 · 0 评论 -
Graph Partition: Edge cut and Vertex cut
随机的切割工作的时候接近最佳情况下的平衡,但是这也消耗了最坏的通信花费,切割了最多的边。如下图所示,Edge cut 将节点分配到不同的机器,边横跨各机器,通信开销和存储开销直接与切割的数量呈比例.因此需要通过最小化边的切割数目,将节点尽量多的分给机器来减少通信开销和确保计算平衡。如图所示,vertex cut将边分配给不同机器,允许节点跨不同机器,节点的变化都需要同步到其他机器上,故通信开销与存储开销与每个节点跨机器的数呈正比,因此我们需要最小化每个节点跨机器的数。同时每条边都保证了只存在于一个机器上。原创 2023-03-06 11:39:55 · 967 阅读 · 0 评论 -
节点和结点
节点和结点的区别是:1、节点是一个实体,它具有处理能力,比如网络上的一台计算机;比如分布式计算中的计算节点;2、结点是一个交叉点、一个标记,算法中的点一般都称为结点,数据结构中的每一个数据结点对应于一个存储单元,这种储存单元称为储存结点,也可简称结点。在链表数据结构中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一个是需要用的实际数据data;另一个就是存储下一个结点地址的指针,即数据域和指针域。对于线性存储结构:1, 2, 3, ......, n, n+1, ......原创 2022-02-17 12:11:03 · 3644 阅读 · 2 评论 -
图计算——以顶点为中心的模型(vertex-centric model)
vertex-centric model原创 2020-11-26 19:53:25 · 1599 阅读 · 0 评论 -
SNAP 图数据 度分布 统计
统计度分布的数据集数据格式数据集格式大多为A->B格式,部分数据集的数据注释:wiki-Vote# Directed graph (each unordered pair of nodes is saved once): Wiki-Vote.txt # 有向图,每个节点的无序对只存在一次,即无重复# Wikipedia voting on promotion to administratorship (till January 2008). Directed edge A->B m原创 2021-10-12 11:04:45 · 1355 阅读 · 2 评论 -
深入浅出BFS/DFS(3)—孤立点的处理
图的表示方法:参考:1. 邻接矩阵直接开一个N×N的二维数组E,然后 E[i][j] 为1的时候表示 i 和 j 之间有一条边,0的时候就没有。这样很方便简单,但是也有缺点,1 首先是效率问题,超过1000个点一般不管是空间还是时间都不允许了。2 然后就是如果两个顶点之间有两条边的话,就没法表示了。所以现在一般很少用这种方法,当然不排除某些时候还是可以使用的。2. 邻接表使用链表的方式保存一个顶点的所有相连接的边,每个顶点表示为这个链表的起始的节点。当然,每个顶点都要维护一个链表,这个原创 2021-11-24 16:01:30 · 1001 阅读 · 0 评论 -
深入浅出BFS(1)
1. Top-down methodTop-down方法是传统的层同步BFS算法。主要步骤为:1、扫描当前层的所有顶点;2、检索其所有的邻居顶点;3、添加未访问的邻居顶点到下一层。但遇到的问题是:1、冗余的边检索;2、更新冲突。2. Bottom-up methodBottom-up 方法可解决top-down所遇到的问题。主要步骤为:1、扫描未访问的顶点;2、检索其邻居顶点是否在当前层,若有,则中止并检索下一顶点;3、将该顶点添加到下一层中...原创 2021-11-24 16:23:21 · 2701 阅读 · 0 评论 -
深入浅出BFS(2):自顶向下(Top-down method) & 自底向上(Bottom-up method)
**BFS 自上向下(Top-down method) VS 自底向上(Bottom-up method)**1. Top-down methodTop-down方法是传统的层同步BFS算法。主要步骤为:1、扫描当前层的所有顶点;2、检索其所有的邻居顶点;3、添加未访问的邻居顶点到下一层。但遇到的问题是:1、冗余的边检索;2、更新冲突。2. Bottom-up methodBottom-up 方法可解决top-down所遇到的问题。主要步骤为:1、扫描未访问的顶点;2、检索其原创 2021-11-26 16:23:19 · 2188 阅读 · 0 评论