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

来源:互联网 发布:mo域名 编辑:程序博客网 时间:2024/05/18 18:55
摘要:1636节点Hadoop集群需处理7个小时的工作量,Mac Mini只用一个小时就完成了,听起来有些天方夜谭,然而涉及到算法问题,似乎一切都有可能。

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

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

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

对同一个具有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日在北京世纪金源大酒店召开。届时将设有《智能交通与大数据》分论坛,物联网将是其中重要环节,欢迎参加讨论!

本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

您还没有登录! 请 登录 或 注册
sizheng0320 7小时前
嗯,当初试过一下,GraphChi的确让人眼前一亮,不过现在好像又有比它还好些的了,是叫X-Stream还是什么的
数据搬运工 2013-11-21 12:39
小编,其实我花5分钟把一个东西藏好,2000个你在50个小时未必能找得着.你明白我意思吗?
_IdleMind 2013-11-21 08:45
总是发这种二逼的文章。什么都跟Hadoop比,比毛啊。
hejisan 2013-11-20 20:46
看的云里雾里的。 。
HotWill 2013-11-20 18:30
垃圾,耸人听闻罢了
pcdqc 2013-11-16 23:24
评论拿积分
vansacer 2013-11-16 20:27
Eddy_ 2013-11-15 13:51
看的云里雾里的。 。
shang1010 2013-11-15 10:43
看到标题 我进来了 没看懂 我又出去了
yylovejdp 2013-11-14 23:02
好!!!!!!!!!!!!!!!!!!!!!!!!!
yylovejdp 2013-11-14 23:02
好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Clojure 2013-11-14 09:14
优化磁盘读写可以干掉内存集群?算法好牛逼!
xtremeaud 2013-11-14 01:15
标题有点唬人了,其实就是把本来要分布到多个节点的任务在本地完成了,如果这种任务并非是CPU需求很高的,在分布式网络传输上的开销将会远远大于多个节点同时计算带来的好处,通过硬盘和内存分片处理解决了内存装不下那么多数据的问题之后,即使是只有一个CPU的mac mini也能算的比Hadoop集群快,因为,这些任务本来就没有必要分配到多个节点上(如果内存足够大的情况下)。
kasn 2013-11-13 23:44
这个图也太不清晰了吧
律师原来也喜爱权贵 2013-11-13 23:25
减少低速网络设备带来的性能问题,是个不错的主意。
Melody0119 2013-11-13 14:00
标题有哗众取宠的嫌疑
shuishouhcd 2013-11-13 13:23
基础研究啊
hua_yi 2013-11-13 12:44
heitiantan 2013-11-13 11:26
真心2,我敢说LZ上面的项目一个都不会。
suprman 2013-11-13 10:59
可以写得再清晰些
zenny_chen 2013-11-13 10:27
俺自己就有款Mac Mini,09年版的。速度确实快,1GB内存,跑64位的OS X Snow Leopard照样十分流畅~
sniffer12345 2013-11-13 20:13
哥们你确定吗?。。我手头的mac mini 2G内存 xcode别想打开
zenny_chen 2013-11-13 20:41
回复@sniffer12345:当然确定。OS X Snow Leopard
wzjin 2013-11-13 10:23
有价值,留名、标记!
acm_er6 2013-11-13 10:04
inspire_xg 2013-11-13 09:42
评论有积分?
sirnuo 2013-11-13 09:42
mark nuo
tf1008 2013-11-13 09:21
怎么感觉不明觉厉呢。。。
文武大帝 2013-11-13 09:17
machine learnning 和 分布式计算 比性能 也可以的吗?
DashBird 2013-11-13 09:14
不明觉厉,致敬研究者。只是觉得,科技文章不应沦为标题党,它的这种超越对具体应用有特殊要求吗?
wxq3d 2013-11-13 09:07
西瓜一片 2013-11-13 08:56
不能超越Mac mini的Hadoop不是好app
Leon__码蚁 2013-11-13 08:49
Mac mini在哪
windcloudno1 2013-11-13 08:35
整篇都在讲算法和Mac mini有啥关系?只是因为Mac min使用SSD硬盘?Mac mini是个小型主机,Hadoop是一种分布式计算的解决方案,这两个东西可以比较吗?太烂了!
twiker 2013-11-14 19:44
说的是,我就不信有在Mac mini上能完成的任务在其他机器上完不成的
我是你爸爸啊1 2013-11-13 07:07
真心不错啊啊!写的!!!!!!!!!!!!!!!!!!!
我是你爸爸啊1 2013-11-13 07:07
真心不错啊啊!写的!!!!!!!!
xueda120 2013-11-12 23:42
评论有积分?
chenzhizdt 2013-11-12 22:51
没看懂。。。不过感觉应该不错
vurteon 2013-11-12 22:31
mxlmhgzw 2013-11-12 22:08
mac mini是个神马概念
u012815044 2013-11-12 21:33
评论有积分?
blacklaw0 2013-11-12 19:44
这个可以有,把算法优化到极致,相对的适用性应该比不上hadoop,如果能把整个运用到hadoop单机上,再吧hadoop的集群加上去,那提高的效率可就不止7倍了,应该是7*1636。。太屌了:)
u012812796 2013-11-12 18:04
看了很多还是不怎么懂
windows1989 2013-11-12 17:03
请编辑认真校对一遍,文章里有多处写错的地方。
potency 2013-11-12 17:00
是mac mini还是Marc Mini ??
仲浩 2013-11-12 17:02
Mac Mini
mzule 2013-11-12 16:57
标题党,这个Mac Mini有毛关系。
请您注意
  • ·自觉遵守:爱国、守法、自律、真实、文明的原则
  • ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
  • ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
  • ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • ·您在CSDN新闻评论发表的作品,CSDN有权在网站内保留、转载、引用或者删除
  • ·参与本评论即表明您已经阅读并接受上述条款
0 0
原创粉丝点击