1、并行计算Parallel Computing主讲人徐云Spring, 2014第三篇并行数值算法第九章稠密矩阵运算第十章线性方程组的求解第十一章快速傅里叶变换第十二章数值计算的基本支撑技术第十章线性方程组的求解10.1 三角形方程组的求解10.1.1 基本术语10.1.2 上三角方程组的求解10.2 三对角方程组的求解10.3 稠密线性方程组的求解10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)4基本术语 线性方程组的定义和符号线性方程组的定义和符号a1,1x1+ a1,2x2+ + a1,nxn= b1a2,1x1+ a2,1x2+ + a2,nxn= b2 an,1x1+ an,1
2、x2+ + an,nxn= bn记为记为AX=b=nnnnnnnnbbbbxxxxaaaaaaaaaA#“#“2121212222111211,第十章线性方程组的求解10.1 三角形方程组的求解10.1.1 基本术语10.1.2 上三角方程组的求解10.2 三对角方程组的求解10.3 稠密线性方程组的求解10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)6上三角方程组的求解 上三角方程组的回代解法并行化上三角方程组的回代解法并行化(1)SISD上的回代算法上的回代算法Begin(1)for i=n downto1 do(1.1)xi=bi/aii(1.2)for j=1 to i-1 d
3、obj=bj-ajixiaji=0endforendforEnd可并行化国家高性能计算中心(合肥)7上三角方程组的求解 上三角方程组的回代解法并行化上三角方程组的回代解法并行化(2)SIMD-CREW上的并行回代算法上的并行回代算法-划分划分 : p个处理器行循环带状划分个处理器行循环带状划分-算法算法Beginfor i=n downto1 doxi=bi/aiifor all Pj, where 1 j p dofor k=j to i-1 step p dobk=bk-akixiaki=0endforendforendforEnd / p(n)=n, t(n)=nP1PjP1Pj行1j1
4、+pj+p第十章线性方程组的求解10.1 三角形方程组的求解10.2 三对角方程组的求解10.2.1 直接求解法10.2.2 奇偶规约法10.3 稠密线性方程组的求解10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)9三对角方程组的直接求解法 Gauss消去法消去法(难以并行化难以并行化)消元消元回代回代注:由于三对角的注:由于三对角的方程组的特殊性,方程组的特殊性,一次消元或一次一次消元或一次回代,只涉及邻回代,只涉及邻近一个方程,故近一个方程,故难以并行化。难以并行化。第十章线性方程组的求解10.1 三角形方程组的求解10.2 三对角方程组的求解10.2.1 直接求解法10.2.2
5、奇偶规约法10.3 稠密线性方程组的求解10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)11三对角方程组的奇偶规约求解法 奇偶规约求解法奇偶规约求解法(可并行化可并行化)三对角方程可以写成如下形式三对角方程可以写成如下形式fixi-1+gixi+hixi+1=bii=1nf1=hn=0 串行算法描述串行算法描述利用上下相邻方程消去偶序号方程中的奇下标变量利用上下相邻方程消去偶序号方程中的奇下标变量:f2i-1x2i-2+g2i-1x2i-1+h2i-1x2i =b2i-1f2ix2i-1+ g2ix2i +h2ix2i+1 =b2if2i+1x2i +g2i+1x2i+1+h2i+1x
6、2i+2 =b2i+12i-1方程乘上某个数消去方程乘上某个数消去2i方程中的方程中的f2ix2i-1项项, 2i+1方程乘上某个数方程乘上某个数消去消去2i方程中的方程中的h2ix2i+1项项, 使使2i方程变为方程变为ix2i-2+ix2i+ix2i+2=ii=1,2,n/2国家高性能计算中心(合肥)12重复重复最终可得最终可得:case 1: case2: g1x1+h1x2 =b1 .f2x1+g2x2+h2x3=b2 .f3x2 +g3x3+h3x4=b3 .f4x3 +g4x4 =b4 .可以分别得到可以分别得到g1x1+h1x2 =b1 或或g1x1+h1x2 =b1 f2x1+
7、g2x2 =b2 f2x1+g2x2+h2x3 =b2 f3x2+g3x3 =b3解得解得x1,x2 或或x1, x2, x3回代求解回代求解x 并行化分析并行化分析: 、消去奇下标可以并行化;消去奇下标可以并行化;回代求解可以并行化回代求解可以并行化三对角方程组的奇偶规约求解法第十章线性方程组的求解10.1 三角形方程组的求解10.2 三对角方程组的求解10.3 稠密线性方程组的求解10.3.1 有回代的高斯消去法10.3.2 无回代的高斯 -约旦法10.3.3 迭代求解的高斯 -赛德尔法10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)14有回代的高斯消去法 算法基本原理算法基本原理
8、 求解过程分为消元和回代两个阶段,消元是将系数矩阵求解过程分为消元和回代两个阶段,消元是将系数矩阵A化为上三角阵化为上三角阵T,然后对,然后对TX=c进行回代求解。进行回代求解。 消元过程中可以应用选主元方法,增加算法的数值稳定消元过程中可以应用选主元方法,增加算法的数值稳定性。性。 下面是消元过程图:下面是消元过程图:国家高性能计算中心(合肥)15有回代的高斯消去法 并行化分析并行化分析 消元和回代均可以并行化;消元和回代均可以并行化; 选主元也可以并行化;选主元也可以并行化; 消元过程的并行化图示:处理器按行划分消元过程的并行化图示:处理器按行划分主元行图10.1待改变的元素不变化的 元素
9、待消为0的元素已消为0的元素可并行化部分第十章线性方程组的求解10.1 三角形方程组的求解10.2 三对角方程组的求解10.3 稠密线性方程组的求解10.3.1 有回代的高斯消去法10.3.2 无回代的高斯 -约旦法10.3.3 迭代求解的高斯 -赛德尔法10.4 稀疏线性方程组的求解国家高性能计算中心(合肥)17无回代的高斯-约旦法 串行算法原理串行算法原理消元消元: 通过初等行变换通过初等行变换,将将(A,b)化为主对角线矩阵化为主对角线矩阵,(方便起见方便起见, 记记b为为A的第的第n+1列列)求解求解: xj=aj,n+1/ajj +1,1,2221,1111,1,21,1212222
10、111211nnnnnnnnnnnnnnnnaaaaaaaaaaaaaaaaaa#%#“#“国家高性能计算中心(合肥)18无回代的高斯-约旦法 SIMD-CREW上的并行算法上的并行算法(1)处理器处理器:n2+n个处理器个处理器, 这些处理器排成这些处理器排成n(n+1)的矩阵的矩阵, 处理器编号为处理器编号为Pik, i=1n, k=1n+1(2)并行化分析并行化分析消元的并行化消元的并行化: / O(n)for j=1 to n-1, each PikPar-do /第第j次消元次消元Pij(ij): aijj, k=j+1n+1): aiki(n)=O(nx) 综上,串行算法的最优时间为综上,串行算法的最优时间为 O(nx) 2iaik oldk)/aiiuntil i=1n| oldi-newi|+=+=第十章线性方程组的求解10.1 三角形方程组的求解10.2 三对角方程组的求解10.3 稠密线性方程组的求解10.4 稀疏线性方程组的求解10.4.1 线性方程组的并行化方法10.4.2 稀疏线性方程组的迭代解法10.4.3 高斯 -赛德尔迭代法的并行化