分布式共享内存是并行处理发展中出现的一种重要技术。提供给程序员一个逻辑上统一的地址空间,任何一台处理机都可以对这一地址空间直接进行读写操作。具有分布式内存结构可扩充性的优点,也具有共享内存结构通用性好、可移植性、编程容易的优点。

分布式共享内存(distributed shared memory)是并行处理发展中出现的一种重要技术。(下文简称 DSM)提供给程序员一个逻辑上统一的地址空间,任何一台处理机都可以对这一地址空间直接进行读写操作。具有分布式内存结构可扩充性的优点,也具有共享内存结构通用性好、可移植性、编程容易的优点。

分布式共享内存是什么

热点技术包含复制问题、存储一致性模型等。实现方法包含硬件、软件、软硬件结合实现三种方式。

虽然从实现上考虑,这个统一的全局地址空间是不存在的,数据的访问是通过消息传递来进行的,但这些对程序员来说可以是透明的。

实现方式

DSM 的实现有三种方式:

①用硬件实现。实际上是传统的高速缓存(cache)技术在可扩展体系结构中的延伸。

操作系统和程序库的实现方法,通过虚拟内存管理机制实现共享和一致性。

③编译实现,自动将共享访问转变为同步和一致性原语。

复制问题

在 DSM 中,共享数据的位置可以是固定不动的、迁移的、复制的三种情况.复制要考虑解决以下几个问题:

(1) 共享数据的粒度

数据的共享粒度是指系统对数据访问故障复制的数据大小,不仅包括一次读数据要传输多少数据,还包括一次写数据会影响多少数据的有效性。一定的数据共享粒度可以使应用程序中的访问开发其局部性,使多次访问分担传送数据的开销。

(2) 一致性协议

对于数据复制的情况有两种基本的协议。即写无效和写更新协议.对于写无效与写更新的选择,利用竞争算法可以有自适应的优点。其结果在某些情况达到最忧结果,最坏也不超过全用写更新方式开销的两倍。

(3) 颠簸和替换

颠簸是指当两个结点同时对数据页进行写访问时引起的页面在两个结点之间频繁的传输,这种情况严重影响了系统的性能。

存储一致性(coherence)模型

有效地提供内存一致性是 DSM 系统的一个重要任务。为了能对存储器的性能进行优化,即利用写缓存技术、存储访问重叠技术、流水线技术等严格的一致性,无法开发程序的语义,因而出现了减弱了的一致性模型。其目的是为了解决三个问题:减少昂贵的消息发送次数;掩盖对非本地内存访问的长等待时间;解决因为一致性单元而潜在引起的假共享问题。

已有的一致性模型有:原子一致性、顺序一致性、处理机一致性、弱一致性、释放一致性、进入一致性。

实现方法

硬件实现

具有单一总线的共享内存多处理机系统具有不易扩展的缺点。为了解决这个问题,DSM 系统如 DASH,WillowH,ASURA 等在体系结构、处理机及内存的组织上有了变化.即由几个处理机形成一个 cluster,cluster 内的处理机由总线相连,而 cluster 之间由互连网络相连,每个 cluster 有自己的共享内存。

另一种新的 DSM 的体系结构是 COMA(cache only memory architecture),COMA 的所有内存都是以大的 cache 形式组织的.这个内存除了作为处理机的 cache 以外,它也包括有它永远不会访问的共享数据,它既是一个 cache 又是一共享存储的虚拟部分。

软件实现

在软件的开发上有三种途径。

①在语言层上开发,比如雅典的 OCCAM2++,通过预编译器将对共享变量的访问转化为利用虚拟通道进行的通信原语。

②编译实现,即将对共享变量的访问转化为向页面所有者请求页面的语句。

③在操作系统层实现,一般要通过对操作系统某些调用进行修改实现,比如 IBM Research 的 DSVM6K 就是对原有操作系统 AIX v3 作尽量少的修改完成的.IVY 也属于此类。

软硬件结合

在系统实现中,硬件实现具有速度快的优点,但价格比较昂贵.软件速度不如硬件快,但其价格相对比较便宜.因而要设计一个比较合算的系统,要考虑二者的结合.Limit—LESS 系统的目录实现中,硬件实现一定量的目录项,少量的目录可以存储在其中.但当目录项增大时,就要有一部分目录存储在内存中,由软件进行相应的处理.在 Galatica—Net 的实现中,将性能比较关键的部分(写更新)由硬件实现,而其它部分(如结点间页面的共享)则由操作系统软件实现.FLASH 在死锁的避免上,对于所需空间多于可使用的输出队列空间的消息,设置软件队列,在输出队列有空闲空间时再从软件队列中将要发送的消息放在输出队列中.

0个人收藏 收藏

相关推荐

  • Cloudflare Pingora

    Pingora是什么

    Pingora 是 Cloudflare 使用 Rust 在内部构建的新 HTTP 代理,它每天处理超过 1 万亿个请求,提高了 Cloudflare 的性能,并为 Cloudflare 客户带来了许多新功能,同时只需要 Cloudflar
  • Apache Mesos

    Apache Mesos,功能强大的开源集群管理系统

    Apache Mesos是一款高度灵活的开源集群管理工具,专为大规模复杂的数据中心和云环境设计。它通过资源抽象和隔离提高资源利用率,支持多租户和配额管理,并提供强大的容错能力。Mesos尤其适用于需要精细资源控制的大数据和科学计算场景,但其复杂性意味着有一定的学习门槛。
  • WordPress 服务器 WordPress Server

    WordPress推荐什么样的服务器要求

    选择WordPress服务器时,需考虑官方基本要求、服务器类型、性能、稳定性、安全性、支持服务等因素。对于初创网站,共享主机可能适用;而大型网站则可能需专用服务器或云主机。关键是确保服务器具备足够的资源、备份功能、安全保障,并提供良好的技术支持。
  • Nginx LOGO

    Nginx有什么作用

    Nginx是一款多功能的高性能开源Web服务器和反向代理服务器。它以快速响应、负载均衡、安全性、反向代理、缓存等多重功能而闻名,适用于静态和动态网站托管、API网关、负载均衡和反向代理等多种应用场景。Nginx的配置灵活,可通过简单的文本文件进行设置和定制。
  • Kubernetes K8s

    Kubernetes为什么简称是K8s

    Kubernetes通常简称为K8s,是一个开源容器编排工具,它的简称K8s采用了缩写约定,用数字8代替单词中的8个字母,以简化书写和提高可读性。简而言之就是K8s这个缩写是因为K和s之间有八个字符的关系。
  • PVE 虚拟机 vs ESXi 虚拟机

    PVE虚拟机和ESXi虚拟机有什么区别

    PVE虚拟机和ESXi虚拟机在虚拟化技术、管理方式、支持的操作系统、可靠性和稳定性、资源利用效率、网络性能、数据保护和灾备、社区支持等方面都有所不同。因此,在选择虚拟化平台时,需要根据实际需求进行评估和选择。