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
17 帖子 6 发布者 15.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    CFDngu
    在 中回复了 李东岳 最后由 编辑
    #7

    @李东岳 不过我最近发现,当我添加质量源之后,不知道是不是我程序的问题,有时候renumberMesh之后计算报错,不执行这个命令就可以算,而且结果也是正确的。。

    1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #8

    @李东岳 一直不明白为啥以lduMatrix的数据结构,renumber还能增加效率?

    如果是带状的diag band结构,renumber增加效率是合理的。但是ldu不应该呀。

    renumber是针对那部分算法有加速作用的?我想应该不会是matrix vector product.

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 程迪 最后由 xpqiu 编辑
    #9

    @程迪 原理我也不太清楚,但是 renumberMesh 确实能加速收敛,减少迭代需要的次数,尤其是在程序刚开始跑起来的时候。可能是因为 band 更小的矩阵收敛会更快,跟矩阵存储的数据结构无关?

    程 2 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 xpqiu 最后由 编辑
    #10

    @xpqiu
    线性代数告诉我们,reorder不改变特征值...

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 CFDngu 最后由 编辑
    #11

    @CFDngu 请问有没有什么规则来决定应该分多少块?是不是四核就只能分4块?还是说分的越多越好?

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 xiaofenger 最后由 编辑
    #12

    @xiaofenger
    标准的并行程序做法应该是有多少numa块,分成多少块。

    考虑OpenFOAM一般没有开启OpenMP,有多少核分多少块吧。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    X 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 xpqiu 最后由 编辑
    #13

    @xpqiu
    https://www.cfd-online.com/Forums/openfoam/191055-why-renumbering-works-ldumatrix.html#post658931
    Jasaki 说是因为增加了cache命中率,固定点迭代也改善了单元周围update的单元。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 程迪 最后由 编辑
    #14

    @程迪 我在四核八线程的电脑上装了virtualbox, 然后给Ubuntu虚拟机分了2个CPU,这样应该decompose成两块?只分成两块会比一整块有大的速率提升吗?

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 xiaofenger 最后由 编辑
    #15

    @xiaofenger

    分两块,应该有大的提升。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

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

    如果是带状的diag band结构,renumber增加效率是合理的。但是ldu不应该呀。

    在Numerical Recipes in C++上面有提及部分矩阵reordering和并行技术,Yoosf Saad那本稀疏线性系统有大量的论述,目前暂时了解不是很深如。不过我确定对于非结构网格离散后的矩阵不一定是比较窄的带状的。并且reNumberMesh是在分配矩阵操作之前。可以理解为对某些网格导致比较宽的离散矩阵进行预先操作,降低带宽。具体降低带宽后如何提高迭代求解还得看资料。

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

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #17

    @李东岳
    NPC++没有提ldu结构,ldu结构reorder不减少matrix-vector product的操作次数。所以加速只可能来源于两点:更高的cache命中率(同样数量的操作,更快的执行速度)和更高的迭代效率(比如GS迭代,或许reorder之后的GS迭代矩阵的谱半径更小)。

    对于纯粹的Krylov型求解器应该只有第一点。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复

  • 登录

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