Hama顶点编程

Hama是基于HDFS上的BSP模型实现。 Apache Hame是Google Pregel的开源实现

  Pregel是Google提出的一个面向大规模图计算的通用编程模型。许多实际应用中都涉及到大型的图算法,典型的如网页链接关系、社交关系、地理位置图、科研论文中的引用关系等,有的图规模可达数十亿的顶点和上万亿的边。Pregel编程模型就是为了对这种大规模图进行高效计算而设计。

  Pregel的设计思想来自BSP(Bluk Synchronous Parallel)模型。BSP模型包括三部分:BSP机器模型、BSP计算模型和BSP代价模型。其中BSP计算模型采用单程序多数据(SPMD)的执行方式。BSP计算由一组处理单元和一系列连续的超级步 (superstep)组成。在每个超级步内,每个处理单元并发地执行本地计算,并向其他的处理单元发送消息。在一个超级步结束时有一个全局的同步操作。因此,可以看作本地计算-全局通信-栅栏同步模式。

  具体而言,Pregel计算由一系列的迭代(即超级步)组成。在每一个超级步中,计算框架会调用顶点上的用户自定义的Compute函数,这个过程是并行执行的。Compute函数定义了在一个顶点V以及一个超级步S中需要执行的操作。该函数可以读入前一超级步S-1中发送来的消息,然后将消息发送给在下一超级步S+1中处理的其他顶点,并且在此过程中修改V的状态以及其出边的状态,或者修改图的拓扑结构。消息通过顶点的出边发送,但一个消息可以送到任何已知ID的特定顶点上去。这种计算模式非常适合分布式实现:顶点的计算是并行的;它没有限制每个超级步的执行顺序,所有的通信都仅限于S到S+1之间。

  Pregel是一个以顶点为中心的计算模型,边在这种计算模式中并不是第一类对象,在边上没有相应的计算。

少点:

单向松弛模拟:对于模式图中的一个出边而言,孩子节点或孙子节点必须出现在条件集合中

    少点:如果该点不存在,则他的儿子节点必须都存在,会出现无用结果,如存在A-->B,则输出B

双向松弛模拟:将模式图的边反向,再匹配,双向匹配。

    少点:如果该点不存在,则他的儿子和父亲节点必须都存在。

应用场景:社团发现,一个团体中某些人的工作可以被上一级代替。

数据来源:Twitter,Amazon,Google

与谁比较,优势?

时间: 2024-08-05 06:58:44

Hama顶点编程的相关文章

从零开始一起学习SLAM | 掌握g2o顶点编程套路

点"计算机视觉life"关注,置顶更快接收消息! ## 小白:师兄,上一次将的g2o框架<从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码>真的很清晰,我现在再去看g2o的那些优化的部分,基本都能看懂了呢! 师兄:那太好啦,以后多练习练习,加深理解 小白:嗯,我开始编程时,发现g2o的顶点和边的定义也非常复杂,光看十四讲里面,就有好几种不同的定义,完全懵圈状态...师兄,能否帮我捋捋思路啊 师兄:嗯,你说的没错,入门的时候确实感觉很乱,我最初也是花了些时间

Shader编程学习笔记(一)—— 图形硬件简史与可编程管线

图形处理器(GPU)简史 GPU发展简史 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”,在现代计算机系统中的作用变得越来越重要. 20世纪六.七十年代,受硬件条件的限制,图形显示器只是计算机输出的一种工具.限于硬件发展水平,人们只是纯粹从软件实现的角度来考虑图形用户界面的规范问题.此时还没有GPU的概念. GPU概念在20世纪70年代末和80年代初被提出,使用单片集成电路(monolithic)作为图形芯片,此时的GPU被用于视频游戏和动画方面,它能够很

大数据运算系统二

目录 一.同步图计算 1.图算法 2.同步图计算 3.系统实现 二.异步图计算 1.数据模型 2.计算过程 (本文为陈世敏老师课程笔记) ------------------------------------------- 一.同步图计算 1.图算法 PageRank:随机游走模拟网页浏览得到网页重要度排名,从1/N初始化,直到公式收敛 (1-d)/n是任意跳转的概率,后面的邻居通过超链接跳到他的概率.为了防止N很大时候精度不够,公式两边乘以N,R'=NR,R'初始化为   1 2.同步图计算

浅谈GPU

Programmable Graphics Processing Unit(GPU),可编程图形处理单元,可编程图形硬件. 98年NVIDIA的modern GPU研发成功,使用晶体管(transistors)进行计算. 自03年起,可编程图形硬件正式诞生,GPU编程也宣告诞生. 目前最新的可编程图形硬件已经具备了如下功能:1. 支持 vertex programmability 和 fragment programmability:2. 支持 IEEE32 位浮点运算:3. 支持 4 元向量,

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空

从BSP模型到Apache Hama

? 什么是BSP模型 概述 BSP(Bulk Synchronous Parallel,整体同步并行计算模型)是一种并行计算模型,由英国计算机科学家Viliant在上世纪80年代提出.Google发布的一篇论文(<Pregel: A System for Large-Scale Graph Processing>)使得这一概念被更多人所认识,据说在Google 80%的程序运行在MapReduce上,20%的程序运行在Pregel上.和MapReduce一样,Google并没有开源Pregel

(转)固定渲染管线与可编程渲染管线

1.固定渲染管线与可编程渲染管线的区别: 1).固定渲染管线 ——这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界.视.投影变换及固定光照控制和纹理混合.T&L管线可以被渲染状态控制,矩阵,光照和采制参数. 2).顶点着色器——图形开发人员可以对渲染管线中的顶点运算和像素运算分别进行编程处理了,而无须象以前那样套用一些固定函数,取代设置参数来控制管线,最早出现与DX8,包括PS和VS两部分. 2.为了解决D3D或者OpenGL对不同硬件厂商的支持,解决移植性的问题,可

GPU渲染管线与可编程着色器

本文由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/71978861 这篇文章是解析计算机图形学界"九阴真经总纲"一般存在的<Real-Time Rendering 3rd>系列文章的第三篇.将带来RTR3第三章内容"Chapter 3 The Graphics Processing Unit 图形处理器"的总结.概括与提炼. 这章的主要内容是介绍G

【Unity Shader编程】之十四 边缘发光Shader(Rim Shader)的两种实现形态

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/51764028 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1  这篇文章主要讲解了如何在Unity3D中分别使用Surface Shader和Vertex & Fragment Shader来编写边缘发光Shader. 一.最终实现的效果