并行分布式计算 并行计算机体系结构

news/2024/4/28 1:38:27/文章来源:https://blog.csdn.net/Ryansior/article/details/130039188

文章目录

  • 并行分布式计算 并行计算机体系结构
    • 并行计算机结构模型
      • SIMD 单指令多数据流
      • PVP 并行向量处理机
      • SMP 对称多处理机
      • MPP 大规模并行处理机
      • DSM 分布式共享存储多处理机
      • COW 工作站集群
      • 总结
    • 并行计算机访存模型
      • UMA 均匀存储访问模型
      • NUMA 非均匀存储访问模型
        • COMA 全高速缓存存储
        • CC NUMA 高速缓存一致性非均匀存储访问
      • NORMA 非远程存储访问
      • 总结
    • 并行计算机存储组织
      • 层次存储结构
      • 高速缓存一致性
      • 监听总线协议
      • 基于目录的协议

并行分布式计算 并行计算机体系结构

冯诺依曼体系存在的问题:运算器和存储器分离,导致运算器速度提升比存储器快得多,即“存储器墙”问题。

并行计算机结构模型

SIMD 单指令多数据流

CUDA 就是 SIMD 的形式,图形学中很多计算都是相同的计算形式、不同的数据流。

游戏图形计算中往往只需要单精度 SIMD,因为只需要算到屏幕中的某个像素的坐标(整数)。

PVP 并行向量处理机

定制高性能向量处理机,经由高带宽的交叉开关网络,连接共享存储器。

问题:交叉开关的成本高,适用于定制化的场景。

请添加图片描述

  • VP:向量处理机,vector processor
  • SM:共享存储器,shared memory

SMP 对称多处理机

商用处理器,经由高速总线(或交叉开关网络),连接共享存储器。

系统是对称的,每个处理器可以等同地访问共享存储器、IO 设备。(不同于 USMP 非对称处理机,只有部分处理器能够执行操作系统并能操作 I/O)

问题:共享存储器导致 P/C 之间的通信成本较高。

请添加图片描述

MPP 大规模并行处理机

处理节点为商用处理器,物理上的分布式存储器,专门设计和定制的高通信带宽低延迟网络。

扩展性好,能扩展到成千上万个处理器。

特点:异步 MIMD,多个进程,突破了共享内存的模式,每个处理器具有私有地址空间,所以进程间采用消息传递机制协同。

问题:改变了编程方式,一台机器上编程只能看到自己的地址空间,访问其他核和 LM 需要时钟同步。

请添加图片描述

  • LM:本地存储器,Local Memory

  • NIC:网卡,Network Interface Card

DSM 分布式共享存储多处理机

使用高速缓存目录(DIR)支持分布高速缓存一致性。

采用分布式共享存储器(逻辑上共享,由 DIR 实现),系统硬件和软件提供单一地址的编程空间。

特点:DIR 是一种硬件协议,使用 DIR 可以解决 MPP 中地址空间分隔的问题。

问题:DIR 是一种标准的协议,无法对具体的算法提供特殊优化点。

请添加图片描述

COW 工作站集群

每个节点是完整“无头工作站”(没有显示器、鼠标、键盘等),通过低成本商品网络互连。

每个节点有本地磁盘(MPP没有本地磁盘,只有本地内存),网络层耦合到 I/O 总线(MPP则是将网络层耦合到存储总线),每个节点驻留完整操作系统(MPP 的每个节点是微核)

特点:可以看作是低成本 MPP;

问题:标准以太网较慢,需要想办法降低网络负载,增加了开发难度;

请添加图片描述

总结

请添加图片描述

并行计算机系统
SIMD
MIMD
PVP
SMP
MPP
DSM
COW

并行计算机访存模型

UMA 均匀存储访问模型

特点:例如 SMP、PVP

  • 物理存储器被所有处理器均匀共享;
  • 所有处理器访问任何存储字是相同的时间;
  • 每台处理器可以带有私有高速缓存;
  • 外围设备 I/O 也可以以一定形式共享;

问题:处理器数量受限,否则交叉开关网络会变得很复杂

请添加图片描述

NUMA 非均匀存储访问模型

特点

  • 被共享的存储器在物理上是分布在所有的处理器中的,所有本地存储器的集合就组成的全局地址空间;
  • 处理器访问不同存储器的时间是不一样的,访问本地存储器 LM 或群内贡献存储器 CSM 较快,而访问外地的存储器或者全局共享存储器 GSM 较慢;
  • 每台处理器可带有私有高速缓存,外设也可以以某种形式共享。
  • 处理器数量相对于 UMA 来说可以扩展到更多,更常用;

问题:Cache 的同步协议复杂,会浪费带宽。

请添加图片描述

COMA 全高速缓存存储

Cache Only Memory Access

