目录
1.将赛题克隆至家目录之后对压缩包进行解压缩后即可按照readme中给出的步骤在对应的目录下进行配置。
2.尝试跑多机(这步在尝试时实际在后面,后来想了一下其实一开始先跑多机时间降得会更快)
一·背景介绍
1.OpenCAEPoro是一种数值模拟器,专为多孔介质中的多相和多组分流而设计,特别强调石油储层问题。它使用 C++ 构建,并结合了 MPI 并行性以增强其性能和可扩展性。其过程主要涉及利用高性能计算研究流体动力学相关的问题和多物理场的模拟。
2.PETSC是一个专门为大规模科学计算提供的高效数值求解工具的开源软件库,主要是处理线性和非线性方程组,以及求解偏微分方程。
二编译及安装
1.将赛题克隆至家目录之后对压缩包进行解压缩后即可按照readme中给出的步骤在对应的目录下进行配置。
克隆:
git clone https://github.com/OpenCAEPlus/OpenCAEPoro_ASC2024
2.过程中遇到的报错以及解决
(1)build parmetis:
build parmetis:
S1. cd parmetis-4.0.3
S2. modify the path in script "build-parmetis.sh", such as "make config
cc=mpiicc prefix=ROOT_DIR/parmetis-4.0.3/parmetis-install"
S3. sh build-parmetis.sh
ROOT_DIR is the root directory of the repository, which is set by the user
according to their own directory (similarly hereinafter).
在这一步骤当中,按照要求修改改了文件的内容之后运行sh build-parmetis.sh遇到了如下报错
查了之后发现这个报错的意思是找不到mpicc
which mpicc
发现该命令没有得到返回值,我一开始以为要自己安装,但是发现没有root权限(笑,后来得知其实已经安装好了只需要直接设置环境变量
对该修改进行更新后再次编译就能顺利通过了。
(2)build petsc
build petsc
S1. cd petsc-3.19.3
S2. modify the path in script "build-petsc.sh", such as
export PETSC_DIR=ROOT_DIR/petsc-3.19.3
export PETSC_ARCH=petsc_install
./configure CC=mpiicc CXX=mpiicpc \
--with-fortran-bindings=0 \
--with-hypre-dir=ROOT_DIR/hypre-2.28.0/install \
--with-debugging=0 \
COPTFLAGS="-O3" \
CXXOPTFLAGS="-O3" \
make -j 20 PETSC_DIR=ROOT_DIR/petsc-3.19.3 PETSC_ARCH=petsc_install all
S3. sh build-petsc.sh
这一步遇到的报错挺麻烦的
最主要的是一开始没明白在报什么错,最明显的一行就是在说什么fortran error,在modify的时候额外添加一个参数--with-fc=0 即可 ,该参数表示对fortran编译器进行禁用(不启用调用模式),这样一来就不会尝试去链接它进而就不会出现could not be located.对于前三行内容前面我们已经修改过对应的环境变量那么前三行就可以直接注释掉使其不生效