大家好,欢迎来到IT知识分享网。
一、并行计算基础
1.1 概念
简单来讲,并行计算就是同时使用多个计算资源来解决一个计算问题。
1.2 并行计算条件
1.3 并行计算层次
二、并行计算机体系结构
弗林经典分类法( 1966 年): 从 指令流 和 数据流 两个维度区分多处理器计算机体系结构。
SISD是标准意义上的串行机,具有如下特点:
1 )单指令:在每一个时钟周期内, CPU 只能执行一个指令流;
2 )单数据:在每一个时钟周期内输入设备只能输入一个数据流;
3 )执行结果是确定的。这是最古老的一种计算机类型。
1 )单指令:所有处理单元在任何一个时钟周期内都执行同一条指令;
2 )多数据:每个处理单元可以处理不同的数据元素;
3 )非常适合于处理高度有序的任务例如图形 图像处理;
4 )同步(锁步)及确定性执行 。
1 )多指令:不同的处理单元可以独立地执行不同的指令流;
2 )单数据:不同的处理单元接收的是同一单数据流。这种架构理论上是有的,但是工业实践中这种机型非常少。
1 )多指令:不同的处理器可以在同一时刻处理不同的指令流;
2 )多数据:不同的处理器可以在同一时刻处理不同的数据;
3 )执行可以是同步的也可以是异步的,可以是确定性的,也可以是不确定性的。 这是目前主流的计算机架构类型 ,目前的超级计算机、并行计算机集群系统网格,多处理器计算机,多核计算机等都属于这种类型。
用于科学计算的主流高性能并行计算机系统结构通常可以分成以下5 类:
五种结构特性一览表
属性 |
PVP |
SMP |
MPP |
DSM |
Cluster |
结构类型 |
MIMD |
MIMD |
MIMD |
MIMD |
MIMD |
处理器类型 |
专用定制 |
商用 |
商用 |
商用 |
商用 |
互联网络 |
定制交叉开关 |
总线、交叉开关 |
定制网络 |
定制网络 |
商用网络 |
通讯机制 |
共享变量 |
共享变量 |
消息传递 |
共享变量 |
消息传递 |
地址空间 |
单地址空间 |
单地址空间 |
多地址空间 |
单地址空间 |
多地址空间 |
系统存储器 |
集中共享 |
集中共享 |
分布非共享 |
分布共享 |
分布非共享 |
访存模型 |
UMA |
UMA |
NORMA |
NUMA |
NORMA |
2.1 并行计算访存模型UMA
UMA(Uniform Memory Access)模型是均匀存储访问模型的简称。其特点是:
物理存储器被所有处理器均匀共享;
所有处理器访问任何存储字取相同的时间;
每台处理器可带私有高速缓存;
外围设备也可以一定形式共享。
2.2并行计算访存模型NUMA
NUMA(Nonuniform Memory Access)模型是非均匀存储访问模型的简称。特点是:
被共享的存储器在物理上是分布在所有的处理器中的,其所有本地存储器的集合就组成了全局地址空间;
处理器访问存储器的时间是不一样的;访问本地存储器LM或群内共享存储器CSM较快,而访问外地的存储器或全局共享存储器GSM较慢(此即非均匀存储访问名称的由来);
每台处理器照例可带私有高速缓存,外设也可以某种形式共享。
2.3 并行计算访存模型COMA
COMA(Cache-Only Memory Access)模型是全高速缓存存储访问的简称。其特点是:
各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间;
利用分布的高速缓存目录D进行远程高速缓存的访问;
COMA中的高速缓存容量一般都大于2级高速缓存容量;
使用COMA时,数据开始时可任意分配,因为在运行时它最终会被迁移到要用到它们的地方。
2.4 并行计算访存模型CC-NUMA
CC-NUMA(Coherent-Cache Nonuniform Memory Access)模型是高速缓存一致性非均匀存储访问模型的简称。其特点是:
大多数使用基于目录的高速缓存一致性协议;
保留SMP结构易于编程的优点,也改善常规SMP的可扩放性;
CC-NUMA实际上是一个分布共享存储的DSM多处理机系统;
它最显著的优点是程序员无需明确地在节点上分配数据,系统的硬件和软件开始时自动在各节点分配数据,在运行期间,高速缓存一致性硬件会自动地将数据迁移至要用到它的地方。
2.5 并行计算访存模型NORMA
NORMA(No-Remote Memory Access)模型是非远程存储访问模型的简称。NORMA的特点是:
所有存储器都是私有的;
绝大数NUMA都不支持远程存储器的访问
在DSM中,NORMA就消失了。
2.6 构筑并行机系统的不同存储结构
三、并行程序设计基础
3.1 并行程序设计模型
隐式并行(Implicit Parallel)
编写串行程序,通过编译器和运行支持系统将串行程序自动并行化
特点:语义简单,可移植性好,易于调试和验证
缺点:细粒度并行,效率很低
3.2 并行程序设计原则
- 与体系结构相结合
- 具有可扩展性
- 粗粒度
- 减少通信
- 优化性能
粒度是指各个线程可以独立并行执行的任务的大小,是一个相对的概念,与并行度和并行机相关。一般可理解为:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126262.html