云计算学习笔记1——并行计算
目录
一、并行计算概念
二、Flynn分类法
SISD 单指令流单数据流
SIMD 单指令流多数据流
MISD
MIMD
MIMD分类
三、并行算法
1. 定义和概念
并行算法:
进程间通信:
同步:
通讯:
2. 并行计算模型
PRAM模型(Parallel Random Access Machine,随机存取并行机器)
异步APRAM模型
BSP模型
logP模型
3. 设计方法
(1)串行算法并行化
(2)针对问题直接设计并行算法
(3)借用已有算法求解新问题
4. 设计过程
PCAM设计方法学
四、并行算法性能测评
加速比性能定律
Amdahl 阿姆达尔定律
Gustafson 古斯塔夫森定律
Sun Ni 孙-倪定律
一、并行计算概念
基本思想:用多个处理器来协同求解同一问题。
并行计算系统形式:含有多个处理器的超级计算机or以某种方式互连的若干台独立计算构成的集群。
二、Flynn分类法
概念:Michael.J.Flynn提出的根据指令流/数据流的多倍性特性对计算机系统进行分类的方法。
- 指令流:机器执行的指令序列
- 数据流:由指令流调用的数据序列,包括输入数据和中间结果
4类:SISD,SIMD,MISD,MIMD
SISD 单指令流单数据流
传统的顺序执行的单处理器计算机
SIMD 单指令流多数据流
同时用相同的指令 对不同的数据进行操作。以并行处理机(阵列处理机)为代表,包括多个重复的处理单元。
对于数据并行类问题能达到很高的处理速度。
MISD
n个处理单元,按n条不同指令的要求对同一数据流进行不同的处理。
理论模型,没有投入实际应用。
MIMD
同时有多条指令对不同的数据进行操作。
每个处理机在各自唯一的数据流上执行各自的指令流。
MIMD分类
- 共享内存MIMD(SMP)
- 分布式共享内存MIMD(DSM)
- 分布式内存MIMD(MPP、COW)
- SPMD Single-Program 同时执行相同的程序对不同数据操作。
- MPMD Muitiple-Program 同时有多个程序对不同的数据进行操作。
指令:计算机能实现的基本操作
程序:为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合;一系列按一定顺序排列的指令。
三、并行算法
1. 定义和概念
并行算法:
一些可同时执行的进程的集合,这些进程互相作用协调动作从而达到给定问题的求解。
进程间通信:
- 同一台处理机中,读/写OS提供的共享数据缓存区实现。
- 不同处理机中,通过网络实现。
同步:
时间上强制各执行进程在某一点必须互相等待。
可用软件、硬件、固件的办法来实现。
通讯:
- 共享存储多处理器使用:global read(X, Y) & global write(X, Y)
- 分布存储多计算机使用:send(X, i) & receive(Y, j)
2. 并行计算模型
PRAM模型(Parallel Random Access Machine,随机存取并行机器)
- 又称SIMD-SM模型。
- 有一个集中的共享存储器和一个指令控制器。
- 通过SM的R/W交换数据。
- 隐式同步计算。
- 优点:适合并行算法表示和复杂性分析;易于使用;隐藏了并行机的通讯、同步等细节。
- 缺点:不适合MIMD并行机;忽略了SM的竞争、通讯延迟等因素。
异步APRAM模型
- 又称分相(Phase)PRAM或MIMD-SM。
- 每个处理器有局部存储器、局部时钟、局部程序。
- 无全局时钟、各处理器异步执行。
- 处理器通过SM进行通讯。
- 在并行程序中显示地加入同步路障。
- 计算过程:由同步路障分开的全局相组成。
BSP模型
- “块”同步模型。
- 是一种异步MIMD-DM模型。
- 支持消息传递系统。
- 块内异步并行,块间显式同步。
- 计算过程:由若干全局同步分开的、周期为L的超级步组成;各超级步中处理器做LM操作并通过选路器收发消息;然后做一次全局检查,以确定该超级步是否已经完成。
logP模型
使用了l、o、g、p四个参数来描述模型。
是一种面向分布式存储器、点对点通信的多计算机系统的模型。
L:Latency 表示信息从源到目的地所需的时间。
O:Overhead 表示处理器接收或发送一条消息所需的额外开销,并且在此期间处理器不能做任何操作。
G:Gap 表示处理器连续两次发送或接收消息之间必须有的时间间隔。
P:Processor 表示处理器的数目。
3. 设计方法
(1)串行算法并行化
- 不是所有串行算法都可以并行化。
- 一个好的串行算法并不能并行化为一个好的并行算法。
(2)针对问题直接设计并行算法
挖掘问题的固有特性与并行的关系。
(3)借用已有算法求解新问题
- 找出求解问题和某个已解决问题之间的联系。
- 改造或利用已知算法应用到求解问题上。
4. 设计过程
PCAM设计方法学
设计并行算法的四个阶段:
- Partitioning 划分:分解成小的任务,开拓并发性;
- Communication 通讯:确定诸任务间的数据交换,检测划分的合理性;
- Agglomeration 组合:依据任务的局部性,组合成更大的任务;
- Mapping 映射:将每个任务分配到处理器上,提高算法的性能。
四、并行算法性能测评
加速比性能定律
并行系统加速比:并行算法的执行速度相对于串行算法的执行速度加快了多少倍。
参数定义:
- P:处理器数;
- W:问题规模;Ws,串行分量;f是串行分量比例;Wp:可并行化部分;Ws+Wp=W;
- Ts=T1:串行执行时间;Tp:并行执行时间;
- S:加速比。
Amdahl 阿姆达尔定律
应用于实时性要求较高的科学计算。
- 固定不变的计算负载;
- 固定的计算负载分布在多个处理器上;
- 增加处理器加快执行速度,从而达到了加速的目的;
- Tp随处理器个数增多而减少,T1不变。
考虑额外开销W0时:
Gustafson 古斯塔夫森定律
- 应用于精度要求较高的科学计算。
- 很多大型计算,精度要求较高,而计算时间固定不变;
- 为了提高精度,必须加大计算量,因此必须相应增加处理器数量才能维持时间不变。
考虑额外并行开销时:
Sun Ni 孙-倪定律
- 提出了存储受限的加速定律。
- 只要存储空间许可,应尽可能增大问题规模以产生更好和更精确的解。(执行时间可能增加)
- G(p):存储容量增加到p倍时并行工作负载的增加情况。W‘ = G(p)
- 扩大存储容量后的工作负载W = fW+(1-f)G(p)W。
云计算学习笔记1——并行计算相关推荐
- 云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin
云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin ...
- 云计算学习笔记002---云计算的理解及介绍,google云计算平台实现原理
什么是云计算: l 说的明白一点: • 云计算其实就更大限度的发挥网络的资源. • 那为什么叫云,为什么不到互联网计算?Cloud l 大多数计算的网络拓扑图都用一块"云&qu ...
- 云计算学习笔记-001---对云计算的了解
1. a.长定义是:"云计算是一种商业计算模型.它将计算任务分布在大量计算机构成的资源 池上,使各种应用系统能够根据需要获取计算力.存储空间和信息服务." b.短定义是:&q ...
- 云计算学习笔记:什么是云?云计算是什么?
"云"实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取"云"上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可 ...
- 云计算学习笔记——第一章 云计算介绍
1.什么是云计算 根据没过国家标准与技术研究院(NIST)定义:云计算是一种模型,它可以实现随时随地,便捷地,随机应变地从可配置计算资源共享池中获取所需资源(如,网络.服务器.存储.应用及服务), ...
- 文件数据云计算学习笔记---Hadoop HDFS和MapReduce 架构浅析
本文是一篇关于文件数据的帖子 媒介 Hadoop是一个基于Java的分布式麋集数据处理和数据分析的软件框架.Hadoop在很大程度上是受Google在2004年白皮书中论述的MapReduce技术的启 ...
- 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
Java技术qq交流群:JavaDream:251572072 Hadoop HDFS和MapReduce 架构浅析 前言 Hadoop是一个基于Java的分布式密集数据处理和数据分析的软件框架.Ha ...
- 云计算学习笔记004---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载
1.Hadoop简介 1.hadoop的诞生 l Nutch和Lucene之父Doug Cutting在2006年完成Hadoop项目. l Hadoop并不是一个单词,它来源于DougCutti ...
- 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
1.Hadoop简介 1.hadoop的诞生 l Nutch和Lucene之父Doug Cutting在2006年完成Hadoop项目. l Hadoop并不是一个单词,它来源于Doug Cutt ...
最新文章
- 燃烧温度计算程序_【知识库】燃气燃烧器如何安全操作?
- 如何用JavaScript判断前端应用运行环境(移动平台还是桌面环境)
- Windows11怎么关机重启?Windows11的关机键在哪?
- 华为云ModelArts 2.0全面升级,革新传统AI开发模式
- linux xfs字体服务安装6,Linux系统中安装中文字体方法
- Pycharm 新版本打开md文件卡死-解决办法
- Windows 2003网络负载均衡的实现
- 微信聊天api接口调用代码
- @Resource详解
- 爱尔兰咖啡(作者:痞子蔡)
- 暴风播酷云J3455局域网smb传输不稳定的另一种解决方案
- Windows下LATEX排版论文攻略—CTeX、JabRef使用心得, 包括 IEEEtran.bst
- 7针oled显示中文及图片arduino。ug8lib
- 全新整理 微软 谷歌 百度等公司经典面试100题 第101 160题
- java飘落的雪花_[Java教程]实现雪花飘落效果
- codeforces 855-B. Marvolo Gaunt's Ring
- 概率论(离散型)极简入门
- 晚上学习效率太低怎么办?
- ie-css3.htc兼容ie8
- HP小型机的信息的命令集
热门文章
- 【Qt】2D基本绘图操作——QPainter执行绘制及绘图设备介绍
- 【UCIe】初识 UCIe
- 什么是内存屏障?具有什么作用?
- 最新车载CarPlay盒子中方案内部配置参数
- 接口管理系统 eoLinker-AMS 开源版 V3.5.0 发布更新
- workbench中施加预紧力进行模态分析
- ESP32_学习笔记(一)NVS的操作(存储和读取大数组)(为什么存入数据成功,读取却为零的原因)
- 【滤波专题-第3篇】IIR无限冲激响应和FIR有限冲激响应数字滤波器有什么区别?
- PTA 3+2转段 数据库 mysql (3篇)
- 牛客网C语言 算学分绩