OpenCAEPoro安装与测试(ASC 2024)

news2024/11/24 6:30:32

首先简单总结一下经验:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

D 咖饮品机闪耀荆州动漫嘉年华

在今年的国庆佳节,恰逢金秋时节,荆州动漫嘉年华盛大开幕,这场充满活力与创意的盛会吸引了无数动漫爱好者的目光。而在众多精彩的展示中,D 咖饮品机的出现无疑为这场嘉年华增添了一抹别样的色彩。 走进嘉年华现场,热闹的…

ubuntu18.04运行OpenPCDet出现的问题

一、概述 在编译成功OpenPCDet的源代码之后,发现在运行demo时候,依旧出现了很多问题,在此对出现的问题进行总结记录。 二、问题分析 (一)ModuleNotFoundError:No module named av2 如图所示 这个问题比较简单&#x…

(C语言贪吃蛇)14.用绝对值方式解决不合理的走位

目录 前言 解决方式 运行效果 总结 前言 我们上节实现了贪吃蛇四方向走位,但是出现了一些不合理的走位,比如说身体节点和头节点重合等等,本节我们便来解决这个问题。 我们希望贪吃蛇撞到自身时游戏会重新开始,并且贪吃蛇的运动方…

TryHackMe 第6天 | Web Fundamentals (一)

这一部分我们要简要介绍以下 Web Hacking 的基本内容,预计分三次博客。 在访问 Web 应用时,浏览器提供了若干个工具来帮助我们发现一些潜在问题和有用的信息。 比如可以查看网站源代码。查看源代码可以 右键 网页,然后选择 查看网站源代码&…

Discord 用户突破2亿:CEO 谈发展规划、产品策略及游戏通信的未来

Discord,这个最初为游戏玩家打造的社区平台,如今已经发展成为一个拥有超过2亿月活跃用户的全球性社交网络。创始人兼CEO Jason Citron在经历了多次创业尝试后,最终将Discord打造成了一个不可或缺的游戏通信工具。以下是Jason Citron在接受GamesBeat采访时,对Discord的现状、…

招联金融2025校招内推

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

MAE(平均绝对误差)和std(标准差)计算中需要注意的问题

一、MAE(平均绝对误差) 计算公式: yi​ 是第i个实际值y^​i​ 是第i个预测值 计算方法: MAE就是求实际值与预测值之间的误差,需要给出预测值和原始的实际值 二、std(标准差) 计算公式&#x…

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习06(Docker网络连接)

如果要搭建基于docker的私人DC,除了虚拟机网络连接外,就得掌握docker的网络连接。磨刀不误砍柴工,或者说工欲善其事必先利其器,我们先学学典型的docker的网络连接方式。Docker的网络连接有四种:bridge、none、containe…

MySQL【知识改变命运】01

库的基本操作语法 1:SQL的简介2:SQL的基本分类3:库的基本操作1:查看库2:创建数据库1:创建一个diayang库2: ⾃定义⼀个数据库名,如果数据库不存则创建,3:查看警告信息4:字符集编码和校验(排序)规…

从零开始讲PCIe(4)——PCI总线的地址空间分配

一、概述 PCI架构支持三种地址空间,如图1-10所示:内存地址空间(Memory Map)、I/O地址空间(I/O Map)和配置地址空间(PCI Configure Space)。在x86处理器中,处理器可以直接访问内存和I/O空间。PCI…

PHP代码审计方法与套路

PHP代码审计方法与套路 01,审计前的准备(1)获取源码(2)安装网站 02,把握大局(1)网站结构(2)入口文件(3)配置文件(4&#x…

Elasticsearch学习记录

阅读前须知 本文通过安装elasticsearch-7.17.0为基础,使用 kibana-7.17.0 对 elasticsearch 进行操作,本文中 es 是对 elasticsearch 的简写。 下载地址:elasticsearch_免费高速下载|百度网盘-分享无限制 (baidu.com) 1 初识Elasticsearch …

vue3 + ts + cesium:绘制、更新圆 ellipse

本文主要实现基础的绘制圆形,并且可以通过拖动圆心更新圆的位置,拖动圆上的边缘点改变圆的半径。 实现效果: (1)单击鼠标左键开始绘制,确定圆的圆心,移动鼠标,改变圆的半径&#xff…

CodeFormer模型构建指南

一、介绍 在 NeurIPS 2022 上,南洋理工大学-商汤科技联合研究中心 S-Lab 提出了一种基于 VQGANTransformer的人脸复原模型 CodeFormer。基于CodeFormer模型实现面部复原、增强旧照片/修复AI艺术、面部颜色增强和修复、面部修复四个功能。 二、特点 CodeFormer 是…

常用组件详解(九):学习率更新策略

文章目录 1.StepLR2.MultiStepLR3.ExponentialLR4.LinearLR5.PloyLR 适合的学习率能够更好地训练模型,为此衍生出多种学习率调整策略。一般来说,在训练初期希望学习率大一些,使得网络收敛迅速,在训练后期希望学习率小一些&#xf…

jmeter学习(4)提取器

同线程组https://blog.csdn.net/vikeyyyy/article/details/80437530 不同线程组 在JMeter中,正则表达式提取的参数可以跨线程组使用。 通过使用Beanshell后置处理器和属性设置函数,可以将提取的参数设置为全局变量,从而在多个线程组之间共享…

Spring Boot新闻推荐系统设计与实现

3系统分析 3.1可行性分析 通过对本新闻推荐系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻推荐系统采用JAVA作为开发语言,Spring Boot框…

Go语言实现长连接并发框架 - 开篇

文章目录 前言初步设计思路初步架构图项目地址最后 前言 你好,我是醉墨居士,国庆假期闲来无事,准备使用Go语言开发一个轻量级的长连接并发框架,希望能够帮助大家掌握这类框架的心脏与内核,也希望能给大伙带来灵感与启…

【微服务】负载均衡 - LoadBalance(day4)

下述所有代码都是在订单服务中修改的,商品服务并不需要修改,只需要启动多个实例即可。 引入 在介绍Eureka组件的最后,留下了一个问题就是,无论启动多少个实例,只能调用第一个。原因是因为服务调用时获取的是一个实例…

C/C++/EasyX——入门图形编程(3)

【说明】上一篇讲了基础图形的绘制,那么这一篇就来讲一下如何在窗口上绘制文字吧,友友们一起学习吧。(>y<)(^v^) 一:文字…