1 / 74

并行计算基础

并行计算基础. 唐玉华、徐 新 海 计算机学院 611 教研室. 课程介绍. 并行计算基础 面向信息大类本科学员的研讨课 为什么要开 / 为什么要学? 生活已经进入并行时代 搞科研需要并行计算 科学研究的三种方法:理论、实验、 计算 很多 研究都需要大规模并行计算 作为一名国防科大的理工科学员 银河、天河. 课程介绍. 研讨课 20 学时: 8 课堂讲授 +8 实验 +2 研讨 +2 报告 了解知识 并行计算相关概念 并行计算典型体系结构和编程模型 并行计算的问题及对策 掌握方法 熟练使用 MPI 库进行并行编程 远程使用超级计算机平台

Download Presentation

并行计算基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 并行计算基础 唐玉华、徐 新 海 计算机学院 611教研室

  2. 课程介绍 • 并行计算基础 • 面向信息大类本科学员的研讨课 • 为什么要开/为什么要学? • 生活已经进入并行时代 • 搞科研需要并行计算 • 科学研究的三种方法:理论、实验、计算 • 很多研究都需要大规模并行计算 • 作为一名国防科大的理工科学员 • 银河、天河 计算机程序设计

  3. 课程介绍 • 研讨课 • 20学时:8课堂讲授+8实验+2研讨+2报告 • 了解知识 • 并行计算相关概念 • 并行计算典型体系结构和编程模型 • 并行计算的问题及对策 • 掌握方法 • 熟练使用MPI库进行并行编程 • 远程使用超级计算机平台 • 锻炼能力 • 编程求解问题、演示报告、撰写论文 计算机程序设计

  4. 课程介绍 • 教学内容 • 并行计算概述(2学时) • 并行计算机体系结构与编程模型(2学时) • MPI并行程序设计(4学时+4学时) • 并行问题研讨(2学时+4学时) • 学生报告(2学时) • 考核形式 • 编程作业30%+演示报告30%+小论文40% • 上课不到或作业不完成扣5分 计算机程序设计

  5. 课程介绍 • 参考资料 • 并行程序设计导论(英文版),Pacheco(美), 机械工业出版社,2011 • Principles of Parallel Programming, Calvin Lin et al. 机械工业出版社影印,2008 • 高性能计算并行编程技术—MPI并行程序设计,都志辉著. 清华大学出版社,2001 • 任课教员 • 唐玉华研究员 • 徐新海助研:13574846588,xuxinhai@gfkd.mtn • 辅导教员 • 郭晓威博士:13874946515,guoxiaowei@gfkd.mtn 计算机程序设计

  6. 第一讲 并行计算概述 并行计算基础

  7. 本讲主要内容 • Why并行计算 • 并行计算的概念与要素 • 并行计算机的发展 • 并行计算的度量 并行计算基础

  8. 身边的并行计算 • 超级计算机——TH-1A • 14336颗X5670CPU • 2048颗FT-1000CPU • 7168颗Nvidia Tesla M2050 GPU • 共186368核 并行计算基础

  9. 身边的并行计算 • 超级计算机 • 电脑 • ThinkPad X230 • CORE i7-3520M(双核) • iPad 4 • Apple A6X(双核) 并行计算基础

  10. 身边的并行计算 • 超级计算机 • 电脑 • 手机 • iPhone 5 • Apple A6处理器(双核) • GALAXY Note 2 • 三星Exynos4412(四核) 为什么都需要并行计算呢? 并行计算基础

  11. Why并行计算 • 应用的需求 • 同时多任务 • 例如:一边听歌,一边编辑文档 • 对策:“人多分头干” Core 0 Core 1 并行计算基础

  12. Why并行计算 • 应用的需求 • 大规模应用表现出超高的计算能力需求 • 例如: • 高能/核物理 • 材料/化学 • 生命科学 • 航空宇宙计算 • 飓风预测 并行计算基础

  13. Why并行计算 • 应用的需求 • 大规模应用表现出超高的计算能力需求 • 对策:“人多力量大” VS 超强串行计算 大规模并行计算 并行计算基础

  14. Why并行计算 • 微电子技术的发展 • 半导体线宽不断降低 并行计算基础

  15. Why并行计算 • 微电子技术的发展 • 半导体线宽不断降低 • 功耗密度不断增加 并行计算基础

  16. Why并行计算 • 微电子技术的发展 • 半导体线宽不断降低 • 功耗密度不断增加 • 温度的上升直接影响芯片的可靠性 • 45纳米工艺,每百个芯片每月发生一次故障 • 16纳米工艺,每百个芯片每天发生一次故障 并行计算基础

  17. 单处理器的性能提升缓慢, • 且受到功耗和可靠性问题的困扰, • 因此,并行计算成为人们的选择 Why并行计算 • 微电子技术的发展 • 半导体线宽不断降低 • 功耗密度不断增加 • 温度的上升直接影响芯片的可靠性 • 单处理器的性能提升变缓 • 2002年前每年增长50% • 2002年之后每年增长20% 并行计算基础

  18. 本讲主要内容 • Why并行计算 • 并行计算的概念与要素 • 并行计算机的发展 • 并行计算的度量 并行计算基础

  19. 并行计算的概念 • 并行计算 • 同时利用多个计算资源去解决一个计算问题的计算模式 • 在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度或扩大求解应用问题的目的 并行计算基础

  20. 并行计算的概念 • 并行计算的三个基本条件 • 并行机 • 两个或两个以上计算资源 • 应用问题必须具有并行度 • 应用可以被分解为多个可并行执行的子任务 • 并行编程 • 具体实现并行算法,编写并行程序、运行该程序,以求解应用问题 并行计算基础

  21. 并行计算的概念 • 与并行相关的三个概念 • 同时(Concurrent)计算 • 一个程序包含多个任务,这些任务在任意时刻可以同时处理 • 并行(Parallel)计算(狭义) • 一个程序包含多个任务,这些任务通过紧密合作去解决一个问题 • 分布式(Distributed)计算 • 一个程序,可能需要与其它程序合作去解决一个问题 并行计算基础

  22. 并行计算的概念 • 与并行相关的三个概念 • 并行的或分布式的一定是同时的,前者紧耦合,后者松耦合 • 反之不成立,关键在于是否用于解决一个问题 • 举例 • 同时:多任务操作系统 • 并行:天气预报应用求解 • 分布式:网页搜索 本课程重点学习的就是这种狭义并行计算 并行计算基础

  23. 并行计算的要素 • 并行的粒度 • 指令级ILP:多功能部件同时执行不同的指令 并行计算基础

  24. 并行计算的要素 • 并行的粒度 • 指令级ILP:多功能部件同时执行不同的指令 • 指令流水:一条流水线,不同功能部件在同一时刻针对不同的指令进行不同的操作 并行计算基础

  25. 并行计算的要素 • 并行的粒度 • 指令级ILP:多功能部件同时执行不同的指令 • 指令流水 • 多发射:复制功能部件,同时执行不同指令 并行计算基础

  26. 并行计算的要素 • 并行的粒度 • 指令级ILP:多功能部件同时执行不同的指令 • 指令流水 • 多发射 • 并行关键 • 多功能部件(功能可相同,也可不同) • 可并行执行的指令,即无数据依赖 • 反例:a = b + c; d = a – 1; 并行计算基础

  27. 并行计算的要素 • 并行的粒度 • 数据级DLP:多个功能相同的部件同时对不同的数据进行相同的处理 并行计算基础

  28. 并行计算的要素 • 并行的粒度 • 数据级DLP:多个功能相同的部件同时对不同的数据进行相同的处理 • 典型应用场景——循环计算 • for(i=0;i<100;i++) A[i] = B[i] + C[i]; 并行计算基础

  29. 并行计算的要素 • 并行的粒度 • 数据级DLP:多个功能相同的部件同时对不同的数据进行相同的处理 • 典型应用场景——循环计算 • 实际应用 • 向量计算 • GPU • 并行关键 • 多个功能相同的运行部件 • 多个数据执行相同的操作(指令) 并行计算基础

  30. 并行计算的要素 • 并行的粒度 • 任务级TLP:多个处理器/核通过执行进程或线程,同时对不同或相同的数据进行处理 并行计算基础

  31. 并行计算的要素 • 并行的粒度 • 任务级TLP:多个处理器/核通过执行进程或线程,同时对不同或相同的数据进行处理 • 突出不同计算任务之间的并行性 • 一般情况下,进程或线程之间是需要交互数据的 • 并行关键 • 多处理器/核 • 任务的并行划分 并行计算基础

  32. 并行计算的要素 • 并行的粒度总结 • 在现阶段,指令级并行和数据级并行强依赖于计算机硬件的实现 • 指令级并行几乎完全由处理器硬件和编译器开发 • 数据级并行由程序员面向特点的处理器开发 • 在一般并行程序的设计过程中,程序员的主要工作是开发任务级并行 并行计算基础

  33. 并行计算的要素 • 创建并行计算(程序)的步骤 并行计算基础

  34. 并行计算的要素 • 几个重要概念 • 任务 • 在并行计算中任意不可分解的工作 • 自身顺序执行,同步发生在任务之间 • 粒度可细可粗 • 进程(/线程) • 具体执行任务的实体 • 之间通过通信/同步以共同完成计算 • 处理器 • 进程执行的具体物理引擎 并行计算基础

  35. 并行计算的要素 • 创建并行计算(程序)的步骤(一) • 分解(Decomposition) • 将计算分解,得到任务集合 • 任务的个数可能是变化的 • 任务执行需要数据 • 目标 • 适度的任务数 • 同一时刻有效的任务数决定了 计算的最大并行度 并行计算基础

  36. 并行计算的要素 • 创建并行计算(程序)的步骤(二) • 分配(Assignment) • 将任务划分给进程 • 目标 • 负载平衡 • 减少通信 • 减少管理开销 • 时机 • 静态:执行过程中分配不变 • 动态:自适应变化 并行计算基础

  37. 并行计算的要素 • 创建并行计算(程序)的步骤(三) • 编排(Orchestration) • 利用给定的编程模型和编程语言实现程序 • 组织数据结构 • 组织通信/同步 • 目标 • 降低通信/同步代价 • 降低并行化开销 • 减少空转 • 利用局部性 并行计算基础

  38. 并行计算的要素 • 创建并行计算(程序)的步骤(四) • 映射(Mapping) • 具体将哪些进程放到哪些处理器上去运行 • 目标 • 将交互密切的进程放近些 • 利用系统结构信息开发局部性 • 方式 • 直接绑定 • 操作系统决定 并行计算基础

  39. 本讲主要内容 • Why并行计算 • 并行计算的概念与要素 • 并行计算机的发展 • 并行计算的度量 并行计算基础

  40. 并行计算机的发展 • 巨型机的发展 • 向量机时代 并行计算基础

  41. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • 向量机时代 • Cray-1 • 时间:1976年 • 公司:Cray Research Inc • 性能:133MFlops 处理器数:1个 结构:向量处理 并行计算基础

  42. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • 向量机时代 • Cray X-MP • 时间:1982年 • 公司:Cray Research Inc • 性能:941MFlops 处理器数:4个 结构:并行向量 并行计算基础

  43. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • 向量机时代 • YH-1 • 时间:1983年 • 公司:国防科学技术大学 • 性能:100多MFlops 填补了国内巨型机的空白,使我国成为世界上少数几个拥有研制巨型计算机的国家之一 并行计算基础

  44. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • 向量机时代 • Cray 2 • 时间:1985年 • 公司:Cray Research Inc • 性能:3.9GFlops 处理器数:8个 结构:并行向量 并行计算基础

  45. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • 向量机时代 • YH-2 • 时间:1992年 • 公司:国防科学技术大学 • 性能:1GFlops 表明我国仿真机研制能力已跨入国际领先行列,使中国成为当今世界少数几个能发布中期数值预报的国家 并行计算基础

  46. 并行计算机的发展 • 巨型机的发展 • 向量机时代 • 技术路线遇到困难 • ECL器件的功耗高 • Cray-2采用液冷技术 • Cray-3、Cray-4都未能商业化 ECL电路 并行计算基础

  47. 并行计算机的发展 • 巨型机的发展 • 向量机时代 • 技术路线遇到困难 • ECL器件的功耗高 • Cray-2采用液冷技术 • Cray-3、Cray-4都未能商业化 • 对策:使用功耗相对较低的CMOS电路 • CMOS电路比ECL更难实现高主频 • 所以并行计算被认为是实现更高性能的主要技术途径 ECL电路 并行计算基础

  48. 并行计算机的发展 • 巨型机的发展 • MPP(Massively Parallel Processors)计算机 • 采用大量处理器(大多为商用) • 结点间使用定制高速互连网络相连(紧耦合) 并行计算基础

  49. 1 103 106 109 1012 1015 OneOPS KiloOPS MegaOPS GigaOPS TeraOPS PetaOPS 并行计算机的发展 • 巨型机的发展 • MPP计算机 • Cray-T3D • 时间:1993年 • 公司:Cray Research Inc • 性能:21.4GFlops 处理器数:256个 采用商用处理器 并行计算基础

  50. 并行计算机的发展 • 巨型机的发展 • MPP计算机 • Cray-T3D • Alpha 21064处理器 • 公司:DEC • 主频:150MHz主频 • 性能:150MFlops • 功耗:23W • Alpha指令集的首款商用处理器 并行计算基础

More Related