PETSc 踩坑记录
本机环境 WSL2 Ubuntu 22.04。
安装 PETSc 前最好先安装 OpenBLAS 或者 Intel MKL。AMD CPU 听说用 OpenBLAS 更好。
到 https://gitlab.com/petsc/petsc.git 上下载最新的库并解压到 /usr/lib/petsc
文件夹下,运行以下命令:
export PETSC_DIR=/usr/lib/petsc
export PETSC_ARCH=arch-linux-c-debug
./configure --download-mpich COPTFLAGS='-O3 -march=native -mtune=native' CXXOPTFLAGS='-O3 -march=native -mtune=native' FOPTFLAGS='-O3 -march=native -mtune=native'
make PETSC_DIR=/usr/lib/petsc PETSC_ARCH=arch-linux-c-debug all
make PETSC_DIR=/usr/lib/petsc PETSC_ARCH=arch-linux-c-debug check
export PETSC_ARCH=arch-linux-c-opt
./configure --download-mpich COPTFLAGS='-O3 -march=native -mtune=native' CXXOPTFLAGS='-O3 -march=native -mtune=native' FOPTFLAGS='-O3 -march=native -mtune=native' --with-debugging=0
make PETSC_DIR=/usr/lib/petsc PETSC_ARCH=arch-linux-c-opt all
make PETSC_DIR=/usr/lib/petsc PETSC_ARCH=arch-linux-c-opt check
可生成 debug 与 opt 两种版本,debug 版本可输出更多报错信息,opt 版本效率更高。
复制 https://petsc.org/release/src/ksp/ksp/tutorials/ex1.c.html 中的代码,保存为 example.cpp
,命令行中输入
/usr/lib/petsc/arch-linux-c-opt/bin/mpicxx example.cpp -o example -I "/usr/lib/petsc/include" -lpetsc
编译,再输入 /usr/lib/petsc/arch-linux-c-opt/bin/mpiexec -n 1 ./sample
运行即可。