并行计算基础知识讲座.ppt
合集下载
并行计算PPT课件
C
Shell P
C
Shell P
互连网络
互连网络
(a)无共享
互连网络 共享磁盘
共享存储器 共享磁盘
(c)共享存储
(b)共享磁盘
2020/9/16
5
五种结构特性一览表
属性 结构类型 处理器类型 互连网络 通信机制 地址空间 系统存储器 访存模型 代表机器
2020/9/16
PVP MIMD 专用定制
SMP MIMD 商用
HP/Convex Exemplar)
分 布 存 储 器 NCC-NUMA (Cray T3E)
MIMD
DSM
NORMA
Cluster
(IBM SP2,DEC TruCluster Tandem Hymalaya,HP,
Microsoft Wolfpack,etc)
( 松散耦合)
(TreadMarks, Wind Tunnel, IVY,Shrimp,
etc.)
多计算机 (多 地 址 空 间 非 共 享 存 储 器 )
MPP (Intel TFLOPS)
( 紧耦合)
2020/9/16
7
SMP\MPP\机群比较
系统特征 节点数量(N) 节点复杂度 节点间通信
节点操作系统
支持单一系统映像 地址空间 作业调度 网络协议 可用性 性能/价格比 互连网络
S
MP
(Intel SHV,SunFire,DEC 8400, SGI PowerChallenge,IBMR60,etc.)
多处理机 ( 单地址空间
共享存储器 )
NUMA
COMA (KSR-1,DDM)
CC-NUMA
(Stanford Dash, SGI Origin 2000,Sequent NUMA-Q,
并行计算概述PPT课件
并行计算——结构•算法•编程
• 第一篇 并行计算的基础 • 第一章 并行计算机系统及其结构模型 • 第二章 当代并行机系统:SMP、MPP和Cluster • 第三章 并行计算性能评测
• 第二篇 并行算法的设计 • 第四章 并行算法的设计基础 • 第五章 并行算法的一般设计方法 • 第六章 并行算法的基本设计技术 • 第七章 并行算法的一盘
桥
系统 I
节点 2
节点 N
SAN(e.g.Myrinet)
I/O总 线 ,系 统 总 线
接口
LAN(e.g.以 太 网 ,FDDI)
系统 II
2021/8/11
15
第15页/共84页
网络性能指标
• 节点度(Node Degree):射入或射出一个节点的边数。在单向网络中, 入射和出射边之和称为节点度。
2
N / 2向)
4
2( N 1)
N
4
N 1
2N
4
2 N/2
2N
3 2loN g 1
1
非
N 1
是
N
非
2(N N)
非
2N
是
2N
非
N 1
星形
2
N N 1
超立方
N 2n
n
n
非 N / 2
是
N/2
N 1 nN/ 2
立方环
Nk2k
3
2k1k/2 N/(2k)
是
3N/ 2
2021/8/11
24
第24页/共84页
动态互连网络 (1)
1100
1110 1101
1111
0010
0011
1010
• 第一篇 并行计算的基础 • 第一章 并行计算机系统及其结构模型 • 第二章 当代并行机系统:SMP、MPP和Cluster • 第三章 并行计算性能评测
• 第二篇 并行算法的设计 • 第四章 并行算法的设计基础 • 第五章 并行算法的一般设计方法 • 第六章 并行算法的基本设计技术 • 第七章 并行算法的一盘
桥
系统 I
节点 2
节点 N
SAN(e.g.Myrinet)
I/O总 线 ,系 统 总 线
接口
LAN(e.g.以 太 网 ,FDDI)
系统 II
2021/8/11
15
第15页/共84页
网络性能指标
• 节点度(Node Degree):射入或射出一个节点的边数。在单向网络中, 入射和出射边之和称为节点度。
2
N / 2向)
4
2( N 1)
N
4
N 1
2N
4
2 N/2
2N
3 2loN g 1
1
非
N 1
是
N
非
2(N N)
非
2N
是
2N
非
N 1
星形
2
N N 1
超立方
N 2n
n
n
非 N / 2
是
N/2
N 1 nN/ 2
立方环
Nk2k
3
2k1k/2 N/(2k)
是
3N/ 2
2021/8/11
24
第24页/共84页
动态互连网络 (1)
1100
1110 1101
1111
0010
0011
1010
并行计算技术概述PPT109页
1
0
、
倚
南
窗
以
寄
傲
,
审
容
膝
之
易
安
。
▪
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
▪
28、知之者不如好之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
109
并行计算技术概述
6
、
露
凝
无游氛Fra bibliotek,天
高
风
景
澈
。
7、翩翩新 来燕,双双入我庐 ,先巢故尚在,相 将还旧居。
8
、
吁
嗟
身
后
名
,
于
我
若
浮
烟
。
9、 陶渊 明( 约 365年 —427年 ),字 元亮, (又 一说名 潜,字 渊明 )号五 柳先生 ,私 谥“靖 节”, 东晋 末期南 朝宋初 期诗 人、文 学家、 辞赋 家、散
文 家 。汉 族 ,东 晋 浔阳 柴桑 人 (今 江西 九江 ) 。曾 做过 几 年小 官, 后辞 官 回家 ,从 此 隐居 ,田 园生 活 是陶 渊明 诗 的主 要题 材, 相 关作 品有 《饮 酒 》 、 《 归 园 田 居 》 、 《 桃花 源 记 》 、 《 五 柳先 生 传 》 、 《 归 去来 兮 辞 》 等 。
中科大-并行计算讲义-并行计算机系统与结构模型PPT文档共37页
中科大-并行计算讲义-并行计算机系 统与结构模型
11、不为五斗米折腰。 12、芳菊开林耀,青松冠岩列。怀此 贞秀姿 ,卓为 霜下杰 。
13、归去来兮,田蜀将芜胡不归。 14、酒能祛百虑,菊为制颓龄。 15、春蚕收长丝,秋熟靡王税。
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
第1章 并行计算简介PPT课件
第一章.并行计算介绍
课程性质
• 是高性能计算学科专业基础课——常识知识
公共基础课、专业基础课、专业方向课、专业选修课
• 在教学计划中的地位:核心、承上启下
前导课:高等数学、离散数学、程序设计语言、数据结构、 操作系统、计算机硬件 后续课:高性能算法设计……
• 属于武术中的“练功”科目
“练武不练功,到头一场空”
(Second Edition, 2003)
成绩组成
• 理论课成绩
– 平时成绩
10%~20%:出勤+作业+实验
– 期中考试成绩
40%~50%
– 期末考试成绩
40%~50%
• 实验课成绩:出勤+实验+期末
成绩:百分制
有关通过网络交作业和实验的要求
将作业或实验相关文件压缩打包上传,具体要求如下: • 压缩包文件命名格式:
大纲
• PART 1:基本概念 简介 并行编程平台 并行算法设计的原则 并行程序的解析模型
• PART 2:并行编程 基于共享地址空间平台的编程 基于消息传递平台的编程
大纲
• PART 3:并行算法和应用 稠密矩阵算法 排序 图算法 离散优化问题 动态规划 快速傅里叶变换
• 提高处理器性能的两大途径
– 增加处理器主频 – 增加每个时钟周期内的指令执行数
• 单核处理器提升性能的主要途径是提升主频
– 事实:功耗正比于主频的三次方
•处理器功耗正比于 电流 x 电压 x 电压 x 主频
– 提升主频将导致功耗快速增长
•主频正比于 电压
• 多核处理器的功耗随核心数线性增长
– 每个时钟周期内的指令执行数正比于核心数
发动机燃烧模拟和机翼设计模拟
短期天气预报 长期天气预报 局部突发性灾难预报(如洪水、海啸)
课程性质
• 是高性能计算学科专业基础课——常识知识
公共基础课、专业基础课、专业方向课、专业选修课
• 在教学计划中的地位:核心、承上启下
前导课:高等数学、离散数学、程序设计语言、数据结构、 操作系统、计算机硬件 后续课:高性能算法设计……
• 属于武术中的“练功”科目
“练武不练功,到头一场空”
(Second Edition, 2003)
成绩组成
• 理论课成绩
– 平时成绩
10%~20%:出勤+作业+实验
– 期中考试成绩
40%~50%
– 期末考试成绩
40%~50%
• 实验课成绩:出勤+实验+期末
成绩:百分制
有关通过网络交作业和实验的要求
将作业或实验相关文件压缩打包上传,具体要求如下: • 压缩包文件命名格式:
大纲
• PART 1:基本概念 简介 并行编程平台 并行算法设计的原则 并行程序的解析模型
• PART 2:并行编程 基于共享地址空间平台的编程 基于消息传递平台的编程
大纲
• PART 3:并行算法和应用 稠密矩阵算法 排序 图算法 离散优化问题 动态规划 快速傅里叶变换
• 提高处理器性能的两大途径
– 增加处理器主频 – 增加每个时钟周期内的指令执行数
• 单核处理器提升性能的主要途径是提升主频
– 事实:功耗正比于主频的三次方
•处理器功耗正比于 电流 x 电压 x 电压 x 主频
– 提升主频将导致功耗快速增长
•主频正比于 电压
• 多核处理器的功耗随核心数线性增长
– 每个时钟周期内的指令执行数正比于核心数
发动机燃烧模拟和机翼设计模拟
短期天气预报 长期天气预报 局部突发性灾难预报(如洪水、海啸)
并行计算完全并行计算.ppt
}
for (i=0; i<480; i++)
/*update bitmap */
for (j=0; j<640; j++)
map[ i ][ j ] = temp_map[ i ][ j ];
从进程程序:
/* recv row no.*/ recv(row, delta_x, delta_y, Pmaster);
像素(pixel):是屏幕上能显示的最小可编址单元, 也是可控制的最小屏幕区域。
单位面积内的像素越多,其分辨率越高;
每个像素所使用的二进制位数越多,图像色彩 越丰富。
图象处理中常见的几何变换:
移位 ( shifting )
x’ = x + Δx y’ = y + Δy
其中Δx 为图像在 x 方向的移动量 Δy 为图像在 y 方向的移动量
主进程程序:假设 map[480][640] 存有原像素图
for (i = 0, row = 0; i<48; i++, row = row+10) send(&row, delta_x, delta_y, Pi); /*send data to each process*/
for (i = 0; i<480; i++) for (j = 0; j<640; j++)
由于各像素点的迭代次数不一样,故这种处 理方法的效率不会很高。
任务图
T1 2
T2
3
T3
1
T5 3
T7 1
T4 2
T6 6
任务标识
执行该任务 所需的时间
动态任务分配(动态负载平衡)----在应用 程序运行期间进行各节点间负载平衡的调 度。
for (i=0; i<480; i++)
/*update bitmap */
for (j=0; j<640; j++)
map[ i ][ j ] = temp_map[ i ][ j ];
从进程程序:
/* recv row no.*/ recv(row, delta_x, delta_y, Pmaster);
像素(pixel):是屏幕上能显示的最小可编址单元, 也是可控制的最小屏幕区域。
单位面积内的像素越多,其分辨率越高;
每个像素所使用的二进制位数越多,图像色彩 越丰富。
图象处理中常见的几何变换:
移位 ( shifting )
x’ = x + Δx y’ = y + Δy
其中Δx 为图像在 x 方向的移动量 Δy 为图像在 y 方向的移动量
主进程程序:假设 map[480][640] 存有原像素图
for (i = 0, row = 0; i<48; i++, row = row+10) send(&row, delta_x, delta_y, Pi); /*send data to each process*/
for (i = 0; i<480; i++) for (j = 0; j<640; j++)
由于各像素点的迭代次数不一样,故这种处 理方法的效率不会很高。
任务图
T1 2
T2
3
T3
1
T5 3
T7 1
T4 2
T6 6
任务标识
执行该任务 所需的时间
动态任务分配(动态负载平衡)----在应用 程序运行期间进行各节点间负载平衡的调 度。
《并行计算概述》PPT课件
Model
Project
Clip
Rasterize
2019/5/16
48
Processing One Data Set (Step 4)
Model
Project
Clip
Rasterize
The pipeline processes 1 data set in 4 steps
2019/5/16
49
Processing Two Data Sets (Step 1)
2019/5/16
23
并行化方法
域分解(Domain decomposition) 任务分解(Task decomposition) 流水线(Pipelining)
2019/5/16
24
域分解
First, decide how data elements should be divided among processors
2019/5/16
并行计算
3
并行的层次
程序级并行
粗
子程序级并行
并 行
语句级并行
粒 度
操作级并行
微操作级并行
细
2019/5/16
4
FLOPS
Floating point number Operations Per Second --每个时钟周期执行浮点运算的次数
理论峰值=CPU主频*每时钟周期执行浮点运 算数*CPU数目
并行计算 Parallel Computing
基本概念
如何满足不断增长的计算力需求?
用速度更快的硬件,也就是减少每一条指令所 需时间
优化算法(或者优化编译) 用多个处理机(器)同时解决一个问题
并行算法课件第二章
• Gustafson加速定律 :
S' WS pW p WS pW p WS p W p/ p WS WP
• 并行开销W o :
S' f p (1-f) p f (1-p) p-f (p-1)
S' WS pWP f p1 f
WS WP WO 1 WO /W
工作负载W 执行时间T
2.2.4 Sun 和 Ni定律
• 基本思想:
– 只要存储空间许可,应尽量增大问题规模以产生更好和更精确的解 (此时可能使执行时间略有增加)。
– 假定在单节点上使用了全部存储容量M并在相应于W的时间内求解之, 此时工作负载W= fW + (1-f)W。
– 在p 个节点的并行系统上,能够求解较大规模的问题是因为存储容量 可增加到pM。令因子G(p)反应存储容量增加到p倍时并行工作负 载的增加量,所以扩大后的工作负载W = fW + (1-f)G(p)W。
并行度:算法的并行度是指该算法中能用一个计算步(并行)完成的运算或 操作的个数。在并行机上即为可同时运算的处理机的数目,而在向量 机上则为向量操作的长度。
平均并行度:算法的平均并行度为该算法总的操作数除以计算步数。在向 量机上则是平均向量长度。
算法的相容性:如果当问题的规模 n 时,并行(向量)算法和
• 存储受限的加速公式 :
S''
fW 1 f GpW fW 1 f GpW / p
f
f 1 1 f
f Gp Gp/ p
• 并行开销W o:
S'
fW 1 f W Gp fW 1 f GpW / p WO
f
f
1
1 f Gp f Gp/ p WO /W
S' WS pW p WS pW p WS p W p/ p WS WP
• 并行开销W o :
S' f p (1-f) p f (1-p) p-f (p-1)
S' WS pWP f p1 f
WS WP WO 1 WO /W
工作负载W 执行时间T
2.2.4 Sun 和 Ni定律
• 基本思想:
– 只要存储空间许可,应尽量增大问题规模以产生更好和更精确的解 (此时可能使执行时间略有增加)。
– 假定在单节点上使用了全部存储容量M并在相应于W的时间内求解之, 此时工作负载W= fW + (1-f)W。
– 在p 个节点的并行系统上,能够求解较大规模的问题是因为存储容量 可增加到pM。令因子G(p)反应存储容量增加到p倍时并行工作负 载的增加量,所以扩大后的工作负载W = fW + (1-f)G(p)W。
并行度:算法的并行度是指该算法中能用一个计算步(并行)完成的运算或 操作的个数。在并行机上即为可同时运算的处理机的数目,而在向量 机上则为向量操作的长度。
平均并行度:算法的平均并行度为该算法总的操作数除以计算步数。在向 量机上则是平均向量长度。
算法的相容性:如果当问题的规模 n 时,并行(向量)算法和
• 存储受限的加速公式 :
S''
fW 1 f GpW fW 1 f GpW / p
f
f 1 1 f
f Gp Gp/ p
• 并行开销W o:
S'
fW 1 f W Gp fW 1 f GpW / p WO
f
f
1
1 f Gp f Gp/ p WO /W
并行计算概述课件
▪ 1.3.1 并行计算机结构模型 ▪ 1.3.2 并行计算机访存模型
2020/6/25
4
并行计算
▪ 并行计算:并行机上所作的计算,又称高性能计算或超级计 算。
▪ 三大学科:计算科学,理论科学和实验科学 所有的学科都转向定量化和精确化。 计算科学是一个交叉学科,用计算的方法来解决应用问题。 适用于理论模型复杂或尚未建立,实验费用昂贵或无法进行
▪ 计算科学:计算物理、计算化学、计算生物学等 ▪ 科学与工程问题的需求:气象预报、油藏模拟、核武器数值
模拟、航天器设计、基因测序等。 ▪ 需求类型:计算密集、数据密集、网络密集。
2020/6/25
5
2020/6/25
6
2020/6/25
7
并行计算
▪ 美国HPCC计划:高性能计算和通信,重大挑战 性课题,3T性能
▪ 中国联想: 1Tflops,Top43,2002
2020/6/25
14
系统互连
▪ 不同带宽与距离的互连技术: 总线、SAN、LAN、MAN、WAN
100 Gb/s
MIN 或 交叉开关
10 Gb/s
局部总线 SCI
HiPPI
网络带宽
1 Gb/s
Myrinet 千兆位 以太网
100
I/O 总线
光纤 通道
▪ 美国Petaflops研究项目:Pflop/s。 ▪ 美国ASCI计划:加速战略计算创新,核武器数
值模拟。高性能
2020/6/25
8
2020/6/25
9
2020/6/25
10
2020/6/25
11
2020/6/25
12
2020/6/25
13
2020/6/25
4
并行计算
▪ 并行计算:并行机上所作的计算,又称高性能计算或超级计 算。
▪ 三大学科:计算科学,理论科学和实验科学 所有的学科都转向定量化和精确化。 计算科学是一个交叉学科,用计算的方法来解决应用问题。 适用于理论模型复杂或尚未建立,实验费用昂贵或无法进行
▪ 计算科学:计算物理、计算化学、计算生物学等 ▪ 科学与工程问题的需求:气象预报、油藏模拟、核武器数值
模拟、航天器设计、基因测序等。 ▪ 需求类型:计算密集、数据密集、网络密集。
2020/6/25
5
2020/6/25
6
2020/6/25
7
并行计算
▪ 美国HPCC计划:高性能计算和通信,重大挑战 性课题,3T性能
▪ 中国联想: 1Tflops,Top43,2002
2020/6/25
14
系统互连
▪ 不同带宽与距离的互连技术: 总线、SAN、LAN、MAN、WAN
100 Gb/s
MIN 或 交叉开关
10 Gb/s
局部总线 SCI
HiPPI
网络带宽
1 Gb/s
Myrinet 千兆位 以太网
100
I/O 总线
光纤 通道
▪ 美国Petaflops研究项目:Pflop/s。 ▪ 美国ASCI计划:加速战略计算创新,核武器数
值模拟。高性能
2020/6/25
8
2020/6/25
9
2020/6/25
10
2020/6/25
11
2020/6/25
12
2020/6/25
13
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/3/21 3
MPI并行编程环境
消息传递并行编程环境(MPI:Message Passing Interface) 是目前国际上最流行、可移植性和可扩展 性很好的并行程序设计平台,并被当前流行的所有高 性能并行机所支持。它是在标准串行程序设计语言 (C,Fortran,C++)的基础上,再加入实现进程间 通信的MPI消息传递库函数,就构成了MPI并行程序 设计所依赖的并行编程环境。 MPI已经在Windows系列的非Unix、Linux平台上实现, 其程序设计语言支持C, Fortran和Java。在国产的三 大并行机系列神威、银河和曙光上也都实现了对MPI 和支持。
2019/3/21 4
MPI并行环境的应用现状
MPI是全球工业、政府和科研部门联合推出的适合 进程间进行标准消息传递的并行程序设计平台,最初 版MPI 1.0本于1994年6月推出,目前最新的为MPI 2.0 版,于1998年10月推出。 MPI的具体实现:MPICH和LAMMPI,目前均已实 现MPI 1.2版,适用于任何并行计算平台;部分并行 机已实现MPI 2.0版。 MPI是目前应用最广的并行程序设计平台,几乎被 所有并行计算环境(共享和分布式存储并行机、MPP、 机群系统等)和流行的多进程操作系统(UNIX、 Windows NT)所支持,基于它开发的应用程序具有 最佳的可移植性。 2019/3/21 5
目前,各类并行机,特别式微机机群,只实现了MPI 2.0的部分功能。本中心机群所支持的为MPI 1.2.5版本。
2019/3/21 7
MPI并行编程环境
进程与消息传递
MPI并行程序设计入门
初步的MPI消息传递函数
先进的MPI函数 MPI并行程序示例 面向性能的程序设计
2019/3/21 8
单个进程(process)
基于MPI的并行程序设计
王振海 西北工业大学理学院 西北工业大学高性能计算研究与发展中心
2019/3/21
1
主要内容
MPI并行编程环境
进程与消息传递 MPI并行程序设计入门 初步的MPI消息传递函数
先进的MPI函数
MPI并行程序示例
面向性能的程序设计
2019/3/21 2
并行编程环境简介
目前,高性能并行机主要可以分为对称多处理共 享存储并行机(SMP, Symmetric MultiProcessor)、 分布式共享存储多处理机 (DSM, Distributied Shared Memory)、大规模并行处理机(MPP, Massively Parallel Processor)和微机机群(Cluster) 等四类。在这些并行机上,并行程序设计平台主 要可分为消息传递、共享存储和数据并行三类, 其中消息传递具有很好的可移植性,它能被所有 这些类型的并行机所支持,而共享存储只能在在 SMP和DSM并行机中使用,数据并行只能在SMP, DSM和MPP并行机上使用。
2019/3/21 6
MPI并行环境的应用现状(续)
MPI 2.0版在1.0版的基础上,增加了如下的消息传递 功能:(1)并行I/O:允许多个进程同时读写同一个文 件;(2)线程安全:允许 MPI 进程的多个线程执行, 即支持与 OpenMP 的混合并行编程;( 3 )动态进程管 理:允许并行应用程序在执行过程中,动态地增加和 删除进程个数;(4)单边通信:允许某个进程对其它 进程的局部内存单元直接执行读写访问,而步需要对 方进程的显式干预;(5)并行应用程序之间的动态互 操作:允许各个MPI并行应用程序之间动态地建立和删 除消息传递通道。
进程独立存在:进程位于不同的计算机,由各 自独立的操作系统调度,享有独立的 CPU 和内存 资源。 进程间相互信息交换:消息传递。
消息传递。
2019/3/21
12
消息传递库函数
应 用 程 序 接 口 ( API): 提 供 给 应 用 程 序 ( FORTRAN、C、C++ 语言)的可直接调用的完 成进程间消息传递的某项特定功能的函数。 消息传递库:所有定义的消息传递函数编译形 成的软件库,调用其内部函数的应用程序,通过 与之联接,即可成为可并行执行的程序。 目 前 流 行 的 消 息 传 递 函 数 库 : PVM 3.3.11、 MPICH 1.2、LAMMPI 6.4等。
进程是一个程序,同时包含它的执行环境(内 存、寄存器、程序计数器等),是操作系统中 独立存在的可执行的基本程序单位。 通俗理解:串行应用程序编译形成的可执行代 码,分为“指令”和“数据”两个部分,并在 程序执行时“独立地申请和占有”内存空间, 且所有计算均局限于该内存空间。 进程1 进程2 内存
2019/3/21 9
MPI并行环境的应用现状(续)
目前高效率的超大规模并行计算( 1000 个处理 器)最可信赖的平台。 工业、科学与工程计算部门的大量科研和工程 软件(气象、石油、地震、空气动力学、核等) 目前已经移植到MPI平台,发挥了重要作用。 MPI的优点:(1)具有很好的可移植性,几乎 被所有的并行环境支持;(2)具有很好的可扩展 性,是目前高效率的大规模并行计算最可信赖的 平台;( 3)比其它消息传递系统好用;(4 )有 完备的异步通信功能;(5)有精确的定义,从而 为并行软件产业的发展提供了必要的条件。
单机内多个进程
多个进程可以同时存在于单机内同一操作系统: 由操作系统负责调度分时共享处理机资源( CPU、 内存、存储、外设等)。 进程间相互独立(内存空间不相交):在操作 系统调度下各自独立地运行,例如多个串行应用 程序在同一台计算机中运行。 进程间可以相互交换信息:例如数据交换、同 步等待,消息是这些交换信息的基本单位,消息 传递是指这些信息在进程间的相互交换,是实现 进程间通信的唯一方式。
2019/3/21 10
单机内多个进程(续)
最基本的消息传递操作:发送消息( send)、 接受消息( receive)、进程同步( barrier)、 规约(reduction)。 消息传递的实现:共享内存或信号量,用户不 必关心。
2019/3/21
11
包含于通过网络联接的不 同计算机的多个进程
MPI并行编程环境
消息传递并行编程环境(MPI:Message Passing Interface) 是目前国际上最流行、可移植性和可扩展 性很好的并行程序设计平台,并被当前流行的所有高 性能并行机所支持。它是在标准串行程序设计语言 (C,Fortran,C++)的基础上,再加入实现进程间 通信的MPI消息传递库函数,就构成了MPI并行程序 设计所依赖的并行编程环境。 MPI已经在Windows系列的非Unix、Linux平台上实现, 其程序设计语言支持C, Fortran和Java。在国产的三 大并行机系列神威、银河和曙光上也都实现了对MPI 和支持。
2019/3/21 4
MPI并行环境的应用现状
MPI是全球工业、政府和科研部门联合推出的适合 进程间进行标准消息传递的并行程序设计平台,最初 版MPI 1.0本于1994年6月推出,目前最新的为MPI 2.0 版,于1998年10月推出。 MPI的具体实现:MPICH和LAMMPI,目前均已实 现MPI 1.2版,适用于任何并行计算平台;部分并行 机已实现MPI 2.0版。 MPI是目前应用最广的并行程序设计平台,几乎被 所有并行计算环境(共享和分布式存储并行机、MPP、 机群系统等)和流行的多进程操作系统(UNIX、 Windows NT)所支持,基于它开发的应用程序具有 最佳的可移植性。 2019/3/21 5
目前,各类并行机,特别式微机机群,只实现了MPI 2.0的部分功能。本中心机群所支持的为MPI 1.2.5版本。
2019/3/21 7
MPI并行编程环境
进程与消息传递
MPI并行程序设计入门
初步的MPI消息传递函数
先进的MPI函数 MPI并行程序示例 面向性能的程序设计
2019/3/21 8
单个进程(process)
基于MPI的并行程序设计
王振海 西北工业大学理学院 西北工业大学高性能计算研究与发展中心
2019/3/21
1
主要内容
MPI并行编程环境
进程与消息传递 MPI并行程序设计入门 初步的MPI消息传递函数
先进的MPI函数
MPI并行程序示例
面向性能的程序设计
2019/3/21 2
并行编程环境简介
目前,高性能并行机主要可以分为对称多处理共 享存储并行机(SMP, Symmetric MultiProcessor)、 分布式共享存储多处理机 (DSM, Distributied Shared Memory)、大规模并行处理机(MPP, Massively Parallel Processor)和微机机群(Cluster) 等四类。在这些并行机上,并行程序设计平台主 要可分为消息传递、共享存储和数据并行三类, 其中消息传递具有很好的可移植性,它能被所有 这些类型的并行机所支持,而共享存储只能在在 SMP和DSM并行机中使用,数据并行只能在SMP, DSM和MPP并行机上使用。
2019/3/21 6
MPI并行环境的应用现状(续)
MPI 2.0版在1.0版的基础上,增加了如下的消息传递 功能:(1)并行I/O:允许多个进程同时读写同一个文 件;(2)线程安全:允许 MPI 进程的多个线程执行, 即支持与 OpenMP 的混合并行编程;( 3 )动态进程管 理:允许并行应用程序在执行过程中,动态地增加和 删除进程个数;(4)单边通信:允许某个进程对其它 进程的局部内存单元直接执行读写访问,而步需要对 方进程的显式干预;(5)并行应用程序之间的动态互 操作:允许各个MPI并行应用程序之间动态地建立和删 除消息传递通道。
进程独立存在:进程位于不同的计算机,由各 自独立的操作系统调度,享有独立的 CPU 和内存 资源。 进程间相互信息交换:消息传递。
消息传递。
2019/3/21
12
消息传递库函数
应 用 程 序 接 口 ( API): 提 供 给 应 用 程 序 ( FORTRAN、C、C++ 语言)的可直接调用的完 成进程间消息传递的某项特定功能的函数。 消息传递库:所有定义的消息传递函数编译形 成的软件库,调用其内部函数的应用程序,通过 与之联接,即可成为可并行执行的程序。 目 前 流 行 的 消 息 传 递 函 数 库 : PVM 3.3.11、 MPICH 1.2、LAMMPI 6.4等。
进程是一个程序,同时包含它的执行环境(内 存、寄存器、程序计数器等),是操作系统中 独立存在的可执行的基本程序单位。 通俗理解:串行应用程序编译形成的可执行代 码,分为“指令”和“数据”两个部分,并在 程序执行时“独立地申请和占有”内存空间, 且所有计算均局限于该内存空间。 进程1 进程2 内存
2019/3/21 9
MPI并行环境的应用现状(续)
目前高效率的超大规模并行计算( 1000 个处理 器)最可信赖的平台。 工业、科学与工程计算部门的大量科研和工程 软件(气象、石油、地震、空气动力学、核等) 目前已经移植到MPI平台,发挥了重要作用。 MPI的优点:(1)具有很好的可移植性,几乎 被所有的并行环境支持;(2)具有很好的可扩展 性,是目前高效率的大规模并行计算最可信赖的 平台;( 3)比其它消息传递系统好用;(4 )有 完备的异步通信功能;(5)有精确的定义,从而 为并行软件产业的发展提供了必要的条件。
单机内多个进程
多个进程可以同时存在于单机内同一操作系统: 由操作系统负责调度分时共享处理机资源( CPU、 内存、存储、外设等)。 进程间相互独立(内存空间不相交):在操作 系统调度下各自独立地运行,例如多个串行应用 程序在同一台计算机中运行。 进程间可以相互交换信息:例如数据交换、同 步等待,消息是这些交换信息的基本单位,消息 传递是指这些信息在进程间的相互交换,是实现 进程间通信的唯一方式。
2019/3/21 10
单机内多个进程(续)
最基本的消息传递操作:发送消息( send)、 接受消息( receive)、进程同步( barrier)、 规约(reduction)。 消息传递的实现:共享内存或信号量,用户不 必关心。
2019/3/21
11
包含于通过网络联接的不 同计算机的多个进程