博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux内核学习笔记:SMP、UMA、NUMA
阅读量:4211 次
发布时间:2019-05-26

本文共 1664 字,大约阅读时间需要 5 分钟。

1. 概述
  SMP称为共享存储型多处理机(Shared Memory mulptiProcessors), 也称为对称型多处理机(Symmetry MultiProcessors)。
  共享存储型多处理机有三种模型:均匀存储器存取(Uniform-Memory-Access,简称UMA)模型、非均匀存储器存取(Nonuniform-Memory-Access,简称NUMA)模型和只用高速缓存的存储器结构(Cache-Only Memory Architecture,简称COMA)模型,这些模型的区别在于存储器和外围资源如何共享或分布。
  UMA多处理机模型如图8.23所示。图中,物理存储器被所有处理机均匀共享。所有处理机对所有存储字具有相同的存取时间,这就是为什么称它为均匀存储器存取的原因。每台处理机可以有私用高速缓存,外围设备也以一定形式共享。
   NUMA多处理机模型如图8.24所示,其访问时间随存储字的位置不同而变化。其共享存储器物理上是分布在所有处理机的本地存储器上。所有本地存储器的集合组成了全局地址空间,可被所有的处理机访问。处理机访问本地存储器是比较快的,但访问属于另一台处理机的远程存储器则比较慢,因为通过互连网络会产生附加时延。 
 
  COMA模型如图8.25所示,一种只用高速缓存的多处理机。COMA模型是NUMA机的一种特例,只是将后者中分布主存储器换成了高速缓存, 在每个处理机结点上没有存储器层次结构,全部高速缓冲存储器组成了全局地址空间。远程高速缓存访问则借助于分布高速缓存目录进行。
 
  共享存储系统拥有统一寻址空间,程序员不必参与数据分布和传输。早期的并行处理系统几乎都是基于总线的共享存储系统,它们的发展得益于两方面的原因:一个是微处理器令人难以置信的性能价格比,另一个是在基于微处理器的并行处理系统中广泛使用的cache技术。这些因素使得将多个处理器放到同一条总线上,共享单一存储器成为可能,并通过cache将所有处理器访问存储器所需的存储带宽降低到可以接受的水平。cache一致性是通过监听协议实现的。这种实现方式虽然简单,但是阻碍了系统的扩展能力。
  到80年代中期,对可扩展的多处理器系统的需求不断增长。基于总线的、cache一致性、共享单一存储器的机器显然是不可扩展的。1996年SGI Origin 2000系列服务器的推出,一种称为S2MP的并行计算机体系结构受到了广泛的注意。S2MP全称为可扩展共享存储多处理(Scalable Shared-memory MultiProcessing)技术。S2MP系统将大量高性能微处理器连接起来,共享一个统一的地址空间,较好地解决其他并行处理系统无法解决的问题。
  S2MP是一种共享存储的体系结构,和大规模的消息传递系统相比,它支持简单的编程模型,系统使用方便,是对SMP系统在支持更高扩展能力方面的发展。共享存储系统降低了通信的额外开销,因此系统也可以运行细粒度的应用。S2MP着眼于扩展性能的研究,和传统的基于总线的共享存储并行处理系统相比,它不存在系统中可以连接的处理器数目的总线带宽的限制。
  S2MP作为大规模多处理系统,主要问题仍然是解决系统的可扩展和易编程能力。S2MP系统采用分布式存储器技术,引入cache,降低了访存时延。同时系统内处理器通过高速无阻塞的互连网络连接,增加了系统的通信带宽。这些技术保证了S2MP系统的可扩展性能。另一方面,解决编程问题的主要方法仍然是提供与单机类似的统一地址空间,因此S2MP系统采用共享存储的存储器模型,每个处理器结点都可以直接访问所有的存储单元,程序员不用在程序中显式地控制在处理器之间分布数据和进行通信,因而容易编程。直接访存也使得在处理器间动态分配任务,实现负载平衡简单了。同时,由于共享存储系统是由小规模并行多处理器系统演变而来的,它们具有相同的编程模型,所以那些已有的并行应用问题可以很容易地移植过来运行,解决了并行处理系统的应用程序开发问题。

转载地址:http://hjkmi.baihongyu.com/

你可能感兴趣的文章
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>
SQL注入法攻击一日通
查看>>
论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
查看>>
论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
查看>>
论文浅尝 | GMNN: Graph Markov Neural Networks
查看>>
廖雪峰Python教程 学习笔记3 hello.py
查看>>
从内核看epoll的实现(基于5.9.9)
查看>>
python与正则表达式
查看>>
安装.Net Framework 4.7.2时出现“不受信任提供程序信任的根证书中终止”的解决方法
查看>>
input type=“button“与input type=“submit“的区别
查看>>
解决Github代码下载慢问题!
查看>>
1.idea中Maven创建项目及2.对idea中生命周期的理解3.pom文件夹下groupId、artifactId含义
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>
stdin,stdout,stderr详解
查看>>
Linux文件和设备编程
查看>>