当前位置: 首页 > 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…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...