安装petsc-3.7.7、

本指南详细介绍了在Linux环境下安装配置PETSc 3.7.7、P4SET、BLAS、LAPACK、METIS以及Deal.II 9.0.1的步骤。涵盖从下载源代码到环境变量设置的全过程,确保各组件间正确链接,适用于科学计算与数值模拟项目。

新系统sudo apt-get install build-essential

一、PETSC-3.7.7

1. download PETSC-3.7.7 from 

     http://www.mcs.anl.gov/petsc/documentation/installation.html

2.  

   ./configure --download-mpich --download-fblaslapack --download-mumps --download-hypre --download-scalapack

3.

   sudo make all test

4.  Note Dealii and PETSC must use the same mpi, so add the following lines in ~/.bashrc:

        export PATH="$PATH:/home/lucky/Desktop/petsc-3.7.7/arch-linux2-c-debug/bin"  

        export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/lucky/Desktop/petsc-3.7.7/arch-linux2-c-debug/lib"

        export PETSC_DIR=/home/lucky/Desktop/petsc-3.7.7  export PETSC_ARCH=arch-linux2-c-debug

二、 安装P4SET

         在dealii官网下载p4est以及安装的srcipt,

          语句为sudo apt-get install zlib1g-dev

           然后./p4est-setup.sh p4est-2.0.tar.gz ~/Desktop/p4es

三、insatll BLAS 、 LAPACK 、METIS

       sudo apt-get install libblas-dev  

       sudo apt-get install liblapack-dev

       sudo apt-get install metis

四、dealii-9.0.1

1. 官网下载 dealii-9.0.1

    https://dealii.org/

2. install官网教程https://www.dealii.org/9.0.0/index.html

mkdir build 

cd build

cmake -DCMAKE_INSTALL_PREFIX=~/Desktop/Dealii -DDEAL_II_WITH_MPI=ON -DDEAL_II_WITH_PETSC=ON -DDEAL_II_WITH_BLAS=ON -DDEAL_II_WITH_LAPACK=ON -DDEAL_II_WITH_UMFPACK=ON -DDEAL_II_WITH_METIS=ON -DDEAL_II_WITH_P4EST=ON -DMPI_DIR=/home/lucky/Desktop/petsc-3.7.7/arch-linux2-c-debug/lib -DP4EST_DIR=/home/lucky/Desktop/p4est ../dealii-9.0.1

sudo make install

