安装的版本的是petsc3.18.4,其他版本有可能需要更高的配套版本,可以自己尝试。以下XXX均表示你自己的文件夹路径。
1. 相关module下载
使用module avail命令查看Python和cmake版本,选择合适版本,这两个不建议自己下,尽量用module里面的:
module load Python/3.6.10
module load cmake/3.20.2-gcc-7.5.0
然后通过version确认一下没有问题:
2. 基础包fblaslapack下载(不加这个包后续跑不了任何代码)
在petsc-3.18.4\petsc-3.18.4\config\BuildSystem\config\packages这个文件夹中,打开fblaslapack.py这个文件,可以看到所需的版本(self.gitcommit =后面)和下载地址(self.download=后面)。按照网址下载.tar.gz的压缩包之后上传到天河上就行,对压缩包可以重命名一下,改为fblaslapack.tar.gz。
3. petsc编译
下载petsc压缩包并上传解压,然后进入petsc3.18.4文件夹内编译,使用如下命令即可:
./configure --configModules=PETSc.Configure --optionsModule=config.compilerOptions --download-fblaslapack=XXX/fblaslapack.tar.gz
这里--download-fblaslapack=后面跟的是压缩包的路径,可以用pwd查看后复制粘贴过去。
4. 确认编译可用(提交作业并运行)
根据提示make XXX all, 再make XXX check就可以了,在make XXX check的时候会报一些错误,是没有关系的。我们进入petsc-3.18.4/src/snes/tutorials文件夹中,使用以下
make ex19
vim ex19.sh
打开ex19.sh后输入以下命令,以下是我的参考,-N后面跟的是使用节点数,-n跟的是使用核数,-p跟的是分区,分区后面跟的是要运行的代码,>./后面是将程序的输出日志重定向到ex19.out文件中。
#!/bin/bash
yhrun -N 1 -n 3 -p work XXX/petsc-3.18.4/src/snes/tutorials/ex19 >./ex19.out
保存后 在命令行输入提交命令
yhbatch -N 1 -n 3 -p work ./ex19.sh
作业完成后vim ex19.out看到
表示一切都ok啦~
5. 后续工作
在~/.bashrc中把petsc的路径和环境配好,把下载的module命令放进去就ok了,每次登录就会自动下载了。
export PATH=XXX/petsc-3.18.4/arch-linux-c-debug/bin:$PATH
export PETSC_DIR=XXX/petsc-3.18.4
export PETSC_ARCH=arch-linux-c-debug
module load Python/3.6.10
module load cmake/3.20.2-gcc-7.5.0