C++ 偏微分数值计算库_【HPC】高性能数值计算-PETSc

bcd26267baad6e096a84a320dddd5b16.png

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: Download​www.mcs.anl.gov

3. 配置,注意需指定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
check结果

6. 运行ksp示例程序ex2

可伸缩线性方程求解器(KSP)组件为Krylov子空间迭代方法和预处理器(分别在KSP和PC组件中)或顺序直接求解器的组合提供了易于使用的界面。

KSP用户可以在运行时通过选项数据库(例如-ksp_type cg)设置各种Krylov子空间选项。 KSP用户还可以通过直接调用下面列出的KSP例程(例如KSPSetType())直接在应用程序中设置KSP选项。

ex2算例是使用ksp并行求解线性方程Ax=b。

下表是KSP目前所提供的迭代方法:

a027dde92829d0f308a1a49686f0f4c3.png
迭代方法一览表
cd petsc-3.13.2/src/ksp/ksp/tutorials
make ex2
mpirun -n 4 ./ex2 -n 100 -m 100

5e2e8fca88cbb196e6d69f7e87906e47.png
运行结果

结果分析:

通过-ksp_type指定不同迭代方法以及改变数据规模,观察实验结果:

b0f04ee47ea631e502545f36e6369c92.png

当数据规模较小时,共轭梯度下降与默认迭代方法性能差别不大。当增大数据规模时,共轭梯度下降的性能提升较为明显。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值