说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

算法为王:且看Mac Mini如何超越1636节点的Hadoop

HTML文档下载 WORD文档下载 PDF文档下载
1636节点Hadoop集群需处理7个小时的工作量,Mac Mini只用一个小时就完成了,听起来有些天方夜谭,然而涉及到算法问题,似乎一切都有可能。

小小的Mac Mini计算性能可以超过由1636个节点组成的Hadoop集群,即使是在某些用例下听起来也更像天方夜谭,然而近日GraphChi却声称做到了这一点。长话短说,在看这个壮举之前,我们有必要先了解一下GraphLab的GraphChi。

GraphChi专注小电脑的分布式框架

GraphChi由卡耐基梅隆大学计算机科学家设计,可以在个人计算机上高效进行大规模计算的框架,多用于社交媒体或网络搜索分析类任务,比如推荐引擎。我们都知道推荐引擎专注的是图谱计算(graph computation),分析社交媒体用户之间的关系;但是这类计算通常需要海量的内存,通常出现在由大量计算机组成的集群上。

区别于将图谱储存在内存中,GraphChi利用了个人计算机上的海量硬盘,将图谱储存在硬盘上。通过实验室主任Carlos Guestrin了解到,为了弥补硬盘与内存之间的速度差距,他们设计了更快速的,减少随机读写的硬盘访问方法。同时,GraphChi还能处理“流图谱”(streaming graphs),流图谱能通过显示关系随时间的变化建立起精确的大型网络模型。

Mac Mini与1636节点Hadoop的战争

对同一个具有15亿边缘的Twitter图谱(2010年以后)进行处理(三角形计数),GraphChi通过1个小时完成了1636个Hadoop节点7个小时的工作。近日,通过Rangespan的数据科学家Christian Prokopp,我们了解了这项超越得以实现的原理——对算法的极致优化,以及单台机器对集群设置的优势。

运行环境

GraphChi的首个优势在于可以简化许多假设以及后续的算法,不需要进行分布式处理。有了这个优势,并理解单机器的性能进行总体上的评估(优势和劣势),整个处理过程将非常容易设计。单机器通常具备两个特征:1,大的图谱问题不会被塞进RAM(Random Access Memory);2,拥有很大的磁盘,可以处理所有数据。

传统的磁盘通常不会有随机读取优化,他们只针对连续性读取。新时代计算机可能都会具备更快随机读写的SSD,虽然它们还是会比RAM慢许多。因此,任何在单商用机器磁盘上运行的算法仍然需要尽可能避免随机访问数据。

分而治之

卡耐基梅隆大学的博士生Aapo Kyrola使用这个原理来改善GraphLab,一个分布式图谱计算框架。他的想法是将图谱划分成不同的分片,每一个都可以通过这台机器的内存处理。随后这些分片可以并行的在内存中处理,其它分片需要做的更新则通过随后的连续写入完成。这样将最小化磁盘上的随机操作,合理的使用机器的内存做一些并行操作。


Aapo发明了 PSW(Parallel Sliding Window)算法来解决关键的性能提升问题,针对磁盘的连续读写。PSW通过source shards对1个分片中所有的顶点进行排序,这意味着每个分片本质上都被分割成由顶点组成的块,同时这些顶点又会与其它分片关联。


举个例子,在interval 1中(上图)shard 1正在内存中进行处理,它是顶点到目的顶点边长一个子集。这些目标顶点是余下分片中排序源值的连续块,因此可以连续的读取。所有的更新都会被计算,并在内存中为shard 1进行存储,随后则被连续的写入其它分片,修改会在读取之前进行。最终,内存中更新后的版本会被连续的写入磁盘。在interval 2中,shard 2被加载;当然,同样的方法会被应用于其它分片。

