分布式共享内存如何在缓存和寄存器的存在下工作?

时间:2017-08-09 20:44:52

标签: distributed-computing distributed-system

我最近阅读了一些描述DSM的论文。

他们中的一些人试图提供顺序一致性。我理解算法是如何工作的以及它如何利用页面错误处理程序来完成它。但有一件事让我感到困惑的是,即使内存本身是顺序一致性,每台机器的缓存和注册也可能会破坏顺序一致性模型。

如何使用缓存/寄存器?

即使DSM支持轻松一致性(如TreadMarks论文),它在Lock()/ Unlock操作中执行所有同步,它仍然存在同样的问题:

如何处理缓存和注册以防止每台计算机上的私人副本?

1 个答案:

答案 0 :(得分:1)

DSM将扩展为DCSM (+最好用智能超越 -NUMA控制)

分布式相干共享内存(DCSM)架构,作为这种合适的内存架构的一种形式,其中物理上分离的内存区域 仍然可以作为一个连续的逻辑共享地址空间进行寻址。

为了使这个概念按照上面的要求工作,单词" Coherent "是关键(NUMA / L1,L2,{L3 |本地内存}管理控制所有花丝CPU内在函数,从寄存器到CPU本地缓存和内存)。

行业可用的强大DCSM实现必须解决了一致性问题,以便变得可行,并且这种底层DCSM系统的用户视图因此只是一个大/胖单一 - (抽象) - 主机的视图,尽管有成千上万的CPU和所有物理分布的计算资源(从CPU-s,DRAM-memory-blocks,各种IO设备,包括存储,所有网络接口等) 。),整个DCSM集成基础设施仍然是一个连贯的高性能" super" -host。

所以没有预期或需要直接的用户代码交互,并且可以启动任何遗留代码,现在有一些 8000+ CPU-s + XYZ [TB] RAM作为纯RAM内部计算的连贯空间(其中XYZ最近可以扩展到几百甚至几千的范围,如果不是数千,则比原则上的预算限制更多。)

人们可以很容易地感觉到,从这样的计算设备中得到什么,在这种具有如此巨大的计算资源的野兽之下,用户代码不需要也不会打扰如何/在何处物理利用实际资源,由于O / S级抽象保持用户代码的假设,它就在那里并且连贯地运行"跨越" 这样的分布式计算资源DCSM基础架构。

这不是很好吗?