文档详情

MapReduce海量数据并行处理总结讲解.doc

发布:2016-05-07约4.71万字共82页下载文档
文本预览下载声明
MapReduce海量数据并行处理 复习大纲 Ch. 1. 并行计算技术简介 1.为什么需要并行计算? 提高计算机性能有哪些基本技术手段 提高字长,流水线微体系结构技术,提高集成度,提升主频 迫切需要发展并行计算技术的主要原因 1)单处理器性能提升达到极限 2)爆炸性增长的大规模数据量 2)超大的计算量/计算复杂度 并行计算技术的分类 有哪些主要的并行计算分类方法? 按数据和指令处理结构:弗林(Flynn)分类 2)按并行类型 3)按存储访问构架 4)按系统类型 5)按计算特征 6)按并行程序设计模型/方法 1)按数据和指令处理结构:弗林(Flynn)分类 SISD:单指令单数据流 传统的单处理器串行处理 SIMD:单指令多数据流 向量机,信号处理系统 MISD:多指令单数据流 很少使用 MIMD:多指令多数据流 最常用,TOP500高性能计算机 基本都属于MIMD类型 按并行类型分类 位级并行(Bit-Level Parallelism) 指令级并行(ILP:Instruction-Level Parallelism) 线程级并行(Thread-Level Parallelism) 数据级并行:一个大的数据块划分为小块,分别由不同的处理器/线程处理 任务级并行:一个大的计算任务划分为子任务分别由不同的处理器/线程来处理 按存储访问结构分类 A.共享内存(Shared Memory) 所有处理器通过总线共享内存 多核处理器,SMP…… 也称为UMA结构 (Uniform Memory Access) B. 分布共享存储体系结构 各个处理器有本地存储器 同时再共享一个全局的存储器 C. 分布式内存(Distributed Memory) 各个处理器使用本地独立的存储器 B和C也统称为NUMA结构 (Non-Uniform Memory Access) 4)按系统类型分类 多核/众核并行计算系统MC(Multicore/Manycore) 或Chip-level multiprocessing, CMP 对称多处理系统SMP(Symmetric Multiprocessing) 多个相同类型处理器通过总线连接并共享存储器 大规模并行处理MPP(Massive Parallel Processing) 专用内联网连接一组处理器形成的一个计算系统 集群(Cluster) 网络连接的一组商品计算机构成的计算系统 网格(Grid) 用网络连接远距离分布的一组异构计算机构成的计算系统 5)按并行程序设计模型/方法分类 共享内存变量 (Shared Memory Variables) 消息传递方式(Message Passing) MapReduce方式 3.并行计算的主要技术问题 并行计算有哪些方面的主要技术问题? 多核/多处理器网络互连结构技术 存储访问体系结构 分布式数据与文件管理 并行计算任务分解与算法设计 并行程序设计模型和方法 数据同步访问和通信控制 可靠性设计与容错技术 并行计算软件框架平台 系统性能评价和程序并行度评估 如何评估程序的可并行度(Amdahl定律) 程序能得到多大并行加速依赖于该程序有多少可并行计算的比例。经典的程序并行加速评估公式Amdahl定律: 其中,S是加速比,P是程序可并行比例,N是处理器数目 根据Amdahl定律:一个并行程序可加速程度是有限制的,并非可无限加速,并非处理器越多越好 并行比例vs加速比 50%=最大2倍 75%=最大4倍 90%=最大10倍 95%=最大20倍 4.MPI并行程序设计 Message Passing Interface,基于消息传递的高性能并行计算编程接口 5.什么是MapReduce概念 MapReduce是面向大规模数据并行处理的: (1)基于集群的高性能并行计算平台(Cluster Infrastructure),(硬件层) 允许用市场上现成的普通PC或性能较高的刀架或机架式服务器,构成一个包含数千个节点的分布式并行计算集群 (2)并行程序开发与运行框架(Software Framework) (逻辑层) 系统自动提供了一个庞大但设计精良的并行计算软件构架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行子任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算中的很多复杂细节交由系统负责处理,大大减少了软件开发人员的负担 (3)并行程序设计模型与方
显示全部
相似文档