PETSc Users Manual Revision 3.4

PETSc Users Manual Revision 3.4
复制标题

DOI:
10.2172/1255238
复制
发表时间:
2016-04
期刊:
--
影响因子:
--
通讯作者:
S. Balay;Jed Brown;K. Buschelman;V. Eijkhout;W. Gropp;D. Kaushik;M. Knepley;L. McInnes;Barry F.
S. Balay;Jed Brown;K. Buschelman;V. Eijkhout;W. Gropp;D. Kaushik;M. Knepley;L. McInnes;Barry F.
中科院分区:
其他
文献类型:
--
作者:
S. Balay;Jed Brown;K. Buschelman;V. Eijkhout;W. Gropp;D. Kaushik;M. Knepley;L. McInnes;Barry F.

文献摘要

被引文献

相似文献

本手册介绍了如何在高性能计算机上使用PETSC数值求解偏微分方程组和相关问题。可移植、可扩展的科学计算工具包(PETSC)是一套数据结构和例程,为在并行(和串行)计算机上实现大规模应用程序代码提供了构建块。PETSC对所有消息传递通信使用MPI标准。PETSC包括一套扩展的并行线性、非线性方程解算器和时间积分器,可用于用Fortran、C、C++、Python和MATLAB(顺序)编写的应用程序代码。PETSC提供了并行应用程序代码中所需的许多机制,例如并行矩阵和向量汇编例程。该库是按层次结构组织的,使用户能够使用最适合特定问题的抽象级别。通过使用面向对象的编程技术,PETSC为用户提供了巨大的灵活性。PETSC是一组复杂的软件工具;因此,对于一些用户来说,它最初的学习曲线比简单的子例程库要陡峭得多。特别是,对于没有计算机科学背景、C、C++或Fortran编程经验并有使用GDB或DBX等调试器经验的个人来说,可能需要更多的时间来充分利用支持高效软件使用的功能。然而,PETSC设计及其包含的算法的强大功能可能会使许多应用程序代码的有效实现比您自己“滚动”它们更简单;对于许多任务,诸如MATLAB之类的包通常是最好的工具;PETSC不是针对可以编写有效的MATLAB代码的那类问题而设计的。PETSc也有一个MatLab接口,因此您可以用MatLab编写部分代码来“试用”PETSc解算器。然而,生成的代码将是不可伸缩的,因为目前的matlab本身就是不可伸缩的;并且不应该使用PETSC来尝试在其他顺序代码中提供“并行线性解算器”。当然,以前顺序代码的所有部分都不需要并行化,但矩阵生成部分必须并行化才能获得任何类型的合理性能。不要期望按顺序生成矩阵,然后“使用PETSc”来并行求解线性系统。由于PETSC正在继续开发中,因此例程的使用和调用顺序将发生微小变化。支持PETSC;有关联系支持的信息,请参阅网站http://www.mcs.anl.gov/petsc。可以在http://www.mcs.anl.gov/petsc/publications上找到一份出版物和网站的列表,这些出版物和网站以涉及PETSC的工作为特色。我们欢迎任何对本文件进行更正的报告。“更少”
This manual describes the use of PETSc for the numerical solution of partial differential equations and related problems on high-performance computers. The Portable, Extensible Toolkit for Scientific Computation (PETSc) is a suite of data structures and routines that provide the building blocks for the implementation of large-scale application codes on parallel (and serial) computers. PETSc uses the MPI standard for all message-passing communication. PETSc includes an expanding suite of parallel linear, nonlinear equation solvers and time integrators that may be used in application codes written in Fortran, C, C++, Python, and MATLAB (sequential). PETSc provides many of the mechanisms needed within parallel application codes, such as parallel matrix and vector assembly routines. The library is organized hierarchically, enabling users to employ the level of abstraction that is most appropriate for a particular problem. By using techniques of object-oriented programming, PETSc provides enormous flexibility for users. PETSc is a sophisticated set of software tools; as such, for some users it initially has a much steeper learning curve than a simple subroutine library. In particular, for individuals without some computer science background, experience programming in C, C++ or Fortran and experience using a debugger such as gdb or dbx, it may require more » a significant amount of time to take full advantage of the features that enable efficient software use. However, the power of the PETSc design and the algorithms it incorporates may make the efficient implementation of many application codes simpler than “rolling them” yourself; For many tasks a package such as MATLAB is often the best tool; PETSc is not intended for the classes of problems for which effective MATLAB code can be written. PETSc also has a MATLAB interface, so portions of your code can be written in MATLAB to “try out” the PETSc solvers. The resulting code will not be scalable however because currently MATLAB is inherently not scalable; and PETSc should not be used to attempt to provide a “parallel linear solver” in an otherwise sequential code. Certainly all parts of a previously sequential code need not be parallelized but the matrix generation portion must be parallelized to expect any kind of reasonable performance. Do not expect to generate your matrix sequentially and then “use PETSc” to solve the linear system in parallel. Since PETSc is under continued development, small changes in usage and calling sequences of routines will occur. PETSc is supported; see the web site http://www.mcs.anl.gov/petsc for information on contacting support. A http://www.mcs.anl.gov/petsc/publications may be found a list of publications and web sites that feature work involving PETSc. We welcome any reports of corrections for this document. « less