当前位置: 首页 > news >正文

并行处理系统

并行处理系统概述

  1. 并行处理的主要技术问题:
    • 互连:如何实现将多个计算模块和多个存储模块进行互连,并通过控制这些模块的并行工作来提高处理速度
    • 数据一致性:为加快数据处理的速度,通常利用程序访问的局部性特性,在不同计算模块中设置高速缓存,且这些不同的计算模块还可能设置共享的高速缓存和共享的主存储器。因此在并行处理系统中存在复杂的数据一致性问题
    • 同步控制:需要对各个计算模块进行同步控制
    • 任务划分
    • 并行程序设计:需说明哪些处理逻辑段可以并行执行,哪些处理逻辑段之间有先后顺序关系等
    • 资源调度和管理
    • 容错性和安全性
  2. 并行处理系统的分类
    • 按指令和数据的处理方式划分
      • SISD
      • SIMD
      • MIMD
    • 按主存地址空间的访问方式划分
      • 多计算机系统:具有多个私有地址空间的并行处理系统。每个计算节点具有各自私有的存储器,并各自有独立的主存地址空间
      • 多处理器系统:即共享存储多处理器系统。每个处理器都可以通过load和store指令访问系统中的存储器,也称为共享存储系统
    • 按存储访问时间是否一致划分
      • 一致性内存访问(UMA)结构
      • 非一致性内存访问(NUMA)结构:处理器对不同存储单元的访问时间可能不一致,访问时间与存储单元的位置有关(若是本地存储器访问时间就短,若是其他处理器所连接的存储器则访问时间就长)
    • 按处理单元的位置及其互连方式划分
      • 多核芯片(片级多处理器CMP):一个CPU芯片中包含多个处理单元(多个核),通常多核CPU芯片的核数为2、4、8等几种
      • 众核芯片:在一个面向三维图形、视频和可视化处理的GPU芯片中,包含几百上千个简单核。众核GPU芯片着力于在众多的简单核上有效执行众多的并行线程,并在线程组之间对数据的并行处理进行优化
      • 对称多处理器(SMP):将多个同类型的CPU通过总线互连,并等同地位地共享系统所有资源。即多个CPU对称工作,无主次或从属关系,是一种UMA结构处理器(因为每个CPU访问内存中的任何地址所需时间相同)。多核处理器系统、高档微机、工作站或服务器多用SMP结构
      • 大规模并行处理机(MPP):以专用内联网络连接数量众多处理单元而构成的一种并行计算系统。如可通过专用互连网络将几百上千个对称多处理器连接成大规模并行处理机,众多SMP服务器协同工作,完成相同的任务,每个SMP服务器称为节点,每个节点只能直接访问自己的本地资源(内存、磁盘等)。
      • 集群:指通过高性能网卡将若干普通PC或SMP服务器或工作站连接而成的并行处理系统。集群中的每个计算节点(PC、SMP或工作站)都有各自的内存储器和磁盘,主存地址空间都是计算节点各自私有的。因此集群是一种典型的紧密耦合的同构多计算机系统
      • 网格:是指用因特网等广域网络连接起来的远距离分布的一组异构计算机系统构成的分布式并行处理系统。是一种松散耦合的异构多计算机系统。云计算服务器就是由网格发展而来的

多处理器系统

即共享存储多处理器系统。每个处理器都访问一个全局的主存储器,因而每个处理器在执行指令时所产生的物理地址都属于同一个物理地址空间。
多处理器系统的硬件结构有三种:一致性内存访问UMA、非一致性内存访问NUMA和高速缓存一致的非一致性内存访问CC-NUMA

  1. UMA
  2. NUMA
  3. CC-NUMA
  4. 多核处理器:
    • 基本思路:在一个CPU芯片中设计多个简单的处理器核,通过多个核的并行计算来提高计算性能。因此基于一个CPU芯片可以实现一个多处理器系统,基于多核芯片的处理器被称为片级多处理器CMP
  5. 硬件多线程技术:是一种共享单个处理器核内功能部件的技术。每个线程相当于一个指令序列,用于指令执行的功能部件和高速缓存在每个核内仅有一套。为了支持多线程并发执行,必须为每个线程提供单独的通用寄存器组和程序计数器等用于存放现场信息的资源,并提供快速的线程切换机制
    有三种多线程实现方式:
    • 细粒度多线程:处理器核能在每个时钟周期切换线程
    • 粗粒度多线程:仅在某个线程出现较大开销的阻塞时才切换线程(如cache不命中)
    • 同时多线程SMT:能在同一个时钟周期中,在不同的发射槽中发射不同线程中的指令。超线程(Intel)即为同时多线程
  6. 使用多核处理器或硬件多线程可能会带来新的性能干扰问题。同一个核心上的多个硬件线程之间会共享超标量处理 器中包括发射队列、ROB、访存队列、分支预测器核L1 cache等资源。当处理器核或线程的负载较高时,会在这些资源上产生竞争现象,竞争不到资源的处理器核或线程就会被阻塞而性能下降。
    如对性能稳定性要求较高的场合,如双11,阿里在线购物的数据中心会面临巨大交易负载,为保证用户的交易体验,系统管理员都会提前制定严格的任务调度策略,避免将多个交易线程调度到同一个处理器核上从而带来干扰。

相关文章:

并行处理系统

