并行计算之计算平台体系结构(流水线,异构处理器与异构并行)

news2024/11/27 15:45:06

并行计算粒度

  • 分布式并行(多主机,多进程) : MPI
    在这里插入图片描述

  • 共享存储式并行 (多线程) :OpenMP OpenCL OpenACC

  • 指令级并行 CPU流水线

CPU流水线

指将一条指令的执行过程划分为多个阶段,使得在每个时钟周期内能够并行执行多条指令,从而提高 CPU 的执行效率。
将一个完整的指令执行过程分成若干个小的执行步骤,在下一个时钟周期中,另一个指令的前一步骤正好可以开始执行,并在依次进行每一步后输出执行结果,与此同时前一条指令的下一步骤也开始执行,并在下下个时钟周期中输出结果。这样,就可以实现 CPU 在同一时刻执行多条指令,并且不需要等待一条指令的完全执行才能执行下一条指令。这种处理方式类似于工厂的装配线,因此也被称为指令流水线。

一条指令的执行步骤:

  1. 取指令 Instruction Fetch 从内存中读取指令到指令寄存器;
  2. 指令译码 Instruction Decode 解码指令,确定指令操作的数据以及地址
  3. 指令执行 Execute 根据指令操作的数据和地址进行运算,逻辑等操作
  4. 访问存储 Memory Access 如果指令需要访问内存,将操作结果或需要的数据从内存中读出或写入内存中;
  5. 写回 Write Back 将执行结果写回到寄存器中。

一般来讲,CPU要执行一条指令,只要顺序的按照上述步骤即可。但是现代CPU为了提升效率,都会对指令进行优化,如乱序执行,预测分支等,使得CPU对指令的执行更加复杂。

补充,上述流水线模型为五段式模型,还有六段式,八段式,十三段式等模型。

超算平台体系结构

CPU核

在这里插入图片描述
核内是指令级别的并行方式,一般采用流水线并行。

多核CPU

核私有L1+L2 cache + 公有L3… cache
在这里插入图片描述
核间采用共享存储式的并行,即多线程并行

多个CPU组成一个计算节点 NUMA架构

Non-Uniform Memory Access,非一致性内存访问
在这里插入图片描述
CPU之间内存独立,通信使用如MPI等机制

计算分区

如将多个芯片级别的计算单元通过高性能通信机制组织起来形成的计算系统,如包括SMP和NUMA架构的服务器,分布式计算集群。
在这里插入图片描述

异构并行

异构是指在同一个系统或设备中,拥有不同种类或品牌的 CPU 或处理器,可以是不同的架构、核心、频率、功耗等参数的处理器进行混合使用。

所谓异构并行,即不同处理器之间通过通信进行协调来共同完成一件事。

在这里插入图片描述

  • 最常见的是CPU + GPU的组合方式,进行GPU加速计算

异构处理器都采用了不同的架构、计算模型和硬件实现,以满足不同领域和应用的需求,可以提升计算性能、降低能耗和实现更好的能效比。

异构处理器通信方式

  • PCIE
  • RDMA
  • DMA
  • MPI
  • 网络

总结

我们可以将一个计算量超大超复杂的任务,有一个大型的计算平台:

  • 我们就可以将任务进行拆解,到计算平台上的各个NUMA架构的CPU节点中,那么CPU与CPU之间进行MPI通信;
  • 而对于任意一个CPU节点,又可以拆解到多个核上,进行多线程任务拆解与执行;

这样根据计算平台的体系,自上而下的进行任务拆解,直到整个任务的完成。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端开源代码

vue大屏: PublicbigScreenPage–Vue3tsWindcssEchartThree.js大屏案例 PublicbigScreenPage—基于 Vue3、TypeScript、DataV、ECharts 框架的 " 数据大屏项目 介绍:https://blog.csdn.net/qq_40282732/article/details/105656848 Vue3.2 Echar…

AutoDock Vina 对接计算(大批量)

AutoDock Vina 1.2.0 对接计算(大批量) AutoDockVina 1.2.0 的示例应用:A) 对接多个配体 (PDB 5x72);B) 使用 AutoDock4 (PDB 4ykq) 的水合对接方案与水分子对接;C)在锌存在的情况下使用 AutoDock4Zn 力场 (PDB 1s63)&…

ChatGLM2 源码解析:`ChatGLMModel`

# 完整的 GLM 模型,包括嵌入层、编码器、输出层 class ChatGLMModel(ChatGLMPreTrainedModel):def __init__(self, config: ChatGLMConfig, deviceNone, empty_initTrue):super().__init__(config)# 如果设置了empty_init,创建任何 PyTorch 模块时&#…

【软件测试】单元测试、集成测试、系统测试有什么区别?

单元测试、集成测试、系统测试有什么区别 1、粒度不同 集成测试bai粒度居中,单元测试粒度最小,系统du测试粒度最大。 2、测试方式不同 集成测试一般由开发zhi小组采用白盒加黑盒的方式来测试,单元测试一般由开发小组采用白盒方式来测试&a…

