47
1 并行计算 潘建瑜 华东师范大学数学系 [email protected]

并行计算 - East China Normal University

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 并行计算 - East China Normal University

1

并 行 计 算

潘建瑜华东师范大学数学系

[email protected]

Page 2: 并行计算 - East China Normal University

2

主要内容

并行计算介绍

Linux 操作系统与编程环境

Fortran / C 编程介绍

并行编程环境 — OpenMP

并行编程环境 — MPI

并行程序性能评价与优化

并行算法设计(数值计算)

Page 3: 并行计算 - East China Normal University

3

课程信息

《并行计算与实现技术》,迟学斌等,科学出版社,2015

《并行计算导论》,张林波等,清华大学出版社,2006

其它见课程主页

上机安排:课堂通知

课程主页:

http://math.ecnu.edu.cn/~jypan/Teaching/ParaComp

主要参考资料:

教材:以课堂讲义为主

Page 4: 并行计算 - East China Normal University

4

第一讲

并行计算介绍

Page 5: 并行计算 - East China Normal University

5

并行计算介绍

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 6: 并行计算 - East China Normal University

6

并行计算

(高性能计算、超级计算)

大任务分解

多个子任务

不同处理单元

分给

快速求解协同合作

基本条件:硬件(并行机)、并行算法设计、并行编程环境

主要目标: 提高求解速度,求解更大规模的问题

什么是并行计算

Page 7: 并行计算 - East China Normal University

7

并行计算研究内容

研究内容

并行计算机的体系结构

并行算法设计与分析

并行实现技术:编程实现,优化性能

并行应用:开发并行应用软件

Page 8: 并行计算 - East China Normal University

8

并行计算机的发展

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 9: 并行计算 - East China Normal University

9

第一台计算机

1946 年,世界上第一台计算机 ENIAC 诞生( Electronic Numerical Integrator And Computer,

电子数值积分计算机,美国宾夕法尼亚大学)

占地约 170 平方米, 重约 30 吨,耗电150千瓦运算速度:5000 次加法/秒或 500 次乘法/秒 15分钟换一个零件(真空管)用途:弹道计算和氢弹研制

冯·诺依曼现代计算机之父数学博士

Page 10: 并行计算 - East China Normal University

10

第一台并行计算机

1972 年,第一台并行计算机 ILLIAC IV(美国伊利诺依大学)

60 年代末开始建造,72 年建成

74 年运行第一个完整程序, 76年运行第一个应用程序

64 个处理器,是当时性能最高的CDC7600 机器的 2-6倍

公认的1981年前最快,1982年退役

可扩展性好,但可编程性差

Page 11: 并行计算 - East China Normal University

11

超级计算元年

超级计算元年的标志:Cray-1 向量机

一般将 Cray-1 投入运行的 1976 年称为 “ 超级计算元年”编程方便,但可扩展性差以 Cray 为代表的向量机称雄超级计算机界十几载

Cray-1原型

西摩 • 克雷 Seymour Cray(1925-1996) ,电子工程学学士,应用数学硕士,超级计算之父,

Cray研究公司的创始人,亲手设计了Cray机型的全部硬件与操作系统,作业系统由他用机器码编写完成。1984年时,公司占据了

超级计算机市场 70%的份额。1996年Cray研究公司被SGI收购,2000年被出售给Tera计算机公司,成立Cray公司。2012年12月全球排名第一的超级计算机由克雷公司制造的Cray XK7组建。

Page 12: 并行计算 - East China Normal University

12

80 年代早期

80 年代百家争鸣

早期:以 MIMD 并行计算机的研制为主

Denelcor HEP (1982年)第一台商用 MIMD 并行计算机

Cray X-MP Cray 研究公司第一台 MIMD 并行计算机

IBM 3090 80 年代普遍为银行所采用

Page 13: 并行计算 - East China Normal University

13

80 年代中期

中期:共享存储多处理机 Shared-Memory MultiProcessor

SMP (Symmetrical Multi-Processing)在一个计算机上汇集一组处理器,各处理器对称共享内存及计算机的其他资源,由单一操作系统管理,极大提高整个系统的数据处理能力。

扩展性较差可靠性较差内存访问瓶颈

Page 14: 并行计算 - East China Normal University

14

80 年代后期

后期:具有强大计算能力的并行机

通过二维 Mesh 连接的 Meiko(Sun)系统超立方体连接的 MIMD 并行机:nCUBE-2、iPSC/80共享存储向量多处理机 Cray Y-MP ··· ···

Page 15: 并行计算 - East China Normal University

15

90 年代:DSM 90 年代:体系结构框架趋于统一 (DSM、MPP、NOW)

