目录

  • 并行计算介绍
    • 推动并行化
      • 计算能力因素 —— 从晶体管到浮点运算速度
      • 内存及磁盘速度的因素
      • 数据通信因素
    • 并行计算适用范围
      • 在工业及设计中的应用
      • 科学计算中的应用
      • 商业应用
      • 计算机系统中的应用
  • 并行编程平台
    • 隐式并行:微处理器系统结构的发展趋势
      • 流水线与超标量执行
      • 超长指令字(VLIW)处理器
    • 内存系统性能的局限
      • 使用高速缓存改善有效内存延迟
      • 内存带宽的影响
      • 躲避内存延迟的其他方法
    • 并行计算平台剖析
      • 并行平台的控制结构
      • 并行平台的通信模型
    • 并行平台的物理组织
      • 理想并行计算机的体系结构
      • 并行计算机互连网络
      • 网络拓扑结构
      • 静态互联网络评价
      • 动态互连网络评价
      • 多处理器系统中的高速缓存一致性
    • 并行计算机的通信成本

并行计算介绍

推动并行化

计算能力因素 —— 从晶体管到浮点运算速度

  • 摩尔定律:芯片的晶体管数量每18个月增长一倍。

内存及磁盘速度的因素

  • 总体计算速度并非仅仅由处理器一个因素所决定,也取决于内存系统向处理器提供数据的能力。
  • DRAM:动态随机存取存储器
  • 处理器与动态随机存取存储器之间的净有效带宽也对持续计算速度产生影响。
  • 内存系统的总体性能是由高速缓存能够满足总内存需求的部分决定的

数据通信因素

并行计算适用范围

在工业及设计中的应用

  • 机翼设计
  • 内燃机设计
  • 高速电路设计
  • 结构设计

科学计算中的应用

  • 一些最新的并行计算技术专门针对生物信息学方面的应用而发展的
  • 计算物理/化学, 强调对尺度从量子现象到大分子结构之间变化过程的理解
  • 天体物理, 银河系的演化过程及热核反应
  • 气象模型、矿物勘探、洪水预测等

商业应用

  • 超级计算机

计算机系统中的应用

并行编程平台

传统意义上的串行计算机是由经数据通道连接到处理器的内存所组成的,处理器、内存及数据通道 形成计算机系统总体处理速度的瓶颈。 → \rightarrow → 多处理器、多数据通道、多内存单元。

隐式并行:微处理器系统结构的发展趋势

流水线与超标量执行

  • 为了提高单个流水线的速度,可以将任务分成更小的单元,这样就能使流水线变长,增加执行时的重叠时间(overlap)
  • 超标量执行的相关性:
    • 程序中的指令很可能彼此相关:真实数据相关性(true data dependency)
    • 多个流水线分享有限的资源:资源相关性(resource dependency)
    • 控制流程造成指令间的相关性:分支相关性(branch dependency)/ 过程相关性(procedural dependency)
  • 超标量体系结构的性能受到可用指令级并行性的限制:
    • 垂直浪费(vertical waste):一个周期中执行部件没有指令发送
    • 水平浪费:一个周期周只用到部分执行部件
    • 例:如果总共8个可用周期中只有3个用于计算,这就意味着代码段的运算速度不会超过处理器峰值浮点运算速度的3/8

超长指令字(VLIW)处理器

  • 由超标量处理器抽出的并行性通常收到指令预测的限制,在常规处理器中,用于动态相关性分析的硬件逻辑一半占总逻辑的5% - 10%, 复杂度大约以发送指令数的二次方增长,导致瓶颈。
  • 超长指令字把能够并发执行的指令并入到一个组里,作为一个超长指令字。

内存系统性能的局限

  • 内存系统可能由多级缓存构成,当它收到一条内存字请求,在l纳秒的延迟后,会返回大小为b的包含请求字的数据块。l称为内存的延迟(latency),数据从内存送到处理器的速度决定了内存系统的带宽(bandwidth)

