- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PETSc求解二维Bratu方程*
程强1 张海斌2 曹建文3
中国科学院计算机网络信息中心超级计算中心,100080
北京工业大学应用数理学院,100022
中国科学院软件研究所并行软件研究与开发中心,100080
摘要 本文以求解二维Bratu方程为例,详细介绍了使用PETSc求解非线性方程组的方法和实现。在固定问题
计算规模下,对程序的并行可扩展能力和浮点性能进行了测试和分析,最后从KSP迭代方法、预条件子选择、
内层迭代次数和雅可比矩阵求解方法等方面讨论了最优运行参数的选择方法。
关键词 非线性方程求解;自动微分;浮点性能
[1]
SNES 是可移植可扩展科学计算工具箱 (PETSc )的三个核心解法器之一,用于求解大
规模非线性方程组。它采用牛顿迭代方法,而每个牛顿迭代步则使用 Krylov 子空间迭代方法[2]
和不同预条件子的组合实现,这非常适合于高效求解一大类 PDE 方程离散化后形成的大型稀
疏非线性方程组。
用户使用 SNES 求解一个非线性方程组时,仅仅需要提供非线性函数本身和可选雅可比矩
阵的计算程序。通常,雅可比矩阵可采用有限差分由 PETSc 提供的函数自动实现;但是,当
网格规模过大时,雅可比矩阵的计算代价将非常昂贵,并且计算精度受截断误差的影响。
[3]
自动微分方法 (AD )在无截断误差意义上分析求解函数导数,具有计算代价小、精度
高和可靠性好等优点。特别地,运用 AD 方法计算函数梯度的计算时间代价一般不超过其本身
[4]
代价的五倍 ,并且与独立变元的数目无关。目前,PETSc 使用自动微分软件
( )来提供求解雅可比矩阵的源代码。
ADIC/ADIFOR
对于 Bratu 方程的求解,除了雅可比矩阵的计算精度和代价对 SNES 的整个运行代价影响
较大之外,在每个牛顿迭代步内如何选择合适的 Krylov 子空间迭代方法和不同预条件子的组
合对整个计算性能的影响也不可能被忽略。此外,为了追求尽可能低的计算代价,在固定问题
规模和计算精度约束下,我们往往需要还在外层牛顿迭代步数和内层 KSP 迭代精度(或步
数)之间寻求一个合适的折衷。幸运的是,PETSc 为实现和调试最优性能提供了一个理想的试
验平台。
本文受到国家自然科学基金项目“自动微分方法研究及其实现”)和十五信息化建设专项“超级计算环境建设
与应用”(INF105-SCE) 的资助。E-mail: walls@sccas.cn, Tel: 010-5881-2132
1问题的描述
我们考虑区域 (0,1) (0,1) 上的二维Buratu 方程
2 u
u le 0, (x ,y )
(1)
u 0, (x , y )
采用均匀网格及五点中心差分格式将(1)离散化后,就得到一个标准形式的非线性方程
组F (u ) 0 。
PETSc 提供了两种优化方法可供选择,即一维线性搜索和信赖域方法。而在每个牛顿迭代
步内,SNES 都要近似求解一个线性方程组来得到了一个下降或搜索方向,因此用户需要设置
不同 Krylov 子空间迭代方法和不同预条件子的类型,以及内层 KSP 迭代的最大迭代步数或计
算精度。
2 固定计算规模的并行可扩展性能
为了考察 PETSc 程序的并行可扩展能力,我们固定总迭代步数,并使用一维线性搜索方
法求解 Bratu 方程。其中内层 KSP 迭代方法采用共轭梯度法(CG )和块雅可比预条件子组
合
文档评论(0)