ofeli整合petsc mpi安装

mpi安装

dowload

./configure --prefix=/opt/mpich

make

make install

sudo ln -s /opt/mpich/include /usr/local/include/mpi

 

petsc 安装:

./configure --with-mpi-dir=/opt/mpich 

make 

make install DESTDIR=/opt/petsc (安装往后路径为/opt/petsc/home/ofeli/petsc)

sudo ln -s /opt/petsc/home/petsc/include /usr/local/include/petsc

 

ofeli安装:

export CC=mpicc

export CXX=mpicxx

export PETSC_LIBS=/opt/petsc/home/petsc/lib/libpetsc.so

export MPI_LIBS=/opt/mpich/lib/libmpi.so

 

 

./configure --with-petsc --prefix=/usr/local(这里指include/petsc去哪里找,/usr/local/include/petsc里找,这里为软链接,指向 /opt/petsc/home/petsc/include)

 

make

 

 

------------------------

遇到问题:

1)运行时找不到libpetsc_real.so ,可以安装libpet3.7.7(包含libopenmpi,dmumps,..)

2)运行时MPI_abort,可能是编译时用的mpich的mpicc(/opt/mpich中),而运行时调用的时libopenmpi的库

 

3)先统一编译petsc采用mpich和相关编辑器:

./configure --download-fblaslapack --with-mpi-dir=/opt/mpich --download-hdf5=yes

  (有mpi的dir就不需要--with-cc=mpicc --with-cxx=mpicxx  --with-fc=mpif90)

 

或者

./configure --with-cc=mpicc --with-cxx=mpicxx  --with-fc=mpif90 --download-fblaslapack --download-mpich --download-hdf5=yes

或者

./configure --with-cc=mpicc --with-cxx=mpicxx  --with-fc=mpif90 --download-fblaslapack --download-mpich=/home/ofeli/mpich-3.0.4.tar.gz --download-hdf5=yes

 

4)为了统一,可以考虑同意用一个petsc的编译结果,可以从petsc-docker中提取,安装统一放到/opt/installpetsc

然后建立连接:

  ln -s /opt/installpetsc/include /usr/lcoal/include/petsc

  ln -s /opt/installpetsc/include /usr/lcoal/include/mpi

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/installpetsc/lib

export PETSC_LIBS=/opt/installpetsc/lib/libpetsc.so

export MPI_LIBS=/opt/installpetsc/lib/libmpi.so

export CC=mpicc

export CXX=mpicxx

./configure --with-petsc

 

 

 

 

 

你可能感兴趣的:(数值分析&FEM)