这个方法充分利用了新型商用计算机的架构特征,正如原始论文中的一些特性说明。比如,对不同磁盘中数据的拆分;同时,使用SSD代替传统磁盘对性能将不再有双倍的提升,因为算法已经大幅度的提升高永久存储性能。即使是增加分片的数量,对CraphChi的吞吐量影响也不大,这样将保证更大图的可靠性能。值得注意的是,另一个算法高效性证明是——将计算彻底的移到内存,对比SSD计算时间只有1.1到2.5(因素)的提升。


GraphChi的性能对比( 源出处)

GraphChi公布了模式转变后的性能获益,其中包括与类似Hadoop、Spark等通用解决方案,升值还包括了高优化的图计算框架GraphLab、PowerGraph。后者属于高优化的分布式并行解决方案,同样做Twitter三角计数的处理只需1.5分钟。然而,它使用了64个节点,每个8核心,总计512个核心。粗略的算,性能提升了40倍,但是却耗费了256倍的计算资源(核心)。

单机模式处理大数据的一些开源利器

1. LibFM: 项目主页

2. Svdfeature: 项目主页

3. Libsvm和Liblinear: libsvm项目主页、 liblinear项目主页、 初次使用必读、 libsvm的开发心得by林智仁

4. rt-rank: 项目主页

5. Mahout: 项目主页

6. MyMediaLite: 项目主页

7. GraphLab 和 GraphChi: GraphLab项目主页、 GraphChi项目主页、 GraphChi的下载地址、 GraphChi介绍、 CF for GraphChi

以“应用驱动的架构与技术”为主题的第七届中国大数据技术大会(Big Data Technology Conference 2013,BDTC 2013)将于2013年12月5日-6日在北京世纪金源大酒店召开。届时将设有《智能交通与大数据》分论坛,物联网将是其中重要环节,欢迎参加讨论!

