PRAM模型

概述

PRAM模型(Parallel Random Access Machine)是并行计算的经典理论模型,由多个处理器共享全局内存,各处理器可同时读取或写入共享内存单元。根据对内存访问冲突的不同处理策略,PRAM 分为 EREW(互斥读写)、CREW(并发读互斥写)、CRCW(并发读写)等变体。PRAM 是并行算法设计与分析的基础模型。

定义

形式化定义

一个 PRAM(Parallel Random Access Machine)由以下组件构成:

  • 个处理器 :每个处理器可执行算术和逻辑运算
  • 共享全局内存:由 个可寻址单元组成,所有处理器均可访问
  • 同步执行:所有处理器在每个时钟周期同步执行,共享统一时钟
  • 通信方式:处理器之间通过读写共享内存单元进行通信

在每个时钟周期中,每个处理器可以:

  1. 从共享内存读取一个字
  2. 执行一次局部计算
  3. 向共享内存写入一个字

PRAM 的四种变体

根据对共享内存并发访问冲突的处理策略,PRAM 分为以下变体:

变体全称并发读并发写说明
EREWExclusive-Read Exclusive-Write禁止禁止最严格,同一内存单元每周期只能被一个处理器访问
CREWConcurrent-Read Exclusive-Write允许禁止允许同时读,但写必须互斥
CRCWConcurrent-Read Concurrent-Write允许允许允许同时读写,需定义冲突解决策略
ERCWExclusive-Read Concurrent-Write禁止允许较少使用

CRCW 的冲突解决策略

  • Common CRCW:所有写入相同值时允许,否则报错
  • Arbitrary CRCW:任意选择一个写入值生效
  • Priority CRCW:编号最小的处理器写入值生效
  • Combining CRCW:将所有写入值按某种运算(如求和、取最大值)合并

核心性质

性质描述
计算能力排序EREW CREW CRCW,更宽松的模型可模拟更严格的模型
多项式加速许多问题在 PRAM 上可实现从 的加速
同步假设所有处理器同步执行,忽略实际系统中的通信延迟和同步开销
理想化模型不考虑内存竞争、缓存一致性等实际硬件问题

变体间的模拟关系

  • CREW 可用 EREW 模拟,代价为 倍时间(通过广播树实现并发读)
  • CRCW 可用 CREW 模拟,代价为 倍时间(通过树结构合并并发写)
  • 因此 EREW 与 CRCW 之间最多相差 倍时间

应用场景

PRAM 模型是并行算法设计与分析的基础,经典应用包括:

  • 并行前缀和 个元素的前缀和在 CREW PRAM 上可在 时间内完成(使用 个处理器)
  • 并行排序:基于比较的排序在 CRCW PRAM 上可在 时间内完成
  • 并行矩阵运算:两个 矩阵乘法可在 时间内完成(使用 个处理器)
  • 并行图算法:BFS、连通分量等图算法的并行化分析
  • 计算复杂性理论:NC 类(Nick’s Class)的定义基于 PRAM 上的多项式处理器对数时间算法

参见

  • 并行计算模型 — PRAM 是并行计算模型的一种
  • Brent定理 — 有限处理器下并行执行时间的上界
  • BLAS — 实际并行线性代数计算的标准接口
  • 缓存优化 — 实际并行系统中缓存层次结构的影响