功能:可移植linux删除文件夹,扩充的科学估算数据包,用于小型矩阵多项式组的求解
安装参考官网手册
安装说明安装简介
petsc安装依赖于mpi和lapack,不指定这两个库会安装失败,可以通过事先安装直接指定目录,也可以选择安装时下载。为了并行时统一环境linux configure安装,Mpi建议直接指定早已安装的库(可以配置环境变量,或则通过关键词指定mpi目录),lapack建议直接安装时下载。
安装时可以设置是否为debug模式,为提升效率,我们安装时须要设置不debug
安装时,可以同时安装一些额外的库,我们求解器须要一些额外的库,包括superlu_distmumpshypreparmetismetisfblas-lapackscalapack
安装时使用configure命令进行配置
Configure介绍:configure是一个安装配置工具,petsc中早已预先使用configure设置过了安装的可选项目,安装时只须要对关键词进行指定,就可以手动安装。另外,configure须要使用python2或则python3来运行。
Configure命令指定关键词格式为–-关键词=参数,不同的关键词以空格分开
安装时须要指定编译器、安装目录、是否debug(默认可debug)、mpi和lapack目录、其他额外下载的目录
下边介绍须要指定的关键词
指定编译器:
编译器须要指定c语言c++语言和fortran的编译器linux configure安装,但程序会在环境变量中手动找寻,因而不用单独指定(其实也可以单独指定)。手动找寻则根据以下次序,通常mpi目录早已加入了环境变量,程序直接能找到mpicc,mpicxx以及mpif90三个编译器(可以直接在终端敲入这几个编译器,瞧瞧有没有输出,证明环境变量中有没有加入这几个编译器)
默认编译器的选择次序
指定安装目录:
--prefix=/home/myname/petsc
指定是否debug:
指定不debug:--with-debugging=0
指定编译器优化运行效率:
COPTFLAGS=”-O3-march=native-mtune=native”
CXXOPTFLAGS=”-O3-march=native-mtune=native”
FOPTFLAGS=”-O3-march=native-mtune=native”
指定mpi和lapack目录:
两个目录可以直接指定
--with-mpi-dir=/home/myname/OMP315
--with-blaslapack-dir=/usr/local/blaslapack
但若果目录早已加入环境变量,就不用再指定目录了
我们的mpi直接在环境变量中配置linux公社,lapack则选择安装时下载。
Mpi和lapack都在环境变量中的安装方法
其他额外下载的目录:
Lapack没指定环境目录,因而这儿首先要包括lapack,考虑到我们须要用到hyper等其他算法,须要安装其他的内置库,这儿直接指定下载就行了(有时侯下载不了,程序会让你自己下载,之后指定下载后的安装包目录)
--download-superlu_dist
--download-mumps
--download-hypre
--download-parmetis
--download-metis
--download-fblaslapack
--download-fblas-lapack=1
--download-scalapack
具体安装步骤:
我们进行了三次安装,以下安装步骤适用于类似的系统和环境,个别环境下会报错,文章最后有报错汇总
centos7(环境:gcc5.8.0,gcc5.8.0编译的mpi3.1.5,安装petsc3.5.4)
centos8(环境:gcc8.5.0,gcc8.5.0编译的mpi3.1.5,安装petsc3.7.0)
KOS5.x86_64(环境:gcc8.5.0,gcc8.5.0编译的mpi3.1.5,安装petsc3.7.0)
安装须要cmake版本>2.5,否则难以编译metis
1、下载petsc-3.5.4.tar.gz到任意目录下
2、打开终端进行解压:
tar -xzvf petsc-3.5.4.tar.gz
3、进入安装包目录
cd petsc-3.5.4
4、配置安装目录,以/home/myname/petsc安装目录为例:
python2 ./configure --prefix=/home/myname/petsc --with-debugging=0 COPTFLAGS="-O3 -march=native -mtune=native" CXXOPTFLAGS="-O3 -march=native -mtune=native" FOPTFLAGS="-O3 -march=native -mtune=native" --with-mpi-dir=/home/myname/OMP315 --download-superlu_dist --download-mumps --download-hypre --download-parmetis --download-metis --download-fblaslapack --download-fblas-lapack=1 --download-scalapack
5、编译:(直接复制提示的内容)
configure成功后提示
make PETSC_DIR=/home/myname/petsc-3.5.4 PETSC_ARCH=arch-linux2-c-opt all;
6、安装:(直接复制提示的内容)
编译成功后提示
make PETSC_DIR=/home/myname/petsc-3.5.4 PETSC_ARCH=arch-linux2-c-opt install
7、配置环境变量:
打开配置文件
gedit ~/.bashrc
加入以下环境变量
export PETSC_DIR=/home/myname/petsc
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH
常见报错:(1)petsc3.5.4进行configure崩溃
CONFIGURATIONCRASH(Pleasesendconfigure.logto)
低版本的petsc比如3.5.4,未能在高版本的gcc比如8.3.0或11.2.0下编译,但可以在5.8.0或4.8.0下编译
(2)petsc3.7.0进行configure崩溃
UNABLEtoCONFIGUREwithGIVENOPTIONS(seeconfigure.logfordetails):
CouldnotlocateafunctionalCcompiler
当gcc版本和编译mip的gcc版本不一致时,比如我们这儿用gcc版本为9.3.0,mpi版本为4.1.1.编译mpi的gcc版本为8.5.0,出现上图报错
(3)petsc进行configure时编译FBLASLAPACK过程中崩溃
这个是哪些缘由我们也不晓得,但根据它的提示添加--with-shared-libraries=0就可以编译通过,但若果mpi版本不是3.1.5,就仍然会编译失败
(4)卡在TESTING:configureMPITypesfromconfig.packages.MPI(config/BuildSystem/config/packages/MPI.py:249)
我们的gcc版本为8.5.0,mpi版本为3.1.5,使用gcc8.5.0编译
这个问题跟MPI环境有关,参考超算中使用module命令加入的mpi,其中有一个环境变量加上可以解决这个问题。
export OMPI_MCA_btl=self,vader