MapReduce大数据处理技术课程复习提纲

本文是对MapReduce课程的复习,涵盖了并行计算的需求、技术分类、主要技术问题及MPI并行程序设计。讨论了MPI的基本功能、点对点及节点集合通信,以及并行计算中的挑战。此外,文章还解释了为何需要大数据并行处理,重点介绍了MapReduce的分而治之策略、抽象模型和统一框架,以及Google和Hadoop MapReduce的基本架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mapreduce课程接近尾声,在此将之前课上的内容做一个简要的总结。


第一章 .并行计算与大数据处理技术简介


围绕着五大问题:为什么需要并行计算?并行计算技术的分类有哪些?并行计算存在的主要技术问题是什么?MPI并行程序设计模式的基本内容是什么?为什么我们现在需要打过么数据并行处理技术?展开。


为什么需要并行计算?

(1)不断提高计算机的性能是从计算机一开始被实际的制造出来enginner就已经开始追求的目标!

之前如我们在学习组原时所主要学习的体系结构上的哪些优化设计方法就是围绕着这一目标的:

1,提高处理器字长;2,提高芯片上的集成度(Moore‘s Law);3,多级流水线等微体系结构技术;4,提高处理器的频率(clock rate)。问题是正如摩尔定律已经接近失灵一样,这些单核的性能处理技术存在着物理上的upper bound或者说工程技术难度上的ceiling。(集成度墙、ILP墙、存储墙、功耗墙)

接着人们将关注点转向多核/众核技术。

(2) 人类对计算机技术的应用越来越广泛,对计算性能的需求也越来越大!超大实时数据处理量、超大计算量、计算复杂度任务。

而这一切问题,目前最好的solution就是使用并行计算技术!


对于programmer而言则是:

过去20-30年里程序设计技术的最大的革命是面向对象技术
下一个程序设计技术的革命将是并行程序设计
今天绝大多数程序员不懂并行设计技术,就像15年前* 绝大多数程序员不懂面向对象技术一样

并行计算技术的分类有哪些?

按不同的标准有不同的分类方法:

(1)按数据和指令处理结构分类:弗林(Flynn)分类: SISD、SIMD、MISD、MIMD。

(2)按并行的类型(层次):位级并行、指令级并行、线程级并行(数据型并行、任务型并行)。

(3)按不同的存储访问结构分类:shared Memory、distributed and shared memory、distributed memory。


(4)按系统类型分类:Multicore/Manycore、SMP(SymmetricMultiprocessing、MPP(MassiveParallel Processing、Cluster、Grid

(5)按计算特征分类:数据密集型、计算密集型、两者混合型

(6)按并行程序设计模式/方法分类:共享内存变量、消息传递(如MPI)、MapReduce方式)。


并行计算存在的主要技术问题是什么? 怎么存 以及怎么算的问题!



多核/多处理器网络互连结构技术
存储访问体系结构
分布式数据与文件管理
并行计算任务分解与算法设计
并行程序设计模型和方法
数据同步访问和通信控制
可靠性设计与容错技术:数据失效恢复、系统和任务失效恢复
并行计算软件框架平台
系统性能评价和程序并行度评估:(1)标准性能评估和(2)Amdahl定律

S是加速比,P是程序可并行比例   N是处理器数目 (可推出一个并行程序可加速程度是有限制的,并非可无限加速,并非处理器越多越好)


(具体的看,这些技术问题在上一问题,如何分类,中的各种不同角度上具有体现,所以解决这一问题是一个综合性问题。)


MPI并行程序设计技术


主要是介绍这一在MapReduce之前出现的较为流行的编程模型的基本内容,看看并行编程模式的一般需求以及之前解决方案的优缺点。

l在处理器间以消息传递方式进行数据通信和同步,以库函数形式为程序员提供了一组易于使用的编程接口。

MPI主要功能

  用常规语言编程方式,所有节点运行同一个程序,但处理不同的数据

   提供点对点通信(Point-point communication)

l提供同步通信功能(阻塞通信)
l提供异步通信功能(非阻塞通信)

   提供节点集合通信(Collective communication)

l提供一对多的广播通信
l提供多节点计算同步控制
l提供对结果的规约(Reduce)计算功能
   提供用户自定义的复合数据类型传输

MPI并行程序设计接口

基本编程接口

    MPI提供了6个最基本的编程接口,理论上任何并行程序都可以通过这6个基本API实现

1. MPI_Init(argc,argv) :  初始化MPI,开始MPI并行计算程序体

2. MPI_Finalize():              终止MPI并行计算

3. MPI_Comm_Size(comm, size): 确定指定范围内处理器/进程数目

4. MPI_Comm_Rank(comm, rank) : 确定一个处理器/进程的标识号

5. MPI_Send(buf, count,datatype,dest, tag, comm): 发送一个消息

6. MPI_Recv (buf, count,datatype, source, tag,comm, status): 接受消息

size:进程数,rank:指定进程的ID

comm:指定一个通信组(communicator)

Dest:目标进程号,source:源进程标识号,tag:消息标签


点对点通信

  同步通信:阻塞式通信,等待通信操作完成后才返回

  MPI_Send (buf, count,datatype,dest, tag, comm):发送一个消息(tag是为了指定某一次通信session?!)

  MPI_Recv (buf, count,datatype, source, tag,comm, status):接受消息

 同步通信时一定要等到通信操作完成,这会造成处理器空闲, 

  因而可能导致系统效率下降,为此MPI提供异步通信功能

  异步通信:非阻塞式通信,不等待通信操作完成即返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值