您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > PETSc-用户指南
超超级级计计算算环环境境基基础础并并行行软软件件平平台台建建设设与与应应用用并并行行软软件件开开发发小小组组系系列列测测试试报报告告之之一一PETSc用户指南中中科科院院计计算算机机网网络络信信息息中中心心超超级级计计算算中中心心http:://:walls@sccas.cn程强迟学斌冯仰德王建赵永华NNCCIICC--SSCC--000011,,SSCCCCAASS22000044年年88月月,,北北京京1目录前言1PETSc简介1.1概况……….……………………………………..……………………….11.2体系结构…………………………………………………………………11.3基本特色………………………………………………………………….41.4安装PETSc……………………………………………………………….52PETSc的基本对象2.1向量……………………………………………….……………….………72.1.1创建和聚集……………………….……………………….…….………72.1.2基本运算操作……………………….……………………….…….……82.1.3索引和排序………………………….…………………….…….………82.1.4规则网格与DA…………….……………………………….…….………92.1.5无结构网格与IS…………………………………………………….……102.2矩阵……………………………………………….………………....…112.1.1创建和聚集……………………….……………………….……………112.1.2基本运算操作……………………….…………………….…….……...112.1.3无矩阵运算………………………….…………………….…….………122.1.4矩阵的划分………………………………….……………………….……123PETSc的基本功能3.1线性方程求解……………………………………………………………133.1.1基本用法……………………….………………………....….………133.1.2Krylov子空间方法……………….………………………….…….……133.1.3预条件子…………………………….……………………….…….……143.1.4奇异方程求解………………………….………………….…….………163.2非线性方程求解…………………………………………………………163.2.1基本用法……………………….………………………….…….………173.2.2非线性解法器……………………….……………………….…….……173.2.3无矩阵方法………………………….…………………….…….………1723.2.4有限差分雅可比逼近……………….………………….…….………183.3时间步进积分……………………………………………………………183.3.1基本用法……………………….………………………....….………193.3.2求解时间依赖问题………………….……………………….…….…193.3.3求解时间稳态问题………………….……………………….…….…193.3.4其它求解器………………………….…………………….…….……193.4PETSc的其他功能………………………………………………………203.4.1性能分析……………………….……………………….……...………203.4.2图形输出…………………………….……………………….…….……223.4.3调试和错误检测…………………….…………………….…….………233.5PETSc与其它软件………………………………………………………233.5.1DMMG……………………….…………………………….…….………243.5.2ADIC/ADIFOR…………………….……………………….…….....…243.5.3Matlab………………………….…………………….…….......……243.5.4ESI……………………….……………………….…….…...........…244PETSc编程4.1PETSc程序范例…………………………………………………………254.2PETSc程序结构…………………………………………………………285PETSc范例测试5.1线性方程求解……………………………………………………………295.1.1范例简介………………………….……………………………………295.2非线性方程求解……………..…………………………………………305.2.1范例简介……………………………………………………………….305.3时间步进积分……………………………………………………………315.3.1范例简介…………………………………………………………….…316PETSc测试总结参考文献3前言通过计算手段进行重大科学发现,已普遍为人们所共识。从传统科学与工程领域如航空航天、地震预报、气候预测、大型水利建设和石油地质勘探,到大型基因组测试、新药设计和新材料合成等新兴科学研究领域,无处不需要大规模数值模拟和科学计算。在当今社会,科学计算已经逐渐成为影响和关系到一个国家经济发展、科技进步和国家安全的关键性环节。2002年10月,中国科学院确立了“十五”信息化建设规划项目“超级计算环境建设与应用”,而“基础并行软件平台建设”又为其核心开发内容之一。它以基础并行软件环境开发为主要目标,通过广泛搜集目前流行的数值和并行应用软件,进行深层次研究和开发,改进和提高计算性能,并最终移植到特定计算环境如正在建设的国家网格节点上,主要供国内从事科学计算的广大科技人员共享。同时,我们也正逐步开发一系列具有重要应用价值的数值软件和面向网格的科学计算平台,并率先在国内开展自动微分算法的应用基础研究,以及逐渐开发一系列自动微分软件包和数值微分计算环境。在此背景下,我们将陆续推出PETSc、TAO、FFTW、DOUG等系列并行软件在深腾6800上的测试报告,这包括应用和开发两个方面的目标。一方面,我们希望通过这些相对成熟的并行软件在一些典型应用上的成功来改变或导向人们传统的“从无到有”编程思路,我们希望科学家与工程师们更多的依赖这些成熟的、高性能的软件资源以便更高层次开发其应用程序,从而获得可比较性的性能提高。另一方面,任何软件的“成熟性”和可靠性都只能是相对的,不同的应用和不同的体系结构会有不同的代价和性能,以及体系结构的不断发展和变化与应用之间的相互作用对任何软件的生命期都可能是致命的。在典型应用的驱使下,我们希望能够基于这些并行软件做一些高层次的研究和开发。基础并行软件平台建设与应用开发计划包括以下三个方面:1.数值并行软件的移植及其性能优化。主要包括可移植、可扩展科学计算工具箱(PETSc)、大型稀疏线性方程组并行迭代求解(AZTEC)、高级最优化工具箱(TAO)、非线性与微分/代数方程解法器(SUNDIALS)、FFTW、LAPACK、ScalLAPACK、稀疏矩阵特征值问题并行求解(PARPACK)和无结构网格上的区域分解(DOUG)等内容。2.自主开发一些高性能数值与并行计算软件包。这些软件包主要包括并行特征值求解器(PSEPS)、自动微分转换系统(DFT)、自动伴随生成器系统(ADG)和并行多维FFT软件包(PMDFFT)等内容。43.举办用户培训和相关学术会议,推动并行软件的应用和研究开发。主要包括PETSc、TAO、DOUG等基础并行数值软件的应用,以及LINUX/UNIX/网格应用、并行计算方法及其相关内容。最后,我们热忱欢迎国内外所有来自不同学科、不同专业领域的科学家和工程技术人员就更为广泛的科学和工程计算问题提出建议。我们的联系方式:单位:中国科学院计算机网络信息中心超级计算中心网站:电话:(86-10)5881-2132邮件:walls@sccas.cn地址:北京中关村南4街4号通信:北京349信箱,SC,10008011PETSc简介1.1概况PETSc(Portable,ExtensibleToolkitforScientificComputation)是美国能源部ODE2000支持开发的20多个ACTS工具箱之一,由Argonne国家实验室开发的可移植可扩展科学计算工具箱,主要用于在分布式存储环境高效求解偏微分方程组及相关问题。PETSc所有消息传递通信均采用MPI标准实现。PETSc用C语言开发,遵循面向对象设计的基本特征,用户基于PETSc对象可以灵活开发应用程序。目前,PETSc支持Fortran77/90、C和C++编写的串行和并行代码。PETSc是系列软件和库的集合,三个基本组件SLES、SNES和TS本身基于BLAS、LAPACK、MPI等库实现,同时为TAO、ADIC/ADIFOR、Matlab、ESI等工具提供数据接口或互操作功能,并具有极好的可扩展性能。PETSc为用户提供了丰富的Krylov子空间迭代方法和预条件子,并提供错误检测、性能统计和图形打印等功能。如今,越来越多的应用程序在PETSc环境上开发,并逐渐显示出PETSc在高效求解大规模数值模拟问题方面的优势和威力。PETSc最新版本为petsc-2.2.1,PETSc网站:。目前,PETSc3正在开发中。1.2体系结构不同于其它微分/代数方程解法器,PETSc为用户提供了一个通用的高层应用程序开发平台。基于PETSc提供的大量对象和解法库,用户可以灵活地开发自己的应用程序,还可随意添加和完善某些功能,如为线性方程求解提供预条件子、为非线性问题的牛顿迭代求解提供雅可比矩阵、为许多数值应用软件和数学库提供接口等。图1表示了PETSc在实现层次上的抽象,图2具体列举了PETSc的基本数值部件。这里做简要说明。应用程序:用户在PETSc环境下基于PETSc对象和算法库编写的串行或并行应用程序。尽管PETSc完全在MPI上实现,但PETSc程序具有固定的框架结构,即有初始化、空间释放和运行结束等环境运行语句。PDE解法器:用户基于PETSc的三个基本算法库(TS、SNES和SLES)构建的偏微方程求解器。但它却不是PETSc的基本组件。2TS:时间步进积分器,用于求解依赖时间或时间演化的ODE方程,或依赖时间的离散化后的PDE方程。对于非时间演化或稳态方程,PETSc提供了伪时间步进积分器。TS积分器最终依赖线性解法器SLES和非线性解法器SNES来实现。PETSc为PVODE库提供了接口。另外,TS的用法非常简单方便。SNES:非线性解法器,为大规模的非线性问题提供高效的非精确或拟牛顿迭代解法。SNES依赖于线性解法器SLES,并采用线性搜索和信赖域方法实现。SNES非常依赖于雅可比矩阵求解,PETSc既支持用户提供的有限差分程序,同时又为用户提供了依赖ADIC等自动微分软件生成的微分程序接口。SLES:线性解法器,它是PETSc的核心部分。PETSc几乎提供了各种高效求解线性方程的解法器,既有串行求解也有并行求解,既有直接法求解也有迭代法求解。对于大规模的线性方程,PETSc提供了大量基于Krylov子空间方法和预条件子的各种成熟而有效的迭代方法,以及其它通用程序和用户程序的接口。图1:PETSc实现的层次结构KSP:Krylov子空间方法,广泛涉及Richardson方法,共扼梯度法(CG和BiCG),广义最小残差法(GMRES),最小二乘QR分解(LSQR)等。PC:预条件子,包括雅可比矩阵,分块雅可比矩阵,SOR/SSOR方法,不完全Cholesky分解,不完全LU分解,可加性Schwartz方法,多重网格预条件子等。DRAW:应用程序的性能分析和结果显示。应用程序BLASLAPACKMPIPDE解法器TS(时间步进)SNES(非线性方程解法器)SLES(线性方程解法器)KSP(Krylov子空间
本文标题:PETSc-用户指南
链接地址:https://www.777doc.com/doc-5704510 .html