E.g. 内存延迟对性能的影响
考虑某一处理器以1 GHz (1纳秒时钟)运行,与之相连的DRAM(动态随机存取存储器)有100纳秒的延迟。假设处理器有2个乘法-加法部件,在每个1纳秒的周期内能执行四条指令。这样处理器的峰值速度就使4 GFLOPS。由于内存延迟时间等于100个周期,并且块大小为1个字,每次发送内存请求时,处理器在处理数据前必须等待100个周期。
考虑计算向量点积,每一次浮点运算都要取一次数据。最大速度为100MFLOPS (100纳秒1次)。

使用高速缓存改善有效内存延迟

  • 高速缓存:低延迟高带宽的存储器。由高速缓存提供的数据份额称为高速缓存命中率(hit ratio)。
  • 许多应用程序有效的运算速度不仅仅受CPU处理速度的限制,还受能送到CPU的数据传送速度的限制 → \rightarrow → 内存首先(memory bound)。
  • 高速缓存命中率严重影响受内存首先程序的性能。
    E.g. 继上个例子
    加入一个32KB 和延迟时间为1纳秒的高速缓存。进行3232的矩阵A和B相乘。将两个矩阵取到高速缓存中等同于2K字(23232),200微秒。两个nn的矩阵相乘需要进行2n^3次运算(nn(2n)),64K操作。每个周期执行4条指令,需要16K周期。总时间大概是216微秒。是前一个例子的30倍。
  • 在一段段的时间间隔内重复引用数据项的概念称为引用的时间本地性(temporal locality)。

内存带宽的影响

  • 数据在内存与处理器间传送的速度。
  • 假设某一内存请求返回4个字的连续块,这种4个字的单一单元也称为高速缓存行(cache line)。
  • 在上上例中,如果把块大小增加到4个字,两次访问能取出每个向量中的4个元素,最大速度变成40MFLOPS。
  • 内存中连续的数据字被连续的指令使用,如果以计算为中心,那么就有内存访问的空间本地性(spatial locality)。如果计算不具有空间本地性,那么有效带宽就会比最大带宽小得多。

躲避内存延迟的其他方法

  • 预取(prefetching): 预测要浏览的网页,并提前发送请求
  • 多线程(multithreading):打开多个浏览器,每个浏览器访问不同的网页
  • 一次访问多个页面,在多个访问中分摊延迟。

并行计算平台剖析

并行平台的控制结构

并行计算的处理器可以在单一控制部件的集中控制下运行,也可以独立运行。

  • 单指令流多数据流(single instruction strem, multiple data stream, SIMD)单一控制部件向每个处理部件分派指令。同样的指令被所有的处理部件同时执行。
  • 多指令流多数据流(multiple instruction stream, multiple data stream, MIMD),用同一程序的多个实例在不同数据上执行。

并行平台的通信模型

并行任务间有两种主要的数据交换方式:访问共享数据空间以及交换消息。

  1. 共享地址空间平台:支持SPMD编程的共享地址空间平台也称为多处理器(multiprocessor),如果处理器访问系统中任何内存字(全局或本地)的时间都相同,平台就归类为一致内存访问(uniform memory access,UMA)。
  2. 消息传递平台:从计算机逻辑观点上说,消息传递平台由p个处理节点构成,每个节点都有自己的独立地址空间。运行在不同节点上的进程之间的交互必须用消息来完成,消息传递(message passing)。

并行平台的物理组织

理想并行计算机的体系结构

串行计算模型(随机访问计算机或RAM)的一种自然扩展包含p个处理器以及大小不受限制的全局内存,所有处理器同样可以访问该内存。所有处理器访问同样的地址空间,共享一个公用的时钟,但在每个周期内可以执行不同指令。并行随机访问计算机(parallel random access machine, PRAM)。

并行计算机互连网络

  • 互连网络提供多个处理节点之间或处理器与内存模块之间的数据传输的机制。互连网络氛围静态和动态两种。动态网络也称为非直接网络,其节点通过开关网络与其他节点相连。

