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. openfoam如何减小大规模并行计算输出文件占据的存储

openfoam如何减小大规模并行计算输出文件占据的存储

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

    最近计划在openfoam平台上进行数亿网格规模的并行计算,由于需要捕捉非稳态的过程,因此需要保存相对多的时刻的数据,这就导致总耗费的存储较大,预计30T。 我自己也思考了一些办法。首先采用二进制的文件保存格式,本以为相对于十进制的结果占据的存储会小很多,实际我测试了一下,二进制文件能达到0.54倍十进制文件。另外我还尝试了采用压缩文件的方式,但是发现压缩文件也仅达到了0.43倍的未压缩文件。不知有大佬知道如何能够有效的减小openfoam输出文件的大小? 或者我上述采用的两种方式是否还有改进的空间。
    1399b72e-8244-4e28-bcd0-10d824b8c2d1-image.png

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

    没啥好办法。purgeWrite你看看能不能达到你得需求。如果改成50,就仅仅保持最后50步的数据。其他没啥办法额

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

    江 1 条回复 最后回复
  • H 离线
    H 离线
    heike256
    写于 最后由 heike256 编辑
    #3

    30T只是两块硬盘的容量,用机械硬盘加缓存或者机械硬盘阵列的方案,成本都还可以接受;如果在远程服务器算的话,数据传输可能是个问题。CFD的最终产出无非是报告、论文、视频,都是小数据,openfoam输出的物理场数据并不需要长期保存。
    另,数据规模越大越不建议压缩,paraview后处理可以自动解压,无需干预,但性能会大幅下降。

    江 1 条回复 最后回复
  • 江 离线
    江 离线
    江山不如凉竹
    在 中回复了 heike256 最后由 编辑
    #4

    @heike256 感谢您的建议。我是在超算上并行计算,因此30T的存储确实有点难接受,毕竟课题组还要很多人也需要存储空间。 因为要捕捉到关键的非稳态的过程,所以保存的时刻较多。实际后处理的时候,我仅仅需要几个时刻的数据。并且由于我是做燃烧模拟,每个时刻的文件之所以那么大也是由于化学机理的组分很多。因此我的想法就是计算的时候先压缩,然后从超算上只传输我我想要的某几个时刻的某几个场,这样,后处理文件就小很多。您刚刚提到大的数据不建议压缩,不知道您是之前遇到过什么问题吗?
    另外不知道您是否知道,为什么每个时刻的文件里面,每个组分Y都会有一个相应的Y_0 并且还会输出并且还会输出
    ddt0(rho,Y)这些,其实我并不需要这些,但是我并不知道这些是如何产生的,以及如何可以不输出这些量。
    a26e4e77-cc64-414a-8fb4-77257bb24240-image.png

    1 条回复 最后回复
  • 江 离线
    江 离线
    江山不如凉竹
    在 中回复了 李东岳 最后由 编辑
    #5

    @李东岳 谢谢李老师的建议,因为我是做燃烧模拟,需要分析中间的某几个着火和火焰发展的时刻,但是我并不能精确的预知CFD计算的点火时刻,所以我需要保存相对多的时刻。 我观察到我的每个时刻的文件里面,每个化学机理的组分Y都会有一个相应的Y_0 并且还会输出并且还会输出ddt0(rho,Y)这些,其实我并不需要这些,但是我并不知道这些是如何产生的,以及如何可以不输出这些量。如果可以不输出这些量,那么输出的文件就会小很多,不知道您对这个问题有好的建议吗?
    2ff24dfe-db29-4729-b49c-85410913dc63-image.png

    李东岳李 H 小 4 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 江山不如凉竹 最后由 李东岳 编辑
    #6

    @江山不如凉竹 那个跟ddtScheme设置有关,你可以设置为Euler,不过因为化学反应方程是非常刚性的,因此时间精度是比较高的。你可以试试Euler结果如何。

    对于超算来说,30T硬盘太小了。现在硬盘很便宜,好像16T才不到2000.

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

    1 条回复 最后回复
  • H 离线
    H 离线
    heike256
    在 中回复了 江山不如凉竹 最后由 编辑
    #7

    @江山不如凉竹 超算可以买存储空间,在超算上后处理,然后删掉没用的原始数据,把后处理结果传输回来。后处理软件加载压缩过的数据会变慢,压缩也会耗时,一来一回就是用CPU时间换硬盘空间。

    1 条回复 最后回复
  • H 离线
    H 离线
    heike256
    在 中回复了 江山不如凉竹 最后由 编辑
    #8

    @江山不如凉竹 我也用过超算,超算中心服务水平各异,有些确实存储空间紧张,反正就是各种难用,实在不行你就写脚本,自动后处理,自动删没用的原始数据。

    1 条回复 最后回复
  • 小 离线
    小 离线
    小泽同学
    在 中回复了 江山不如凉竹 最后由 编辑
    #9

    @江山不如凉竹 您好老师,我是一个小白,请问一下您做的燃烧模拟的求解器是直接使用的of自带的求解器吗,还是自己编写的,请问有什么参考资料或者教程吗,谢谢大佬!

    1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    写于 最后由 Wayne 编辑
    #10

    A Swin-transformer-based model for efficient compression of turbulent flow data
    Image and video compression of fluid flow data

    我其实想研究研究这个水几篇论文

    主要做AI,懂一点CFD

    小 1 条回复 最后回复
  • 小 离线
    小 离线
    小泽同学
    在 中回复了 Wayne 最后由 编辑
    #11

    @Wayne 谢谢大佬,我去研究一下

    1 条回复 最后回复

  • 登录

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