求向量累加和 ,在SISD计算机上实现需16次加法。现在阵列处理机上用成对递归算法,只需l0g216 =4次加法,即可求得前1个,前2个,…,前16个元素之和。设原始数据A(i)分别存放在PEMi的a单元,其中,0≤i≤15。请写出阵列处理机上用成对递归相加求累加和的并行算法步骤。
解:累加和的算法步骤如下:(根据正确的比率得分)(1)置全部PEi为活跃状态,0 ≤i ≤15 ;(2)置全部A(i)从PEi的a单元读到相应PEi的累加寄存器RGAi中,0 ≤i≤15 ;(3)令K = 0 ;(4)将全部PEi的(RGA<>i>)转送到传送寄存器RGR<>i>,0 ≤ i ≤ 15 ;(5)将全部PEi的(RGR<>i>)经过互连网络各右传送2<>K>步距,0 ≤i≤15 ;(6)令 j=2<>K>-l;(7)置PE0~PEj为不活跃状态;(8)处理活跃状态的所有PEi执行(RGA<>i>): =(RGA<>i>) + (RGR<>i>),j <i≤15 ;(9)K:=K + 1;(10)若K<4,则转回(4);(11)置全部PEi为活跃状态,0 ≤ i ≤ 15 ;(12)将全部PEi的累加寄存器内容(RGA<>i>)存入相应PEi的a + 1单元中,0 ≤i≤15。