zoukankan      html  css  js  c++  java
  • 并行算法设计基础

    并行算法的一般概念

    并行算法的定义

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

    并行算法分类

    • 数值计算:基于关系的一类运算。如矩阵运算,多项式求解。
    • 非数值计算:基于比较关系的一类运算。如排序、选择、搜索、匹配、图论。
    • 同步运算:某些进程必须等待别的进程(结果)的一类运算。
    • 异步运算:某些进程的执行不必等待别的进程(结果)的一类运算。
    • 有效并行算法:并行算法相对串行算法在性能(效率)方面,器时间关系具有对数特征,则这种并行算法是有效并行算法。

    算法表达

    • 一般采用形式化描述的方法,不提倡使用具体语言描述。
    • 使用的关系词要配对,具有层次感。

    算法分析

    • 一般考虑的是算法的时空复杂度呈现最坏情况下的算法复杂度(即worst-case-complexity)
    • 在MIMD计算模型上的并行算法的参量有:运行时间t(n):在给定的模型上求解问题规模为n的给定问题所需时间,包括:①计算时间tc在某一处理器执行算/逻运算所需时间。②选路时间tr数据从原处理机到目的处理机所需时间。  处理机数p(n):求解给定问题所需的处理机数。
    • 在MIMD计算模型上的并行算法的参量有:通信复杂度:算法在整个执行期间能传送的报文总数。时间复杂度:算法以第一台处理机开始执行到最后一台处理机执行中止所需时间。
    • 界:①上界:令f(n)和g(n)是定义在自然数集合N上的两个函数,如果存在两个正的常数c和n0,使得对于所有n≥n0,均有f(n)≤c*g(n),则称g(n)是f(n)的一个上界,记为f(n)=O(g(n))。②下界:令f(n)和g(n)是定义在自然数集合N上的两个函数,如果存在两个正的常数c和n0,使得对于所有n≥n0,均有f(n)≥c*g(n),则称g(n)是f(n)的一个下界,记为f(n)=Ω(g(n))。③精确界::令f(n)和g(n)是定义在自然数集合N上的两个函数,如果存在正的常数c1,c2和n0,使得对于所有n≥n0,均有c1*g(n)≤f(n)≤c2*g(n),则称g(n)是f(n)的一个精确界,记为f(n)=Θ(g(n))。

    算法指标

    算法开销

    • 并行算法运行时间tp(n)与其所需处理器数量p(n)的乘积,即tp(n)*p(n)
    • 如果ts(n)=tp(n)*p(n)=串行计算的步数(节拍数)则算法称为最优

    加速比

    • Sp(n)=(最快的串行算法最坏的运行时间)/(并行算法最坏的运行时间)=ts(n)/tp(n)
    • 一般有:ts(n)≤p(n)*tp(n)(通信、同步开销);1≤Sp(n)≤p(n)

    效率

    • Ep(n)=Sp(n)/p(n)(加速比/处理机数)
    • 一般有:0<Ep(n)≤1

    并行计算模型

    PRAM:SIMD-SM

    基本概念

    • PRAM(并行随机访问机器)模型也称为SIMD-SM模型,用于细粒度并行计算
    • 采用集中式共享存储器模式,单一的编程访问空间
    • 隐式同步机制

    优点

    • 适于表示和分析并行计算的复杂性
    • 隐匿了并行计算机的大部底层细节(如通信、同步),从而易于使用

    缺点

    • 不适于MIMD计算机,存在存储器竞争和通信延迟问题

    模型图示

    APRAM:MIMD-SM

    基本概念

    • APRAM模型也称为分段(phase)PRAM模型;
    • 用于中粒度的并行计算
    • 采用集中式共享存储器,单一的访问地址空间
    • (进程间)异步操作,但读/写共享变量操作采用显示同步方式

    计算模式

    • 计算由若干个用同步点(barrier)划分的段组成
    • 每一段异步运行局部程序
    • 读/写操作在同步点进行同步

    优点

    • 保存了PRAM的简单性
    • 可编程性和可调试性(correctness)好
    • 易于进行程序复杂性分析

    缺点

    • 不适于具有分布式存储器的MIMD计算机

    计算模式图示

    模型图示

    BSP:MIMD-DM

    基本概念

    • BSP模型是一种分布式存储器的多处理机模型,又称大同步模型
    • 用于中大粒度并行计算
    • (进程间)异步操作
    • 采用报文发送和接收的通信方式进行显示同步

    参数和计算模式

    • BSP把并行计算机抽象为3个参数:P(处理机),g(宽带因子)和l(同步间隔)
    • 计算由同步点(barrier)划分为若干个Supersteps
    • 每个Superstep中实现异步的局部计算
    • 在同步点通过发送和接收h-message进行同步

    优点

    • 把计算和通信分割开来
    • 使用hashing自动进行存储器和通信管理
    • 提供了一个编程环境

    缺点

    • 显式的同步机制限制并行计算机数据的增加
    • 在一个Superstep中最多只能传递h个报文

    BSP编程模式

    BSP的开销

    • Csuperstep=maxWi+maxHig+L
    • process最大延迟时间
    • Wi-进程pi的局部计算时间
    • Hi-进程pi发送和接收的最大包数
    • g-1/带宽(timestep/packet)(吞吐量 带宽因子)
    • L-同步点同步时间间隔(同步点个数)
    • 这里如果g=l=1,则BSP=PRAM-SIMD
    • S=1-›带宽因子,吞吐率100%
    • L=1-›若1个时间间隔为1个时间单位,则为1个同步点

    LogP:MIMD-DM

    基本概念

    • LogP模型是技术趋势,编程经验和现行理论的综合产物
    • 用于大粒度并行计算
    • 使用分布式存储器的单一的和多重访问地址空间
    • 进程间异步操作
    • 采用报文通信方式隐式实现同步操作,即子集同步

    参数和计算

    • LogP模式把通信网络抽象为3个参数:L(网络延时),O(通信开销),g(网络带宽)
    • 计算过程有若干Superstep组成
    • 在每个Superstep中异步地实现局部计算并通过发送/接收L/g报文进行同步

    优点

    • 可捕捉并行计算机的(同步)通信瓶颈(通过发送或接收L/g个报文)
    • 可隐匿拓扑结构,路由算法和网络协议的细节
    • 可用于共享变量,报文传递和数据并行处理等方案

    缺点

    参考文献

    https://wenku.baidu.com/view/382879f2561252d381eb6e5f.html?sxts=1542528770069

  • 相关阅读:
    27. Remove Element
    26. Remove Duplicates from Sorted Array
    643. Maximum Average Subarray I
    674. Longest Continuous Increasing Subsequence
    1. Two Sum
    217. Contains Duplicate
    448. Find All Numbers Disappeared in an Array
    566. Reshape the Matrix
    628. Maximum Product of Three Numbers
    UVa 1349 Optimal Bus Route Design (最佳完美匹配)
  • 原文地址:https://www.cnblogs.com/zhangzefei/p/9980174.html
Copyright © 2011-2022 走看看