这里我们以最新的3.19.0为例。老版本或者以后要出的更新的版本都可以按这个步骤。
1. 在官网下载压缩包
不要解压直接传到超算中,这样速度比传文件夹快。在超算中使用tar -zxvf petsc-3.19.0.tar.gz命令解压。
2.传输所需库
按petsc编译的最基本配置也需要下载mpich和fblaslapack,mpich保证petsc能够并行,fblaslapack使petsc能够实现矩阵和向量计算。下面是我们通常编译使用的命令:
./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-mpich --download-fblaslapack
当然可以根据需要可以配置其他的库,这里是最简单的。有的超算是不联网的,大概是出于安全考虑,所以最后的两条命令download会报错,我们要做的就是找到打算安装的petsc版本对应需要的mpich版本和fblaslapack版本,下载压缩包之后把压缩包上传到超算中。这里mpich尽量不要使用超算里面的module,因为通常它的版本都很低,无法满足要求。在安装前如果module load mpich/x.x.x,还是先modale unload比较好,不然后面petsc在检查check的时候会默认使用这里的mpich,版本低的话会报错。
2.1 mpich
在petsc-3.19.0\petsc-3.19.0\config\BuildSystem\config\packages这个文件夹中,打开MPICH.py这个文件,可以看到所需mpich的版本(self.version=后面)和下载地址(self.download=后面)。
这里把'+self.version'改成版本号4.1.1就可以,引号全部去掉,这里链接就是https://github.com/pmodels/mpich/releases/download/v4.1.1/mpich-4.1.1.tar.gz
在浏览器打开就下载好了。把下载好的安装包直接传到超算中备用,然后记下压缩包的路径(pwd一下),等会要用到这个路径,我这里是
/public1/home/sch2579/rlchen/petsc_extern/mpich-4.1.1.tar.gz
2.2 fblaslapack
在petsc-3.19.0\petsc-3.19.0\config\BuildSystem\config\packages这个文件夹中,打开fblaslapack.py这个文件,可以看到所需的版本(self.gitcommit =后面)和下载地址(self.download=后面)。
和上面类似,用.tar.gz结尾的那个链接
https://bitbucket.org/petsc/pkg-fblaslapack/get/v3.4.2-p3.tar.gz
就下载到安装包了,传到超算中记下压缩包的路径。我这里是(我对压缩包重命名了一下)
/public1/home/sch2579/rlchen/petsc_extern/petsc-pkg-fblaslapck.tar.gz
3. 不联网编译petsc
换到petsc-3.19.0文件夹,下面语句编译
./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack=/public1/home/sch2579/rlchen/petsc_extern/petsc-pkg-fblaslapck.tar.gz --download-mpich=/public1/home/sch2579/rlchen/petsc_extern/mpich-4.1.1.tar.gz
这里最后两条语句--download-fblaslapack=和--download-mpich=后面是跟的压缩包路径,意思是编译的时候到我所指示的这里下载压缩包就可以了不需要联网了。
编译之后根据提示
make PETSC_DIR=/public1/home/sch2579/rlchen/petsc-3.19.0 PETSC_ARCH=arch-linux-c-debug all
make PETSC_DIR=/public1/home/sch2579/rlchen/petsc-3.19.0 PETSC_ARCH=arch-linux-c-debug check
就可以了。
4. 配置环境变量
由于超算这种每次登录都要export一下,所以我们直接写到~/.bashrc里面。~/.bashrc是Bash shell的配置文件之一,它是在每次打开终端时自动读取的。该文件通常包含用户定义的别名、环境变量和其他个性化配置。
使用vi ~/.bashrc打开。然后在里面添加这三条语句(XXX是前面的文件夹路经)
export PATH=XXX/petsc-3.19.0/arch-linux-c-debug/bin:$PATH
export PETSC_DIR=XXX/petsc-3.19.0
export PETSC_ARCH=arch-linux-c-debug
配置完之后类似下图,因为我后面还是用的petsc-3.18.4,所以图里是petsc-3.18.4。
然后保存退出,source ~/.bashrc命令更新一下就可以了。可以试一下petsc自带的例子。