共享存储体系结构的特点

  在讨论OpenMP之前,我们需要先看一看它所面向的系统结构:共享存储多处理器系统(SMP)。通常的SMP结构如下图所示(SGI的PowerChallenge):


  在流行的SMP集群系统中,作为节点的SMP机器通常只有2-4个处理器,但结构并无不同。从图中可以清楚的看出SMP的一些特点。

  在很长的一段时间里,SMP计算机系统都由很少的处理器构成(思考,从体系结构出发,试着回答为什么。)通常情况下,SMP体系结构被看作一种扩展性不好的结构(当然,对基于总线的SMP系统的确是这样),直到今天,这种可扩展性的问题仍然没有很好的解决。共享存储体系结构的另外一个主要问题是Cache的一致性问题。由于通常情况下各处理器都有自己的Cache,所以系统(无论是硬件还是软件)必须对处理器共享的数据维护这些Cache的一致性。通过增加数据局部性的方法可以缓解Cache一致性操作带来的问题(注意是缓解不是消除),对某些类型的应用,这种措施很有效,他们的确在SMP上得到了很好的性能。

  下面的表给出了一些SMP体系结构的计算机的配置,事实上,在高性能计算领域,越来越倾向于使用SMP作为基本的构造节点来组成更大规模的集群计算机(ASCI计划中的计算机大多都是这种结构)。这也就是为什么我们在讨论了消息传递并行程序后还要单独介绍OpenMP。

一些由SMP节点构成的并行计算机系统
生产商
计算机名称
处理器类型
每个SMP节点中包含的处理器数
系统中最大的处理器数目
IBM
Winterhawk
RS/6000 Power3
2
IBM
Nighthawk
RS/6000 Power3
8
4096
SGI
Origin2000
MIPS R10k
64
256
Compaq
Wildfire
DEC EV6
HP
V2500
PA 8500
128
2048
Exemplar
SUN
HPC 10000
UltraSPARC-III
64
256
StarFire
NEC
SX5
CMOS vector