当前位置: 首页 > article >正文

OpenCAEPoro安装与测试(ASC 2024)

首先简单总结一下经验:

在之前的测试和学习中,由于自己是虚拟机或者云服务器,有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

结果如下(一个测试案例):

在这里插入图片描述

测试通过了,代表环境配置完成了


http://www.kler.cn/news/331870.html

相关文章:

  • Flink基本概念和算子使用
  • 【刷点笔试面试题试试水】#ifndef和#ifdef有什么区别?
  • 低代码革命:重塑工业互联网的未来版图
  • CSS 的color-adjust 属性,是给打印机节省墨水的属性
  • 开发能够抵御ICS对抗性攻击的边缘弹性机器学习集成
  • sbb-classes 元素
  • 【重学 MySQL】五十六、位类型
  • Leetcode: 0081-0090题速览
  • 信息学奥赛一本通 1416:【17NOIP普及组】棋盘 | 洛谷 P3956 [NOIP2017 普及组] 棋盘
  • 从认识String类,到走进String类的世界
  • fNIRS光极排布——基于fNIRS Optodes’ Location Decider (fOLD)工具包
  • 用户登录与信息管理:实现小程序登录与用户信息存储
  • 民峰:助力投资者实现财务自由
  • 大语言模型入门(三)——提示词编写注意事项
  • 查缺补漏----I/O中断处理过程
  • 什么是大语言模型的上下文窗口
  • 记一次vue-cli老项目的打包时长优化
  • 操作系统的组成及层次模型
  • C(九)while循环 --- 军训匕首操情景
  • c++ arrayfire库 矩阵分块