并行处理系统
并行处理系统概述
- 并行处理的主要技术问题:
- 互连:如何实现将多个计算模块和多个存储模块进行互连,并通过控制这些模块的并行工作来提高处理速度
- 数据一致性:为加快数据处理的速度,通常利用程序访问的局部性特性,在不同计算模块中设置高速缓存,且这些不同的计算模块还可能设置共享的高速缓存和共享的主存储器。因此在并行处理系统中存在复杂的数据一致性问题
- 同步控制:需要对各个计算模块进行同步控制
- 任务划分
- 并行程序设计:需说明哪些处理逻辑段可以并行执行,哪些处理逻辑段之间有先后顺序关系等
- 资源调度和管理
- 容错性和安全性
- 并行处理系统的分类
- 按指令和数据的处理方式划分
- 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
- UMA
- NUMA
- CC-NUMA
- 多核处理器:
- 基本思路:在一个CPU芯片中设计多个简单的处理器核,通过多个核的并行计算来提高计算性能。因此基于一个CPU芯片可以实现一个多处理器系统,基于多核芯片的处理器被称为片级多处理器CMP
- 硬件多线程技术:是一种共享单个处理器核内功能部件的技术。每个线程相当于一个指令序列,用于指令执行的功能部件和高速缓存在每个核内仅有一套。为了支持多线程并发执行,必须为每个线程提供单独的通用寄存器组和程序计数器等用于存放现场信息的资源,并提供快速的线程切换机制
有三种多线程实现方式:- 细粒度多线程:处理器核能在每个时钟周期切换线程
- 粗粒度多线程:仅在某个线程出现较大开销的阻塞时才切换线程(如cache不命中)
- 同时多线程SMT:能在同一个时钟周期中,在不同的发射槽中发射不同线程中的指令。超线程(Intel)即为同时多线程
- 使用多核处理器或硬件多线程可能会带来新的性能干扰问题。同一个核心上的多个硬件线程之间会共享超标量处理 器中包括发射队列、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(…...
大文件上传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是基于表达式的语言,除了声明语句和表达式语句外,其他的都是表达式。所以if也是表达式,它可以被用作右值。 条件控制 if-else。cpp和python得结合。 fn main() {let number 34;if number < 0 {println!("number &l…...
深入浅出Android同步屏障机制
原文链接 Android Sync Barrier机制 诡异的假死问题 前段时间,项目上遇到了一个假死问题,随机出现,无固定复现规律,大量频繁随机操作后,便会出现假死,整个应用无法操作,不会响应事件ÿ…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
