并行与分布式计算 第8章 并行计算模型

news2024/11/15 11:02:35

文章目录

  • 并行与分布式计算 第8章 并行计算模型
    • 8.1 并行算法基础
      • 8.1.1 并行算法的定义
      • 8.1.2并行算法的分类
      • 8.1.3算法的复杂度
    • 8.2 并行计算模型
      • 8.2.1 PRAM (SIMD-SM)模型
      • 8.2.3 BSP (MIMD-DM)模型
      • 8.2.4LogP(MIMD-DM)模型

并行与分布式计算 第8章 并行计算模型

8.1 并行算法基础

8.1.1 并行算法的定义

并行算法:适合于在各种并行计算机上求解问题和处理数据的算法,它是一些可同时执行的诸进程的集合,这些进程相互作用和协调动作从而达到对给定问题的求解。

8.1.2并行算法的分类

分类标准运算类型
数值计算 vs 非数值计算数值计算涉及数字和数学运算,如矩阵运算、多项式求解等。非数值计算涉及非数值数据的处理和操作,如排序、选择、搜索、匹配、图论等。
同步运算 vs 异步运算同步运算需要等待其他进程或操作结果,异步运算不需要等待其他进程的完成。
确定运算 vs 随机运算确定运算的每一步都能明确指示下一步应该如何进行,随机运算的某些步骤涉及随机选择或随机参数。

8.1.3算法的复杂度

并行算法的复杂性度量指标1

运行时间t(n):在给定的模型上求解输入规模为n的给定问题所需时间,即
算法从第一台处理机开始执行到最后一台处理机执行中止所需时间。
** t(n)包括两个部分:**

  • 计算时间tc:在某一处理器执行运算所需时间;
  • 通信时间tr:数据从源处理机到目的处理机所需传送时间,算法在整个
    执行期间能传送的报文总数称为通信复杂度。

并行算法的复杂性度量指标2

• 处理机数p(n):求解给定问题所需的处理机数
• 并行算法的成本c(n) =t(n) x p(n)
• 成本最优(Cost Optimal):c(n)=t(n)*p(n)=串行计算的步数(节拍数)
• 工作量最优:功耗低、环保

并行算法的复杂性度量指标3(Brent定理)
令W(n)是某并行算法A在运行时间T(n)内所执行的运算量,则A使用p台处理器可在t(n)=O(W(n)/p+T(n))时间内执行完毕
W(n)和c(n)密切相关:c(n) =t(n) x p= O(W(n)/p+T(n)) x p = O(W(n) +p x T(n)), 因此当p=O(W(n)/T(n))时,c(n) = O(W(n)),W(n)和c(n)两者是渐近一致的;
推论:对于任意的p,c(n)>W(n),说明算法在运行过程中不一定能够充分利用处理器。

8.2 并行计算模型

并行计算模型通常指从并行算法的设计和分析出发,将各种并行计算机(至少某一类并行计算机)的基本特征抽象出来,形成一个抽象的计算模型。从更广的意义上说,并行计算模型为并行计算提供了硬件和软件界面,在该界面的约定下,并行系统硬件设计者和软件设计者可以开发对并行性的支持机制,从而提高系统的性能。

8.2.1 PRAM (SIMD-SM)模型

并行随机存取机器(Parallel Random Access Machine, PRAM)模型,也称为 SIMD-SM模型(共享存储的SIMD模型)

  • 一个集中的共享存储器,假设其容量M无限大;
  • N个功能相同的处理器,每个处理器具有简单的算术运算和逻辑判断能力,每个处理器都具有局部存储器LM。
  • 所有指令均按照操作,在每一个计算步内,任一个处理器均可通过对共享存储器的某共享单元读写,同其他任一处理器交换数据,因此要求所有处理器共享单一的数据地址空间;
  • 每个处理器内部都没有控制器组件,所有的处理器共享一个控制器, 因此要求所有处理器共享单一的程序地址空间;
  • 采用隐式同步机制,诸如处理器间通讯、存储管理、进程同步、存储 带宽和延迟等并行机的低级操作细节均隐含于模型中。

请添加图片描述

PRAM (SIMD-SM)计算模式

  • PRAM-EREW互斥读互斥写(最弱)
  • PRAM-CREW并发读互斥写(居中)
  • PRAM-CRCW并发读并发写(最强)
    • C代表Concurrent,允许并发操作
    • E-代表Exclusive,禁止并发操作

PRAM (SIMD-SM)复杂度分析
TEREW = O(TCREW *log p) = O(TCRCW * log p)

如果一个算法在PRAM-CREW或PRAM-CRCW上的时间复杂度为T,则这个算法可以在PRAM-EREW上以 时间复杂度为logp x T运行。

