名词解释:一个3分 总分30
简答题:一个5分 总分40
编程题:一个10分 总分30
高性能计算导论复习(根据复习范围)
第二章:高性能计算基础
并行计算定义
- 并行计算是指,在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者求解大规模应用问题的目的。
并行计算三条件
- 并行机
- 并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。
- 应用问题必须具有并行度
- 也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。
- 并行编程
- 在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。
高性能计算定义
- 国际
- 他们把超级计算机(高性能计算机)圈定在Pflops级(千万亿次浮点计算每秒)计算机水平。
- 市场
- 往往认为价格在10万元人民币以上的就是高性能计算机,而把超级计算机看作是最高档的几百台高性能计算机。
并行计算功能
- 降低单个问题求解的时间
- 增加问题求解规模,提高问题求解精度
粒度
- 在并行执行过程中,二次通讯之间每个处理机计算工作量大小的一个粗略描述,分为粗粒度、细粒度
复杂性
- 在不考虑通讯开销的前提下,每个处理机上的计算量最大者,即为并行计算复杂性
并行度
- 算法可以并行的程度
加速比
-
S
p
(
q
)
=
T
s
/
T
p
(
q
)
S_p(q) = T_s / T_p(q)
Sp(q)=Ts/Tp(q)
- T s T_s Ts:time for the best serial algorithm(最佳串行算法的运行时间)
- T p T_p Tp:time for parallel algorithm using p processors(使用P处理器并行算法的运行时间)
运行效率
-
E
p
(
q
)
=
S
p
(
q
)
/
q
E_p(q) = S_p(q) / q
Ep(q)=Sp(q)/q
- S p S_p Sp:加速比
- q q q:处理器个数
Amdahl定律
- 内容
- 假设串行计算所需要的时间 T s = 1 T_s=1 Ts=1, α \alpha α是执行该计算所必须的串行部分所占的百分比,则有
- S p ( q ) = 1 / ( α + ( 1 − α ) / q ) S_p(q) = 1 / (\alpha + (1-\alpha) / q) Sp(q)=1/(α+(1−α)/q)
- lim q → ∞ S p ( q ) = 1 / α \lim_{q\to\infty}S_p(q) = 1/\alpha limq→∞Sp(q)=1/α
- 字母含义
- S q S_q Sq:加速比
- T s T_s Ts:串行计算所需时间
- α \alpha α:执行该计算所必须的串行部分所占的百分比
- 核心思想
- 单纯地增加cpu处理器的数量并不一定可以有效地提高系统的性能,只有在提高系统内并行化模块比重的前提下,同时合理增加处理器的数量,才能以最小的投入得到最大的加速比。
Gustafson定律
- 内容
- 假设并行计算所需的时间 T p = 1 T_p = 1 Tp=1, α \alpha α是执行该并行计算所需的串行部分所占的百分比,则有
- S p ( q ) = ( α + ( 1 − α ) ∗ q ) / 1 S_p(q) = (\alpha + (1-\alpha) * q) / 1 Sp(q)=(α+(1−α)∗q)/1
- 字母含义同上
- 思想
- α(串行化程度)足够小,也即并行化足够高,那么加速比和cpu个数成正比
可拓展性(重要)
- 粗略地讲,如果一个技术可以处理规模不断增加的问题,那么它就是可扩展的
- 如果增加进程数(线程数)和问题规模,并行效率保持不变,称该并行程序是可扩展的
- 强可扩展的:增加进程/线程数,不增加问题规模,可以维持固定的并行效率
- 弱可扩展的:增加进程/线程数,同时以相同倍率增加问题规模,可以维持固定的并行效率
并行计算机体系结构
-
SMP(共享存储对称多处理机系统)
- 对称式共享存储:任意处理器可直接访问任意内存地址,且访问延迟、带宽、几率都是等价的;系统是对称的
- 微处理器:一般少于64个
- 处理器不能太多,总线和交叉开关一旦作成难于扩展
- 例子: IBM R50、SGI Power Challenge、SUN Enterprise、曙光一号
-
DSM(分布式共享存储多处理机系统)
- 分布共享存储: 内存模块物理上局部于各个处理器内部,但逻辑上(用户)是共享存储的;这种结构也称为基于Cache目录的非一致内存访问(CC-NUMA)结构;局部与远程内存访问的延迟和带宽不一致,3-10倍(高性能并行程序设计注意)
- 与SMP的主要区别:DSM在物理上有分布在各个节点的局部内存从而形成一个共享的存储器
- 微处理器: 16-128个,几百到千亿次
- 代表: SGI Origin 2000、Cray T3D
-
MPP(大规模并行处理机系统)(重点)
- 物理和逻辑上均是分布内存
- 能扩展至成百上千个处理器(微处理器或向量处理器)
- 采用高通信带宽和低延迟的互联网络 (专门设计和定制的)
- 一种异步的MIMD机器;程序系由多个进程组成,每个都有其私有地址空间,进程间采用传递消息相互作用
- 代表:CRAY T3E(2048)、ASCI Red(3072)、IBM SP2、曙光1000
- 典型MPP系统特性比较
-
Cluster(机群系统)
- 每个节点都是一个完整的计算机
- 各个节点通过高性能网络相互连接
- 网络接口和I/O总线松耦合连接
- 每个节点有完整的操作系统
- 曙光2000、3000、ASCI Blue Mountain(48台128-way DSM Origin 2000,6144个处理器)
-
区别
访存模型(了解)
- 均匀存储访问模型(UMA)
- 特点
- 物理存储器被所有处理器均匀共享;
- 所有处理器访问任何存储字取相同的时间;
- 每台处理器可带私有高速缓存;
- 外围设备也可以一定形式共享。
- 特点
- 非均匀存储访问模型(NUMA)
- 特点
- 被共享的存储器在物理上是分布在所有的处理器中的,其所有本地存储器的集合就组成了全局地址空间;
- 处理器访问存储器的时间是不一样的;访问本地存储器LM或群内共享存储器CSM较快,而访问外地的存储器或全局共享存储器GSM较慢(此即非均匀存储访问名称的由来);
- 每台处理器照例可带私有高速缓存,外设也可以某种形式共享。
- 特点
- 全高速缓存存储访问模型(COMA)
- 特点
- 各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间;
- 利用分布的高速缓存目录D进行远程高速缓存的访问;
- COMA中的高速缓存容量一般都大于2 级高速缓存容量;
- 使用COMA时,数据开始时可任意分配,因为在运行时它最终会被迁移到要用到它们的地方。
- 特点
- 高速缓存一致性非均匀存储访问模型(CC-NUMA)
- 特点
- 大多数使用基于目录的高速缓存一致性协议;
- 保留SMP结构易于编程的优点,也改善常规SMP的可扩放性;
- CC-NUMA实际上是一个分布共享存储的DSM多处理机系统;
- 它最显著的优点是程序员无需明确地在节点上分配数据,系统的硬件和软件开始时自动在各节点分配数据,在运行期间,高速缓存一致性硬件会自动地将数据迁移至要用到它的地方。
- 特点
- 非远程存储访问模型(NORMA)
- 特点
- 所有存储器是私有的;
- 绝大数NUMA都不支持远程存储器的访问;
- 特点
共享存储
- 系统内任何处理器上的进程都能直接地访问系统内任何本地存储器和远程存储器
非共享存储
- 如果系统内任何处理器上的进程不能直接对远程存储器用load和store之类的指令进行访问,而必须借助于运行时软件层和用户可调用的例程库来实现