MapReduce海量数据并行处理总结讲解.doc
文本预览下载声明
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)并行程序设计模型与方
显示全部