PRAM-CRCW的分类
• Common PRAM-CRCW:仅允许所有处理器同时写入相同数据
• Priority PRAM-CRCW:仅允许优先级最高的处理器写入
• Arbitrary PRAM-CRCW:允许任意处理器自由写入

(MIMD-SM)模型
异步并行随机存取机器(Asynchronous Parallel Random Access Machine, APRAM)模型,也称为MIMD-SM模型,也称为分相(Phase)PRAM模型。

• 一个集中的共享存储器,假设其容量M无限大;
• N个处理器,每个处理器内部,有简单的算术运算和逻辑判断电路,有独立的控制器,有局部存储器LM,有局部时钟;
• 处理器之间的通信要通过共享存储器来完成,因此要求所有处理器共享单一的数据地址空间;
• 每个处理器内部都有独立的控制器组件,因此要求所有处理器都有独立得程序地址空间;
异步操作+显式同步。系统没有全局时钟,每个处理器异步的执行局 部程序,处理器之间的时间依赖关系(例如,通过共享变量的读写操作实 现通信等)需要在各个处理器的局部程序中加入同步路障(Synchronization Barrier)来实现,两次同步路障的时间间隔称为一个相(phase)

请添加图片描述

请添加图片描述

APRAM (MIMD-SM)计算模式分析
• 整个计算过程系由一系列同步路障分开的多个全局相所组成。
• 在每个全局相内,每个处理器异步的运行其局部程序;
• 每个局部程序中的最后一条指令是一条同步路障指令;
• 各个处理器均可异步地读取和写入全局存储器,但在同一个全局相内不允许两个处理器访问同一存储单元。
• 程序内指令的分类:全局同步,全局读/写,局部操作

APRAM (MIMD-SM)复杂度分析:
• 设局部操作为单位时间;
• 全局读/写平均时间为d,d随着处理器数目的增加而增加;
• 同步路障时间为B=B§,它是处理器数p的非降函数,通常
处理器越多导致同步时间越长。
• 设Ti为第i个全局相内各处理器执行时间最长者;
• 则T=T1+T2+…+Tn+ B x (n-1)

8.2.3 BSP (MIMD-DM)模型

块同步(Bulk Synchronization Parallel)模型,也称为MIMD- DM(distributed memory)模型,也称为大同步模型、桥模型, 桶同步并行模型。
• 系统中有p个计算节点,每个计算节点内部有独立的运算 器,独立的控制器,独立的存储器,独立的局部时钟;因此, 每个处理器有独立的数据地址空间和程序地址空间,可以异步 的执行局部程序;
• 系统中有一个路由器,该路由器连接所有计算节点,实施计算节点之间点到点的消息传递,该路由器的吞吐率和延迟是有限的,吞吐率th(字节每秒),传输延迟tl(秒);
• 系统中有一个路障同步器,路障同步器每隔时间间隔L完 成一次全局路障同步操作,以实现计算节点之间的时间依赖关 系(例如,通过共享变量的读写操作实现通信等)。请添加图片描述

请添加图片描述
请添加图片描述

BSP(MIMD-DM)复杂度分析:
• 设Wk为第k个超级步内各节点局部程序中本地计算运行时间最 长者;
• 设Hk为第k个超级步内各节点局部程序中收发消息个数最多者 的收发操作执行时间;
• 设每次全局同步路障的开销为B; • 设每个数据包大小q个字节;
• 则Hk=h*(tl (传输延迟) +q/th(吞吐率)) • 一个超级步内的总时间开销为Tk=Wk + Hk +B; (Tk需要小于 等于L,效率为Tk/L)
• s个超级步内的总时间开销为T=W1+W2+…+Ws +
H1+H2+…+Hs + s x B;(T需要小于等于sL,效率为T/(sL))
BSP与MapReduce对比
• 执行机制:MapReduce是一个数据流模型,每个任务只是对输入数
据进行处理,产生的输出数据作为另一个任务的输入数据,并行任
务之间独立地进行,串行任务之间以磁盘和数据复制作为交换介质
和接口。
• BSP是一个状态模型,各个子任务在本地的子图数据上进行计算、
通信、修改图的状态等操作,并行任务之间通过消息通信交流中间
计算结果,不需要像MapReduce那样对全体数据进行复制。
• MapReduce的设计初衷:解决大规模、非实时数据处理问题。"大规
模"决定数据有局部性特性可利用(从而可以划分)、可以批处理;
"非实时"代表响应时间可以较长,有充分的时间执行程序。而BSP
模型在实时处理有优异的表现。这是两者最大的一个区别。

