并行计算技术
- 并行计算:
- 定义: 同时对多条指令,多个任务或多个数据进行处理的一种计算技术
- 并行计算系统:实现并行计算的计算系统。它有一组处理单元组成,这组单元通过相互之间的通信与写作,以并行化的方式共同完成复杂的计算任务
- 目的:以并行化的计算方法,实现计算速度和计算能力的大幅提升
- 并行计算出现原因
- 单处理计算性能提升到极限
- 提升计算机处理器字长
- 提高处理器芯片集成度
- 提升处理器的主频
- 多核计算技术成为必然发展趋势
- 大数据时代日益增大的数据规模迫切需要使用并行计算技术
- 单处理计算性能提升到极限
- 分类:
- Flynn分类法:
- 从两个角度进行分类:
- 依据计算机在耽搁时间点能后处理的指令流的数量
- 依据计算机在单个时间点能够处理的数据流的数量
- 分类:
- 单指令流单数据流(SISD):所有制令穿行执行,在一个时钟周期内,处理器只能处理一个数据流
- 单指令流多数据流(SIMD):采用一个指令流同事处理多个数据流。指令集能够在单个时钟周期内处理多个存储在寄存器中的数据单元
- 多指令流单数据流(MISD):采用多指令流处理单个数据流
- 多指令流多数据流(MIMD):挺尸执行多个指令流,这些指令流分别对不同数据流进行处理
- 从两个角度进行分类:
- 按存储访问结构分类
- 共享内存访问结构(UMA结构):即所有处理器通过总线共享内存的多核处理器。SMP(对称多处理器系统):即为典型的内存共享式的多核处理器构架
- 分布式内存访问结构:各个分布式处理器使用本地独立的存储器(NUMA结构)
- 分布共享式内存访问结构:是一种混合式的内存访问结构。各个处理器分别拥有独立的本地存储器,同时,在共享访问一个全局的存储器(NUMA结构)
- 按系统类型分类
- 多核、众核并行计算系统/芯片级多处理系统(CMP)
- 对称多处理系统(SMP),多个想同类型处理器通过总线连接,并共享存储器构成的一种并行计算系统
- 大规模并行处理系统(MPP):以专用内联网连接一组处理器形成的一种并行计算系统
- 集群:以网络连接的一组普通商用计算机构成的并行计算系统
- 网格:用网络连接远距离分布的一组异构计算机构成的并行计算机系统
- 按应用的计算特征分类:
- 数据密集型并行计算:数据量极大,计算相对简单的并行计算
- 计算密集型并行计算:数据量相对不大,但计算较为复杂的并行处理
- 数据密集与计算秘籍混合型并行计算:具备数据密集和计算密集双重特征
- Flynn分类法:
大数据处理技术
- 大数据的技术特点
- Volume(大体量)
- Variety(多样性):包括各种格式和形态的数据
- Velocity(时效性):需要在一定的时间限度下得到及时处理
- Veracity(准确性)
- Value(大价值)
- 大数据研究主要目标:
- 主要目标:以有效的信息技术手段和计算方法,获取,处理和分析各种应用行业的大数据,发现和提取数据的深度价值,为行业提供高附加值的应用和服务
- 核心目标:价值发现
- 大数据研究基本特点:
- 大数据处理具有很强的行业应用需求特征
- 大数据规模极大
- 大数据处理技术综合型强
- 大数据处理时,大多数传统算法都面临失效,需要重写
- 大数据研究基本原则:
- 应用需求为导向
- 领域交叉为桥梁
- 技术综合为支撑
- 大数据处理解决途径:
- 寻找新算法降低计算复杂度
- 寻找和采用降低数据尺度的算法
- 分而治之的并行化处理
MapReduce:
- 基本概念:
- 是一个基于集群的高性能并行计算平台
- 是一个并行计算与运行软件框架。
- 提供了一个庞大但设计精良的并行计算软件框架
- 能自动完成计算任务的并行化处理
- 自动划分计算数据和计算任务
- 在集群节点上自动分配和执行任务以及手机计算结果
- 是一个并行程序设计模型与算法。
- 借助于函数式程序设计语言Lisp的设计思想。
- 用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口
- 基本设计思想:
- 分而治之
- 上升到抽象模型
- Lisp的Map和Reduce:Lisp是一种列表处理语言,应用于人工智能处理的符号式语言
- MapReduce的Map和Reduce:设计目标是可以对一组顺序组织的数据元素/记录进行处理
- Map:
- 对大量顺序式数据元素/记录进行扫描
- 对每个数据元素/记录做感兴趣的处理,获取感兴趣的中间结果信息
- 排序和整理中间结果以利后续处理
- Reduce:
- 收集整理中间结果
- 产生最终结果输出
- Map:
- 上升到构架:以统一构架为程序员隐藏系统层细节:(自动完成以下处理):
- 计算任务的自动划分和调整
- 数据的自动化分布式存储和调度
- 处理数据与计算任务的同步
- 结果数据的收集整理
- 系统通信,负载平衡,计算性能优化处理
- 处理系统节点出错检测和失效恢复
- MapReduce的主要功能
- 数据划分和计算任务调度
- 数据/代码互定位:基本原则:本地化数据处理
- 系统优化
- 出错检测和恢复
- MapReduce的主要技术特征:
- 向“外”横向扩展:集群构建完全选用价格便宜,易于扩展的低端商用服务器
- 失效被认为是常态:节点硬件失效和软件出错是常态
- 一个良好设计,具有高容错性的并行计算系统不能因为节点失效而影响计算服务的质量
- 任何节点失效都不应当导致结果的不一致性或不确定性
- 任何一个节点失效时,其他节点要能无缝接管失效节点的计算任务
- 当失效节点恢复后应能自动无缝加入集群
- 把处理向数据迁移:计算节点应首先精良负责计算本地村塾数据。当节点无法处理本地数据时,再采用就近原则寻找其他可用计算节点,将数据传送到该可用计算节点
- 顺序处理数据,避免随机访问数据:可以利用集群中的大量数据存储节点访问数据,以此利用分布集群中大量节点上的磁盘集合提供高宽带的数据访问和传输
- 微应用开发者隐藏系统层细节:提供抽象机制将程序员与系统层隔离,仅需描述需要计算什么
- 平滑无缝的可扩展性:可扩展性=数据扩展+系统规模扩展性。计算性能可随节点数目增长而保持近似于线性的增长
Hadoop:
- 构架
- 是一个运行于普通的商用服务器集群的分布式存储和并行计算系统
- 集群中将有一个主控节点用来控制和管理整个集群的正常运行,并协调管理急群众各个从节点完成数据存储和云计算任务。
- 目的:在大数据环境下试下尽可能的本地化计算,以此提高系统的处理性能
- 主控节点采用==心跳机制==定期检测从节点,如果从节点不能有效回应信条信息,则系统任务这个从节点失效
- 软件系统:
- 分布式存储构建:Hadoop基于每个从节点上的本地文件系统,构建一个逻辑上整体化的分布式文件系统-->提供大规模可扩展的分布式数据存储功能--->这个分布式文件系统称为HDFS
- 并行计算:
- MapReduce(并行化计算)
- 有效管理和调度整个集群中的节点来完成并行化程序的执行和数据处理,能让每个从节点尽可能对本地节点上的数据进行本地化计算
- JobTracker:负责管理和调度整个集群并进行计算
网友评论