体系结构复习 CH8 仓库级计算机的并行
注:本章不做重点要求,简略复习
8.1 仓库级计算机
8.1.1 仓库级计算机WSC
一般把作为商用因特网基础的超大型规模的集群称做仓库级计算机(WSC),WSC的建设主要关心:
- 成本和性能
- 能耗效率
- 可靠性(冗余备份)
- 网络I/O
- 工作负载平衡
- 并?性
- 运?成本
- 规模
计算WSC的可靠性(通过软件冗余来屏蔽停用次数):
availability =全年宕机时间全年时间=软件故障次数×软件系统重启时间+硬件故障次数×硬件系统修复时间全年时间
8.1.2 WSC和HPC对比
HPC是高性能计算机(集群),HPC和WSC不同之处在于:
- HPC节点间网络比WSC快的多,且程序独立性强,通信频繁
- HPC倾向于定制硬件,而WSC实用大众化商用芯片降低成本
- HPC强调线程级并行或数据级并行,而WSC强调请求级并行
- HPC常常满负载持续数周完成大规模运行作业,而WSC是面向并发请求的,通常不会满负载
8.1.3 仓库级计算机体系结构
机架是容纳服务器、交换机等的外壳框架,一个机架上往往放置有多个服务器,服务器通过机架交换机通信;服务器阵列由多个机架排列成的二维阵列构成,阵列内部机架间通过阵列交换机通信
因此WSC访存类型有三种:
- 本地访问
- 机架内服务器访问
- 阵列内服务器访问
平均存储器延迟是各种访问方式(延迟)的加权平均值
8.2 云计算
8.2.1 云计算
云计算是一种按使用量付费的服务模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互(美国国家标准与技术研究院定义)
一般把云计算服务分成三种:
- IaaS(基础设施即服务):以服务的形式提供虚拟硬件资源(如虚拟主机、存储、?络、数据库管理等资源),用户无需购买服务器、网络设备、存储设备,只需通过互联网租赁即可搭建?己的应?系统,例如AWS、阿里云VPS等
- PaaS(平台即服务):提供应用服务引擎(如互联?应用编程接口、运行平台等),?户基于该应?服务引擎,可以使用API构建该类应用,如GAE、SAE等
- SaaS(软件即服务):用户通过Internet来使用软件,不必购买软件,只需按需租用软件服务即可,如Google Docs、Oracle CRM On Demand等
8.2.2 云计算关键技术
- 虚拟化:硬件资源虚拟化、网络设施虚拟化、应?虚拟化、桌?虚拟化等
- 分布式存储:Google GFS、Hadoop HDFS
- 并行编程:Hadoop MapReduce
- 数据管理:Google BigTable、Hadoop HBase
- 分布式资源管理:Google Chubby
8.3 Hadoop MapReduce简介
8.3.1 MapReduce基础
MapReduce是Google提出的一个软件架构,?于大规模数据集(?于1TB)的并行运算。当前的软件实现是指定一个Map(映射)函数,?来把一组键值对映射成一组新的键值对;指定并发的Reduce(化简)函数,?来保证所有映射的键值对中的每一个共享相同的键组
MapReduce系统主要由三个模块组成:
- 客户端用于将用户撰写的并行处理作业提交至Master节点
- 主节点(Master)自动将用户作业分解为Map任务和Reduce任务,并将任务调度到工作节点(Worker)
- 工作节点向master请求执?任务,同时多个?作节点组成的分布式文件系统HDFS?于存储输入输出数据
8.3.2 MapReduce工作流程
- MapReduce库先把user program的输入文件划分为M份(由输入文件的大小和用户定义的块大小决定)
- master是负责调度的,为空闲worker分配作业(Map作业或者Reduce作业
- 被分配了Map作业的worker,开始读取对应分片的输入数据,Map作业数量和split一一对应;Map作业从输入数据中抽取出键值对,每一个键值对都作为参数传递给map函数,map函数产生的中间键值对被缓存在内存中。
- 缓存的中间键值对会被定期写入本地磁盘,而且被分为R个区,R的大小是由用户定义的,将来每个区会对应一个Reduce作业;这些中间键值对的位置会被通报给master,master负责将信息转发给Reduce worker。
- master通知分配了Reduce作业的worker它负责的分区在什么位置,当Reduce worker把所有它负责的中间键值对都读过来后,先对它们进行排序,使得相同键的键值对聚集在一起。
- reduce worker遍历排序后的中间键值对,对于每个唯一的键,都将键与关联的值传递给reduce函数,reduce函数产生的输出会添加到这个分区的输出文件中。
- 当所有的Map和Reduce作业都完成了,master唤醒正版的user program,MapReduce函数调用返回user program的代码。
时间: 2024-11-13 06:31:34