并行与分布式 第7章 体系结构 上

文章目录

  • 并行与分布式 第7章 体系结构 上
    • 7.1 多处理器结构
      • 7.1.1 多处理器存储结构分类
      • 7.1.2 非共享存储多处理器
      • 7.1.3 共享存储多处理器
      • 7.1.4 多核结构
    • 7.2 Cache一致性问题
      • 7.2.1数据共享引发的问题
      • 7.2.2 Cache一致性协议
      • 7.2.3 监听协议的实现
      • 7.2.4目录式协议

并行与分布式 第7章 体系结构 上

7.1 多处理器结构

7.1.1 多处理器存储结构分类

非共享存储多处理器

  • 每个处理器内存私有,逻辑上独立编址不共享,无Cache一致性问题
  • 属于松散耦合系统,支持消息传递编程模型,如OpenMPI。
  • 多个处理器存在于多个计算机中,实质是多进程MIMD问题
  • 集群工作站(Cluster of Workstations,COW)/大规模并行处理机
    (Massively Parallel Processing,MPP)

共享存储多处理器

  • 所有处理器内存共享,逻辑上统一编址共享,有Cache一致性问题
  • 属于紧密耦合系统,支持共享存储编程模型。如OpenMP
  • 多个处理器存在于同一个计算机中,实质是多线程MIMD问题

7.1.2 非共享存储多处理器

工作站机群(COW)
• 每个节点是一套完整的计算机系统(SMP或Workstation),拥有本地
磁盘和独立完整的OS;
• 使用低成本的商用互联网络实现节点间的互联
• 作业通常由大量服务组成,服务有各自的私有地址空间
• 服务间采用RPC或Resful API互相调用,通过消息队列来协调工作流程
• 企业级应用,廉价、大规模、扩展性,MapReduce@Hadoop

请添加图片描述
三高系统目标

  • 高可用:结构鲁棒性(多活实例)、数据可靠(热备与副本)、可重构系统(多点协同) (节点宕机与链路断路实验)
  • 高性能:负载均衡(反向代理)、弹性计算(webservice)、低延迟(消息队列,分布式缓存) (峰值性能暴力测试)
  • 高可信:数据加密,身份认证,权限控制

大规模并行处理机(MPP)
• 使用高宽带低延时的通信网络实现节点间的互联
• 具有较好的可扩放性,支持数百/千万级别的处理器规模
• 作业通常由大量进程组成,进程有各自的私有地址空间
• 进程采用消息传递机制,常采用阻塞报文交互方式
• 一个OS管理所有的硬件 超算

请添加图片描述

7.1.3 共享存储多处理器

集中式共享存储多处理器
• CSM:Centralized Shared-Memory Multiprocessor
• SMP:Symmetric Shared-Memory Multiprocessor
• UMA:Uniform Memory Access Multiprocessor
• 处理器访问存储器的时间是一样的(均匀的)

请添加图片描述

分布式共享存储多处理器
• DSM: Distributed Shared-Memory Multiprocessor
• AMP:Asymmetric Shared-Memory Multiprocessor
• NUMA:Non-Uniform Memory Access Multiprocessor
• 处理器访问存储器的时间是不一样的(非均匀)
请添加图片描述

7.1.4 多核结构

原有的多处理器是指多个CPU,每个CPU是单核的。多核技术是对多处理器技术的进一步扩展,多核技术是指在一枚处理器中集成两个或多个完整的计算内核,从而提高计算能力的技术。多核CPU采用了与原来的单CPU相同的硬件体系结构,显著提升计算能力的同时无需进行硬件技术的变更。

多核架构的研究内容

  • 片内处理核心的个数
  • Cache层次和容量分布
  • 互连结构
  • 晶体管使用的平衡度

