Post on 04-Nov-2021
1
并 行 计 算
潘建瑜华东师范大学数学系
jypan@math.ecnu.edu.cn
2
主要内容
并行计算介绍
Linux 操作系统与编程环境
Fortran / C 编程介绍
并行编程环境 — OpenMP
并行编程环境 — MPI
并行程序性能评价与优化
并行算法设计(数值计算)
3
课程信息
《并行计算与实现技术》,迟学斌等,科学出版社,2015
《并行计算导论》,张林波等,清华大学出版社,2006
其它见课程主页
上机安排:课堂通知
课程主页:
http://math.ecnu.edu.cn/~jypan/Teaching/ParaComp
主要参考资料:
教材:以课堂讲义为主
4
第一讲
并行计算介绍
5
并行计算介绍
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
6
并行计算
(高性能计算、超级计算)
大任务分解
多个子任务
不同处理单元
分给
快速求解协同合作
基本条件:硬件(并行机)、并行算法设计、并行编程环境
主要目标: 提高求解速度,求解更大规模的问题
什么是并行计算
7
并行计算研究内容
研究内容
并行计算机的体系结构
并行算法设计与分析
并行实现技术:编程实现,优化性能
并行应用:开发并行应用软件
8
并行计算机的发展
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
9
第一台计算机
1946 年,世界上第一台计算机 ENIAC 诞生( Electronic Numerical Integrator And Computer,
电子数值积分计算机,美国宾夕法尼亚大学)
占地约 170 平方米, 重约 30 吨,耗电150千瓦运算速度:5000 次加法/秒或 500 次乘法/秒 15分钟换一个零件(真空管)用途:弹道计算和氢弹研制
冯·诺依曼现代计算机之父数学博士
10
第一台并行计算机
1972 年,第一台并行计算机 ILLIAC IV(美国伊利诺依大学)
60 年代末开始建造,72 年建成
74 年运行第一个完整程序, 76年运行第一个应用程序
64 个处理器,是当时性能最高的CDC7600 机器的 2-6倍
公认的1981年前最快,1982年退役
可扩展性好,但可编程性差
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组建。
12
80 年代早期
80 年代百家争鸣
早期:以 MIMD 并行计算机的研制为主
Denelcor HEP (1982年)第一台商用 MIMD 并行计算机
Cray X-MP Cray 研究公司第一台 MIMD 并行计算机
IBM 3090 80 年代普遍为银行所采用
13
80 年代中期
中期:共享存储多处理机 Shared-Memory MultiProcessor
SMP (Symmetrical Multi-Processing)在一个计算机上汇集一组处理器,各处理器对称共享内存及计算机的其他资源,由单一操作系统管理,极大提高整个系统的数据处理能力。
扩展性较差可靠性较差内存访问瓶颈
14
80 年代后期
后期:具有强大计算能力的并行机
通过二维 Mesh 连接的 Meiko(Sun)系统超立方体连接的 MIMD 并行机:nCUBE-2、iPSC/80共享存储向量多处理机 Cray Y-MP ··· ···
15
90 年代:DSM 90 年代:体系结构框架趋于统一 (DSM、MPP、NOW)
DSM (Distributed Shared Memory)分布式共享存储以结点为单位,每个结点有一个或多个 CPU专用的高性能互联网络连接(Myrinet, Infiniband, … )分布式存储:内存模块局部在每个结点中单一的操作系统,单一的内存地址空间可扩展到上百个结点,支持消息传递、共享存储并行程序设计
16
90 年代:MPPMPP(Massively Parallel Processing)大规模并行处理结构每个结点相对独立,有一个或多个微处理器每个结点有自己的操作系统和独立内存,避免内存访问瓶颈各个结点只能访问自己的内存模块扩展性较好 DM-MPP:每个结点仅包含一个微处理器; SMP-MPP:每个结点是一台 SMP 并行机 DSM-MPP:每个结点是一台 DSM 并行机
17
90 年代:NOW NOW(Network of Workstations)工作站机群每个结点都是一个完整的工作站,有独立的硬盘与UNIX系统结点间通过低成本的网络(如千兆以太网)连接每个结点安装消息传递并行程序设计软件,实现通信、负载平衡等投资风险小、结构灵活、可扩展性强、通用性好、异构能力强,
被大量中小型计算用户和科研院校所采用
也称为 COW(Cluster of Workstations) NOW(COW)与 MPP 之间的界线越来越模糊
18
90 年代:NOW NOW 的典型代表:Beowulf cluster 微机机群:性价比极高
世界上第一台 Beowulf 集群,1994年
19
2000 年至今
2000 年至今:前所未有大踏步发展
Cluster 机群 / 集群
Constellation 星群
每个结点含多个商用处理器,结点内部共享存储采用商用机群交换机通过前端总线连接结点,结点分布存储各个结点采用 Linux 操作系统、GNU编译系统和作业管理系统
每个结点是一台子并行机采用商用机群交换机通过前端总线连接结点,结点分布存储各个结点运行专用的结点操作系统、编译系统和作业管理系统
MPP专用高性能网络,大多为政府直接支持
20
并行计算机发展趋势
并行计算机发展趋势
2009 年国际超级计算大会主席汉斯•缪尔(Hans Meuer)与德国Prometeus公司咨询专家霍斯特•基尔特(Horst Gietl)撰文总结了目前超级计算领域的主要发展趋势,探讨了多核/众核、并行计算、GPU、绿色IT、能效、数据、云计算等关键问题。
用多核/众核CPU组建大规模集群系统并行计算不可或缺,并行编程工具的发展远远落后于硬件的发展 GPU与多核CPU的竞争绿色IT与能耗,如散热通过水冷回收,由于供暖数据存储(固态存储器)网格计算,云计算
21
我国并行计算机的发展
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
22
我国第一台计算机
103型,运行速度 1500次每秒
1958 年第一台国产计算机诞生 — 103型计算机
109丙机(1968),两弹一星“功勋机”
23
我国的并行机
我国的超级计算机系列
曙光:中科院计算所,曙光公司,上海超算中心
深腾:联想集团
银河:国防科大
神威:国家并行计算机工程技术研究中心
天河:国防科大
24
银河
1992年, “银河-II” 问世,每秒运算达10亿次 1997年, “银河-III”问世,每秒运算达130亿次
银河一号: 1983年12月,我国第一台每秒运算达1亿次以上的计算机
25
神威
神威 I1999年,国家并行计算机工程技术研究中心牵头研制,峰值3840亿次/秒
神威 • 太湖之光2016年,峰值运算速度达每秒12.5亿亿次自2016年6月起,连续四次 Top500 排名第一,目前排名第三,国内第一
26
曙光
1993年10月,国家智能计算机研究开发中心(后成立曙光信息产业公司)
研制成功“曙光一号”SMP多处理机
2004年6月,推出 11万亿次的曙光4000A超级计算机,Top500排名第十
2008年6月,曙光5000A发布,实际速度超160万亿次,Top500排名第十
2011年6月,曙光6000,实际速度超1200万亿次,Top500排名第四
曙光 6000
27
深腾
2002年,联想发布深腾1800,Top500排名43,成为首家正式进入排行榜前100的中国企业
2003年,深腾6800发布,Top500排名14,其78.5%的整机效率列世界通用高端计算机第一名
2008年12月,联想发布百万亿次超级计算机深腾7000 ,Top500排名19
深腾7000
28
天河 2009年10,中国首台千万亿次超级计算机“天河一号”诞生,使中国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。
2010年10月,升级后的天河一号排名Top500第一
2013年6月,天河二号再次问鼎世界第一,功耗达24兆瓦,也是目前TOP500里功耗最大的
2017年7月,使用国产加速器 Matrix 2000的天河二号问世,在17年11月的Top500排名位列第2(第一是太湖之光),目前排名第4
29
我国并行计算机的发展
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
30
世界最快超级计算机
Top 500:http://www.top500.org2019.06
31
TOP500
榜单显示,中国有219台超算上榜,数量最多,其次是美国
(116台)和日本(29台)。
联想是上榜超算数量最多的公司 (173台),其次是浪潮 (71台)
和中科曙光 (63台)
32
TOP500 2013 年的数据2019 年的数据
33
TOP500
计算机类型与操作系统
2013 年的数据
34
发展趋势
35
我国并行计算机的发展
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
36
微处理器多级存储结构
微机机群的一次消息传递延迟相当于50000 次峰值浮点运算。
37
微处理器多级存储结构
微处理器主频越来越高,内存容量越来越大,
但内存访问速度的增长较慢
缓解内存墙性能瓶颈:Cache 高速缓存
Cache 工作原理:略
(参见《并行计算导论》)
38
并行计算机体系结构
组成要素
结点(node):一个或多个处理器组成
互联网络(interconnetct network):连接结点
内存(memory):多个存储模块组成
39
并行计算机体系结构并行计算机体系结构示意图
内存模块与结点分离
并行计算机体系结构示意图
内存模块位于结点内部
40
并行计算机体系结构
并行计算机互联网络拓扑结构:略
(见教材或参考资料)
并行计算机内存访问模式:略
(见教材或参考资料)
41
操作系统与编程环境
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
42
操作系统与编程语言
并行计算机主流操作系统:UNIX / Linux
AIX(IBM) HPUX(HP) Solaris(SUN) IRIX(SGI) Linux
编程语言
Fortran 77/90/95 C/C++
43
进程与线程
进程(process)运行中的程序
各个进程拥有独立的执行环境
进程间通信
同一台处理机或不同处理机的多个进程之间交流信息
通信(消息传递)、同步、聚集
线程(threads)
降低系统管理开销
一个进程可以含一个或多个线程
44
并行编程环境
常见的并行编程环境
消息传递、共享存储、数据并行
消息传递 共享数据 数据并行
典型代表
可移植性
存储方式
学习难度
可扩展性
MPI,PVM
所有流行并行机
分布式存储
较难
好
OpenMP
SMP,DSM
共享存储
容易
较差
HPF
SMP,DSM,MPP
共享存储
偏易
一般
三种并行编程环境主要特征一览
45
并行算法
什么是并行计算
并行计算机的发展
我国并行计算机的发展情况
当今最快的超级计算机
并行计算机体系结构
操作系统与并行计算编程环境
并行算法介绍
46
并行算法
适合在并行机上实现的算法
好的并行算法应充分发挥并行机计算机的潜在性能
并行算法
并行算法分类按运算对象:数值并行算法、非数值并行算法
按并行进程执行顺序:同步并行算法、异步并行算法
按计算任务:细粒度并行算法(基于向量和循环级并行)中粒度并行算法(基于较大的循环级并行)大粒度并行算法(基于子任务级并行)
47
并行算法设计
以 MIMD 为主
(Multiple Instruction Stream Multiple Data Stream)
可扩展、可移植
大粒度任务级并行(CPU) / 细粒度(GPU)
每个进程发挥单机性能 / 负载平衡
(数据结构、程序设计、通信方式)
并行算法设计