什么是随机存取机?
在顺序计算机上解决问题所需的算法称为顺序算法。为解决并行计算机上的问题而编写的算法称为并行算法。顺序算法是以步骤的形式编写的,由PE顺序完成,即顺序算法使用顺序步骤来解决问题。在并行算法中,我们必须看到通信发生在哪里,我们必须将特定步骤的输出移动到哪里。
为特定架构编写的算法不能应用于另一种架构,换句话说,要在不同的并行计算机上解决相同的问题,必须基于并行计算机架构编写不同的算法。
编写并行算法是一项复杂的任务,为了解决这个问题,假设设计了各种称为抽象机器的并行模型。
抽象机器只是虚构的概念,它们在现实中并不存在。在这里,我们可以做出推断来解决问题。
有两种类型的抽象机
- 随机存取机 (RAM)
- 并行随机存取机 (PRAM)
随机存取机 (RAM)
随机存取机或 RAM 模型是 CPU。它是一个可能未绑定的存储单元库,每个存储单元都可以包含任意数字或字符。内存单元被编号,访问内存中的任何单元都需要时间,或者说所有操作(从内存读取/写入、标准算术和布尔运算)都需要一个时间单位。 RAM 是计算的标准理论模型(无限内存和相等的访问成本)。随机存取机模型对计算机行业的成功至关重要。
- 随机存取机 (RAM) 模型是一种单地址计算机。
- RAM 是顺序机器。 RAM 由内存、只读输入磁带、仅输出磁带和写入程序组成。
- 该程序不存储在内存中,无法修改。
- 输入磁带由一系列整数组成。每次读取输入值时,输入头向前移动一格。
- 同样,输出磁头在每次写入后向前移动。内存由无限序列的寄存器组成,指定为 r0, r1, r2,…。
- 每个寄存器可以包含一个整数。寄存器 r0 是累加器,计算完成的地方。
- RAM 必须具有与 LOAD、STORE、READ、WRITE、ADD、SUBTRACT、MULTIPLY、DIVIDE、TEST、JUMP 和 HALT 相同的指令。
- RAM 程序的最坏情况时间复杂度函数是 f(n),它是程序在所有大小为 n 的输入上执行所花费的最长时间。
- 我们假设这些步骤中的每一个都需要一个常数,即 O(1) 时间。
在 RAM 中,这里算法的每一步都由以下步骤组成:
- 读取:(最多)N 个处理器同时(并行)从 N 个内存位置(如在内存中)读取并将值存储在它们的本地寄存器中。
- 计算:(最多)N 个处理器对其寄存器中的值执行基本的算术或逻辑运算。
- 写入:(最多)N 个处理器同时从它们的寄存器写入(最多)N 个内存位置。
在 RAM 的情况下,假定每个步骤 READ、COMPUTE、WRITE 花费 O(1) 时间。应该注意的是,并非所有处理器都需要执行算法的给定步骤。当一部分处理器采取步骤时,其他处理器在此期间保持空闲状态。 PRAM 的算法必须指定在执行阶段期间哪个处理器子集应该处于活动状态。