典型多核结构:专用L1-Cache结构
早期多核处理器的一种组织架构,现在在嵌入式芯片中仍能见到。在这种组
织方式中,只有一级片内Cache,每个核带有自己的专用L1 Cache,分成指令Cache和数据Cache。这种组织的一个典型实例是ARM11 MPCore。
请添加图片描述

典型多核结构:专用L2-Cache结构
专用L2 Cache多核系统结构无片内共享Cache,在这种结构里,片内有
足够的可用面积容纳多个L2 Cache。这种组织的一个典型实例是AMD Opteron。

请添加图片描述

典型多核结构:共享L2-Cache结构
共享L2 Cache多核系统结构采用了和专用L2 Cache多核结构类似的存储空间分配,不同的是该处理器架构拥有共享L2 Cache,Intel的Core Duo处理器就是这种结构。
请添加图片描述

典型多核结构:共享L3-Cache结构
共享L3 Cache多核系统结构出于性能上的考虑,分离出一个独立的三级
Cache,每个CPU计算内核除了拥有专用的一、二级Cache外,还共享L3
Cache; Intel Core i7就是这种结构。

请添加图片描述

基于Cache结构的优点

  • 全局数据在共享Cache级上不需要复制,内核间通信开销低
  • 层次化Cache系统化减少整个系统的不命中概率,局部线程能使用更多的Cache空间
  • Cache在芯片晶体管面积中占比增大,可以显著降低系统功耗

7.2 Cache一致性问题

7.2.1数据共享引发的问题

共享数据在共享存储多处理器结构中,只供一个处理器使用的数据称为私有数据,多个处理器共同使用的数据称为共享数据,各个处理器通过对共享数据的读写来实现通信。

缓存一致性问题
• 数据进入Cache,可减少平均访存时间和减轻对存储器的带宽要求。
• 私有数据进入Cache,不会引入新的问题
• 共享数据进入Cache,则同一存储块在多个处理器的Cache中有副本,当某个处理器对其Cache中的副本修改后,该副本与其他副本中的数据不一致,称为多处理机的Cache一致性问题

7.2.2 Cache一致性协议

Cache一致性协议的分类

  • 写作废协议(Write invalidate)vs 写更新协议
    ·发生WtHit时,把所有其他副本全部作废,还是将新数据同步更新到所有副本
  • 写直达协议 vs 替换写回协议
    • 发生RdMiss/WtMiss时,去存储器获得最新数据,还是从远程cache获得最新数据
  • 按写分配协议(经过cache)vs 不按写分配协议(绕过cache)
    • 发生wt时,先调入本地cache再wt,还是直接到数据所在处wt

Cache一致性协议的两种实现方式

监听式协议
• 基于总线传递信息:1vN
• 存储器中数据块的共享状态信息分散保存在各个Cache中,物理上分布的各个存储器拼合成逻辑上统一的大存储器,物理上分布的cache状态信息拼合成逻辑上统一的Cache Hot状态。

目录式协议
• 基于互联网络传递信息:1v1
• 存储器中数据块的共享状态信息集中保存在本地目录中,物理上分布的各
个存储器拼合成逻辑上统一的大存储器,物理上分布的目录拼合成逻辑上
统一的大目录。

写更新 vs 写作废

• 占用总线进行状态信息传输的次数、内容和数据量
• 占用总线进行数据传输的次数、内容和数据量
• 对同一个数据,从对它的写操作到它的读操作之间的延迟

7.2.3 监听协议的实现

监听协议的实现保存信息

• 替换写回法Cache的修改位可直接实现一致性(修改位置1的必然是系统中唯一最新副本)
• Cache原有的有效位可以直接实现作废操作
• Cache原有的Tag可直接实现监听(地址Tag比对)
• 给每个Cache块增设一个共享位(独占为0共享为1)
监听协议的实现传递信息
RdMiss/WtMiss/Invalidate
监听协议状态、操作、时序

• 每个Cache控制器内嵌入有限状态机
• 操作包括:改变Cache状态,通过总线访问存储器,通过总线发送Cache作废
• 写访问串行化通过总线控制权的竞争来保证

