【张卡尔面对大数据 - 08】处理大数据的MapReduce模型框架(1)

标签:大数据服务器沟通存储分布式计算高性能计算算法Mapreduce超级计算机

访客:32439  发表于:2013-02-05 14:01:08

MapReduce方法是目前行业里面处理大数据的一个重要方法。这是一个处理大数据集合的编程模型或者说是编程框架,也可以被认为是一种设计算法的模式。同时,MapReduce也是谷歌公司对于这个算法的一个具体实施的名称。MapReduce这个名称源自函数编程里面常用的map()和reduce()函数。函数编程是这几年行业里面关注的一种编程理念和实践。我将另文在【张卡尔谈ITC技术】的系列里面介绍。实施MapReduce算法的软件库已经有许多种编程语言的版本。其中一个著名的免费实施是Apache开源组织的Hadoop 。同样,我将另文介绍Hadoop这个开源软件产品。

MapReduce通常用于在一组计算机上面进行分布式计算。由于处理大数据的异常庞大的数据存储和运算挑战,大数据一般是采用分布式计算,利用大量的计算机来一起共同工作来进行处理。

当前的分布式计算中,主要关注两种模式:集群计算和网格计算。一个集群中,所有的计算节点 - 也就是组成集群的各台计算机 - 都被配置在一个高速局域网中,并且这些节点采用类似的软硬件设置。 一个网格中,各个节点可以处与不同的地点,可以处于不同的管理机制之下,并且可以使用相对更加异化的软硬件设置。当然,实际情况下,有时候这两种称谓的使用也不是那么区分严格。

下图是祖国推出的天河一号系列的天河1-A超级计算机系统。这个系统配备了14,336颗英特尔(Intel)的至强(Xeon)X5670处理器、7,168块基于英伟达(NVIDIA)的Fermi架构的支持服务器高性能运算的Tesla M2050计算卡、2,048颗国防科技大学研制的飞腾处理器以及5 PB容量的儲存裝置。


飞腾处理器?国防大学?这个有趣得紧,得网上查查资料,认真地学习学习。原来,据报道,这款天河机里面,祖國自主開發的技術包括有冷卻系統、高性能網絡界面 (160 Gb/s)和基於OpenSPARC架構的FT-1000 飛騰處理器。再仔细地网上看看资料,FT-1000是“十一五”“核高基”重大专项国产高性能通用多核微处理器。哇塞,牛。可是,一不小心,居然看到网上有这么一种传说,说是FT-1000是基于升阳(SUN)的OpenSPARC T2的设计。而且,2008年初,SUN已经公开地开源了T2的全部设计(这个倒是千真万确。我查过了)。那么有了芯片设计,还得制作具体芯片不是?那也不容易。于是,网上又有后续的传说, 声称FT-1000是采用了台积电的65nm的芯片制作工艺。

如果审视一下FT-1000的性能,很容易明白,这还只是一款带有探索性的芯片。其实际性能远远比不上市面上有钱就能购买的主流CPU。那么,我的再一个疑问是,这么一台相当强大的超级计算机上,为什么要使用这么一款性能平庸的芯片呢?答案不得而知。一种或许有点小人之心度君子之腹的网络传说是,使用了FT-1000,可以至少不让天河1-A成为一台完全只使用外国CPU/GPU的祖国产的超级计算机。

顺便说一下,也是很有趣的是,这个天河-1A其实大量地使用了开源软件,包括:Linux操作系统,SLURM作業調度系统(Job Scheduler)和Lustre集群文件系统。

其实这些都是浮云,不是本文的主题。这里读者只需要明白,比如,庞大强力如同天河机,其所以能够计算大型复杂问题,也是因为采取了分布式计算的手法。此外,分布式计算机系统也不再那么神秘。我自己其实在家里就可以搭建一个,如果哪位友情赞助我一些支持多台电脑运行的额外用电费用。说真的,如果读者的公司需要采用分布式计算,那也不再是那么高不可攀的高科技尖端火箭技术。对大数据来说,这是一个相当利好的局面。

这种分布式计算的想法其实很简单,就是对于一个大的工作,可以并行化地采用许多节点来并行地进行处理,从而显著节省运算的时间。比如,要打字一本900页的书,假定一个员工一天可以打字10页,那么就需要90天才能完成。可是,如果我把书稿交给10个员工去处理,那么只需要9天就可以完成了。当然,前提是,这个工作比较容易的被分解成一些并行的任务。如果是写作这本书这个任务,事情就不一定怎么美妙。一个作家1天可以写10页,90天写完。如果交给10个作家呢?故事的后面要依赖于前面的故事发展,因此负责后面部分故事的作家可能要窝工等待前面其他作家写作的进展;10个作家一起写,要花费许多沟通交流协调的时间。如果不幸言中,或许这本书就写不出来了。如果大家聪明人,开了1天讨论会,审时度势,决定还是由原先那一位作家独自写作。9天后写作完成,再召开1天的总结会。好,一共1+9+1 = 11天,还多花了2天。事实上,如何把一个计算任务分解成尽量并行的运算,这是计算科学里面的一个重要研究方向。也是许多实际企业计算里面要应对的问题。

(待续)

=========================================
【注】已发布的本系列文章如下,方便您参考:
【张卡尔面对大数据 - 07】麦肯锡大数据报告的读后感(2)/ http://www.cio.com.cn/eyan/view/21602
【张卡尔面对大数据 - 06】 维基一下大数据 (4)大数据的一些应用实例 / http://www.cio.com.cn/eyan/view/21557
【张卡尔面对大数据 - 05】 维基一下大数据 (3): 大数据的定义、应用与市场  / http://www.cio.com.cn/eyan/view/21298
【张卡尔面对大数据 - 04】 维基一下大数据 (2) / http://www.cio.com.cn/eyan/view/20845
【张卡尔面对大数据 - 03】 麦肯锡报告《大数据:创新、竞争力和生产力的下一个前线》的读后感(1) / http://www.cio.com.cn/eyan/view/20733
【张卡尔面对大数据 - 02】维基一下大数据(1)/ http://www.cio.com.cn/eyan/view/20661
【张卡尔面对大数据 - 01】大数据的大小/ http://www.cio.com.cn/eyan/view/20629

评论(3)

您可以在评论框内@您的好友一起参与讨论!

    1. 徐蕊 这个太技术了,我看不懂了。但分布式计算搭台,大数据唱戏的时代来了。所以大数据真不是凭空出现的,媒体真该纠正自己的思路。

      回复[1] 2013/02/06 09:46

    1. 林海龙 我觉得未来的另外一种可能是,将软件与硬件分离,甚至硬件自身也是分布的,全部将成为云。

      回复[5] 2013/02/06 09:36

    1. 刘小锋

      2003年,那时一个师兄去了国防科大,听说是搞CPU的,说研究过程就是把intel的东西放大好多倍(隐约记得是几倍万倍好像,不知真假),然后再自己照着做。

      回复[14] 2013/02/05 16:36

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");