目录

什么是云计算

Google云计算

分治算法的原理

从分治算法到MapReduce

以矩阵乘法为例

结语


什么是云计算

云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。

现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。

Google云计算

云计算技术涉及的面很广,从存储、计算、资源的调度到权限的管理等,云计算的一个关键问题是,如何把一个非常大的计算问题,自动分解到许多计算能力不是很强大的计算机上,共同完成。Google 针对这个问题给出的解决工具是一个叫 MapReduce 的程序,其根本原理就是计算机算法上很常见的分治(Divide-and-Conquer)算法。

分治算法的原理

在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范型。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(归并排序、快速排序)、傅立叶变换(快速傅立叶变换)。

从分治算法到MapReduce

熟悉计算机算法的读者都知道归并排序(Merge Sort)的原理。假定要对一个长度为N的数组进行排序,如果采用对 和;两两比较的办法(冒泡排序),时间复杂度是,不仅非常笨(慢)。而且如果数组过大(比如几千亿个元素),也无法在一台计算机上完成。

而使用分治算法,是将这个大数组分为几份,比如一分为二,对每一半分别进行排序。当这两个子数组排序完毕后,把它们从头到尾合并,得到原来数组的排序结果。对应的大小正好是原数组一半大,只需要进行1/4的比较即可。

当然,合并的过程需要一些额外的时间,但是和省下的时间相比可以忽略不计。同理,还可以对前后每一半子数组继续分解成更小的子数组。直到子数组中只有两个元素。这种做法大大缩短了整个排序的时间,由原来的简化到,如果N是一百万,那么计算时间将缩短一万倍。这个排序算法在每个子任务完成后,都要进行合并,归并排序算法也因此得名。

感兴趣的读者可以去了解一下冒泡排序和归并排序算法。

以矩阵乘法为例

如果一台服务器存不下整个大数组,这件事就变得很麻烦。好了,让我们看看分治算法怎么做。首先,把矩阵A按行拆成10个小矩阵A1,A2,...,A10,每一个有N/10行。

分别计算每个小矩阵A1,A2,…,A1和B的乘积,不失一般性,以A1来说明:

同理,可以在第二台、第三台、……服务器上计算出其他元素。当然,矩阵B和矩阵A一样大时,一台服务器同样存不下。不过没有关系,同样可以按列切分矩阵B,使得每台服务器只存矩阵B的1/10。上述公式可以直接使用,只是这回只完成了C1的1/10。

因此,这次需要100 台服务器而不是原来的10台,于是,在单机上无法求解的大问题就被分解成小问题得以解决。

在上面的例子中,增加了服务器的数量,但是每个元素的绝对计算时间其实并没有减少(这点不像归并排序)。但是在某些应用中,增加服务器数量可以带来绝对计算时间的减少。例如,只是要得到C中某个特定元素而不是整个C矩阵,这种需求在链接分析或者日志处理中有时会遇到,假如希望通过10倍的机器能够缩短计算时间。这个需求也可以通过分治算法来实现,具体解决方法如下:
对矩阵A按行切分,对矩阵B按列切分。A1是A的前十分之一行,A2是接下来的十分之一,等等,对B也是如此。然后用同样的方法计算得到10 个中间结果,...,。而只是这10个数字相加的结果。下面每个结果的计算量都是最后结果的十分之一。这样,我们就用10倍的计算机数量将计算时间缩短了10倍。

这就是MapReduce的根本原理。将一个大任务拆分成小的子任务,并且完成子任务的计算,这个过程叫做Map,将中间结果合并成最终结果,这个过程叫做Reduce。当然,如何将一个大矩阵自动拆分,保证各个服务器负载均衡,如何合并返回值,就是MapReduce 在工程上所做的事情了。

结语

我们现在可以发现 Google 颇为神秘的云计算中最重要的 MapReduce 工具,其实原理就是计算机算法中常用的"各个击破"法,它的原理原来这么简单 ——将复杂的大问题分解成很多小问题分别求解,然后再把小问题的解合并成原始问题的解。由此可见,在生活中大量用到的,真正有用的方法往往简单而又朴实。

云计算技术现在已经广泛应用于人类生活中的角角落落,是计算机时代的优秀产物,在与大数据、物联网、人工智能等技术的结合中,不断推进着IT行业蒸蒸日上,掀起了信息时代的又一波高潮。