每个cache包含四个部件
• Cache控制器
• Cache地址表(lookup table)
• Cache数据表(data table)
• Cache状态表

每个cache中的数据块只有三种状态:

• Invalid(无副本)
• Shared(至少1副本且存储器中的值是最新值,clean,只读)
• Modified(唯一副本且存储器中的值是旧值,dirty,读写)

Cache控制器有两个探针

• 一个探针监听本地CPU
• 一个探针监听共享总线

每个CPU只与本地cache控制器交互
• CPU不连入共享总线,所有远程访问均经过本地cache控制器实现

本地Cache控制器监听本地CPU的数据请求地址
请添加图片描述

本地Cache控制器通过总线监听其他远程Cache
请添加图片描述

监听式协议小结

• 两种情况下cache块写回存储器:发生M块替换,以及M变S之前
• 两种情况下Invalidate:收到Invalidate,以及收到WtMiss
• 调入新块时,优先从远程cache调,没有才从存储器调;多个远程cache可能都有share状态的副本,多个cache要竞争
• 直接利用系统中已经存在的总线和Cache状态位,实现容易,成本 较低
• 一个cache在总线上广播,其他cache监听,系统规模变大时,广播 操作将成为系统瓶颈,因此该协议的可扩放性较差

7.2.4目录式协议

目录:一种逻辑上集中的数据结构。对于存储器中的每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。 对于任何一个数据块,都可以快速地在唯一的一个位置中找到相关的信息。

物理上分布式:适用分布式共享存储多处理器,目录与存储器均分布在各节点中,每个目录中仅保存对应本地存储器的cache状态信息,对不同目录的访问可以在不同节点上并行

分布式共享存储多处理器(增加目录)
请添加图片描述

节点分类及关系
• 请求节点A(发出访问请求地址K)
• 目录节点B(维护地址K对应的唯一存储器的目录,不分本地还是远程)
• 远程节点C(其cache中拥有对应副本,逻辑上的远程)

请添加图片描述

宿主

  • 请求节点A通过K可以解析出唯一目录节点B,K高位为存储器节点索引,K低位为存储器节点内偏移,所有存储器采用高位交叉编址,对存储单元矩阵按列优先的方式进行编址,同一个存储器中的高log2m位都是相同的
  • 目录节点B通过查询目录状态信息,可能从自己的存储器中取出数据向A提供服务,也可能会从共享集中选中一个远程节点C,从其Cache中取回副本然后向A提供数据服务

系统各部件状态

  • 目录为存储器中的每个存储块记录状态,共有三种状态
    • Uncached(所有cache中无副本)
    • Shared(至少1副本且存储器中的值是最新值,clean,只读模式)
    • Exclusive(其拥有者cache具有唯一副本且存储器中的值是旧值,dirty,读写模式)

每个cache为本地缓存的数据块记录状态,共有三种状态
• Invalid(无副本)
• Shared(至少1副本且存储器中的值是最新值,clean,只读模式)
• Modified(唯一副本且存储器中的值是旧值,dirty,读写模式)

每个cache为本地缓存的数据块记录状态,共有三种状态:
• Invalid(无副本)
• Shared(至少1副本且存储器中的值是最新值,clean,只读模式)
• Modified(唯一副本且存储器中的值是旧值,dirty,读写模式)

目录状态信息
• 目录状态信息是一种数据结构,用于记录哪些cache拥有数据块的副本。
• 最常用的实现技术是采用位向量:为被缓存的设置是每个主存块设置一个位向量,向量中的每一位对应于一个处理器,其长度与处理器的个数成正比。由位向量指定的处理机的集合称为共享集G。
• 处理器个数N,每个本地存储块个数m,则信息量m x N x N,O(N^2) • 可以仅对进入cache的块设置目录(动态法),也可以让目录项的位向量长度固定(静态法)

