24

Cluster 和 MPP 超级计算机架构有什么区别?

4

4 回答 4

30

在集群中,每台机器在内存、磁盘等方面很大程度上独立于其他机器。它们通过正常网络的一些变化相互连接。集群主要存在于程序员的脑海中,以及她/他如何选择分配工作。

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

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

MPP 编程起来可能很麻烦,并且仅在令人尴尬的并行算法上使用(实际上就是他们所说的)。但是,如果您有这样的问题,那么 MPP 可能会非常快。它们也非常昂贵。

于 2011-04-06T18:18:17.247 回答
16

正如Dongarra 等人所解释的, top500列表在 MPP 和集群之间使用了稍微不同的区别。纸:

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

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

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

更新:

东加拉等人。关联

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

于 2014-02-18T11:16:10.633 回答
2

集群是一堆机器,通常是以太网互连(阅读:网络),每台机器都运行自己的独立操作系统副本,恰好服务于单一目的。

MPP 超级计算机通常意味着更快的支持非常快速的互连(例如 SGI NUMALink),它支持分布式共享内存(在不同的 MPP 节点上运行进程,这些节点通过快速互连使用共享内存来共享数据,就好像它们在单台计算机上运行一样)甚至是单个系统映像(操作系统的单个实例,主要是 Linux,同时在所有节点上运行,就像在一台机器上一样 - 例如,任何节点上的“ps aux”都会向您显示所有正在运行的进程国会议员)。

正如您所看到的,定义非常灵活,它更多的是规模问题,而不是明确的差异。

于 2011-04-06T18:14:38.693 回答
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))构建,并且可以运行开源或专有操作系统。

于 2017-07-03T19:12:01.757 回答