Cyrosly:Red-Black SOR迭代与解并行三角矩阵谁快?

chinecuda 2009-08-18 10:59:57
Cyrosly:
对于PDE问题,例如Poisson方程,CUDA并行求解,分块求解三对角矩阵(例如你Blog上的)与多重网格迭代(例如 Red-Black SOR)谁更快一些?您是否做过类似的对比?Red-Black SOR是否效率很低?
小可在此先谢过!
...全文
310 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cyrosly 2009-08-19
  • 打赏
  • 举报
回复
首先我那个求解三角矩阵方程方法一般配合LU,ILU或者cholesky,incomplete cholesky分解使用解线性方程组的直接解法,直接解法通常更快,但有时候受到有限的数据精度的限制而出现数值不稳定。但是处理对称正定或不定的问题时,使用用cholesky分解(LLT,LDLT)做预处理的PCG方法是个很有效的方法,因为cholesky数值稳定。Multigrid方法是理论上迭代法中收敛最快的方法(实际中也往往如此,但理论深度要求也是最高的)。MG方法一般用GS,weight-jacobi,SOR等迭代方法作为内迭代子,也就是说MG方法其实不是一种迭代方法,而只是经典迭代法加速收敛的手段。MG方法也可以用做PCG方法的预处理子,这方面的资料貌似很少,记得以前见过,如果找到就贴上来。另外MG方法分为AMG(代数多重网格方法)和GMG方法(几何多重网格),这2种方法各有优劣,但对于2维椭圆边值问题一样的有效。
最后你的问题:没有比较过,但是Red-black SOR的单步迭代消耗肯定比MG小.
依照我个人的看法,Red-black可以认为是一种“伪二重MG”方法(细网格隐藏在数据层,而粗网格则是由跨格计算确定),因为MG的实质是在不同的频域减弱各个频段的误差(细网格消除高频误差,粗网格消除低频误差,而在以往的迭代法中高频误差一般小时的很快,而低频误差则很慢(也即为什么收敛慢的原因),因此MG使用粗网格快速消除低频误差以达到快速收敛的目的),而RB方法每一步相当于在比原始细网格大一倍的尺寸的粗网格上进行迭代,而数据则是细致的密度分布,但是
每一步的迭代都是在粗网格上单向迭代(没有从粗网多细网的延拓过程),因此认为是一种不完全的“伪二重MG”方法更为符合逻辑和直觉(纯属个人愚见)
chinecuda 2009-08-18
  • 打赏
  • 举报
回复
另:有些资料上把Red-Black SOR归为多重网格,有的归为多重着色,还有直接归为经典迭代,看得头晕,小可没有系统学过并行计算程序设计,理论上讲Red-Black SOR究竟属于什么算法?
Z782282738 2009-08-18
  • 打赏
  • 举报
回复
Black SOR

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