并行处理系统概述 并行处理的主要技术问题: 互连:如何实现将多个计算模块和多个存储模块进行互连,并通过控制这些模块的并行工作来提高处理速度数据一致性:为加快数据处理的速度,通常利用程序访问的局部性特性&#x…...

2023国赛数学建模A题思路分析 - 定日镜场的优化设计

# 1 赛题 A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统, 是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组件&…...

git企业级使用

1.初始Git 1.1创建Git仓库 要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。创建⼀个Git本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏,例如:…...

[docker]笔记-存储管理

1、docker数据存储分为非永久性存储和永久性存储。 非永久性存储:容器创建会默认创建非永久性存储,该存储从属于容器,生命周期与容器相同,会随着容器的关闭而消失(可理解为内存中数据,会随关机而消失&…...

记录获取蓝鲸智云token的过程

一、使用python脚本获取蓝鲸智云token python版本环境:3.11 # -*- coding: utf-8 -*- import requestsdef get_user_token(domain,user,password):模拟用户登录,并返回 bk_token 和 bk_csrftokenBK_PAAS_HOST domainUSERNAME userPASSWORD password…...

C语言AES加密解密字符串与16进制数据

文章目录 AES介绍C语言加密库加密解密16进制数据加密解密字符串数据base64编码aes加密字符串aes解密字符串解密中文字符加密库源代码AES介绍 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标…...

NIFI实现JSON转SQL并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…...

【canal系】canal集群异常Could not find first log file name in binary log index file

这里先说明下这边使用的canal版本号为1.1.5 在描述这个问题之前,首先需要简单对于canal架构有个基本的了解 canal工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dum…...

ESP32C3 PWM输出

目前对于遥控双发差速小飞机计划采用如下架构: ESP32C3做主控,兼具遥控收发和飞行控制锂电池供电,带电量检测双发,720空心杯电机,55mm桨,带电流检测MPU6050加速度计和陀螺仪预留4个控制信号输出 马达控制要…...

二、GoLang输出HelloWorld、基本数据类型、变量常量定义、基本类型转换

一、输入Hello World go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 package mainimport "fmt"func main() {// go语言中 输出内容 使用的库是 fmt库fmt.Pr…...

mojo初体验

目录标题 mojo初体验试用地址变量定义参数可变性和所有权Structures后续 mojo初体验 试用地址 https://www.modular.com/get-started 与python基础语法很相似。 变量定义 let定义不可变变量var定义可变变量 参数可变性和所有权 下面是一个基本的函数: fn add…...

python3 重启docker方法

一、工作中的问题 工作中进行测试时,需要修改nacos配置,修改完成后再重启对应的docker容器,让配置生效,研究了下,使用docker库可以做到。 如何修改nacos配置可以参见我的另一篇文章,传送门 python3 修改…...

【js】js中深拷贝与浅拷贝:

文章目录 一、浅拷贝(修改新对象会改到原对象)【1】通过 直接赋值【2】Object.assign()方法 二、深拷贝(修改新对象不会改到原对象)【1】通过JSON对象来实现深拷贝【2】 Object.create(&#xf…...

大文件上传demo,前端基于Uppy,后端基于koa

前言 文件上传基本上所有的管理系统之类的项目都有这么一个功能。因为使用了Element,可以方便的使用 其提供的Upload组件,对于普通上传来说基本上就够用了。但是有时候会涉及到大文件上传的需求,这时就会面临一些问题:比如文件上…...

typeScript--[函数定义]

一.TypesScript 函数的定义 函数的定义包括两种类型:函数声明和函数表达式。 1.函数声明 function hello(): string {return "hello" } 2.函数表达式 var hello1 function (): string {return "hello" } 二.函数之可选参数 参数后面的限…...

Spring初始化项目

1、官网用法 访问地址:https://start.spring.io idea配置:https://start.spring.io 2、阿里巴巴加速 访问地址:https://start.aliyun.com/bootstrap.html idea配置:https://start.aliyun.com 3、区别 官网阿里巴巴版本最新稍…...

Opencv 图像金字塔----高斯和拉普拉斯

原文:图像金字塔----高斯和拉普拉斯 图像金字塔是图像中多尺度表达的一种,最初用于机器视觉和图像压缩,最主要用于图像的分割、融合。 高斯金字塔 ( Gaussian pyramid): 高斯金字塔是由底部的最大分辨率图像逐次向下采样得到的一系列图像…...

gitLab(git)误提交命令

1.先使用下面命令查看一下分支上已提交的信息 git log 2.回退到之前的版本 git reset —hard 你要删除的提交哈希码(一般是离这个命令最近的一串数字) 3.覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本 注意:切换到你提…...

Rust个人学习笔记2

一定要牢记Rust是基于表达式的语言&#xff0c;除了声明语句和表达式语句外&#xff0c;其他的都是表达式。所以if也是表达式&#xff0c;它可以被用作右值。 条件控制 if-else。cpp和python得结合。 fn main() {let number 34;if number < 0 {println!("number &l…...

深入浅出Android同步屏障机制

原文链接 Android Sync Barrier机制 诡异的假死问题 前段时间&#xff0c;项目上遇到了一个假死问题&#xff0c;随机出现&#xff0c;无固定复现规律&#xff0c;大量频繁随机操作后&#xff0c;便会出现假死&#xff0c;整个应用无法操作&#xff0c;不会响应事件&#xff…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...