网络拓扑结构

  • 基于总线的网络包含一个所有节点公用的共享介质。总线的成本与节点数目p是线性关系。网络中任意两个节点间的距离是常数(O(1))。对于一般程序来说,大多数访问的数据对节点是本地的,对于这样的程序,可以为每个节点提供高速缓存,似有数据存放在节点的高速缓存中,只有远程数据才通过总线存取。
  • 交叉开关网络:一种非拥塞网络,连接一个处理节点与存储区不会拥塞其他任何处理节点与存储区之间的连接。要实现这样的网络,需要的开关节点总数为 θ ( p b ) \theta(pb) θ(pb),从成本的角度上讲,交叉开关网络的可扩展性不好。
  • 多级网络:(multistage interconnection network),比总线网络在性能方面的可扩展性强,又比交叉开关网络在成本上可扩展性强。omega网络是一种常用的多级互连网络,级数为logp,p是输入的数目,也是输出的数目。网络成本随 θ ( p l o g p ) \theta(plogp) θ(plogp)增加。在omega网络中,某一处理器对某一存储区的访问可能不允许其他处理器对其他存储区的访问,具有这种性质的网络称为阻塞网络(blocki network)。
  • 全连接网络:(completely-connected network),每个节点到其他所有节点都存在直接通信链路。全连接网络是交叉开关网络的静态对应网络,因为在这两种网络中,任意输入/输出对之间的通信都不会阻塞其他任何对之间的通信。
  • 星型连接网络:某一处理器作为中央处理器,其他的每个处理器有一条通信链路与中央处理器相连。中央处理器是星型结构的瓶颈。
  • 线性阵列、格网和k-d格网:k-d格网是一种拓扑结构,它有d维,每一维上有k个节点。一般而言,d维超立方体由连接两个(d-1)维超立方体的相应节点构成。
  • 基于树的网络:(tree network),是指网络中任意一对节点间只存在一条通路的网络。线性阵列和星型连接网络都是树网络的特例。

静态互联网络评价

  • 直径:网络中任意两个处理节点之间的最长距离称为网络直径(diameter)
  • 连通性:(connectivity),连通性的一个度量是将一个网络分为两个不连通的网络需要删去的最少弧数目。
  • 对分宽度及对分带宽:(bisection width),是把网络分为两个相等网络时必须删去的最小通信链路数目。

动态互连网络评价

多处理器系统中的高速缓存一致性

  • 无效协议(invalidate)和更新协议(update),在变量的n个副本中,当处理器修改变量的一个副本时,要么必须使其他的副本无效,要么必须使其他的副本更新。
  • 假共享:(false sharing)不同的处理器更新相同高速缓存行中不同部分的情况。

并行计算机的通信成本

决定通信延迟的主要参数有:

  1. 启动时间:在发送节点和接受节点处理消息所花费的时间
  2. 每站时间:当消息离开一个节点后,需要花一定的时间到达路径上的下一个节点。消息头在两个直接连接的节点间传递所花费的时间称为每站时间,也称为节点延迟(node latency)
  3. 每字传送时间