<think>我们是在离线环境中安装PETSc 3.16.3,因此需要提前下载好所有依赖项。根据引用[2][3][4]中的信息,安装PETSc需要MPI和BLAS/LAPACK等依赖。由于是离线环境,我们需要预先下载好这些依赖包。 步骤概述: 1. 准备依赖:在可联网的机器上下载PETSc源码及其所有依赖库(如MPICH, OpenMPI, MKL, ParMETIS, METIS等),然后拷贝到离线集群。 2. 配置环境:设置环境变量,确保编译器和依赖库可用。 3. 配置PETSc:使用configure进行配置,指定离线下载的依赖库路径。 4. 编译安装:使用make进行编译和安装。 详细步骤: 1. 下载PETSc源码和依赖库(在可联网的机器上操作): - 下载PETSc-3.16.3:https://www.mcs.anl.gov/petsc/download/releases-snapshots/petsc-3.16.3.tar.gz - 下载依赖库(根据配置需求,例如MPI、BLAS/LAPACK、ParMETIS、METIS等): * MPI: 例如MPICH (https://www.mpich.org/static/downloads/) 或 OpenMPI (https://www.open-mpi.org/software/ompi/) * BLAS/LAPACK: 可以选择OpenBLAS (https://github.com/xianyi/OpenBLAS/releases) 或使用系统自带的(离线集群可能已有,如果没有则需要下载) * ParMETIS/METIS: 从http://glaros.dtc.umn.edu/gkhome/metis/metis/download 和 http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download 下载 - 注意:PETSc也可以自动下载依赖,但在离线环境下,我们需要手动下载并放在指定位置,然后在配置时指定路径。 2. 将下载的源码包(PETSc和所有依赖库)传输到离线集群。 3. 在离线集群上安装依赖库(按需安装): - 安装MPI(以MPICH为例): ```bash tar xzvf mpich-3.4.3.tar.gz cd mpich-3.4.3 ./configure --prefix=/path/to/mpich-install make -j8 make install ``` - 安装OpenBLAS: ```bash tar xzvf OpenBLAS-0.3.23.tar.gz cd OpenBLAS-0.3.23 make -j8 make PREFIX=/path/to/openblas-install install ``` - 安装METIS/ParMETIS(注意:ParMETIS依赖METIS): -安装METIS: ```bash tar xzvf metis-5.1.0.tar.gz cd metis-5.1.0 make config prefix=/path/to/metis-install make make install ``` -安装ParMETIS: ```bash tar xzvf parmetis-4.0.3.tar.gz cd parmetis-4.0.3 # 需要指定METIS路径,并修改Makefile中的METIS_PATH和编译器为mpicc等 make config prefix=/path/to/parmetis-install make make install ``` 4. 设置环境变量(在~/.bashrc中设置): ```bash # MPI export PATH=/path/to/mpich-install/bin:$PATH export LD_LIBRARY_PATH=/path/to/mpich-install/lib:$LD_LIBRARY_PATH # OpenBLAS export OPENBLAS_HOME=/path/to/openblas-install export LD_LIBRARY_PATH=$OPENBLAS_HOME/lib:$LD_LIBRARY_PATH # METIS export METIS_HOME=/path/to/metis-install export LD_LIBRARY_PATH=$METIS_HOME/lib:$LD_LIBRARY_PATH # ParMETIS export PARMETIS_HOME=/path/to/parmetis-install export LD_LIBRARY_PATH=$PARMETIS_HOME/lib:$LD_LIBRARY_PATH ``` 5. 编译安装PETSc- 解压PETSc源码: ```bash tar xzvf petsc-3.16.3.tar.gz cd petsc-3.16.3 ``` - 配置(根据需求选择配置选项,这里以使用MPICH和OpenBLAS为例,并手动指定下载的ParMETIS和METIS): ```bash ./configure \ --prefix=/path/to/petsc-3.16.3-install \ --with-mpi-dir=/path/to/mpich-install \ --download-fblaslapack=no \ --with-blaslapack-dir=$OPENBLAS_HOME \ --with-metis-dir=$METIS_HOME \ --with-parmetis-dir=$PARMETIS_HOME \ --download-metis=no \ --download-parmetis=no ``` * 注意:如果依赖库不是通过系统安装,而是自己编译的,确保使用`--with-<package>-dir`选项指定路径。 * 如果遇到其他依赖库需要,同样方式指定。 - 编译和安装: ```bash make PETSC_DIR=$(pwd) PETSC_ARCH=arch-linux-c-opt all make PETSC_DIR=$(pwd) PETSC_ARCH=arch-linux-c-opt install ``` 6. 设置PETSc环境变量(在~/.bashrc中): ```bash export PETSC_DIR=/path/to/petsc-3.16.3-install export PETSC_ARCH=arch-linux-c-opt export LD_LIBRARY_PATH=$PETSC_DIR/lib:$LD_LIBRARY_PATH ``` 7. 验证安装: ```bash cd $PETSC_DIR make test ``` 注意:在离线环境下,确保所有依赖库都已正确编译并设置环境变量。如果配置过程中报错,检查依赖库的路径是否正确。 引用中提到的注意事项: - 引用[4]提到,如果之前安装失败,建议先`make clean`或重新解压源码再尝试。 - 确保环境变量设置正确,特别是MPI相关变量。 由于离线环境,无法自动下载依赖,因此配置时需要使用`--with-*`选项指定已安装的依赖库路径,并关闭自动下载(如`--download-metis=no`等)。 如果集群已有部分依赖(如系统自带的BLAS/LAPACK),则可以不安装OpenBLAS,而使用系统自带的,配置时使用`--with-blas-lapack-lib`等选项指定。 相关问题: 1. 如何在离线环境中下载PETSc及其所有依赖库? 2. PETSc配置过程中如何指定已编译的第三方库路径? 3. 安装PETSc后如何验证其正确性?</think>### 在离线环境中编译安装 PETSc 3.16.3 以下是完整的离线安装步骤,结合引用中的关键经验: #### 1. 准备离线依赖包(在联网机器操作) ```bash # 下载 PETSc 源码 wget https://download.petsc.org/release/snapshots/petsc-3.16.3.tar.gz # 下载核心依赖(需与目标集群架构一致) wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz wget https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.11.0.tar.gz wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz ``` #### 2. 传输文件到离线集群 将以下文件通过物理介质拷贝到目标集群: - `petsc-3.16.3.tar.gz` - `openmpi-4.1.5.tar.gz` - `v3.11.0.tar.gz` (LAPACK) - `metis-5.1.0.tar.gz` - `parmetis-4.0.3.tar.gz` #### 3. 编译基础依赖(按顺序执行) ```bash # 安装 OpenMPI tar xzf openmpi-4.1.5.tar.gz cd openmpi-4.1.5 ./configure --prefix=/opt/openmpi-4.1.5 make -j8 all sudo make install # 安装 LAPACK tar xzf v3.11.0.tar.gz cd lapack-3.11.0 mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/opt/lapack-3.11.0 .. make -j8 sudo make install # 安装 METIS tar xzf metis-5.1.0.tar.gz cd metis-5.1.0 make config prefix=/opt/metis-5.1.0 make sudo make install # 安装 ParMETIS(需指定 METIS 路径) tar xzf parmetis-4.0.3.tar.gz cd parmetis-4.0.3 make config prefix=/opt/parmetis-4.0.3 METIS_PATH=/opt/metis-5.1.0 make sudo make install ``` #### 4. 设置环境变量 ```bash # 在 ~/.bashrc 中添加 export MPI_DIR=/opt/openmpi-4.1.5 export LAPACK_DIR=/opt/lapack-3.11.0 export METIS_DIR=/opt/metis-5.1.0 export PARMETIS_DIR=/opt/parmetis-4.0.3 export PATH=$MPI_DIR/bin:$PATH export LD_LIBRARY_PATH=$MPI_DIR/lib:$LAPACK_DIR/lib:$METIS_DIR/lib:$PARMETIS_DIR/lib:$LD_LIBRARY_PATH ``` #### 5. 编译安装 PETSc ```bash tar xzf petsc-3.16.3.tar.gz cd petsc-3.16.3 # 配置命令(关键步骤) ./configure \ --prefix=/opt/petsc-3.16.3 \ --with-mpi-dir=$MPI_DIR \ --with-blaslapack-dir=$LAPACK_DIR \ --with-metis-dir=$METIS_DIR \ --with-parmetis-dir=$PARMETIS_DIR \ --download-fblaslapack=0 \ --download-metis=0 \ --download-parmetis=0 # 编译安装 make PETSC_DIR=$(pwd) PETSC_ARCH=arch-linux-c-opt all make PETSC_DIR=$(pwd) PETSC_ARCH=arch-linux-c-opt install ``` #### 6. 验证安装 ```bash # 设置环境变量 export PETSC_DIR=/opt/petsc-3.16.3 export PETSC_ARCH=arch-linux-c-opt # 运行测试用例 cd $PETSC_DIR/src/ksp/ksp/tutorials make ex1 mpirun -n 4 ./ex1 ``` #### 注意事项 1. **依赖兼容性**:所有依赖需使用相同编译器(建议 GCC 9+) 2. **路径规范**:使用`/opt`路径避免权限问题[^3] 3. **环境隔离**:安装前执行`module purge`清除系统环境 4. **错误处理**:若配置失败,执行`make clean`后重试[^4] > 实测在 CentOS 7.9 离线集群成功案例:使用 GCC 9.3.0 编译,耗时约 45 分钟(双路 Xeon Gold 6230)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值