特点

  • 各处理器节点中没有存储器层次结构,而是由全部高速缓存组成了全局地址空间;

  • 利用分布的高速缓存目录 D 进行远程的高速缓存的访问

  • COMA 中的高速缓存容量一般都大于 2 级高速缓存容量;

  • 使用 COMA 时,数据开始时可以任意分布,因为在运行时它们最终会被迁移到要用到它们的地方

Tip:DIR 协议中就体现了 Cache

请添加图片描述

CC NUMA 高速缓存一致性非均匀存储访问

Coherent-Cache Nonuniform Memory

特点

  • 大多数使用基于目录的高速缓存一致性协议;
  • 保留 SMP 结构易于编程的特点,也改善了常规 SMP 对于处理器的可扩放性;
  • CC NUMA 实际上是一个分布共享存储的 DSM 多处理机系统
  • 最显著的优点是共享存储,程序员无需明确地在节点上分配数据,系统的 硬件和软件开始时自动在个节点分配数据。在运行期,高速缓存一致性硬件会自动地将数据迁移至要用到它的地方。

请添加图片描述

NORMA 非远程存储访问

特点:例如 MMP、COW

  • 所有存储器是私有的,仅能尤其处理器访问
  • 绝大多数 NORMA 都不支持远程存储器的访问
  • 最常用,对于计算特点明显的任务,可以对每个单独的处理器和存储器进行硬件选择和特殊优化,扩展性好

问题:编程难度高

请添加图片描述

总结

请添加图片描述

并行计算机存储组织

层次存储结构

跟之前计组学的差不多。

注意:一台机器内的存储一定要是同步的。

请添加图片描述请添加图片描述

高速缓存一致性

高速缓存策略有:

  • 写直达(WT):在某一层的存储器修改了一个字,下一层的存储器需要立即修改;尽最大可能保证一致性,但是慢;
  • 写回(WB):下一层存储器的修改延迟到上一层中修改的字被替换或者消除后才进行;节省带宽,速度快,但是容易发生共享可读写数据不一致的情况;

监听总线协议

监听协议:如果总线业务破坏了本地高速缓存中数据的一致性状态,那么高速缓存中的控制器就应采取相应的动作使本地的副本无效,采用此机制保证高速缓存一致性协议的协议称为监听协议。(想一下 SIS 里学的 MESI)

  • 写无效(WI):某一处高速缓存发生修改,通过总线是其他高速缓存无效;延迟高,总线不繁忙;
  • 写更新(WU):某一处高速缓存发生修改,通过总线广播新的数据给其他高速缓存;数据总是同步,总线繁忙;

请添加图片描述

基于目录的协议

使用一个目录来记录共享数据的所有高速缓存行的位置和状态,读取缓存就不需要经过 CPU 了,而是直接通过 DIR。

请添加图片描述

C2C_2C2 读缺失时:

  • C2C_2C2 产生一个请求给 D1D_1D1
  • D1D_1D1 指示在 C1C_1C1 中有 CleanCleanClean 副本;
  • 控制器将请求传递给 C1C_1C1
  • C1C_1C1 将内容传递给 M1M_1M1C2C_2C2

C1C_1C1 写命中时:

  • 控制器发送无效命令给 D1D_1D1 中有标记的所有高速缓存。

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

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

相关文章

Nestjs实战干货-概况-控制器-Controller

Controller 控制器 控制器负责处理传入的请求并向客户返回响应。 一个控制器的目的是接收应用程序的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有一个以上的路由,不同的路由可以执行不同的动作。 为了创建一个基本的控制器&#…

【游戏逆向】加密坐标浅析

这个游戏里面坐标有很多种存放方式。 例如明文存放的DOUBLE,加密的各种类型。 我们不知道哪一个对于我们是有用的,哪一些只是辅助UI或则掉到LUA虚拟机坑里的数据。 那就根据作用大小来决定,一一尝试吧。 最好去找修改之后有效果的地址,当然只是本地&…

MySQL中count(1)和count(*)哪个性能好?

当我们对某一张表中的数据需要统计数量的时候,我们通常会用到count(1)、count(*)或者count(字段),而这三种哪个方式的count效率最高呢?先来说结论: count(1) count(*) > count(字段) 为什么会得到如上的结论,下面来…

1672_MIT 6.828 xv6中如何通过构建环境让系统中增加一个可执行调用文件

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 前面已经分析了如何实现一个系统调用,这个过程的梳理也已经整理成了一份学习笔记。这一次看一下,如何让OS的系统中增加这样的一个可执行的文…

Arduino2.0.4的安装以及上传错误:exit status2

一、安装并下载Arduino 可以进入到下面这个网站中下载会比较快。 Arduino IDE下载(9月15日更新到2.0)-Arduino爱好者 - Powered by Discuz! Arduino IDE下载(9月15日更新到2.0)-Arduino爱好者 - Powered by Discuz!Arduino IDE下…

【基于冗余缩减变换:Pan-Sharpening】

