PRAM模型中CRCW和EREW的主要区别是什么?

问题描述 投票:3回答:2

在PRAM模型中,多个处理器同步操作以在不同的数据集上执行相同的命令。

每种算法有两种类型的读/写模式;

  1. 并发(并发读取和并发写入)
  2. 独家(独家阅读和独家撰写)

我发现难以理解的是这两种模式之间究竟有什么区别,哪些似乎更精通?

algorithm computer-science synchronous processor thread-synchronization
2个回答
4
投票

理论:

PRAM machines可能会利用以下列出的主要方法之一来处理在任何纯[SERIAL]系统中未观察到的并发事件处理策略。

鉴于机器物理机构的性质,下面列出的一些政策可能(但不一定)与处理目标相匹配,而基于软件的工具则是允许其他政策(未在下面列出,因此不直接由PRAM支持)基于硬件的资源),当然需要额外的时间(附加开销)来调解这些策略执行步骤和措施。

正如下面的3.2.x中所观察到的,一些基于硬件的策略可能直接有益于专门的,而不是通用的图像处理或类似情况,而通用计算图不能得到正确的结果,如果不受某些手段的保护排他性锁定或原子操作,因为以下列出的CRCW策略都没有确保系统有效的结果,否则就是“正常”-[CONCURRENT]调度的代码执行并发发生的冲突写访问。


  • EREW(独家阅读,独家撰写):

1.1)不允许多个处理器同时进行内存访问 1.2)如果两个或多个处理器同时尝试读取或写入同一存储器单元,则行为未定义


  • CREW(并发读取,独占写入):

2.1)同时读取相同的存储单元是可以的 2.2)对同一单元的两次并发写入导致未指定的行为


  • CRCW(并发读,并发写):

3.1)并发读写都可以 3.2)必须进一步指定并发写入的行为:

3.2.1)弱CRCW:并发只写,如果所有处理器都写0 3.2.2)共模CRCW:所有处理器都需要写入相同的值 3.2.3)任意获胜者 - CRCW:对手选择其中一个值(确实是一个抽奖) 3.2.4)Priority-CRCW:写入具有最高ID的处理器的值 3.2.5)强CRCW:{最大|最小的} -value被写入


2
投票

如果两个进程尝试从同一个内存位置同时读取怎么办? (此操作定义明确。)

如果两个进程同时尝试写入同一个内存位置怎么办? (这个操作定义不太明确:最终值是否会被某些过程写成?如果是,哪一个?它会是“混合物”吗?)

您可以使用一个或其他模型设计算法,即允许自己并发读/写。

最“强大”的机器是CRCW模型,它可以提供最快的算法,其次是CREW。

© www.soinside.com 2019 - 2024. All rights reserved.