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

文章目录

  • 并行与分布式计算 第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 (多层架构)模型的架构
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单链表OJ题——11.随机链表的复制

11.随机链表的复制 138. 随机链表的复制 - 力扣(LeetCode) /* 解题思路: 此题可以分三步进行: 1.拷贝链表的每一个节点,拷贝的节点先链接到被拷贝节点的后面 2.复制随机指针的链接:拷贝节点的随机指针指向…

单链表OJ题——10.环形链表2

10.环形链表2 142. 环形链表 II - 力扣(LeetCode) /* 解题思路: 如果链表存在环,则fast和slow会在环内相遇,定义相遇点到入口点的距离为X,定义环的长度为C,定义头到入口的距离为L,fast在slow进入环之后一圈内追上slow…

webpack环境变量的设置

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

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

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

向量数据库—加速大模型训练推理

目录 前言什么是向量数据库?向量数据库在大模型中扮演什么角色?Amazon OpenSearch Serverless向量引擎使用场景 其他向量数据库FaissMilvusChromaelasticsearchTencent Cloud VectorDB 向量数据库的应用场景图像和视频处理自然语言处理推荐系统搜索引擎人…

《程序员考公指南》:零基础到上岸的完整攻略 | 开源日报 No.82

mastodon/mastodon Stars: 44.2k License: AGPL-3.0 Mastodon 是一个免费、开源的社交网络服务器,基于 ActivityPub。用户可以在 Mastodon 上关注朋友并发现新朋友,并且可以发布链接、图片、文字和视频等内容。所有的 Mastodon 服务器都能互操作成为联邦…

Open3D (C++) 计算两点云之间的最小距离

目录 一、 算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、 算法原理 Open3D中ComputePointCloudDistance函数提供了计算从源点云到目标点云的距离的方法,计算点云的距离。也…

【验证码系列】利用深度学习构建字符型验证码自动识别模型与算法

文章目录 1. 写在前面2. CSCI级设计决策2.1. 字符型验证码识别智能体流程关联2.2. 字符型验证码识别行为设计 3. 字符型验证码识别智能体结构设计3.1. 智能体部件组成3.2. 智能体结构 4. 接口设计4.1. 字符型验证码识别智能体交互 5. 智能体算法设计细节5.1. 算法目标5.2. 字符…

梳理一名Go后端程序员日常用的软件~

大家好,我是豆小匠。 这期分享下我日常工作用到的软件和工具! 省流版图片↓↓↓ 工具分为四类:编码软件、笔记/文档软件、开发工具和日常软件等。 1. 编码软件 1.1. Goland 出自JetBrain家族,IDE的王者,作为我的…

操作系统 应用题 例题+参考答案(考研真题)

1.(考研真题)一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。 P1:计算60ms,I/O 80ms,计算20ms。 P2:计算120ms,I/O 40ms&…

Redis下载和安装(Windows系统)

通过 GitHub 来下载 Windows 版 Redis 安装包,下载地址:点击前往。 打开上述的下载链接,Redis 支持 32 位和 64 位的 Window 系统,大家根据个人情况自行下载,如图 1 所示: 下载完成后,打开相应的文件夹&a…

wincc定时器功能介绍

1定时器功能介绍 WinCC中定时器的使用可以使WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下&#xff0c…

智能座舱架构与芯片 - (2) 架构篇

一、定义 1.1 智能座舱定义 按照百度百科的定义,智能座舱(intelligent cabin)旨在集成多种IT和人工智能技术,打造全新的车内一体化数字平台,为驾驶员提供智能体验,促进行车安全。目前国内外已经有很多研究…

Ubuntu18 Opencv3.4.12 viz 3D显示安装、编译、移植

Opencv3.*主模块默认包括两个3D库 calib3d用于相机校准和三维重建 ,viz用于三维图像显示,其中viz是cmake选配。 参考: https://docs.opencv.org/3.4.12/index.html 下载linux版本的源码 sources。 查看cmake apt list --installed | grep…

基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码

基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鹰栖息优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

SV-7042VP sip广播4G无线网络号角

SV-7042VP sip广播4G无线网络号角 1. 采用防水一体化设计,整合了音频解码、数字功放及音柱 2. 提供配置软件,支持SIP标准协议,通过SIP服务器能够接入现有综合通信调度平台系统,接受sip通信调度平台。融合第三方sip协议及sip服务器…

2023亚太杯数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…

六、Big Data Tools安装

1、安装 在Jetbrains的任意一款产品中,均可安装Big Data Tools这个插件。 2、示例 下面以DadaGrip为例: (1)打开插件中心 (2)搜索Big Data Tools,下载 3、链接hdfs (1&#xff0…

将kali系统放在U盘中插入电脑直接进入kali系统

首先准备一个空白的 U 盘。 Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution 在 Windows 上制作 Kali 可启动 USB 驱动器 Making a Kali Bootable USB Drive on Windows | Kali Linux Documentation 1. 首先下载 .iso 镜像 Index of /kali-images…

Logstash同步MySQL数据到ES

简介 1.1 什么是Logstash? Logstash作为一个具备实时流水线功能的开源数据收集引擎,拥有强大的能力。它能够从不同来源收集数据,并将其动态地汇聚,进而根据我们定义的规范进行转换或者输出到我们定义的目标地址。 1.2 Logstash的…