DSM (Distributed Shared Memory)分布式共享存储以结点为单位,每个结点有一个或多个 CPU专用的高性能互联网络连接(Myrinet, Infiniband, … )分布式存储:内存模块局部在每个结点中单一的操作系统,单一的内存地址空间可扩展到上百个结点,支持消息传递、共享存储并行程序设计

Page 16: 并行计算 - East China Normal University

16

90 年代:MPPMPP(Massively Parallel Processing)大规模并行处理结构每个结点相对独立,有一个或多个微处理器每个结点有自己的操作系统和独立内存,避免内存访问瓶颈各个结点只能访问自己的内存模块扩展性较好 DM-MPP:每个结点仅包含一个微处理器; SMP-MPP:每个结点是一台 SMP 并行机 DSM-MPP:每个结点是一台 DSM 并行机

Page 17: 并行计算 - East China Normal University

17

90 年代:NOW NOW(Network of Workstations)工作站机群每个结点都是一个完整的工作站,有独立的硬盘与UNIX系统结点间通过低成本的网络(如千兆以太网)连接每个结点安装消息传递并行程序设计软件,实现通信、负载平衡等投资风险小、结构灵活、可扩展性强、通用性好、异构能力强,

被大量中小型计算用户和科研院校所采用

也称为 COW(Cluster of Workstations) NOW(COW)与 MPP 之间的界线越来越模糊

Page 18: 并行计算 - East China Normal University

18

90 年代:NOW NOW 的典型代表:Beowulf cluster 微机机群:性价比极高

世界上第一台 Beowulf 集群,1994年

Page 19: 并行计算 - East China Normal University

19

2000 年至今

2000 年至今:前所未有大踏步发展

Cluster 机群 / 集群

Constellation 星群

每个结点含多个商用处理器,结点内部共享存储采用商用机群交换机通过前端总线连接结点,结点分布存储各个结点采用 Linux 操作系统、GNU编译系统和作业管理系统

每个结点是一台子并行机采用商用机群交换机通过前端总线连接结点,结点分布存储各个结点运行专用的结点操作系统、编译系统和作业管理系统

MPP专用高性能网络,大多为政府直接支持

Page 20: 并行计算 - East China Normal University

20

并行计算机发展趋势

并行计算机发展趋势

2009 年国际超级计算大会主席汉斯•缪尔(Hans Meuer)与德国Prometeus公司咨询专家霍斯特•基尔特(Horst Gietl)撰文总结了目前超级计算领域的主要发展趋势,探讨了多核/众核、并行计算、GPU、绿色IT、能效、数据、云计算等关键问题。

用多核/众核CPU组建大规模集群系统并行计算不可或缺,并行编程工具的发展远远落后于硬件的发展 GPU与多核CPU的竞争绿色IT与能耗,如散热通过水冷回收,由于供暖数据存储(固态存储器)网格计算,云计算

Page 21: 并行计算 - East China Normal University

21

我国并行计算机的发展

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 22: 并行计算 - East China Normal University

22

我国第一台计算机

103型,运行速度 1500次每秒

1958 年第一台国产计算机诞生 — 103型计算机

109丙机(1968),两弹一星“功勋机”

Page 23: 并行计算 - East China Normal University

23

我国的并行机

我国的超级计算机系列

曙光:中科院计算所,曙光公司,上海超算中心

深腾:联想集团

银河:国防科大

神威:国家并行计算机工程技术研究中心

天河:国防科大

Page 24: 并行计算 - East China Normal University

24

银河

1992年, “银河-II” 问世,每秒运算达10亿次 1997年, “银河-III”问世,每秒运算达130亿次

银河一号: 1983年12月,我国第一台每秒运算达1亿次以上的计算机

Page 25: 并行计算 - East China Normal University

25

神威

神威 I1999年,国家并行计算机工程技术研究中心牵头研制,峰值3840亿次/秒

神威 • 太湖之光2016年,峰值运算速度达每秒12.5亿亿次自2016年6月起,连续四次 Top500 排名第一,目前排名第三,国内第一

Page 26: 并行计算 - East China Normal University

26

曙光

1993年10月,国家智能计算机研究开发中心(后成立曙光信息产业公司)

研制成功“曙光一号”SMP多处理机

2004年6月,推出 11万亿次的曙光4000A超级计算机,Top500排名第十

2008年6月,曙光5000A发布,实际速度超160万亿次,Top500排名第十

2011年6月,曙光6000,实际速度超1200万亿次,Top500排名第四

曙光 6000

Page 27: 并行计算 - East China Normal University

27

深腾

2002年,联想发布深腾1800,Top500排名43,成为首家正式进入排行榜前100的中国企业

2003年,深腾6800发布,Top500排名14,其78.5%的整机效率列世界通用高端计算机第一名

