如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
主讲人:刘鹏Google云计算原理主要内容(6学时)Google云计算原理摩尔定律集成电路芯片上所集成的电路的数目,每隔18个月就翻一番,同时性能也提升一倍经验总结,12个月-18个月-24个月“免费的性能大餐”?Andygiveth,andBilltakethaway软件算法、数据结构似乎不再重要,因为处理器性能不断提升“AndygivethandBilltakethaway”,意思是说无论处理器能够提供多高的性能,软件都能够将它们统统“消化”掉,而历史表明,软件设计师在消耗额外处理能力方面确实是“技艺超群”TheFreeLunchIsOver:AFundamentalTurnTowardConcurrencyinSoftwareFREEDOMISNOTFREEAndygiveth,andgoogle(...)takethaway摩尔定律正在走向终结…单芯片容纳晶体管的增加,对制造工艺提出要求CPU制造18nm技术,电子泄漏问题CPU主频已达3GHz时代,难以继续提高散热问题(发热太大,且难以驱散)功耗太高在多核时代生存,必须考虑并发问题不存在解决多核编程问题的银弹,不存在可以简单地将并发编程问题化解掉的工具,开发高性能的并行程序必须要求开发者从根本上改变其编程方法从某种意义上来说,这不仅仅是要改变50年来顺序程序设计的工艺传统,而且是要改变数百万年来人类顺序化思考问题的习惯HerbSutter是广受赞誉的Exceptional三卷本(《ExceptionalC++》、《MoreExceptionalC++》和《ExceptionalC++Style》)的作者,还曾发表了上百篇软件开发方面的技术文章和论文。他是ISOC++标准委员会的主席、《C/C++UsersJournal》的撰稿编辑和专栏作者。同时,他还担任MicrosoftVisualC++架构师,负责C++语言在.NET编程环境扩展(C/CLl)方面的工作。串行编程早期的计算里,程序一般是被串行执行的程序是指令的序列,在单处理器的机器里,程序从开始到结束,这些指令一条接一条的执行并行编程一道处理可以被划分为几部分,然后它们可以并发地执行各部分的指令分别在不同的CPU上同时运行,这些CPU可以存在于单台机器中(多核CPU),也可以存在于多台机器上,它们通过连接起来共同运作什么样的问题适合并行计算?斐波那契序列(Fibonacci)的计算?1,1,2,3,5,8,13,21,34,……什么样的问题适合并行计算?如果有大量结构一致的数据要处理,且数据可以分解成相同大小的部分,那我们就可以设法使这道处理变成并行并行计算模式Google拥有海量数据,并且需要快速处理计算问题简单,但求解困难待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成如何进行并行分布式计算?如何分发待处理数据?如何处理分布式计算中的错误?一个软件架构,是一种处理海量数据的并行编程模式用于大规模数据集(通常大于1TB)的并行运算MapReduce实现了Map和Reduce两个功能Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集Reduce对结果集进行分类和归纳Map()和Reduce()两个函数可能会并行运行,即使不是在同一的系统的同一时刻一个Map函数就是对一部分原始数据进行指定的操作,每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这就使它们可以充分并行化一个Reduce操作就是对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集,因此Reduce也可以在并行环境下执行MapReduce示例:单词计数MapReduce示例:单词计数MapReduce示例:单词计数MapReduce示例:单词计数MapReduce示例:单词计数MapReduce示例:单词计数GoogleMapReduce执行流程GoogleMapReduce执行流程GoogleMapReduce执行流程GoogleMapReduce执行流程GoogleMapReduce执行流程GoogleMapReduce执行流程源文件:GFSMap处理结果:本地存储Reduce处理结果:GFS日志:GFSWorker故障Master周期性的ping每个worker。如果master在一个确定的时间段内没有收到worker返回的信息,那么它将把这个worker标记成失效重新执行该节点上已经执行或尚未执行的Map任务重新执行该节点上未完成的Redu