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
63 帖子 17 发布者 162.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    Calf.Z-DNS
    写于 最后由 编辑
    #41

    目前了解到PCG在多核并行计算的时候效率会比GAMG更高,那这个多核有大概的一个参考数值吗?之前看到过是五百核。
    另外这二者对于计算的准确度上面有没有优劣性,PCG在网格数太多的情况下真的会收敛不了?
    最后,多核的时候用scotch会更好吗?之前在论坛上看过对于流向明确的算例,比如圆管,用simple,在流动方向上多分块,效果也还可以。
    我目前在400核并行计算7500W的网格,圆管加热流动,用scotch和simple算起来速度差不多。GAMG+DIC跟PCG+DIC的速度也差不多。

    不知有何高见,谢谢!

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #42

    @Calf-Z-DNS 我一直对稀疏线性系统感兴趣但是好像有生之年不可能用几年时间去研究他们了。哎。PBiCGStab和PBiCG的算法就在那,但是也没透彻分析过。只不过从个人实践来看我只用PBiCGStab没用过PBiCG。精度没对比过。个人觉得线性系统的精度不足以抹杀掉CFD模型和迭代的精度。你若有结果,欢迎反馈

    你后来那个做怎么样了?DNS浮力驱动刘的

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

    1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    写于 最后由 编辑
    #43

    fumiya的博客:

    https://caefn.com/openfoam/utilities-renumbermesh

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    写于 最后由 编辑
    #44

    @random_ran 请问找到进一步提高效率的方法了么?

    长风破浪会有时,直挂云帆济沧海

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 yhdthu 最后由 编辑
    #45

    @yhdthu 老铁最近玩什么呢

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

    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 李东岳 最后由 编辑
    #46

    @东岳 前辈好,最近在算les空化模拟,也卡在计算效率太低上了TAT

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    写于 最后由 编辑
    #47

    所以最终结论是PCG+DIC效率最高是么?
    PCG+GAMG是不是稳定性好一些?

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘雄国
    写于 最后由 编辑
    #48

    OpenFOAM 矩阵计算效率是可以更高,这点没有疑问. 矩阵计算效率高不高 主要取决于 MPI 通信
    1000 processors 以上 不同节点上 计算 OpenFOAM 要重构

    效率高不高除了算法,计算问题类型, 代码优化等有关系

    大牛说 下一代cfd 需要 大规模计算机网格 + Algorithm + Coding 整体考虑 我觉得很有道理

    问过openfoam developer, 他的意思是 OpenFOAM is a general CFD solver. They want to solve specific problem to make money (ESI).

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘雄国
    写于 最后由 编辑
    #49

    @刘雄国 在 并行效率疑问 中说:

    大牛说 下一代cfd 需要 大规模计算机网格 + Algorithm + Coding 整体考虑 我觉得很有道理

    我说错了, 下一代cfd 需要 大规模计算机网格 + CFD Algorithm + CFD Coding + physical网格 整体考虑

    1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 random_ran 最后由 编辑
    #50

    @random_ran 在 并行效率疑问 中说:

    以后多核计算前,我都会renumberMesh 的

    您好!请问,在进行多核计算时,我应该先decompose,再renumber,还是应该 先renumber再decompose呢?谢谢!

    浪 1 条回复 最后回复
  • 浪 离线
    浪 离线
    浪迹天大
    在 中回复了 Micro 最后由 编辑
    #51

    @Micro 网上见到的例子都是先分块,再并行地renumberMesh

    OpenFOAM 学习交流:https://openfoam.top

    MicroM 1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #52

    @浪迹天大
    好的,谢谢您!并行renumber应该是 renumberMesh -parallel 吧
    能把您见到的例子分享下吗,谢谢!另外,您清楚为什么重排序后能够加速求解吗?感谢!

    浪 1 条回复 最后回复
  • 浪 离线
    浪 离线
    浪迹天大
    在 中回复了 Micro 最后由 编辑
    #53

    @Micro 最近正在用:mpirun -np 20 renumberMesh -parallel -overwrite。运行后会告诉你:

    After renumbering :
    Mesh size: 2687852
    Before renumbering :
        band           : 32282
        profile        : 2.13313e+10
    
        band           : 1914
        profile        : 2.13794e+09
    

    具体原理不清楚。我也没对比过。不过我相信它至少不会使结果变坏,也不会使计算变慢。

    OpenFOAM 学习交流:https://openfoam.top

    MicroM 3 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #54

    @浪迹天大 谢谢!谢谢大佬!

    1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #55

    @浪迹天大 最后一个问题大佬!如果是并行renumber,是全局(整个网格)整体重新编号,还是分配到每个进程上的网格子区域独自重新编号呢?感恩!

    1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #56

    @浪迹天大 如果是全局(整个网格)整体重新编号,那么为啥非要先区域分解再renumber呢?感觉也可以先renumber再decompose吧?谢谢!

    浪 1 条回复 最后回复
  • 浪 离线
    浪 离线
    浪迹天大
    在 中回复了 Micro 最后由 编辑
    #57

    @Micro 肯定是局部啊,不然就不需要并行模式了。

    OpenFOAM 学习交流:https://openfoam.top

    MicroM 1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #58

    @浪迹天大 @浪迹天大 那运行后输出的mesh size和band(也就是矩阵带宽)是全局矩阵还是局部矩阵呢?感恩!

    另外我突然发现您居然是openfoam成长之路的博主,敬仰!

    浪 1 条回复 最后回复
  • 浪 离线
    浪 离线
    浪迹天大
    在 中回复了 Micro 最后由 编辑
    #59

    @Micro 不敢。看了一眼代码,mesh是全局的,band是局部的:

    Info<< "Mesh size: " << mesh.globalData().nTotalCells() << nl
    	<< "Before renumbering :" << nl
    	<< "    band           : " << band << nl
    	<< "    profile        : " << profile << nl;
    

    OpenFOAM 学习交流:https://openfoam.top

    MicroM 1 条回复 最后回复
  • MicroM 离线
    MicroM 离线
    Micro
    在 中回复了 浪迹天大 最后由 编辑
    #60

    @浪迹天大 好的,谢谢!band是局部的,并且info语句只有主进程执行,所以band是分配在主进程上的网格对应的矩阵的带宽,对吗?可是我认为,每个进程都保留了全局A的一部分,难道renumber只是针对这个部分矩阵进行排序吗

    浪 1 条回复 最后回复

  • 登录

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