APRAM模型构成
分相(Phase)PRAM模型是一个APRAM(Asynchronous Parallel Random Access Machine,异步随机存取并行机器)模型。它由p个处理器组成,特点是每个处理器都有自己的局部存储器、局部时钟和局部程序,处理器之间的通信通过全局共享存储器进行。每个全局时钟,所以各处理器异步的独立执行各自的程序,处理器之间任何时间上的依赖关系(执行次序)需要明确的在各处理器的程序中加入同步障碍语句(Synchronization
Barrier)来实现,一条指令可以在非确定(无界)但有限的时间内完成。
APRAM模型的指令类型
APRAM中的指令有四种类型:
● 全局读,将全局存储单元中的内容读到处理器得局部存储单元中;
● 局部操作,对局部存储器中的数据执行局部操作,操作的结果存放到局部存储器中;
● 全局写,将局部存储器单元中的内容写入全局存储单元中;
● 同步,同步是计算中的一个逻辑点,在该点各处理器均需要等待其他的处理器也到达该点后才能继续执行它们的局部程序。
APRAM模型中的计算
APRAM模型中,计算由一系列用同步障碍语句分开的全局相(Global Phase)所组成。如下面的图。在全局相内,每个处理器异步的运行其局部的程序;每个局部程序中的最后一条指令是一条同步障碍指令,各处理器均可以异步的读取和写入全局存储器,但在同一个全局相中,不允许两个处理器访问同一单元。正是因为不同的处理器访问存储单元总是由同步障碍指令所分开,所以指令完成时间上的差异并不影响整个计算。
处理器1 处理器2 … 处理器p
read x1 read x3 read xn
phase 1 read x2 * *
* write to B *
write to A write to C write to D
障碍同步
read B read A read C
phase 2 * * *
write to B write to D
障碍同步
* write to C write to B
read D read A
phase 3 * *
write to B
障碍同步
APRAM模型中的时间计算
使用APRAM模型计算算法的时间复杂度时,假定局部操作为单位时间;全局读/写时间为d,它定量化了通信延迟,代表读/写全局存储器的平均时间,d随计算机中的处理器增加而增加;同步障碍指令的时间为B,它是处理器数p的非降函数B=B(p)。在APRAM中假定上述参数服从如下的关系
同时或
令tph为全局相内各处理器指令执行时间的最大值,则整个程序运行时间T为各相的时间之和加上B乘以同步障碍的次数,即
同步障碍次数
总之,APRAM模型比其PRAM来更接近于实际的并行计算机,且保留了PRAM编程的简捷性;由于使用了同步障碍指令,所以不管各处理器的延迟有多长,程序必定是正确的;而且因为APRAM模型中的成本参数是定量化的,所以对算法的分析也不困难。
|