请添加图片描述
本地Cache控制器监听本地CPU的数据请求地址,根据该地址查询本地数据cache
请添加图片描述
远程节点C响应目录节点B
请添加图片描述
目录节点B响应A
请添加图片描述
目录节点B响应C
请添加图片描述

目录结构分为3类
• 全映像:每一个目录项都包含一个位向量,N个处理机,位向量N位,每一位对应于一个处理机,目录所占用的空间与N^2成正比。
• 有限映像:每一个目录项存放一个处理机号码,共有m个目录项,m为常数,N个处理机,则号码位数log_2^N,目录所占空间Nm log_2^N。(替换策略)
• 链式目录:每一个目录项存放一个指针链表项,链表的长度随着副本数的增减动态变化,平均长度m为常数级,N个处理机,目录所占空间Nm log_2^N。(单向链表 双向链表)

目录式协议小结
• 目录式协议中,cache的基本状态,cache块的状态转换规则,与
监听式协议在实质上是相同的
• 当对cache块进行写操作时,该cache块必须处于独占状态
• 对于任何一个处于共享态的块,目录节点的存储器的内容是更新过的最新值
• 监听式协议中的“消息广播”,改为“点对点通信”
• 当出现某cache块被替换写回时,被写回的旧块有唯一目录节点B1,被调入的新块有唯一目录节点B2,cache和B1、B2都是单线联系,B1和B2在逻辑上是不同的节点,当然地址分布重合也可能导致B1和B2落在相同的物理节点中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构~~~~ [队列] ~~~~

