应用介绍
HYPRE (High Performance Preconditioners) 是一个高效的并行数学库,专为求解大规模线性方程组、特别是稀疏线性系统而设计。它提供了一系列高性能的预条件器,用于加速求解过程,广泛应用于科学计算、工程模拟等领域。是运行在多核处理器上,借助目前性能较好的预处理矩阵(preconditioner)对于大型稀疏线性方程组使用迭代法求解的一个c语言库。 其目标是让用户可以借助于多核处理器的并行性能,并行存储矩阵不同范围的信息,并行地进行迭代法求解,从而达到事半功倍的效果。
加载环境
export LIBRARY_PATH=/opt/app/hypre/2.32.0/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/app/hypre/2.32.0/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/opt/app/hypre/2.32.0/include:$C_INCLUDE_PATH
export CPATH=/opt/app/hypre/2.32.0/include:$CPATH
使用说明
从Github上下载相关文件并解压,然后进入example目录
wget https://github.com/hypre-space/hypre/archive/refs/tags/v2.32.0.tar.gz
tar xf v2.32.0.tar.gz
cd v2.32.0/src/examples
在该目录下可看到如下文件
CMakeLists.txt ex10.cxx ex12cuf.cuf ex13.c ex15.c ex18.c ex2.c ex5big.c ex5f_cptr.f ex7.c ex.h vis.c
cudaf.f ex11.c ex12f_cptr.f ex14.c ex16.c ex18comp.c ex3.c ex5.c ex5f.f ex8.c Makefile
docs ex12.c ex12f.f ex15big.c ex17.c ex1.c ex4.c ex5cuf.cuf ex6.c ex9.c vis
在该目录下编译ex1.c文件并运行
mpicc ex1.c -lHYPRE -lm -o ex1
mpirun -np 2 ./ex1
程序结束后可得到如下结果
<C*b,b>: 1.800000e+01
Iters ||r||_C conv.rate ||r||_C/||b||_C
----- ------------ --------- ------------
1 2.509980e+00 0.591608 5.916080e-01
2 9.888265e-01 0.393958 2.330686e-01
3 4.572262e-01 0.462393 1.077693e-01
4 1.706474e-01 0.373223 4.022197e-02
5 7.473022e-02 0.437922 1.761408e-02
6 3.402624e-02 0.455321 8.020061e-03
7 1.214929e-02 0.357057 2.863616e-03
8 3.533113e-03 0.290808 8.327628e-04
9 1.343893e-03 0.380371 3.167586e-04
10 2.968745e-04 0.220906 6.997400e-05
11 5.329671e-05 0.179526 1.256215e-05
12 7.308483e-06 0.137128 1.722626e-06
13 7.411552e-07 0.101410 1.746920e-07
常见问题
Q1:执行示例测试时出现找不到命令的问题?

A1:需要先加载openmpi的环境变量 openmpi_5.0.6