共享存储体系结构的特点
在讨论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
|
|
|
|