【课程】并行计算导论相关推荐

  1. 计算机科学课程——计算机导论

    ## 第一章 绪论 1.第一节 计算机概述 -定义:一种能够按照事先储存的程序,自动.高速地对数据进行输入.处理.储存和输出的系统 -组成:硬件 hardware (处理器.储存器.I/O设备) 软件 ...

  2. 本课程中拟学的计算机思维,南京理工大学计算机科学导论 第1章计算机、计算与计算思维练习题答案解析...

    大学基础课程,计算机导论 第1章计算机.计算与计算思维 1.各种自动化设备,如数控机床.自助加油站中有计算机吗? (A)YES:(B) NO 2.计算机包括___D__. (A)台式机.便携机: (B ...

  3. Big Data 导论HadoopHDFS

    BIG DATA课程笔记 导论 大数据的四大特征 ​ 大量化.快速化.多样化.价值化 大数据分析的三个特征 ​ 全样而非抽样.效率而非精确.相关而非因果 大数据处理模型: ​ 批处理:以"静 ...

  4. 推荐 :数据科学与大数据技术专业特色课程研究

    在我国,数据科学与大数据技术专业的建设已成为新的热点话题.在系统调研世界一流大学数据科学专业建设现状的基础上,从特色课程视角重点分析加州大学伯克利分校.约翰·霍普金斯大学.华盛顿大学.纽约大学.斯坦福 ...

  5. 南开大学数学院本科生课程信息汇总表(2013.11.19)

          数学院本科生课程信息汇总表         课程代码 课程名称 英文课程名称 课程组成员 学分 先导课程 参考教材 作者 出版社 1010011090 概率论 江一鸣 4 数学分析 概率论 ...

  6. 【转载】知乎答案----孙志岗----Google 发布了程序员养成指南,国内互联网巨头是否也有类似的指南和课程推荐...

    国内公司在复制国外商业模式的同时,也应复制人家的社会担当.所以,来答题了!就参考 Google 的框架,列一下中文的课程.大体上在线学完一个计算机专业,是基本不成问题的.但是,这不意味着你可以不上大学 ...

  7. 深入理解计算机系统 相关课程,深入理解计算机系统

    作者简介: Randal E. Bryant   1981年于麻省理工学院获得计算机博士学位,1984年至今一直任教于卡内基-梅隆大学.现任卡内基-梅隆大学计算机科学学院院长.教授,同时还受邀任教于电 ...

  8. 各个专业375个国家级精品课程的网址

    中国古代文学史 ; 复旦大学 ; 骆玉明 ; 文学 ; 中国语言文学类 链接:http://vcampus.fudan.edu.cn/jpkc/jpkcList.htm: 用户名:无: 口令:无: 备 ...

  9. 《SDN软件定义网络从入门到精通》导论课

    https://mp.weixin.qq.com/s?__biz=MjM5MTM3MzIzMg==&mid=209513316&idx=1&sn=e5dbd9a2ccccb88 ...

最新文章

  1. Provisioning Services 7.8 入门系列教程之十四 UEFI支持和BOOTPTAB 编辑器
  2. 彻底解决 gcr、quay、DockerHub 镜像下载难题!
  3. Android横竖屏切换继续播放视频
  4. html 多行多列列表格,HTML跨多行跨多列表格.doc
  5. Linux 中将用户添加到组的指令
  6. linux代码工具tag,gcov-dump原理分析_Linux平台代码覆盖率测试
  7. php同时删除两个列表数据库,PHP 处理 数据库多表,既能高效又能思路清晰如何处理的?...
  8. SAP License:HP面试手记
  9. [Nginx] – 性能优化 – 配置文件优化
  10. ORACLE按用户名重建索引
  11. Java开发环境搭建及开发软件和服务器安装与配置
  12. px,em,rem单位转换工具
  13. html制作摩天轮,LED幻彩摩天轮的制作方法
  14. 拼音工具类(多音字处理)
  15. 机器学习数学基础二:泰勒公式与拉格朗日
  16. Memcached是什么,有什么作用?
  17. python测量镜头到目标距离,如果从相机(校准)到我的物体的距离是固定的,我如何测量物体的宽度?...
  18. 华为Routing Switching切换为Datacom,究竟变了些什么
  19. jQuery fadeOut() 方法
  20. Hibernate使用原生SQL查询

热门文章

  1. 百度编辑器 toolbars参数说明
  2. monit(一)--在centos7.4中编译安装monit
  3. 硬盘写保护怎么去掉--亲测有效
  4. Top-5 accuracy和Top-1 accuracy
  5. Web测试的各个测试点,居然这么全!(文末送web测试方法大全一份)
  6. Mac上手动配置局域网IP
  7. 新版BIOS设置U盘启动
  8. c语言常用英语带音标,计算机c语言常见英语单词 带音标.doc
  9. mPaas苹果安卓端都出现的进度条无限重复加载页面白屏问题
  10. 【机器学习自学笔记6】高斯混合模型(GMM)