第六章:中华民族的抗日战争

1.日本发动灭亡中国的侵略斗争 关键字: 中国抗日战争的起点与全民族抗战阶段 2.中国人民奋起抗击日本侵略者 关键字: 1 国共第二次统一战线初步建立的标志:国民党五届三中全会 2 扭转时局的枢纽,国内和平初步实现:…

3.msfconle

目录 1 进入msfconsole 2 连接postgresql数据库 3 msfconsole基本用法 4 更新msf 5 搜索脚本 search 6 查看脚本信息 info 7 设置参数 8 重新设置参数与取消参数 9 退出当前模块 back 10 查看域名基本信息 dig 11 查看域名的详细信息 whois 1 进入msfco…

k8s部署redis 3主3从

k8s部署redis6节点,组成3主3从集群模式 一般来说,redis部署有三种模式。 单实例模式,一般用于测试环境。 哨兵模式 集群模式后两者用于生产部署 哨兵模式 在redis3.0以前,要实现集群一般是借助哨兵sentinel工具来监控master节点…

BeanUtils.copyProperties:曾经是我的女神,现在是我的毒药。

前言 BeanUtils.copyProperties十有八九是你这些年工作中用的很多的其中一个,不管是Apache的还是Spring的。 网上的解释浩如烟海,我这边用一个超简单的例子直观展示给你看。 以后就记住了,能不用就不用。 正文 1、网上的解释 我收纳了几个网…

HDFS 架构剖析

目录 一、HDFS 架构整体概述 二、HDFS 集群角色介绍 2.1 整体概述 2.2 主角色:namenode 2.3 从角色:datanode 2.4 主角色辅助角色: secondarynamenode 三、HDFS 重要特性 3.1 主从架构 3.2 分块存储机制 3.3 副本机制 3.4 …

基于React实现:弹窗组件与Promise的有机结合

背景 弹窗在现代应用中是最为常见的一种展示信息的形式,二次确认弹窗是其中最为经典的一种。当我们在React,Vue这种数据驱动视图的前端框架中渲染弹窗基本是固定的使用形式。 使用方式:创建新的弹窗组件,在需要弹窗的地方引用并…

百叶帘系统内置于玻璃内,分为手动和电动两种控制方式

百叶帘系统是一种在餐厅包厢隔断墙中常见的控制窗帘或遮光帘的方式。这种系统通常分为手动和电动两种控制方式,具体选择取决于您的需求和预算。 1. 手动控制:手动控制是传统的方式,通过手动操作绳子或杆来打开或关闭百叶帘。这是一种经济实惠…

力扣刷题49 字母 异位词分组

目录 题目描述代码实现基本实现优化代码 基础知识回溯集合 参考 题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”…

19|返璞归真:王维佛系建议,万事不如吃好睡好

好诗相伴,千金不换。你好,我是天博。 今天我们的主题仍然是“见自己”。其实,诗词里并不是只有诗情画意的春花秋月,也充满了实实在在的人间烟火。这些现实的生活对我们平常人来说,往往比春花秋月更有借鉴意义。我们今…

基于Java+SpringBoot+Vue前后端分离在线考试系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

蝶形运算法

蝶形运算法是一种基于FFT(Fast Fourier Transform)算法的计算方法,其基本思想是将长度为N的DFT分解成若干个长度为N/2的DFT计算,并通过不断的合并操作得到最终的结果。该算法也称为“蝴蝶算法”,因为它的计算过程中需要…

未加载Qt6Core.pdb

编译代码发现未加载.pdb。 问题是Qt6的bin目录下也没有.pdb文件啊? 有两种方法,一是把Qt路径放到环境变量下,这样系统就能找到Qt6需要的依赖项。 二是在生成目录下找到编译好的.exe文件,然后调用windeployqt.exe为其生成依赖项&…

通用策略06丨横截面因子在期货中的应用(2)

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天为大家带来2023年度通用系列的收官之作——再议横截面因子。 在通用05策略中,我们以一种很简单的框架和复现方式,为大家展示了横截面因子在期货中的运用展…

5. 本地方法接口和本地方法栈

5.1. 什么是本地方法? 简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一…

云贝餐饮连锁独立版 v2.7.9+公众号+小程序端+全插件(免授权前端线传)安装教程

云贝餐饮连锁版主要基于目前比较流行小程序生态下的自助点单系统,一款非常不错的餐饮外卖小程序。播播资源测试云贝餐饮连锁独立版 v2.7.9该版本与上一版一样永久授权版,增加了小程序前端线传功能(通过其他第三方上传)&#xff0c…

jdk17下netty导致堆内存疯涨原因排查 | 京东云技术团队

背景: 介绍 天网风控灵玑系统是基于内存计算实现的高吞吐低延迟在线计算服务,提供滑动或滚动窗口内的count、distinctCout、max、min、avg、sum、std及区间分布类的在线统计计算服务。客户端和服务端底层通过netty直接进行tcp通信,且服务端…