专访4秒源码商城CTO陈杰:扎根互联网的“不安的心” iOS UIView动画实践(一):揭开Animation的神秘面纱 【前端人生】Teambition前端工程师陈涌:非计算机专业,依托社区不断成长壮大 iOS UIView动画实践(二):Spring Animation与人机交互 基因组与数据整合:DNA应用开发正在临近 2015 PHP框架调查结果出炉,Laravel最受欢迎! 【CTO会员专访】KEEN创始人兼CEO王琦:在GeekPwn,遇见一极棒的安全人才 创业公司都在使用的3款Python库 深入理解Objective-C的Runtime机制 你不知的Docker 创办人兼CTO游走美法的浪漫狂放 《近匠》环信CEO刘俊彦:移动客服的未来化场景 iOS UIView动画实践(三):Transition Animation 【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 《近匠》TestBird,专注的手游自动化云测试平台 【探秘ES6】系列专栏(八):JS的第七种基本类型Symbols 专访李林锋:我与Netty那些不得不说的事 手把手教学:巧用Core Data和RubyMotion开发iOS应用 《近匠》琥珀天气,精细化打磨征服Google Play 【CTO讲堂】人工智能到底能为我们带来什么? Linksys再度回归中国市场,主推智能路由 Windows 10:全平台战舰与移动化破冰——微软(中国)操作系统工程院院长谢育涛专访 专访友盟CEO叶谦:深挖海量终端用户数据的价值 七牛资深前端工程师马逸清:前端测试探索实践 实战iOS 9:开发者必须掌握的三种搜索API 腾讯Bugly干货分享:浅谈Swift在实际项目中的应用 【前端人生】ThoughtWorks黄峰达:利用横向扩展方式,快速学习前端新框架 这是前端最好的时代——论前端的“三化”建设 游戏引擎网络开发者的64做与不做(一):客户端方面 请问在vbscript中怎样判断一个数,是否能被3整除 MSN Messenger5.0发送文件到MSN Messenger4.6,为什么总是连接不上? sql2000的问题,谁能知道? 100分:誰有thinking in java 2 的中文電子書和例子代碼,給我一份吧? 关于将图形放大缩小的问题. jsp后缀名大小写问题(急,在线等!) sourceforge主站上不去了,那还有比较大的sourceforge站点?最好是美国的。 如何取得一个程序的内存占用率,cpu使用率等信息呢? 如何解决MSN Messenger5.0不能发送文件给MSN Messenger4.6的问题? 怎样把时间放到数据库表里,格式需要转换吗? 文件操作,帮个忙吧? simple question 60 points wait for your picking 如何卸载rose 分虽小,结得快的啊!讨论一下…… option explicit是什么意思 大哥大姐们!看一下嘛!帮帮我! 又一次被奶牛拒掉,而且有了注册机。 simple question 60 points wait for your picking (菜鸟的问题)在EditBox中怎么换行? 超级难题 SQL如何写??? 如何让WinCE支持DVDROM 請問如何在ASP.NET中實現從客戶機上傳文件到服務器? 新手问:我声明api,但是参数里有我没有定义的类型,pb报错,怎么办 关于Tclientdataset中commandtext的问题 关于按扭的简单问题 调用ejb的错误,请帮忙看看,帮我顶顶也给分,谢谢 关于lei的配置问题 java中 ,换行为\r\n ,空格为什么呢???? 关于快速排序的问题?在线等待!!! 如何在网页上显示动态图表?(送100分) 高兴,散分,收集故事喽,多讲多得,不讲不得。请斑竹留情,不要删除。 一个文件上传的bean编译成功了,但不会使,哪位用过,请给出使用的源代码,或者其它能实现上传的也行,越简单越好并附说明的 我想在触发器中得到对当前表的SQL操作的内容,应该如何实现??v$sql视图中有相关的信息,如何提取?? 心情好好,散分,各位谈谈LINUX和UNIX的感受啊:) Can u help me? 在B/S下如何根据不同用户来相应的mail库 insert into 求解! 各位高手帮帮忙,关于存储过程的问题 请教:VFP6在表单1中,关闭表单1打开表单2。结果显示表单2后,表单1又显示了一下才关闭。怎样让表单1直接关闭呢?谢谢! 很简单的问题--可是我不懂如何用javascript实现弹出窗口(无菜单和工具条的) 请高手帮忙有关“邮件多播”的问题。 《Oracle Pro *C/C++设计》的下载 哪位有最简单的SERVLET的里子,包括添加,查询。。。 水园的人有没有搞过聚会啊? SOS,用脚本连接数据库问题,100分求助,请帮忙。 救救我!SOS!SOS! 请问谁有恩雅的Mp3下载地址吗? 提示wscript未定义?该如何改呢? 关于C#遍译可执行程序问题 请高手看看,这个问题很有意义!为了同时查询不同的数据库(在不同的服务器上),请问用ASP怎么样实现多线程查询不同的库? 我是初学者,在开发ejb中,请问update、add和delete 的操作 ,在session bean中直接写sql来updat、add、delete语句对库操作行吗?还是在e 如何写英语日记以提高英语水平 英语,是一门很重要的学科,我们都要认真学习它.对英语感兴趣的那些同学会觉得英语很有趣.那些对英语没兴趣的同学会觉得英语很无聊、但是,无论你喜欢不喜欢英语,你都要认真学习,因为英 作文我眼中的同学 keep in touch with和keep up with有什么区别?如题 keep in touch with 是与某人保持联系 keep up with也有这一层的意思,那么他俩有什么区别吗?是用法不同吗? ju:英语音标 读 hurry 用be动词适当形式填空(am,is,are) 音标JU;读什么给个土音 Hurry 用be动词的适当形式am,is或are填空1."I"__the ninth letter in the ABC.2.It __an English book.3.--__ you a teacher?--No.I__ a nurse.4.20161009__her ID card number. ju用音标怎么读 “hurry 英语年月日记法告诉我英国人和美国人两种年月日记法.是年月日,记法,不是年月,日记法例如2008年8月8日用英语怎样表示? 音标:ju怎么读?juin怎么读? 朋友推荐英语口语韦博英语,我了解过酷酷口语怎么样呢? 改病句:灿烂的阳光柔和地洒向春天的田野,怎么改, 英语是不是所有学科中最简单的啊? Hurry up!恳请英语大神帮忙详细解释一下关于虚拟语气的一个疑问,跪谢!如题:虚拟语气中,与现在事实相反的假设(虚拟条件句)从句用:If +主语+动词的过去式(动词be用were)表示,主句用:主 灿烂的阳光柔和地洒向春天的田野急……用用用用用快回复一天之内 give怎么变过去式? Hurry up!数学达人快来,麻烦详细解释一道填空题的参考解释,答得好的,如题:已知正四面体(所有棱长都相等的三棱锥)的俯视图如图所示,其中四边形ABCD是边长为2cm的正方形,则这个正四面体 以try to keep up with me开头的英文歌叫什么名字 以[ju;]为音标的5字母单词,以p开头 SPEED DRIVER 2 那辆选不到的车十什么情况?有辆黑影的车,全都是?能选吗,怎么选 冬天快完了,春天就要来,太阳特别温和(修改病句) 是只发/ju:/音的单词,音标就只有/ju:/这一个. 作文《我眼中的同学》 描写秋的成语(4个) 英语翻译I think the people ____ _____ _____ _____ ______ are really cool . 定语从句 the speed ( ) you drive your car mustn't be too highA in which B at which C by which D on which 我现在是高一 我的英语笔记有好多 我该怎样去处理它们呢 笔记太多是不是有什么不好啊 音标带ju的单词 Despite the traffic lights ahead,the car continued ______ full speed.A withB inC onD at 找人帮写英语日记!普通的就可以,不要太多! 怎么努力怎么拼才可以实现我的理想,考上复旦.从这个学期的期中考之后我就开始拼了,每节课下课就开始做题,不会的就去问同学问老师.回到家里休息一下听听音乐就又开始做题看书,做到10 Although the traffic is not busy, he likes to drive at a _______ speed. 还有好多作业没做 昨天背英语呢 5篇征文6篇日记 怎么办啊帮帮我吧 以[ju:]为音标的5字母单词 single和Hurry up分别是啥意思? 同性恋的英文是什么? 英语怎么说?如题.简短一点.一句就够 hurry 修改病句:此时此刻,我身边又回想着快乐童真的歌声,诲人不倦的心声和尽情嬉闹的身影. 失之交臂怎么解释?怎么造句?它的近义词是什么?…………哈哈哈 We should help him write letters改为否定句如题 此时此刻,我耳边又回响着充满墨香的书声,快乐童真的歌声,尽情嬉闹的笑声,诲人不倦的心声;我眼前又浮现出引人入胜的课堂,又去开心的郊游,你追我赶的赛场……仿写这整个句子,用排比的 下面是一组近义词,请你先辨析它们意思上的细微差别,然后造句.模模糊糊—— 迷迷糊糊—— som time,sometime,some times,sometimes的区别谁能告诉我这四个短语的区别啊,应该怎么用? 近天郊游,同学们即更高兴又开心地玩了一天【修改病句】 You should write him a letter.改为同义句:You should ____ _____ ____ 高中生背英语课文有助于提高成绩吗 此时此刻,我耳边又回响着充满墨香的书声,快乐童真的歌声,尽情嬉闹的笑声,诲人不倦的心声;我(看补充)此时此刻,我耳边又回响着充满墨香的书声,快乐童真的歌声,尽情嬉闹的笑声,诲人 You should { write a letter to him}对大括号里的You should { write a letter to him}对大括号里的句子进行提问.答案的格式要对应What ( )i( “get 我眼前又浮现出引人入胜的课堂,热火朝天的劳动,有趣开心的郊游.(用我眼前又浮现出造句) 英语这门学科有趣吗? get up什么意思? 每天坚持写英语日记,英语能提高吗? 英语翻译:据说,新学期又开设了初中化学,这是一门很有趣的学科. 我眼中的同学作文
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