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
6. 运行ksp示例程序ex2
可伸缩线性方程求解器(KSP)组件为Krylov子空间迭代方法和预处理器(分别在KSP和PC组件中)或顺序直接求解器的组合提供了易于使用的界面。
KSP用户可以在运行时通过选项数据库(例如-ksp_type cg)设置各种Krylov子空间选项。 KSP用户还可以通过直接调用下面列出的KSP例程(例如KSPSetType())直接在应用程序中设置KSP选项。
ex2算例是使用ksp并行求解线性方程Ax=b。
下表是KSP目前所提供的迭代方法:
cd petsc-3.13.2/src/ksp/ksp/tutorials
make ex2
mpirun -n 4 ./ex2 -n 100 -m 100
结果分析:
通过-ksp_type指定不同迭代方法以及改变数据规模,观察实验结果:
当数据规模较小时,共轭梯度下降与默认迭代方法性能差别不大。当增大数据规模时,共轭梯度下降的性能提升较为明显。