8.2.4LogP(MIMD-DM)模型

• LogP是使用L,O,G,P四个参数来描述的一种面向分布式存储 器、点对点通信的多计算机系统的并行计算模型。
• L (Latency) :表示信息从源节点到目的节点所需的时间;
• O (Overhead) :表示节点接收或发送一条消息所需额外开销 (操作系统开销和网络软件开销),并且在此期间节点不 能做作任何操作;
• G (Gap):表示节点连续进行两次发送或接收消息之间必须 有的时间间隔,超过此间隔则数据包会因拥塞而被网络丢 弃,因此实际上此参数是对网络的限制而非对节点的限制;
• P (Processor) :表示节点的数目

请添加图片描述

LogP(MIMD-DM)模型的特点

• 系统中有p个计算节点,每个计算节点内部有独立的
运算器,独立的控制器,独立的存储器,独立的局部时钟;
因此,每个处理器有独立的数据地址空间和程序地址空间,
可以异步的执行局部程序;
• 系统中有一个大型互连网络(多个路由器节点组成的
数据交换阵列),该互连网络连接所有节点,实施节点之
间点到点的消息传递,该互连网络的带宽和延迟是有限的,
带宽为g的倒数(字节每秒),传输延迟L(秒);
• 通过节点间的个体消息传递实现同步操作,一旦消息
到达了处理器就可以立即使用。

LogP模型小结

  • 即时通信
    • LogP不再把所有的计算和通信视为一个整体行为,而是一个单独的进程的个体活动;它让每个进程按需排布计算操作和消息收发,一旦收到消息立即可以使用;
  • 同步开销 LopP不需要路障同步器,将路障同步的开销降低为两个进程之间的信息收发时间差;
  • 硬件气泡
    •节点执行计算操作时网络资源空闲,节点执行消息收发时计算资源空闲,非阻塞进程不必等待阻塞进程避免了节点空转;可使用节点内多进程/多线程来填充气泡
  • Tradeoff
    • 编程的随意性v.s.性能的可预测性

请添加图片描述

Multi-BSP (多层架构)模型

multi-BSP从两个方向拓展了BSP :
• multi-BSP model是一个层次模型,它可以表示出单芯片或多芯片架构中的多个memory或多个cache。
• 在每一层中,multi-BSP都将存储大小作为一个参数。

Multi-BSP model实际上是一个深度为D的树,内部节点表示memory 和cache,叶子节点表示处理器,每一层有四个参数(pi, gi, Li, mi):
• pi表示子组件的数量,
• gi表示通信带宽,
• Li表示同步成本,
• mi表示memory或cache的大小。

Multi-BSP (多层架构)模型的架构
请添加图片描述

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

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

相关文章

小米集团收入增长失速已久:穿越寒冬,雷军的路走对了吗?

撰稿|行星 来源|贝多财经 11月20日,小米集团(HK:01810,下称“小米”)发布了截至2023年9月30日的第三季度业绩公告。 财报显示,在智能手机出货量下行、平均售价下跌的背景下,小米逆势而上,实现…

猫咪不长肉怎么回事?搬空家底的增肥效果好的猫罐头分享

秋冬到了,北方有供暖还好,咱南方的小猫咪全靠一身正气,不囤点脂肪天生怕冷的小猫咪要怎么过冬啊?咋吃都吃不胖的猫可愁怀铲屎官了,想想我新手养猫那些年,为了给我家猫养胖点我是做了不少努力,当…

Vuetify:定制化、响应式的 Vue UI 库 | 开源日报 No.83

vuetifyjs/vuetify Stars: 38.1k License: MIT Vuetify 是一个无需设计技能的 UI 库,具有精美手工制作的 Vue 组件。它具有以下核心优势和主要功能: 可定制性:使用 SASS/SCSS 进行广泛自定义,并提供默认配置和蓝图。响应式布局&…

Linux环境下安装部署单机RabbitMQ(离线)

摘要 本文档适用于在Linux系统下部署单体RabbitMQ,是在无网的情况下部署的。涉及的任何操作都是通过手动下载安装包然后上传到服务器上进行安装,因此也遇到一些问题,并在此文档中记录。 实际操作环境:Kylin V10,实际…

万宾科技智能井盖传感器,预防城市道路安全

随着城市交通的不断发展和城市化进程的加速推进,城市道路安全问题日益凸显。市政井盖作为城市道路的一部分,承担着重要的交通安全保障职责。然而传统的市政井盖管理方式存在许多不足。针对这些问题政府需要采取适当的措施,补足传统管理方式的…

这些仪表板常用的数据分析模型,你都见过吗?

