大数据实验课复习提纲(一)——概述

一门5学分综合实验课,期末考试竟然占到50%,呃……私以为浪费时间,还不如平时多写一点代码、基于对框架的理解做性能调优来得更好。然而课程设计者可能有他们的考虑,这我就不了解了。

兵来将挡,水来土掩——启动思政课复习模式。

1. 为什么需要并行计算?

首先,为了提高计算性能;其次,为了通过期末考试

1.1. 提高计算机性能的主要手段

  • 提高处理器字长
  • 提高集成度
  • 流水线等微体系结构技术
  • 提高处理器频率

然而,这些手段几乎到达极限,因为:

  • 受量子隧穿效应限制,集成度不能无限提高
  • 指令并行度提升已达极限
  • 继续提升频率会使功耗和散热超出芯片承受能力
  • 存储和计算的速度差异越来越大

1.2. 并行计算

Intel升频失败后,开始转向多核和众核计算。

当今Web规模数据量爆炸增长以及超大的计算量和计算复杂度,促使了对并行计算的需求。

越来越多的研究和应用领域将需要并行计算技术,它将对传统的计算技术产生革命性的影响。

2. 并行计算技术的分类

2.1. 按数据和指令处理结构分类(Flynn分类)

  • SISD单指令单数据流:传统单处理器串行处理
  • SIMD单指令多数据流:向量机、信号处理系统
  • MISD多指令单数据流:罕见
  • MIMD多指令多数据流:基本都是这个

2.2. 按并行类型分类

  • 位级并行
  • 指令级并行
  • 线程级并行(包括数据级并行和任务级并行)

2.3. 按存储访问结构分类

  • 共享内存(例如SMP等)
  • 分布共享存储体系结构(有本地存储器和全局存储器)
  • 分布式内存(仅本地存储器,例如NUMA)

2.4. 按系统类型分类

  • 多核/众核并行计算系统MC(一个处理器内有多核)
  • 对称多处理系统SMP(多个处理器以总线互联共享内存)
  • 大规模并行处理MPP(由内联网连接的处理器系统)
  • 集群
  • 网格(远距离、异构计算机)

2.5. 按计算特征分类

  • 数据密集型并行计算(数据量极大,如Web信息检索)
  • 计算密集型并行计算(计算非常复杂,如气象预报、科学计算)
  • 数据密集和计算密集混合型并行计算(如3D电影渲染)

2.6. 按并行程序设计模型/方法分类

  • 共享内存变量(pthread、OpenMP,共享存储器,需要同步控制)
  • 消息传递方式(MPI,多用于分布式内存结构)
  • MapReduce方式

3. 并行计算的主要技术问题

  • 多核/多处理器网络互联结构技术
  • 存储访问体系结构
  • 分布式数据和文件管理
  • 并行计算任务的分解和算法设计
  • 并行程序设计模型和方法(见2.6)
  • 数据同步访问和通信控制
  • 可靠性设计和容错(包括数据、系统和任务失效)
  • 并行计算软件框架平台(自动化并行处理、高可扩展性)
  • 系统性能评估、程序并行度评估(Amdahl定律:程序加速比的上限由程序的可并行比例决定,S=1/((1-P)+P/N))

4. MPI并行程序设计

4.1. MPI的特点

  • 灵活性好,适用于各种计算密集型任务
  • 可移植性好
  • 很多开放厂商支持

4.2. MPI的不足

  • 无良好的数据和任务划分支持
  • 缺少分布式文件系统,不支持分布式数据管理
  • 通信开销大
  • 没有节点失效恢复机制
  • 没有良好构架,程序员需考虑细枝末节

5. 为什么需要大数据并行处理技术?

因为要通过期末考试

5.1. 大数据并行处理的重要性

  • 当下产生数据太多,大数据及其处理已经成为现实世界的急迫需求
  • 大数据处理已成为公认的重大研究领域
  • 未来急剧增长的数据将带来极大的技术挑战
  • 数据处理能力大幅落后于数据增长速度
  • 大数据带来巨大的技术和商业机遇
  • 大数据隐含着更准确的事实

5.2. 大数据的类型

  • 结构特征:结构化、非结构/半结构化
  • 获取和处理方式:动态实时数据、静态非实时数据
  • 关联特征:无关联/简单关联数据(键值记录型数据)、复杂关联数据(图数据)

5.3. 大数据问题的特点

  • 来自应用行业,具有极强的行业应用需求特性
  • 数据规模极大,超出任何传统数据库系统的处理能力
  • 传统计算技术在面向大数据处理时需要重写

5.4. 大数据研究的基本原则

  • 应用需求为导向:以应用行业问题和需求为出发点
  • 领域交叉为桥梁:行业、 IT 产业、学术界协同
  • 计算技术为支撑:研究解决涉及的计算技术问题

5.5. 大数据研究的基本目标

以有效的信息技术手段和计算方法,获取、处理和分析各种应用行业的大数据,发现和提取数据的内在价值,为行业提供高附加值的应用和服务.

  • 技术手段: 信息技术和计算方法
  • 核心目标: 价值发现
  • 效益目标: 形成高附加值行业应用

5.6. 大数据研究的挑战

  • 数据规模导致难以应对的存储量
  • 数据规模导致传统算法失效
  • 大数据复杂的数据关联性导致高复杂度的计算

5.7. 大数据研究的基本途径

  • 寻找新算法降低计算复杂度
  • 降低大数据尺度,寻找数据尺度无关算法
  • 大数据并行化处理,分而治之

5.8. 大数据研究层面

  • 从信息处理过程:获取—>存储->处理->利用
  • 从计算机技术研究与学科视角:基础理论->算法->系统->应用
  • 从系统的观点看大数据研究层面:基础设施->系统平台->算法->应用

5.9. 什么是MapReduce

  • 基于集群的高性能并行计算平台
  • 并行程序开发与运行框架:自动划分数据和任务,自动分配和执行任务并进行数据收集,系统会负责处理数据分布、数据通信、容错处理等
  • 并行程序设计模型与方法:MapReduce提供了更加简便的并行程序设计方法和接口规约

5.10. 为什么MapReduce如此重要?

  • 是一种高效的大规模数据处理方法
  • 改变了大规模尺度上组织计算的方式
  • 第一个不同于冯诺依曼结构的、基于集群而非单机的计算方式的重大突破
  • 目前为止最为成功的基于大规模计算资源的并行计算抽象方法

发表评论

您的电子邮箱地址不会被公开。