Memory 如何使所有分布式节点的RAM对单个节点可用?

Memory 如何使所有分布式节点的RAM对单个节点可用?,memory,shared-memory,distributed-computing,hpc,Memory,Shared Memory,Distributed Computing,Hpc,我已经在Linux上开发了一个应用程序,它将受益于一个内存更多的进程,而不是将单个进程卸载到内存更少的较小计算节点上。所以这是我在这里研究的一个选择 我希望在主节点上运行一个进程,但无论如何,使所有计算节点上的所有可用RAM都显示为主节点的一大块可用RAM(就像单个系统一样) 据我所知,这种单一系统映像(SSI)的使用现在被称为分布式共享内存(DSM)。我一直在研究单个系统映像,但不知道哪些映像支持此功能 有人知道哪些开源SSI包可以实现这一点吗?我还想知道OpenSSI,尽管列表非常不活跃 编

我已经在Linux上开发了一个应用程序,它将受益于一个内存更多的进程,而不是将单个进程卸载到内存更少的较小计算节点上。所以这是我在这里研究的一个选择

我希望在主节点上运行一个进程,但无论如何,使所有计算节点上的所有可用RAM都显示为主节点的一大块可用RAM(就像单个系统一样)

据我所知,这种单一系统映像(SSI)的使用现在被称为分布式共享内存(DSM)。我一直在研究单个系统映像,但不知道哪些映像支持此功能

有人知道哪些开源SSI包可以实现这一点吗?我还想知道OpenSSI,尽管列表非常不活跃

编辑:
在使用DSM时,我考虑的是在不同的计算节点上具有物理上独立的地址空间,并且能够访问它们,就好像它们是单个节点(头部节点)上单个进程可用的一个逻辑共享地址空间一样。我使用术语SSI(在本文中是错误的),因为我希望从用户的角度来看,系统显示为一个单独的系统。我目前使用的SSI是一个文件系统,其中所有无盘节点都从主节点上特定位置的单个映像启动

我知道多个节点的内存是通过comm lib(目前正在使用)实现的,但我需要更多的RAM。因此,在研究SSI包时,似乎提到了支持“单个IPC空间”的能力,我认为这可能是有用的。我读过几篇白皮书,其中节点的内存管理可以在操作系统级别处理,因此我不需要通信库,因为这将抽象到用户空间下面


我不想修改代码,因为如果它在本地主机上已经可用,那么它已经利用了大量的RAM。我有大量的RAM,除了RAM分布在不同的节点上,因此需要使用一些MPI类型的库。修改代码代价高昂,添加更多的RAM需要一个新的集群,代价高昂。然而,一个解决方案会给我的应用程序一个非常大的单一地址空间的错觉。。。我只能寄希望于此。

有许多库可以实现这一点,尽管您必须重构应用程序才能使用它们


仅举几个例子。这些都不是自动的,但是使用它们应该不会是一个巨大的负担。

有许多库可以实现这一点,尽管您必须重构应用程序才能使用它们


仅举几个例子。这些都不是自动的,但是使用它们应该不会是一个巨大的负担。

这是一个商业解决方案,而不是开源,但我相信它可以满足您的需求。我曾经在过去使用它将多个商品服务器聚合到一个更大的系统中的安装中工作过,但我自己没有直接使用过它。不过,我认为它需要Infiniband作为节点互连,而且它们有一个不太长的列表。

这是一个商业解决方案,而不是开源解决方案,但我相信它可以满足您的需求。我曾经在过去使用它将多个商品服务器聚合到一个更大的系统中的安装中工作过,但我自己没有直接使用过它。不过,我认为它需要Infiniband作为节点互连,而且它们有一个不太长的列表。

您可以做很多选择,包括在集群中使用MPI、PGAS语言或使用类似ScaleMP的软件包。这实际上取决于您的预算、您的应用程序可以利用不同技术的程度以及您当前的应用程序已经编写好要使用的内容。如果应用程序仅在一个操作系统下运行,则为don;您最好的选择是在纯硬件配置中使用SMP系统(4个甚至8个CPU),或者在虚拟SMP配置中使用多达128个CPU。然后,您需要确定您需要的是计算还是内存。如果使用vSMP类型的实现,则可以有2个、4个、6个或更多具有高内核数和高频率CPU的节点。如果您不需要处理能力,只需要内存占用,您可以向vSMP添加更多节点,这些节点具有较低成本的低内核数和频率CPU,并将其用作memmory控制器

您可以做很多选择,包括在集群中使用MPI、PGAS语言或使用类似ScaleMP的软件包。这实际上取决于您的预算、您的应用程序可以利用不同技术的程度以及您当前的应用程序已经编写好要使用的内容。如果应用程序仅在一个操作系统下运行,则为don;您最好的选择是在纯硬件配置中使用SMP系统(4个甚至8个CPU),或者在虚拟SMP配置中使用多达128个CPU。然后,您需要确定您需要的是计算还是内存。如果使用vSMP类型的实现,则可以有2个、4个、6个或更多具有高内核数和高频率CPU的节点。如果您不需要处理能力,只需要内存占用,您可以向vSMP添加更多节点,这些节点具有较低成本的低内核数和频率CPU,并将其用作memmory控制器

@Ender
你可以免费下载VSMP基金会-它可以让你聚集多达8个节点的内存,最多1TB RAM总的,免费的。请注意,免费版本只允许内存聚合,这意味着您将只拥有单个节点的核心计算能力,但拥有多个节点的RAM。

@Ender
你可以免费下载VSMP基金会-它将允许你聚合