本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 ##前言 在数字化时代,数据已经成为了企业决策和管理的重要依据。而仪表板作为一种数据可视化工具&#x…

腾讯云轻量数据库开箱测评,1核1G轻量数据库测试

腾讯云轻量数据库1核1G开箱测评,轻量数据库服务采用腾讯云自研的新一代云原生数据库TDSQL-C,轻量数据库兼100%兼容MySQL数据库,实现超百万级 QPS 的高吞吐,128TB海量分布式智能存储,虽然轻量数据库为单节点架构&#x…

服务器 jupyter 文件名乱码问题

对于本台电脑,autodl服务器,上传中文文件时,从压缩包名到压缩包里的文件名先后会出现中文乱码的问题。 Xftp 首先是通过Xftp传输压缩包到Autodl服务器: 1、打开Xftp,进入软件主界面,点击右上角【文件】菜…

智能座舱架构与芯片 - (1) 背景篇

一、软件定义汽车 1.1 什么是软件定义汽车 软件定义汽车(Software Defined Vehicles, SDV)的核心思想是,决定未来汽车的是人工智能为核心的软件技术,而不再是汽车的马力大小,是否真皮座椅,机械性能的好坏。软件定义汽车的终极目…

bclinux aarch64 openeuler 20.03 LTS SP1 部署 fastCFS

基于已配置好的4个节点部署ceph-0 ceph-1 ceph-2 ceph-3(早期ceph测试环境,名称就不修改了) 获取fcfs.sh mkdir /etc/fcfs cd /etc/fcfs wget http://fastcfs.net/fastcfs/ops/fcfs.sh 配置/etc/fcfs/fcfs.settings # 要安装的集群版本号…

uni-app - 日期 · 时间选择器

目录 1.基本介绍 2.案例介绍 ①注意事项: ②效果展示 3.代码展示 ①view部分 ②js部分 ③css样式 1.基本介绍 从底部弹起的滚动选择器。支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器&a…

webpack环境变量的设置

现在虽然vite比较流行,但对于用node写后端来说,webpack倒是成了一个很好的打包工具,可以很好的保护后端的代码。所以这块的学习还是不能停下来,接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…

地奥集团大健康产业再添解酒黑科技:“酒必妥”!

地奥集团成都药业股份有限公司隶属于地奥集团旗下的子公司,至今已经超过百年历史,主要围绕化学药品在耕耘奉献。尽管公司历来都低调,但是地奥这块牌子在质量把控,安全生产把控等药品领域还是响当当。历年来,公司持续对…

【opencv】计算机视觉:停车场车位实时识别

目录 目标 整体流程 背景 详细讲解 目标 我们想要在一个实时的停车场监控视频中,看看要有多少个车以及有多少个空缺车位。然后我们可以标记空的,然后来车之后,实时告诉应该停在那里最方便、最近!!!实现…

squid代理服务器(传统代理、透明代理、反向代理、ACL、日志分析)

一、Squid 代理服务器 (一)代理的工作机制 1、代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。 2、将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速…

Docker基础知识总结

文章目录 1.Docker介绍2.Docker版本3.为什么要使用Docker4.Docker基础组件4.1 镜像(Images)4.2 容器(Container)和仓库(Repository) 5.Docker安装6.Docker run7.Dockerfile8.Docker commit9.镜像发布到镜像…

腾讯云轻量数据库试用初体验

腾讯云轻量数据库1核1G开箱测评,轻量数据库服务采用腾讯云自研的新一代云原生数据库TDSQL-C,轻量数据库兼100%兼容MySQL数据库,实现超百万级 QPS 的高吞吐,128TB海量分布式智能存储,虽然轻量数据库为单节点架构&#x…

什么是深度学习

一、深度学习的发展历程 1.1 Turing Testing (图灵测试) 图灵测试是人工智能是否真正能够成功的一个标准,“计算机科学之父”、“人工智能之父”英国数学家图灵在1950年的论文《机器会思考吗》中提出了图灵测试的概念。即把一个人和一台计算机分别放在两个隔离的房…

《微信小程序开发从入门到实战》学习二十四

3.3.12开发创建投票多选投票页面 创建投票多选投票页面和创建单选投票页面没有区别,唯一区别仅在于向服务端发送数据时,告诉服务器这个投票是什么类型的投票。这个类型用三种数据类型表示都可以,分别如下所示: multiple:true/fa…

labelimg 和 labelme 的安装和使用

labelimg 和 labelme 的安装和使用 一,conda创建环境二,labelimg三,labelme 一,conda创建环境 conda安装参考:https://blog.csdn.net/fan18317517352/article/details/123035625 conda create --name labelimg pytho…