功能:可移植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三个编译器(可以直接在终端敲入这几个编译器,瞧瞧有没有输出,证明环境变量中有没有加入这几个编译器)

默认编译器的选择次序

指定安装目录:

安装微信_安装configure_linux configure安装

--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则选择安装时下载。

4c8cf50e0d8b44ca9865415efaeb466c.png

安装微信_安装configure_linux configure安装

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)

安装configure_安装微信_linux configure安装

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、编译:(直接复制提示的内容)

8e62fcfe3f0647da88de1bb53a8dbfa0.png

configure成功后提示

make PETSC_DIR=/home/myname/petsc-3.5.4 PETSC_ARCH=arch-linux2-c-opt all;

6、安装:(直接复制提示的内容)

0107529a7ef84fafa67cb4f8ab85de40.png

编译成功后提示

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)

86563fa3d0094d78b92e0a314abb8103.png

低版本的petsc比如3.5.4,未能在高版本的gcc比如8.3.0或11.2.0下编译,但可以在5.8.0或4.8.0下编译

安装configure_安装微信_linux configure安装

(2)petsc3.7.0进行configure崩溃

UNABLEtoCONFIGUREwithGIVENOPTIONS(seeconfigure.logfordetails):

CouldnotlocateafunctionalCcompiler

7a480e67b06e4c28b9de5bd0a491d586.png

当gcc版本和编译mip的gcc版本不一致时,比如我们这儿用gcc版本为9.3.0,mpi版本为4.1.1.编译mpi的gcc版本为8.5.0,出现上图报错

(3)petsc进行configure时编译FBLASLAPACK过程中崩溃

a0c60bdbda5241689e01eaa0ec41191c.png

这个是哪些缘由我们也不晓得,但根据它的提示添加--with-shared-libraries=0就可以编译通过,但若果mpi版本不是3.1.5,就仍然会编译失败

(4)卡在TESTING:configureMPITypesfromconfig.packages.MPI(config/BuildSystem/config/packages/MPI.py:249)

a5220ce1052346f58382073241949250.png

我们的gcc版本为8.5.0,mpi版本为3.1.5,使用gcc8.5.0编译

这个问题跟MPI环境有关,参考超算中使用module命令加入的mpi,其中有一个环境变量加上可以解决这个问题。

export OMPI_MCA_btl=self,vader

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复