OpenFOAM并行——绑定核心方法

  • OpenFOAM10的并行问题
    • 1.1 了解当前openmpi信息
    • 1.2 尝试是否可以用apt工具安装低版本openmpi
    • 2 安装低版本openmpi
      • 2.1 卸载当前版本openmpi
      • 2.2 下载旧版本openmpi-v2.1.1
      • 2.3 安装openmpi-v2.1.1
      • 2.3 配置openmpi环境变量
    • 3 卸载OpenFOAM10
    • 4 安装OpenFOAM10
    • 5 Enjoy

OpenFOAM10的并行问题

新版本openFoam10发布,但是随之更新的openmpi-v4.0.3不能执行指定核并行


因此着手安装低版本的openmpi

1.1 了解当前openmpi信息

// 查看openmpi版本
mpirun -V

// 查看openmpi位置
whereis openmpi

// 查看openmpi软件可执行文件路径(环境变量)
which -a mpirun

which -a mpiexec

// 用dpkg工具查看openmpi信息
dpkg -l


1.2 尝试是否可以用apt工具安装低版本openmpi

apt-show-versions -a openmpi-bin
apt list -a openmpi-bin


可见只有通过其他途径来安装低版本的openmpi了。综合一些信息可知,一般在ubuntu里面安装软件的方式有以下三种:
APT方式 ,eg. apt-get install;
Dpkg方式 ,eg. dpkg -i package_name.deb;
源码安装方式 ,源码包解压缩后一般执行安装位置的确定,eg. ./configure –prefix=/opt/package_name;之后执行make –jN && echo ok;最后执行sudo make install命令。源码安装的学习推荐“详解如何用源代码安装软件,以及如何卸载它”(链接: https://yuanzhuo.bnu.edu.cn/article/677)

在本次实例中我采用源代码安装的方式安装openmpi-v2.1.1.

整体的思路是这样:1. 卸载当前版本的openmpi;2. 安装低版本openmpi;3. 卸载openfoam10;4. 安装openfoam10;5. enjoy!

2 安装低版本openmpi

2.1 卸载当前版本openmpi

卸载

sudo apt-get remove --purge openmpi-bin
sudo apt-get autoremove

通过dpkg工具查看软件是否还存在

dpkg -l

已经无法查到与openmpi相关的字眼了

2.2 下载旧版本openmpi-v2.1.1

下载路径: https://www.open-mpi.org/software/ompi/v2.1/7

将下载的压缩包openmpi-2.1.1.tar.gz置于Downloads目录下,解压缩

tar -zxvf openmpi-2.1.1.tar.gz

2.3 安装openmpi-v2.1.1

进入该解压后的目录内

cd openmpi-2.1.1/

欲将openmpi安装在/opt目录下,并且设置符号链接,执行如下命令

sudo mkdir /opt/openmpi-v2.1.1
sudo ln -sT openmpi-v2.1.1 /opt/openmpi
./configure --prefix=/opt/openmpi-v2.1.1/
make -j 4 && echo OK #下面的4代表核数

当编译完成后输出OK,若无法输出OK说明编译未通过,用make命令尝试

编译完成后执行安装命令,安装完成输出OK

sudo make -j 4 install && echo OK

检查openmpi是否安装完成,成功输出版本号,安装完成

/opt/openmpi/bin/mpirun -V

2.3 配置openmpi环境变量

打开/etc/profile在最底部添加以下环境变量

export PATH="/opt/openmpi/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi/lib:${LD_LIBRARY_PATH}"

重启

sudo reboot

检测安装是否完成

3 卸载OpenFOAM10

直接删除openfoam主程序所在文件夹,$HOME/.bashrc里面的环境变量设置等都不变,除非前后两次要安装的openfoam的版本不一样。

cd $HOME/OpenFOAM
rm -rf OpenFOAM-10
rm -rf ThirdParty-10

4 安装OpenFOAM10

将ThirdParty-10-master.zip和OpenFOAM-10-master.zip源码包复制到虚拟机或者linux服务器的$HOME/OpenFOAM目录内,两个压缩包解压缩之后分别重命名ThirdParty-10和OpenFOAM-10目录。

更新OpenFOAM依赖的文件库(openfoam安装这一块说的简略是因为openfoam源码安装的方式在网上资料比较多。我最开始参考的是李东岳博士分享的帖子,之后注意到李东岳博士安装风格略有变化。庆幸的是原本的方式被很多博主所继承和发扬,还能查看到很多这方面的资料)。下面更新的库里面不包括libopenmpi-dev和openmpi-bin这两个库,请注意。

sudo apt update
sudo apt-get install -y build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev gnuplot libreadline-dev libncurses-dev libxt-dev

注意因为之前$HOME/.bashrc里面关于openfoam环境变量并没有被改变,所以只需要使之重新启动即可

source $HOME/.bashrc

重启虚拟机或者服务器。之后进入OpenFOAM-10目录编译openfoam

./Allwmake -j 4

5 Enjoy

我们总有这样那样的不足与缺点,总觉得人生艰难,做科研,做事业总是碰到这样或者那样的困难,从来没有一帆风顺,没有稀里糊涂地就成功了,只有在真正理解之后才能解决问题,但,这何尝又不是一种幸运!加油!让我们专注于分享,沿着开源与共享的互联网精神不断前进!!!

裂痕是什么——那是阳光照进来的地方。——李东岳博士

【OpenFOAM并行——绑定核心方法】相关推荐

  1. JavaScript事件绑定的方法说明 收藏

    JavaScript事件绑定的方法说明 收藏 事件使得客户端的 JavaScript 有机会被激活,并得以运行.在一个 Web 页面装载之后,运行脚本的唯一方式,就是响应系统或者用户的动作.虽然从第一 ...

  2. OpenFOAM并行计算方法

    OpenFOAM并行计算方法 第一种: 直接执行命令:XXXFoam (单核计算速度,CPU占用1个:结果按时间步推进:结果没问题) 第二种: 直接执行命令:mpiexec -n 6 XXXFoam ...

  3. 读jQuery之十二(删除事件核心方法)

    使用jQuery删除事件(或称解除事件绑定)有三个函数:unbind.die和undelegate.这三个方法都依赖于未公开的jQuery.event.remove(后续使用remove简写).此为删 ...

  4. Vuex中的核心方法

    Vuex中的核心方法 Vuex是一个专为Vue.js应用程序开发的状态管理模式,其采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.每一个Vuex应用的核心就是 ...

  5. OpenFOAM:并行区域划分理解(Domain Decomposition)

    OpenFOAM Domain Decomposition理解 OpenFOAM使用Domain Decomposition方法对计算域进行并行划分(命令: decomposePar), 对应的字典配 ...

  6. EduCoder-Linux与Python编程2021(类的基础语法)- 第3关:绑定与方法调用

    任务描述 在 Python 中,如果用实例去调用方法,这种限制就被称为 Python 中的绑定(binging).没有创建实例时,方法就是未绑定的.本关的任务就是让学习者理解什么是绑定,并学会如何调用 ...

  7. 2020-08-24绘制ROC   PR曲线 核心方法总结 ,计算AUC核心方法

    #1   绘制ROC AUC   PR曲线 #核心方法 roc_curve(y_test, preds)  #  preds为概率形式 #source code import matplotlib.p ...

  8. 【zepto学习笔记01】核心方法$()

    前言 我们移动端基本使用zepto了,而我也从一个小白变成稍微靠谱一点的前端了,最近居然经常要改到zepto源码 但是,我对zepto不太熟悉,其实前端水准还是不够,所以便私下偷偷学习下吧,别被发现了 ...

  9. html事件绑定的方法,javascript实现简单的on事件绑定

    实现一个简单的on和off方法 介绍: Event对象: funcList: {}, //保存delegate所绑定的方法 ieFuncList :{} //保存ie下的绑定方法 Event 对象中的 ...

最新文章

  1. Windows7 64位下vs2008配置OpenCV2.3.1
  2. canvars 画花
  3. 写代码日常 | 每日趣闻
  4. CentOS6中安装、配置、启动GitLab以及遇到的那些坑
  5. php提交注册表单,php用户注册表单验证
  6. 三十一、R语言基本语法(上篇)
  7. Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方。
  8. MySql error 2003 Can't connect to MySQL server on 'localhost' (0)
  9. Python 3 并发编程多进程之进程同步(锁)
  10. linux内核网络子系统收发过程剖析
  11. 三大运营商移动电话用户总数公布了 同比增长6.2%
  12. 逐行读取txt文件中_Spring系列八:Spring 中读取文件-ResourceLoaderAware
  13. C#设计模式(学习笔记[01])
  14. nohup.out文件过大的解决办法
  15. SQL性能优化常见措施(Lock wait timeout exceeded)
  16. unix系统中查看端口号被占用
  17. 软考高级系统架构设计师系列论文二十四:论信息系统的安全风险
  18. Error: Device or resource busy
  19. 微信授权二维码样式修改
  20. AutoCAD .Net 创建直线Line

热门文章

  1. 数据分析-质量管理的7+1种武器
  2. 氮矽科技开启新的篇章 矽能科技孵化器运营模式收获肯定
  3. 生产环境中报错:would dispatch back to the current handler URL......
  4. c语言实现小球抛物线动画,CSS实现小球抛物线运动的动画效果 (代码)
  5. 到现在还搞不懂,索引为什么能提供查询性能?
  6. 2022第五届上海国际网红品牌博览会
  7. 保险业务与系统——保险基础知识——保险基本原理
  8. bat(batch)知识整理
  9. GCC soft float ABI接口gcc-arm-Linux-gnueabi/ARMARCH7gnu和gcc-arm-linux-gnueabihf以及ARMARCH7sfgnu
  10. 答题抽奖活动小程序运营注意事项