文章目录 队列队列的概念与结构队列的接口实现***队列的初始化******队列的销毁******队列的插入与创建节点******队列的删除******队列的队头数据******队列的队尾数据******队列的判空*** 队列 队列的概念与结构 队列的插入数据在队尾出数据在队头(尾入头出&…

pytorch下载离线包的网址

下载地址:https://download.pytorch.org/whl/torch_stable.html 安装GPU版本需要安装:torch、torchvision、 注意版本需要对应上 格式:适用cuda版本,torch版本 或者 orchvision版本,cp38就是适用python 3.8版本 下…

PGFNet

方法 MFRM means ‘multi-modal feature refinement mechanism’,MMAFM means ‘multi-modal and multi-scale attention fusion model’,RPM means ‘residual prediction module’ scale attention weights U R S _R^S RS​,U D S _D^S DS​ enhan…

【操作系统】文件系统的逻辑结构与目录结构

文章目录 文件的概念定义属性基本操作 文件的结构文件的逻辑结构文件的目录结构文件控制块(FCB)索引节点目录结构 文件的概念 定义 在操作系统中,文件被定义为:以计算机硬盘为载体的存储在计算机上的信息集合。 属性 描述文件…

【Redis使用】一年多来redis使用笔记md文档,第(2)篇:命令和数据库操作

Redis 是一个高性能的key-value数据库。本文会让你知道:什么是 nosql、Redis 的特点、如何修改常用Redis配置、写出Redis中string类型数据的增删改查操作命令、写出Redis中hash类型数据的增删改查相关命令、说出Redis中 list 保存的数据类型、使用StrictRedis对象对…

Vue3+Vite实现工程化,插值表达式和v-text以及v-html

1、插值表达式 插值表达式最基本的数据绑定形式是文本插值,它使用的是"Mustache"语法,即 双大括号{{}} 插值表达式是将数据 渲染 到元素的指定位置的手段之一插值表达式 不绝对依赖标签,其位置相对自由插值表达式中支持javascript的…

[uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝

toast一闪就消失 1.猜测频繁点击导致 – 排除 2.猜测再定时器内导致-- 排除 3.和封装的接口调用一起导致 - 是改原因 深挖发现: axios封装中, 对loading/hindloading进行了配置, 看来是 showToast 与 loading等冲突导致的 wx.hideLoading(Object object) 解决办法 再封装的…

【计算机毕业设计】Node.js商城APP-97200,免费送源码,【开题选题+程序定制+论文书写+答辩ppt书写-原创定制程序】

Node.js商城APP的开发 摘 要 在传统的商业模式中,对于日常各类商品,人们习惯于到各种商家店铺购买。然而在快节奏的新时代中,人们不一定能为购买各类商品腾出时间,更不会耐心挑选自己想要的商品。所以设计一个商城APP&#xff0c…

Notpad-- ubuntu下载安装

Notpad-- ubuntu下载安装 下载 Gitee链接: https://gitee.com/cxasm/notepad– 安装 sudo apt install *.deb运行 /opt/apps/com.hmja.notepad/files/Notepad--出错 需要安装qt5 sudo apt-get install qt5-default

米诺地尔行业分析:预计2029年将达到14亿美元

米诺地尔市场规模庞大,不仅包括消费品市场和服务行业,还涵盖了创新科技领域。随着经济的发展和市场需求的不断增长,米诺地尔市场的规模将继续扩大,各行各业都将面临更多机遇和挑战。 随着社会经济发展和城市化进程的推进&#xff…

【JavaEE初阶】计算机是如何工作的

一、计算机发展史 计算的需求在⼈类的历史中是广泛存在的,发展大体经历了从⼀般计算⼯具到机械计算机到目前的电子计算机的发展历程。 人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是…

竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

【C++百宝箱】语法总结:引用 | 内联函数 | auto | 范围for循环

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C入门宝典 🔥本文主要探讨C的语法,并深入了解C如何针对C语言中存在的不合理之处进行优化改进。 目录: ⌛…

麒麟KYSEC使用方法02-开启及关闭exectl

原文链接:麒麟KYSEC使用方法02-开启及关闭exectl hello,大家好啊,今天给大家带来麒麟KYLINOS的kysec使用方法系列文章第二篇内容----使用命令开启及关闭exectl,可执行程序策略有三种模式,off/enforing/warning&#xf…

算法(圆的定义和相关术语)

无向图的度 图中每一个顶点的度定义为以该项点为一个端点的边的数目 #include <cstdio>const int MAXN 100;int degree[MAXN] { 0 };int main() {int n, m, u, v;scanf("%d%d", &n, &m);//在输出边度的时候就已经表示度的数目了&#xff0c;所以用一…

Flutter笔记:使用相机

Flutter笔记 使用相机 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134493373 【简介】本文介绍在 Fl…

3D 纹理渲染如何帮助设计师有效、清晰地表达设计理念

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 定义 3D 渲染可视化及其用途 3D 可视化是一种艺术形式。这是一个机会。这是进步。借助 3D 纹理…

基于单片机电梯液晶显示防超重,防气体报警、防夹报警控制系统及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、液晶显示楼层。 3、防超重&#xff0c;防气体报警、防夹报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /lcd1602初始化设置*/ void init_1602() //lcd1602初始化设置 { write_co…

亚马逊出口电热毯日本PSE认证需要什么资料解析

电热毯出口日本需要办理PSE认证&#xff0c;电热毯&#xff0c;又名电褥&#xff0c;是一种接触式电暖器具。 PSE认证介绍是日本强制性认证&#xff0c;包含安全及EMI&#xff0c;用以证明电子电气等产品符合日期电气用品安全法或国际IEC标准的要求。日本电气用品安全法规定&am…

MyBatis框架——Mybatis操作数据库之简单的insert操作的实现

入门_MyBatis中文网https://mybatis.net.cn/getting-started.html一些配置文件的模板可以从mybatis的官网中找到。 一、MyBatis操作数据库步骤 1、读取MyBatis配置文件mybatis-config.xml。 mybatis-config.xml作为mybatis的全局配置文件&#xff0c;配置MyBatis的运行环境等…