Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 一种集群非root用户编译OpenFOAM的方法-基于CentOS7

一种集群非root用户编译OpenFOAM的方法-基于CentOS7

已定时 已固定 已锁定 已移动 OpenFOAM
6 帖子 4 发布者 6.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • S 离线
    S 离线
    shepherd
    写于 最后由 编辑
    #1

    近期尝试了在集群环境下,使用非root用户编译OpenFOAM-7,成功了。
    主要参考了这个教程:集群系统centos7上OpenFOAM6的安装。

    非root用户在集群上采用编译安装的方法往往会失败,失败的原因基本上是因为缺乏必要的运行库。:135:
    因此成功编译安装OpenFOAM的关键就是解决非root用户无法在集群上安装自己想要的库的问题。
    上述引用教程里介绍了两种方法,这里主要介绍第一种方法——依赖库方法。
    同时根据实际操作我对教程内容也进行了一点内容补充与修改。

    一、 依赖库方法编译安装OpenFOAM的思路

    建立一个与集群系统版本一致的虚拟机,将编译OpenFOAM需要的库下载到虚拟机上,将下载下来的库从虚拟机中上传到集群系统,安装库,然后就能顺利编译OpenFOAM。

    二、建立虚拟机并下载所需库

    1)建立一个与集群系统版本一致的虚拟机。查看系统版本指令:

    uname -a
    

    这个是我的集群系统的内核版本,CentOS-7
    image001.jpg
    这是虚拟机内核版本
    image002.jpg
    (2)使用yum-utils的yumdownloader下载依赖库到虚拟机,所需的库应该有

    gcc, openmpi, binutils, cmake, hwloc, m4, scotch, zlib, libtool, flex, bison, boost, glibc
    

    (ps:这是根据我集群上成功编译之后所列出的OpenFOAM-7所需的依赖库列表,在实际操作的时候,集群只缺少了glibc和binutils,因此我只安装了这两个库)(这里的操作都需要root权限)

    • 安装yum-utils,指令:
    yum -y install yum-utils
    
    • 使用yumdownloader下载库,这里以下载boost和binutils为例
    su root
    yumdownloader boost binutils
    

    下载完成后就能在当前操作路径里看见这两个文件
    image003.png
    可以看见boost有下载了两个包,根据步骤(1)我们可以知道系统内核版本,这里是x86_64,因此保留此版本的包并上传到集群即可。

    三、上传依赖包至集群并安装(以binutils为例)

    (1)将依赖库上传到集群并解包。

    • 集中选择一个目录,比如~/packages/binutils,在里面解压包:
    rpm2cpio binutils-2.27-44.base.el7.x86_64.rpm | cpio idvm
    

    (2)将依赖包添加至~/.bashrc,添加binutils路径至文件底部

    vi ~/.bashrc
    export PATH=$PATH:/gpfs/<username>/packages/binutils/usr/bin/
    
    • 保存退出vim并
    source ~/.bashrc
    

    至此,第三方依赖库在集群上就安装全了,可以进行OpenFOAM的编译安装了。:chitang:

    四、编译安装OpenFOAM-7

    编译安装的步骤与普通步骤并无区别。

    (1)从官网下载OpenFOAM-7的源码包并放到主目录里的OpenFOAM目录文件夹下,即~/OpenFOAM/OpenFOAM-7/ 和~/OpenFOAM/ThirdParty-7/。

    (2)将OpenFOAM-7安装路径写入~/.bashrc并source ~/.bashrc。

    (3)根据集群上安装的gcc版本指定OpenFOAM的gcc编译器版本。

    • 在OpenFOAM-7目录下
    vi etc/bashrc
    
    • 找到以下内容
      image004.jpg
      我的集群版本的gcc是5.3.0,因此就写成WM_COMPILER=Gcc53。

    (4)编译ThirdParty

    • 打开ThirdParty-7目录
    ./Allwmake
    

    这里我们不在集群上安装paraview,下一步直接进行本体编译。

    (5)编译OpenFOAM本体

    • 打开OpenFOAM-7目录
    ./Allwmake
    

    耐心等待,过程比较漫长,应该能顺利编译完成。:142:

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    感谢分享!!!

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • S 离线
    S 离线
    shepherd
    写于 最后由 编辑
    #3

    谢谢李老师!:yes:

    1 条回复 最后回复
  • cfd_xfxC 离线
    cfd_xfxC 离线
    cfd_xfx
    写于 最后由 编辑
    #4

    太棒了,马克!!
    以前没有想到这么操作:136: 所以一直没用上超算orz

    逢山开路,遇水架桥
    对流换热强化

    S 1 条回复 最后回复
  • S 离线
    S 离线
    shepherd
    在 中回复了 cfd_xfx 最后由 编辑
    #5

    @cfd_xfx 我也是,买了工作站之后才弄明白的:xinlei:

    1 条回复 最后回复
  • C 离线
    C 离线
    CT
    写于 最后由 编辑
    #6

    最后一步./Allwmake -j(计算机内核数)加快编译

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]