Pan-Sharpening Based on Transformer With Redundancy Reduction (基于冗余缩减变换的全色锐化算法) 基于深度神经网络(DNN)的泛锐化方法已经产生了最先进的结果。然而,在全色(PAN)图像和低空…

Python-Python基本用法(全:含基本语法、用户交互、流程控制、数据类型、函数、面向对象、读写文件、异常、断言等)

1 环境准备 编辑器:Welcome to Python.org 解释器:pycharm:Thank you for downloading PyCharm! (jetbrains.com) 2 Quick start 创建项目 new project create demo print(Dad!!)3 基本语法 3.1 print 直接打印 print(Dad!!)拼接打印…

AD20添加元件3D库

Altium Designer是画PCB常用的工具之一,为了PCB的美观性,我们可以采用3D的方式查看已经画好的PCB板。但在这之前需要准备好每个元器件的3D模型。 1、下载3D格式模型 http://www.3dcontentcentral.cn 当然要先注册账户。 在搜索栏输入你想要找的器件。 模型格式STEP AP214…

vue-cli 初始化工程

个人记录下vue-cli创建项目的步骤 卸载老版本的vue-cli (这不是必要的) npm uninstall vue-cli -g 如果本地使用 yarn的话,还需执行 yarn global remove vue-cli 安装全新的vue-cli npm install -g vue/cli 安装指定版本的vue-cli npm install -g vue/…

linux 安装git并拉取代码教程

#一步一步执行以下命令sudo apt install git #安装gitgit --version #查看安装版本号git config user.name jtr #设置用户名git config user.email jiangtrcloudskysec.com #设置邮箱ssh-keygen -t rsa -C "jiangtrcloudskysec.com" #生成秘钥,一直往下按…

自动化测试框架:DrissionPage(1)——安装与设置

发现了一款基于Python的网页自动化工具:DrissionPage。这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和 requests 的高效率优点。 一、DrissionPage框架产生背…

【C++进阶】01:概述

概述 OVERVIEW概述C11新特性:C14新特性:C17新特性:C20新特性:C程序编译过程C内存模型CSTL1.Queue&Stack2.String3.MapC语言C语言面向过程编程✅✅面向对象编程(类和对象)❌✅泛型编程、元编程&#xff…

数据结构之七大排序

数据结构之七大排序🔆排序的概念及其运用排序的概念常见的排序算法🔆插入排序直接插入排序希尔排序🔆选择排序直接选择排序堆排序🔆交换排序冒泡排序快排🔆归并排序🔆非比较排序🔆结语&#x1f…

十二、Pytorch复现Residual Block

一、Residual Network 论文出处:Deep Residual Learning for Image Recognition 其核心模块: 二、复现Residual Block 这里以两层卷积层为例进行设计复现 resnet可以很好的解决梯度消失问题 Residual Block大致要点: 样本x传入模型&…

下一个“AI王炸”,别只盯着OpenAI,DeepMind也在憋大招

过去几个月,OpenAI风头无两,各大科技公司争先恐后地跟进大语言模型(LLM)这一技术路线。对比之下,OpenAI的老对手DeepMind,显得有些低调和沉默。微软靠OpenAI打了一场胜仗,而谷歌推出的Bard翻了车…

5.5G,运营商能接受吗?

2月份,我在巴塞罗那参加MWC 2023时有个发现。欧洲通信设备商大多在宣传和讨论6G相关技术,中国通信设备商却在重点展示5.5G,或者叫做5G-Advanced。而全球各国的运营商则都普遍处在比较观望的状态里,两头考察,多样化尝试…

中间表示- 到达定义分析

基本概念 定义(def):对变量的赋值 使用(use):对变量值的读取 问题:能把上图中的y替换为3吗?如果能,这称之为“常量传播”优化。 该问题等价于,有哪些对变量y…

OPNET Modeler 例程——创建一个移动无线网络

文章目录一、例程概述二、创建天线模型三、创建指向处理器四、创建节点模型1.发射机节点模型2.干扰发射机节点模型3.收信机节点模型五、创建网络模型六、收集统计量并运行仿真七、查看仿真结果总结一、例程概述 OPNET 无线模块支持地面和卫星无线系统的构建。在此例程中将构建…

【C++】基础篇

C基础篇什么是C命名空间命名空间的三种使用方式C的输入和输出缺省参数缺省参数分类函数重载引用引用的使用场景常引用指针和引用的区别auto关键字auto使用细则auto不能推导的场景基于范围的for循环范围for的使用条件指针空值nullptr什么是C 1982年,Bjarne Stroustr…

微服务+springcloud+springcloud alibaba学习笔记【Eureka服务注册中心】(3/9)

Eureka服务注册中心 3/91、服务注册与发现1.1 什么是服务治理:1.2 什么是服务注册与发现:1.3 Eureka服务注册与发现2、单机版eureka2.1 创建module2.2改pom依赖2.3写yml配置文件:2.4主启动类2.5 修改服务提供者 cloud-provider-payment8001 模块&#xf…