- 1、本文档共323页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARGONNE NATIONAL LABORATORY
9700 South Cass Avenue Argonne, IL 60439
ANL-95/11-Revision 2.1.3
ANL-95/11-Revision 2.1.3
PETSc 用户手册
Satish Balay, Kris Buschelman, William Gropp, Dinesh Kaushik, Matt Knepley,
Lois Curfman Mclnnes, Barry Smith, Hong Zhang
Mathematics and Computer Science Division /petsc
PAGE
PAGE 21
PAGE
PAGE 22
May 31, 2002
中国科学院计算机网络信息中心超级计算中心谷同祥 王建 黄海 翻译、整理
摘 要
本手册描述 PETSc 在高性能计算机上数值求解偏微分方程及相关问题的使用方法。可移植可扩展科学计算工具箱(PETSc: Portable, Extensible Toolkit for Scientific Computation)是一套数据结构和程序,它为大规模应用代码在并行(和串行)计算机上实现提供构造模块。PETSc 对所有消息传递通讯均使用MPI 标准。
PETSc 包含一套正在扩充的并行线性、非线性方程解法器和时间积分器,它们可能在用 FORTRAN、C 和C++编写的应用代码中被用到。PETSc 提供并行应用代码中所需的许多机制,如并行矩阵和向量聚集程序。本程序库采用分级组织,使用户能利用对实际问题非常适合的抽象出的层次。由于使用了面向对象编程技术,PETSc 为用户提供了巨大的灵活性。
PETSc 是软件工具的一个复杂集合;因此,对某些用户来说,起初要学习的东西比简单子程序库的更多。特别地,对某些没有计算机科学背景知识和 C 或 C++编程经验的人,要领会它的全部特征并使软件有效地运行需花大量的时间。然而,PETSc 的设计及其所含算法能使许多应用代码有效地实现,这比你自己“摆弄它们”更简单。
对许多简单的(甚至相对复杂的)任务,诸如 Matlab 的包常是最好的工具;对可写出有效 Matlab 代码的问题类,PETSc 并不想给予太多的关注。
不要期望 PETSc 像其它串行代码一样会提供一个“并行线性解法器”。当然,并非以前串行代码的所有部分都必须被并行化,但是, 矩阵创建部分必须具有所期望的任何性能。不要期望串行地创建你的矩阵,然后“使用 PETSc”并行求解线性方程组。
由于 PETSc 正在研发之中,用法和程序调用系列可能会有些小的变化,有关信息见 web 站点: /petsc.
涉 及 PETSc 特 征 工 作 的 出 版 物 和 网 站 列 表 可 在 /petsc /publications 查到。我们欢迎对这些页面的任何附加。
获取 PETSc 的信息:
On-line:
所有程序的菜单页,包括分类的例子用法: docs/index.html 或
http://www.mcs. /petsc/docs
分 类 的 问 题 查 寻 : docs/troubleshooting.html 或
/petsc/ doc/
本手册中:
基本介绍,第 9 页
聚集向量,第 29 页,和矩阵,第 43 页
线性解法器,第 53 页
非线性解法器,第 68 页
时间步进(ODE)解法器,第 88 页
索引,第 148 页
致谢:
我们感谢 PETSc 的所有用户,感谢他们的许多建议、测试报告和鼓励。特别感谢 Victor Eijkhout、David Keyes 和 Matthew Knepley,他们对PETSc 的原代码、功能和文档给予了有价值的评论。
PETSc 中的一些原代码和实用程序(或 PETSc 使用的软件)的完成
者:
Mark Adams:MPIBAIJ 矩阵的可扩展性,
Allison Baker:FGMRES 代码,
Tony Caola:SPARSEKIT2 ilutp()接口,
Chad Carroll:Win32 图形,
Cameron Cooper:VecScatter 程序部分,
Victor Eijkhou:t
程序,
KSP 型BICG,VecPipeline(和)
VecXXXBegin()/End()
Paulo Goldfeld:balancing Neumann-Neumann 预条件子,
Matt Hille,
Matthew Knepley,
Domenico Lahaye:导向 John Ruge 和 Klaus Stueben 的 AMG 的接口,
Peter Mell:DA 程
文档评论(0)