hdf5安装_国产CFD开源软件OneFLOW在Ubutntu下的编译安装

news/2024/7/7 16:46:13 标签: hdf5安装

作为国产计算流体力学的开源软件,OneFLOW本身是跨平台的,所以在使用外部库上是慎之又慎,如果不能跨平台的库一概不选,无论这个库效果有多好。

目前编译OneFLOW所需要的库都是基本上科学计算必须的。其中MPI库是进行大规模并行计算所必须的。其次是Metis库,是大规模并行计算网格分区的开源工具,这个也是科学计算软件大量要用到。再有就是流体力学的数据库CGNS,这个库本身也是做流体力学计算必备的工具库。以上这些库都是开源的,且跨平台。还有一个库是HDF库,这个库是使用CGNS需要间接用到的库。

前面已经分别在各自的文章中介绍了这些库在ubuntu18.04下的编译和安装,有了这些准备之后,就可以进行OneFLOW源代码的编译工作了。

迦非喵:Ubuntu18.04下安装mpich2(HYDRA3.3a2)​zhuanlan.zhihu.com
迦非喵:Ububtu18.04+GCC9.2.1编译安装metis5.1.0源码​zhuanlan.zhihu.com
迦非喵:Ubuntu18.04+GCC9.2.1源码编译HDF5(1.10.6)​zhuanlan.zhihu.com
迦非喵:Ubuntu18.04+GCC9.2.1源码编译CGNS(4.0.0)​zhuanlan.zhihu.com

首先将OneFLOW源代码下载下来。网址如下:

https://github.com/eric2003/OneFLOW​github.com

进入ubuntu目录,本文是/home/eric/work

解压文件

6df6d73e919e63e1368971e4e895ba1a.png

tar -xzvf OneFLOW.tar.gz

6d54334376f4fad8dc2669917c5aed92.png

解压完有:

e0d66b992cc3d4691b585c87f202ce02.png

具体的目录结构为:

16642d6e7053e2cb27581ed05b113bec.png

然后按照下图连续执行这几个命令:

b232f262dc78fed3067cd15e37d287b5.png

有:

dfd4e94f7788d7088bd3729cde37d910.png

输入字母c,有:

09e42864abd9ec519c64c331839558e1.png

其中大部分缺省就可以了,

BIT64_FLAG=ON,CGNS _ENABLE=ON,HDF5_ENABLE=ON

这几个分别都是需要的,尤其是后两个必须打开

其它的依赖于前面安装的路径,本文如下:

CGNS_HEADER_DIR

其中MPI_HEADER_DIR是使用命令apt-get install安装的,位置在/usr/include/mpich

这些都需要根据本机的具体情况进行修改。

bf8c8cbf651eba0c022c5aa336519218.png

缺省的HDF5是1.10.5,由于本文已经使用了1.10.6,所以这里也需要改动

软件安装路径由缺省的CMAKE_INSTALL_PREFIX=/usr/local

改为:CMAKE_INSTALL_PREFIX=/usr/local/oneflow

然后输入字母c确认有:

ca0e189dcaa83d9faef9962b878ff4c7.png

输入make -j8开始编译,有:

7600ca64b27bf4f0ee6eb14baf863b5f.png

e5a9a064e7f29c80930a46ec87ccd106.png

编译完毕后Install

输入sudo make install

有:

d0324e679efe8054731b27c8f17a58cd.png

64806b1afd32aebe5eae15c945fd9877.png

f750ef0e3d50d99edd98b060d8ea8bcd.png

可以看到OneFLOW安装完毕,这是需要加入系统路径,在/home/eric下的 bashrc文件中加入:

8d97a69b78eb7929e6164ea6d5b71190.png

也就是/usr/local/oneflow/bin/

这样就可以在任意位置执行OneFLOW了。

具体如下:

f4408c28733a1ed140aed51dcf2776d6.png

或者并行运行:

6d30e3a2ad3a4d292b8bbb261140752e.png

这里没有带参数,OneFLOW缺省运行并行测试代码,从结果看符合预期。

这样,通过上面的示例演示了国产CFD开源软件OneFLOW在ubuntu18.04下的编译,安装及简单的运行,为进一步的使用和了解打下了基础。


http://www.niftyadmin.cn/n/548024.html

相关文章

写出python的pymysql模块使用流程_Python中操作mysql的pymysql模块详解

前言pymsql是Python中操作MysqL的模块,其使用方法和MysqLdb几乎相同。但目前pyMysqL支持python3.x而后者不支持3.x版本。本文测试python版本:2.7.11。MysqL版本:5.6.24一、安装pip3 install pyMysqL二、使用操作1、执行sql#!/usr/bin/env pyt…

微信公众平台开发(112) 微信卡券

关键字:微信公众平台 微信卡券 团购券 代金券 折扣券 礼品券(兑换券) 优惠券 导入code 核查code 修改库存 群发卡券 通过卡券货架投放卡券 创建二维码投放 核销卡券 查询卡券 微信买单 删除卡券 设置卡券失效 拉取卡券概况数据 获取免费券数据 拉取会员卡数据 朋友…

tinymce富文本实现页面分页_Django----富文本插件

富文本:Rich Text Format(RTF),是有微软开发的跨平台文档格式,大多数的文字处理软件都能读取和保存RTF文档,其实就是可以添加样式的文档,和HTML有很多相似的地方tinymce 插件安装django的插件: …

java中的异常_java中的异常和处理详细理解

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你…

oracle11实战详解

因为最近可以学习oracle了,所以昨天把oracle装好了,装的时候因为种种不知名的原因,把我的mysql居然连连不上了。说实话如果自己看教程安装的话还是有一点小复杂的,特别是对于我这种学渣来说,我装的是oracle11g.我装好之…

协议处理程序初始化失败_【干货分享】IIC 协议与编程序列

作者:Praveen Venugopal注意:本文转载自赛灵思中文社区论坛,所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrcxilinx.com,未经Xilinx及著作权人许可,禁止…

java list排序_Java - 集合框架

一、Java集合框架概述集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下。数组与集合的区别如下:1)数组长度不可变化而且无法保存具有映射关系的数据;集…

java集合list_java集合学习之List集合

Collection接口是List接口和Set接口的父接口,该接口中提供了List集合和Set集合的常用方法。importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassIteratorTest {/*** param args*/publicstaticvoidmain(String[] args) {//创建一个…