首先简单总结一下经验:
在之前的测试和学习中,由于自己是虚拟机或者云服务器,有root权限,经常无脑增删文件(主要是为了图省事,看见报错就加回来,多出来就删除),但是在经过这次以用户的身份去访问服务器并且配置环境,让我学会了静下心来,按照readme和相关文件的要求一步一步去做,也认识到了拿着root权限胡作非为是一个很严重的错误。毕竟以后无论是继续使用学校服务器还是进入公司工作,都是只有用户权限,所以对于文件的各种操作有一个清晰的思路是相当重要的。
PS:如果是手动输入修改脚本文件的内容,一定要用英文输入法!!!
下面来讲述一下配置环境的操作(按照readme的顺序):
1.OpenCAEPoro安装
在命令行执行下述命令
git clone https://github.com/OpenCAEPlus/OpenCAEPoro_ASC2024
成功拉取后,参考readme中的命令解压所有压缩包(共六个,readme中少给了一个)
2.解压压缩包
使用下述命令解压压缩包(其他五个同理)
tar -xzf OpenCAEPoro.tar.gz
- **OpenCAEPoro:**
- **petsc_solver:** Custom solver built on top of PETSc.
- **petsc-3.19.3:** A suite for solving partial differential equations.
- **hypre-2.28.0:** Supplies high-performance preconditioners and solvers.
- **parmetis-4.0.3:** Offers parallel graph partitioning algorithms.
- **lapack-3.11:** Provides linear algebra routines.
3.安装Lapack
进入lapack-3.11目录下:
cd lapack-3.11
按照readme中命令编译lapack:
S2. make blaslib
S3. make cblaslib
S4. make lapacklib
S5. make lapackelib
这里一般不会出错,如果出错了,就检查一下输入的命令是否有问题
4.安装parmetis
进入parmetis-4.0.3目录下:
cd ../parmetis-4.0.3
根据readme中的要求,下面我们需要进行一步额外操作,就是指定所谓的ROOT_DIR的路径,并且为了方便后续使用,把命令直接放到~/.bashrc文件中
命令行执行以下命令,打开~/.bashrc文件
vim ~/.bashrc
指定ROOT_DIR的路径,在命令行执行下述命令没有意义(只能保证本次使用服务器),要把它放在~/.bashrc文件中
export ROOT_DIR=~/OpenCAEPoro_ASC2024
放入之后,保存并且退出就可以了
修改build-parmetis.sh文件
vim build-parmetis.sh
修改为上述这样,并保存退出
还没完,你如果在这里直接开始安装(执行sh命令),是会报错的,因为你没有激活intel oneapi 套件
所以,进行如下操作,激活套件,并把命令放置在~/.bashrc文件中:
source /opt/intel/oneapi/setvars.sh
然后需要激活 Intel oneAPI 2023 版本的编译器,在学长发的pdf中有说明
如果你用的是自己的服务器,那么可以下载激活套件再激活
执行下述命令来激活:
source /opt/intel/oneapi/compiler/2023.0.0/env/vars.sh
激活后可以检查一下 icc 是否可以用:
which icc
激活操作成后,把激活命令也放入~/.bashrc文件中,方便后续长期使用
然后再执行下述操作就可以了
sh build-parmetis.sh
5.安装Hypre
进入hypre-2.28.0目录
cd ../hypre-2.28.0
按照readme要求修改 build-hypre.sh 文件
然后执行安装脚本的命令就可以
sh build-hypre.sh
6.安装petsc
进入pets目录下:
cd ../petsc-3.19.3
按照readme要求,修改build-petsc脚本中的路径
这里是最容易出问题的一个part,所以,必须要和我提供的下述图片一模一样
相比readme上所给,它多了一条命令:
--with-fc=0 \
在Linux脚本文件中,–with-fc=0 \ 表示配置选项中关闭对Fortran编译器的支持。通常情况下,编译软件时会根据需要开启或关闭对不同编译器的支持,这里的–with-fc=0表示禁用Fortran编译器的支持
不加这个命令会报出Fortran Error
然后运行就不会出错了:
sh build-petsc.sh
7.安装petsc_solver
首先进入petsc_solver
cd ../petsc_solver
修改build-petscsolver.sh文件中的内容
vim build-petscsolver.sh
修改为下述这样
然后需要修改 CMakeList.txt 文件
修改的位置是绿色光标所在行,及绿色光标上一行
最后运行脚本就OK了
sh build-petscsolver.sh
8.编译OpenCAEPoro
进入到 OpenCAEPoro 目录:
cd ../OpenCAEPoro
修改脚本文件
vim mpi-build-petsc.sh
修改为下述这样
保存退出后,进行编译
sh mpi-build-petsc.sh
看到上述内容代表成功编译
9.测试安装
进入OpenCAEPoro主目录之后运行测试命令
mpirun -n p ./testOpenCAEPoro ./data/test/test.data
解释一下:
-n p 中 ”p“ 表示进程数
readme中进程数要求小于十
我使用五个进程进行测试
mpirun -n 5 ./testOpenCAEPoro ./data/test/test.data
结果如下(一个测试案例):
测试通过了,代表环境配置完成了