浅析Google云计算相关推荐

  1. 浅析 Google 的云计算平台

    清华大学 陈康 郑纬民   Google的云计算技术实际上是针对Google特定的网络应用程序而定制的.针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软 ...

  2. 谷歌云计算机,google云计算的三大核心技术

    google云计算的三大核心技术 google云计算的三大核心技术:GFS,MapReduce,BigTable GFS: 分布式文件系统. 适用于TB级超大文件存储.master节点是文件管理的大脑 ...

  3. 云计算学习笔记002---云计算的理解及介绍,google云计算平台实现原理

    什么是云计算: l  说的明白一点: •    云计算其实就更大限度的发挥网络的资源. •    那为什么叫云,为什么不到互联网计算?Cloud l 大多数计算的网络拓扑图都用一块"云&qu ...

  4. 云计算——Google云计算原理与应用(Google文件系统GFS)

    目录 1.Google文件系统GFS 2.系统架构 3.GFS的特点 4.容错机制 5.系统管理技术 1.Google文件系统GFS Google文件系统(Google File System,GFS ...

  5. Google云计算的基础架构

    主要内容: 云计算, Google云计算基础架构,GFS,MapReduce,BigTable, Google云计算平台App Engine简介 主讲人:王咏刚 一 Google云计算技术架构: G ...

  6. Google云计算三大论文中英文版

    Google云计算三大论文中英文版 链接:https://pan.baidu.com/s/1lFj5WdqmaVzg0vgRzPoL0w 提取码:gtlu

  7. 云计算的概念,发展现状,实现机制,Google云计算原理

    第1章  绪论 很少有一种技术能够像"云计算"这样,在短短的两年间就产生巨大的影响力.Google.亚马逊.IBM和微软等IT巨头们以前所未有的速度和规模推动云计算技术和产品的普及 ...

  8. 【Cloudaily】Google云计算平台支持云端GPU加速服务,微软数据中心将建到水下

    Cloudaily网罗新鲜要闻,每日为你呈现大数据和云计算领域热点新闻.本次内容播报如下: 微软数据中心将建到水下,可降低冷却成本 近日,微软研究院的工程师在 IEEE Spectrum 上发表文章描 ...

  9. 浅析移动云计算服务端技术

    浅析移动云计算服务端技术 虚拟化资源管理作为云计算中的一个重要课题,在移动云计算中依然成为了研究热点.它以虚拟机技术以及资源虚拟化技术为基础,在整个云计算平台起核心支撑作用,研究如何优化虚拟化资源管理 ...

最新文章

  1. 一起来踩踩 Spring 中这个循环依赖的坑!
  2. 今天的 IBM —— 一封来自 IBM 董事长、首席执行官 Arvind Krishna 的公开信
  3. 多元化和专一化的关系
  4. keil5安装_keil5,软件安装包及安装教程
  5. Elasticsearch启动报错:Exception in thread “main“ java.nio.file.AccessDeniedException:
  6. linux核心的最新版本,求问Linux最新内核版本以及发布日期。
  7. 解决Mac无法写入U盘问题
  8. 设计大师Donald Norman和Bill Buxton签书会在南京举行
  9. jabberd2分析
  10. 地铁票务管理系统_[地铁票务管理论文] 地铁票务系统 场景法
  11. 悉尼大学计算机科学专业,悉尼大学计算机科学专业
  12. 用Python教你画一棵绝美碎花树~学会就能送给喜欢的人啦
  13. Rockchip | 固件分区排列
  14. Java Itext+jfreehart 导入含有图形的word文档
  15. Linux 安装中文 man 手册
  16. MIS迭代一:增删改查功能测试
  17. python curl 获取返回值_python-将curl查询转换为请求
  18. c++第二次作业-定期存款利息计算器
  19. OCR——阿里OCR方案
  20. 交通灯控制系统设计左转倒计时protues仿真的c语言程序,交通灯控制系统设计

热门文章

  1. Oracle11g客户端安装与配置
  2. 室内设计计算机课程有哪些方面,室内设计专业主修课程
  3. 揭秘“语音交互”背后的AI硬核黑科技!
  4. 锐捷云课堂计算机教室,锐捷云课堂2.0 计算机教学的专属云
  5. 【读书】领导梯队-从管理自我到管理他人
  6. 华为云位居中国金融云基础设施市场第一
  7. 解决高度塌陷的六种方法以及Grid网页布局补充
  8. 电源测试系统-ATE电源测试系统-ACDC电源模块测试系统NSAT-8000
  9. 软件测试面试八股文——基础篇
  10. 微信小程序ssm电影院售票系统app