群集和MPP超级计算机架构有什么区别?
答案 0 :(得分:24)
在群集中,每台计算机在内存,磁盘等方面基本上独立于其他计算机。它们在正常网络上使用某些变体进行互连。集群主要存在于程序员的脑海中,以及他/她如何选择分配工作。
在大规模并行处理器中,实际上只有一台机器,数千个CPU紧密互连。 MPP具有奇特的存储器架构,允许与相邻处理器进行极高速的中间结果交换。
主要变体是SIMD(单指令,多数据)和MIMD(多指令,多数据)。在SIMD系统中,每个处理器同时执行相同的指令,仅在不同的存储器位上执行。基本上,只有一个程序计数器。在MIMD机器中,每个CPU都有自己的PC。
MPP可能是一个编程的婊子,只能用于令人尴尬的并行的算法(实际上就是他们所说的)。但是,如果你有这样的问题,那么MPP可能会非常快。它们也非常昂贵。
答案 1 :(得分:14)
top500列表在MPP和群集之间使用略有不同的区别,如Dongarra et al.论文中所述:
[集群是一个]并行计算机系统,包括一个独立节点的集成集合,每个独立节点本身就是一个系统,能够独立运行并从为其他独立目的开发和销售的产品中获得
与群集相比,现代MPP(例如IBM Blue Gene)更紧密集成:单个节点无法独立运行,并且通过自定义网络(如多维环面)连接。但是,与集群类似,没有单个共享内存跨越所有节点(注意:MPP可能是分层的,共享内存可能在单个节点内使用(NUMA),或者在少数节点之间)。
因此,我非常谨慎地在这种情况下使用术语SIMD和MIMD,因为它们通常描述共享内存架构(SMP)。
<强>更新强>
<强>更新强> MPP可以在内部使用共享内存的节点;但整个MPP内存不是共享的。
答案 2 :(得分:2)
群集是一堆机器,通常通常是以太网互连(读取:网络),每个都运行它自己的操作系统的单独副本,恰好用于单一用途。
MPP超级计算机通常意味着更快的支持非常快速的互连(例如SGI NUMALink),它支持分布式共享内存(在不同的MPP节点上运行进程,在快速互连上使用共享内存来共享数据,就好像它们在单个计算机)甚至单个系统映像(操作系统的单个实例,主要是Linux,同时在所有节点上运行,就像在一台机器上一样 - 例如任何节点上的“ps aux”将显示所有在MPP上运行的进程。
正如你所看到的那样,定义非常流畅,这更多的是规模问题,而不是明确的差异。
答案 3 :(得分:0)
我在很多HPC文献中搜索过,找不到MPP的具体定义。在由多个互连的常规个人计算机或工作站组成的集群上存在相当大的意见,通常与标准技术(如以太网或开源操作系统)相结合。 MPP这个术语通常适用于构建分布式内存计算机的更多专有工具,通常采用专有技术。
例如:Tianhe-2被认为是一个集群,因为它使用x86-64节点和常规操作系统(Kylin Linux)。 Sunway TaihuLight被认为是MPP,因为它的节点具有特定的架构SW26010,并且可以在他自己的操作系统Sunway Raise OS上工作。
我发现这个问题最具体的解释是Sourcebook of Parallel Computing (Dongarra et al.):
我们注意到术语群集既可以广泛应用(任何使用大量商品组件构建的系统),也可以狭义地应用(仅限商品组件和开源软件)。实际上,没有精确的集群定义。用于证明系统是大规模并行处理器(MPP)而非集群的一些问题包括专有互连(...),特别是为特定设计而设计的互连 并行计算机,以及将整个系统视为单个计算机的特殊软件,尤其适用于系统管理员。集群可以从个人计算机或工作站(单处理器或对称多处理器(SMP))构建,并且可以运行开源或专有操作系统。