2008年12月,联想发布百万亿次超级计算机深腾7000 ,Top500排名19

深腾7000

Page 28: 并行计算 - East China Normal University

28

天河 2009年10,中国首台千万亿次超级计算机“天河一号”诞生,使中国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。

2010年10月,升级后的天河一号排名Top500第一

2013年6月,天河二号再次问鼎世界第一,功耗达24兆瓦,也是目前TOP500里功耗最大的

2017年7月,使用国产加速器 Matrix 2000的天河二号问世,在17年11月的Top500排名位列第2(第一是太湖之光),目前排名第4

Page 29: 并行计算 - East China Normal University

29

我国并行计算机的发展

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 30: 并行计算 - East China Normal University

30

世界最快超级计算机

Top 500:http://www.top500.org2019.06

Page 31: 并行计算 - East China Normal University

31

TOP500

榜单显示,中国有219台超算上榜,数量最多,其次是美国

(116台)和日本(29台)。

联想是上榜超算数量最多的公司 (173台),其次是浪潮 (71台)

和中科曙光 (63台)

Page 32: 并行计算 - East China Normal University

32

TOP500 2013 年的数据2019 年的数据

Page 33: 并行计算 - East China Normal University

33

TOP500

计算机类型与操作系统

2013 年的数据

Page 34: 并行计算 - East China Normal University

34

发展趋势

Page 35: 并行计算 - East China Normal University

35

我国并行计算机的发展

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 36: 并行计算 - East China Normal University

36

微处理器多级存储结构

微机机群的一次消息传递延迟相当于50000 次峰值浮点运算。

Page 37: 并行计算 - East China Normal University

37

微处理器多级存储结构

微处理器主频越来越高,内存容量越来越大,

但内存访问速度的增长较慢

缓解内存墙性能瓶颈:Cache 高速缓存

Cache 工作原理:略

(参见《并行计算导论》)

Page 38: 并行计算 - East China Normal University

38

并行计算机体系结构

组成要素

结点(node):一个或多个处理器组成

互联网络(interconnetct network):连接结点

内存(memory):多个存储模块组成

Page 39: 并行计算 - East China Normal University

39

并行计算机体系结构并行计算机体系结构示意图

内存模块与结点分离

并行计算机体系结构示意图

内存模块位于结点内部

Page 40: 并行计算 - East China Normal University

40

并行计算机体系结构

并行计算机互联网络拓扑结构:略

(见教材或参考资料)

并行计算机内存访问模式:略

(见教材或参考资料)

Page 41: 并行计算 - East China Normal University

41

操作系统与编程环境

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 42: 并行计算 - East China Normal University

42

操作系统与编程语言

并行计算机主流操作系统:UNIX / Linux

AIX(IBM) HPUX(HP) Solaris(SUN) IRIX(SGI) Linux

编程语言

Fortran 77/90/95 C/C++

Page 43: 并行计算 - East China Normal University

43

进程与线程

进程(process)运行中的程序

各个进程拥有独立的执行环境

进程间通信

同一台处理机或不同处理机的多个进程之间交流信息

通信(消息传递)、同步、聚集

线程(threads)

降低系统管理开销

一个进程可以含一个或多个线程

Page 44: 并行计算 - East China Normal University

44

并行编程环境

常见的并行编程环境

消息传递、共享存储、数据并行

消息传递 共享数据 数据并行

典型代表

可移植性

存储方式

学习难度

可扩展性

MPI,PVM

所有流行并行机

分布式存储

较难

OpenMP

SMP,DSM

共享存储

容易

较差

HPF

SMP,DSM,MPP

共享存储

偏易

一般

三种并行编程环境主要特征一览

Page 45: 并行计算 - East China Normal University

45

并行算法

什么是并行计算

并行计算机的发展

我国并行计算机的发展情况

当今最快的超级计算机

并行计算机体系结构

操作系统与并行计算编程环境

并行算法介绍

Page 46: 并行计算 - East China Normal University

46

并行算法

适合在并行机上实现的算法

好的并行算法应充分发挥并行机计算机的潜在性能

并行算法

并行算法分类按运算对象:数值并行算法、非数值并行算法

按并行进程执行顺序:同步并行算法、异步并行算法

按计算任务:细粒度并行算法(基于向量和循环级并行)中粒度并行算法(基于较大的循环级并行)大粒度并行算法(基于子任务级并行)

Page 47: 并行计算 - East China Normal University

47

并行算法设计

以 MIMD 为主

(Multiple Instruction Stream Multiple Data Stream)

可扩展、可移植

大粒度任务级并行(CPU) / 细粒度(GPU)

每个进程发挥单机性能 / 负载平衡

(数据结构、程序设计、通信方式)

并行算法设计