对比表
结构体系 | SMP | NUMA | MPP |
---|---|---|---|
说明 | (Symmetric Multi-Processor) 对称多处理系统 (UMA:Uniform Memory Access) 一致存储器访问结构 | (Non-Uniform Memory Access)非统一内存访问 | (Massive Parallel Processing) 大规模并行处理 |
技术特点 | 性能的提升依赖于cpu的速度。容易产生瓶颈。 | 难以实现,特别是交叉开关。(这也是为什么大型机一直被IBM等垄断) | 益于实现,可使用廉价设备部署。重点在于软件设计。 |
耦合度 | 紧耦合运算节点共享所有资源 | 介于二者之间运算节点有独立内存,通过内部互联模块互联 | 松耦合运算节点间不共享资源,通过网络互联。 |
扩展能力 | 低 | 中等 | 高 |
现有规模 | 2-4个cpu最优,IBM的BOOK技术能扩展到8个 | 可支持上百个cpu | 以能支持数千cpu |
瓶颈 | 内存访问冲突并且受总线带宽限制 | 非本地内存访问的速度慢,交叉锁的延迟 | 网络速度 |
NUMA和MPP的区别:
- NUMA的节点互联机制是机器内部模块实现(交叉开关),MPP是通过网络(I/O)。
- NUMA中交叉开关的设计在CPU增加时会变得相当复杂,需要考虑交叉开关的延时。
- MPP的交互通过网络,交互过程并行。
在数据一致性问题上,NUMA使用硬件处理保证内存中数据一直,而MPP把这个问题交给了软件开发者处理(分布式共识算法)。
三种构架其实就是从SMP的紧耦合到MPP的松散耦合的变化,它们各有优点。目前的多核CPU中借鉴了NUMA和SMP的优点,每个核心独享一个一级缓存,几个核心共享一个二级缓存等设计。MPP集群中的单个服务器也会使用NUMA构架的机器。