Pet*_*ell 24

在集群中,每台计算机在内存,磁盘等方面基本上独立于其他计算机.它们在正常网络上使用某些变体进行互连.群集主要存在于程序员的脑海中,以及他/她如何选择分发工作.

在大规模并行处理器中,实际上只有台机器有数千个CPU紧密互连.MPP具有奇特的存储器架构,允许与相邻处理器进行极高速的中间结果交换.

主要变体是SIMD(单指令,多数据)和MIMD(多指令,多数据).在SIMD系统中,每个处理器仅在不同的存储器位上同时执行相同的指令.基本上,只有一个程序计数器.在MIMD机器中,每个CPU都有自己的PC.

MPP可能是一个编程的婊子,只能用于令人尴尬的并行算法(实际上就是他们所说的).但是,如果你有这样的问题,那么MPP可能会非常快.它们也非常昂贵.

  • 我更赞同下面的ang mo的答案.今天的TOP500中的MPP(通常,如果不是全部)具有混合分布式共享内存架构.程序员没有区别,MPI(+ OpenMP,CUDA,...)主要用于实践.有时,toplogy感知代码可以更好地执行,但代价是可移植性丢失. (2认同)

ang*_* mo 14

TOP500列表使用的MPP和簇之间的稍微不同的区别,如在解释唐加拉等.纸:

[集群是]并行计算机系统,包括独立节点的集成集合,每个节点本身就是一个系统,能够独立运行并从为其他独立目的开发和销售的产品中获得

与集群相比,现代MPP(例如IBM Blue Gene)更紧密集成:单个节点不能独立运行,而是通过自定义网络(如多维环面)连接.但是,与集群类似,没有单个共享内存跨越所有节点(注意:MPP可能是分层的,共享内存可能在单个节点内使用(NUMA),或者在少数节点之间).

因此,我非常小心地在这种情况下使用术语SIMD和MIMD,因为它们通常描述共享内存架构(SMP).

更新:

Dongarra等.链接

更新: MPP可以在内部使用共享内存的节点; 但整个MPP内存不共享.