【并行计算】【《并行程序设计导论》笔记】第二章:并行硬件和并行软件

本文主要是介绍【并行计算】【《并行程序设计导论》笔记】第二章:并行硬件和并行软件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 2.1|背景知识
        • 冯·诺依曼结构
      • 2.2|对冯·诺依曼模型的改进
        • 指令级并行
          • 多发射
        • 硬件多线程
          • 同步多线程
      • 2.3|并行硬件
        • SIMD系统
          • 向量加法
          • 向量处理器
            • 向量寄存器
            • 向量指令
            • 交叉存储器
            • 步长存储器访问和硬件散射/聚集
            • 向量编译器
            • 可扩展性
          • 图形处理单元(GPU)
        • MIMD系统
          • 共享内存系统
          • 分布式内存系统
        • Cache一致性
          • 监听Cache一致性协议
          • 基于目录的Cache一致性协议
          • 伪共享
      • 2.5|输入和输出
        • 假设与规则

因上努力

个人主页:丷从心·

系列专栏:并行计算

果上随缘


2.1|背景知识

冯·诺依曼结构
  • 主存和 C P U CPU CPU之间的分离称为冯·诺依曼瓶颈

2.2|对冯·诺依曼模型的改进

指令级并行
多发射
  • 多发射处理器通过复制功能单元来同时执行程序中的不同指令
  • 如果功能单元是在编译时调度的,则称该多发射系统使用静态多发射,如果是在运行时间调度的,则称该多发射系统使用动态多发射
  • 一个支持动态多发射的处理器称为超标量
硬件多线程
同步多线程
  • 同步多线程是细粒度多线程的变种,通过允许多个线程同时使用多个功能单元来利用超标量处理器的性能
  • 通过指定优先线程能够在一定程度上减轻线程减速的问题,优先线程是指有多条指令就绪的线程

2.3|并行硬件

SIMD系统
  • 典型的冯·诺依曼系统是单指令流单数据流系统
向量加法
  • 有两个数组 x x x y y y,每个都有 n n n个元素,把 y y y中的元素加到 x x x
for (i = 0;i < n;i++)x[i] += y[i]
  • 假如 S I M D SIMD SIMD系统中有 n n n A L U ALU ALU,能够将x[i]y[i]加载到第 i i i A L U ALU ALU中,然后让第 i i i A L U ALU ALUx[i]y[i]相加,最后将结果存储在x[i]
  • 在经典的 S I M D SIMD SIMD系统中, A L U ALU ALU必须同步操作,即在下一条指令开始执行之前,每个 A L U ALU ALU必须等待广播
向量处理器
向量寄存器
  • 向量寄存器是能够存储由多个操作数组成的向量,并且能够同时对其内容进行操作的寄存器,向量的长度由系统决定
向量指令
  • 只需要一次加载、一次加法和一次存储操作就能完成对长度为vector_length的数据块的操作
交叉存储器
  • 内存系统由多个内存“体”组成,每个内存体能够独立访问
  • 在访问完一个内存体之后,再次访问它之前需要有一个时间延迟,如果向量中的各个元素分布在不同的内存体中,那么在装入 / / /存储连续数据时能够几乎无延迟地访问
步长存储器访问和硬件散射/聚集
  • 程序能够访问向量中固定间隔的元素
  • 散射 / / /聚集是对无规律间隔的数据进行读(聚集)和写(散射)
向量编译器
  • 向量编译器擅长于识别向量化的代码
  • 能识别出不能向量化的循环而且能提供循环为什么不能向量化的原因
可扩展性
  • 向量处理器不能处理不规则的数据结构和其他的并行结构,这对可扩展性是个限制
图形处理单元(GPU)
  • 通过在每个 G P U GPU GPU处理核中引入大量的 A L U ALU ALU来使用 S I M D SIMD SIMD并行
  • 为了避免内存访问带来的延迟, G P U GPU GPU严重依赖硬件多线程
MIMD系统
  • M I M D MIMD MIMD系统通常是异步的,没有全局时钟
共享内存系统
  • 在拥有多个多核处理器的共享内存系统中,互联网络可以将所有的处理器直接连到主存,称为一致内存访问 U M A UMA UMA系统,或者也可以将每个处理器直接连到一块内存,通过处理器中内置的特殊硬件使得各个处理器可以访问内存块中的其他块,称为非一致内存访问 N U M A NUMA NUMA系统
分布式内存系统
  • 网格提供一种基础架构,使地理上分布的计算机大型网络转换成一个分布式内存系统
Cache一致性
  • 在多核系统中,各个核的 C a c h e Cache Cache存储相同变量的副本,当一个处理器更新 C a c h e Cache Cache中该变量的副本时,其他处理器中 C a c h e Cache Cache的副本也应该更新
监听Cache一致性协议
  • 监听协议的想法来自于基于总线的系统,当多个核共享总线时,总线上传递的信号都能被连接到总线的所有核“看”到
  • 广播会通知其他核包含该变量的整个 C a c h e Cache Cache行已经更新
  • 监听 C a c h e Cache Cache一致性协议是不可扩展的,对于大型系统,它会导致性能的下降
基于目录的Cache一致性协议
  • 目录存储每个内存行的状态,这个数据结构是分布式的,每个核 / / /内存对负责存储一部分的目录
  • 目录表示局部内存对应高速缓存行的状态
  • 当一个高速缓存行被读入时,与这个高速缓存行相对应的目录项就会更新
  • 当一个变量需要更新时,就会查询目录,并将所有包含该变量高速缓存行置为非法
伪共享
  • C P U C a c h e CPU \ Cache CPU Cache是由硬件来实现的,硬件是对高速缓存行进行操作的,而不是对单独的变量进行操作
  • 伪共享不会引发错误结果,但是它能引起过多不必要的访存,降低程序的性能

2.5|输入和输出

  • 当多个进程能够访问stdoutstderrstdin时,输入的分布和输出的顺序是非确定的
假设与规则
  • 当并行程序需要输入 / / /输出时,做一些假设并遵循一些规则
  • 在分布式内存程序中,只有进程 0 0 0能够访问stdin,在共享内存程序中,只有主线程或者线程 0 0 0能够访问stdin
  • 在分布式内存和共享内存系统中,所有进程 / / /线程都能够访问stdoutstderr
  • 只有一个进程 / / /线程会尝试访问一个除stdinstdout或者stderr外的文件

这篇关于【并行计算】【《并行程序设计导论》笔记】第二章:并行硬件和并行软件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949200

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2