![bcd26267baad6e096a84a320dddd5b16.png](https://i-blog.csdnimg.cn/blog_migrate/f8362e0fbd1cb665a4d7fde08337ec2a.jpeg)
PETSc简介:
Portable, ExtensibleToolkit for Scientific Computation科学计算可移植扩展工具包。PETSc是系列软件和库的集合,三个基本组件SLES、SNES和TS本身基于BLAS、LAPACK、MPI 等库实现,同时为TAO、ADIC/ADIFOR、Matlab、ESI 等工具提供数据接口或互操作功能,并具有极好的可扩展性能。
安装与配置:
1. 因为之前已经完成MPI的环境配置,故只需再安装必要的包以及BLAS和LAPACK:
sudo
2. 下载安装包并解压:
PETSc: Downloadwww.mcs.anl.gov3. 配置,注意需指定mpi的目录:
./configure --with-mpi-dir=/usr/local/mpich-install
4. make并指定PETSc的目录:
make PETSC_DIR=/home/champon/下载/petsc-3.13.2 PETSC_ARCH=arch-linux2-c-debug all
5. 通过运行示例测试是否安装成功:
make PETSC_DIR=/home/champon/下载/petsc-3.13.2 PETSC_ARCH=arch-linux2-c-debug check
![d1f4c974bdec1de1f55be12c260ba3aa.png](https://i-blog.csdnimg.cn/blog_migrate/1411027d4131509bb5956249635a7c6b.jpeg)
6. 运行ksp示例程序ex2
可伸缩线性方程求解器(KSP)组件为Krylov子空间迭代方法和预处理器(分别在KSP和PC组件中)或顺序直接求解器的组合提供了易于使用的界面。
KSP用户可以在运行时通过选项数据库(例如-ksp_type cg)设置各种Krylov子空间选项。 KSP用户还可以通过直接调用下面列出的KSP例程(例如KSPSetType())直接在应用程序中设置KSP选项。
ex2算例是使用ksp并行求解线性方程Ax=b。
下表是KSP目前所提供的迭代方法:
![a027dde92829d0f308a1a49686f0f4c3.png](https://i-blog.csdnimg.cn/blog_migrate/b387f6a52cfd3960aa89defcc07906c0.png)
cd petsc-3.13.2/src/ksp/ksp/tutorials
make ex2
mpirun -n 4 ./ex2 -n 100 -m 100
![5e2e8fca88cbb196e6d69f7e87906e47.png](https://i-blog.csdnimg.cn/blog_migrate/f312f7afc8fd8a78ffa3cfb6fbb481c8.jpeg)
结果分析:
通过-ksp_type指定不同迭代方法以及改变数据规模,观察实验结果:
![b0f04ee47ea631e502545f36e6369c92.png](https://i-blog.csdnimg.cn/blog_migrate/bdd590da71fb2ccf0cb0e212cf35da29.jpeg)
当数据规模较小时,共轭梯度下降与默认迭代方法性能差别不大。当增大数据规模时,共轭梯度下降的性能提升较为明显。