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

    @xpqiu renumber的功能是什么呢?我试着用了一下,发现结果完全不对啊。。。
    不renumber的结果就对了

    X F 2 条回复 最后回复
  • qjh888Q 离线
    qjh888Q 离线
    qjh888
    写于 最后由 编辑
    #15

    好贴子,马住。另外推荐一个连接:
    http://nscc-gz.cn/newsdetail.html?6151

    Turbomachinery Enginee

    1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 CFDngu 最后由 编辑
    #16

    @CFDngu renumberMesh 的作用是减小矩阵的 bandwidth,让非零元素更集中到主对角附近。
    https://en.wikipedia.org/wiki/Cuthill–McKee_algorithm

    C 1 条回复 最后回复
  • C 离线
    C 离线
    CFDngu
    在 中回复了 xpqiu 最后由 编辑
    #17

    @xpqiu 可是我的算例为什么renumber之后就结果就不对了呢?只有初始场是正确的,第二步开始就完全错了。和算例是2D的有关系吗?

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 CFDngu 最后由 编辑
    #18

    @CFDngu 2D 也可以renumberMesh,具体是怎么不对,log贴上来看看。不太可能是renumberMesh 导致的,可能是其他原因。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    CFDngu
    在 中回复了 xpqiu 最后由 编辑
    #19

    0_1492507825969_85246950.jpg

    好像真是有问题,最下面的。。。。

    facesets出问题了吗?

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 CFDngu 最后由 编辑
    #20

    @CFDngu renumberMesh运行完以后应该重新提取一下faceSet

    C 1 条回复 最后回复
  • C 离线
    C 离线
    CFDngu
    在 中回复了 xpqiu 最后由 编辑
    #21

    @xpqiu :expressionless: 不好意思我没用过这个,请问您那里有这方面的资料吗

    1 条回复 最后回复
  • B 离线
    B 离线
    bingningmeng45
    写于 最后由 编辑
    #22

    你是在哪个超算中心跑的算例?用的是什么规格的机器

    1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    写于 最后由 编辑
    #23

    @bingningmeng45

    我是在 Université de Sherbrooke 的长毛象2号超算上算的。这篇帖子的一楼最后我详细描述了硬件。

    我没有在专门搞CFD的组里搞CFD,机时的分配只有100-CPU年。

    Yours in CFD,

    Ran

    B 赵 C 4 条回复 最后回复
  • B 离线
    B 离线
    bingningmeng45
    在 中回复了 random_ran 最后由 编辑
    #24

    @random_ran 在超算上安装哪个版本的openfoam?是自己安装的么?我现在跑算例要在超算上计算,现在还处在调研阶段,对超算的情况不是很了解。希望你能多给我一些建议

    1 条回复 最后回复
  • B 离线
    B 离线
    bingningmeng45
    在 中回复了 random_ran 最后由 编辑
    #25

    @random_ran renumberMesh这个命令你用过么?(我看贴上有人用过)用过的话你跑的是什么算例模型,计算效率提高了多少,计算结果准确么?我的算例也是圆柱绕流湍流模型验证 是否可用这个命令?

    1 条回复 最后回复
  • 赵 离线
    赵 离线
    赵一铭
    在 中回复了 random_ran 最后由 编辑
    #26

    @random_ran
    顶长毛象
    替代文字

    @bingningmeng45
    renumberMesh看你需求吧,锦上添花的东西,不用也可以,用了更好,莫非你并行遇到了瓶颈。

    R 1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    在 中回复了 赵一铭 最后由 编辑
    #27

    @赵一铭

    哈哈,这下可好了,每次登录长毛象的时候,都会自动脑补这张图了。 :joking:

    Yours in CFD,

    Ran

    1 条回复 最后回复
  • B 离线
    B 离线
    bingningmeng45
    在 中回复了 random_ran 最后由 编辑
    #28

    @random_ran renumberMesh 这个如何操作运行?直接在终端输入吗

    R 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    写于 最后由 编辑
    #29

    可以试试metis,可能会比scotch要好一些。

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

    1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    在 中回复了 bingningmeng45 最后由 编辑
    #30

    @bingningmeng45

    建议你这样做:

    cd $FOAM_TUTORIALS 
    grep -rnw './' -e "renumberMesh"
    

    然后

    emacs ./incompressible/pisoFoam/les/motorBike/motorBike/Allrun
    

    就会发现你想要的东西了。

    我的OpenFOAM版本是v4.1。
    操作系统是CentOS Linux release 7.3.1611 (Core)。

    祝好。

    Yours in CFD,

    Ran

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

    最近看了看这个renumberMesh,觉得可能有一些更深入的算法在里面,看完之后,个人觉得不必深究了,就类似OpenFOAM中的mpi库一样,除非你专门做mpi的。大体思路就是楼上们说的减少带宽。比如在求解100阶矩阵的时候,现存带宽可能为30,在进行迭代预处理的时候,可能会产生填入操作,但是依然位于带宽之内。renumberMesh或者在计算图形学中的reordering可以通过将矩阵和Adjacency matrix(不知道中文是什么)联系起来,重新排序,减少带宽,降低存储。在大型计算中,可以降低内存存储,大体就是这个意思。renumberMesh中植入的是Cuthill–McKee algorithm,详细了解可google。个人觉得有点偏离CFD,了解了解就好。

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

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

    @李东岳

    1. ilu0没有填入,of玩的ldu全是用的不填入的算法,不然ldu数据结构包不住,得像aeroFoam那样玩更高级的数据结构,
    2. ldu矩阵renumber不降低单次迭代的flops数量!那么省出来的时间必须有个说法,要么谱半径更小,收敛所需迭代数减少,要么平均每个flops用时减少(cache命中率提高)。总时间=迭代数每次迭代的flops数每个flops平均用时,对吧。
    3. renumber有效性说明现代cfd程序更多地受限于储存速度,cache命中率啥的,这个东西是有瓶颈的,未来cfd程序的套路可能就得变了。
    4. 你说的半带宽那套是针对banded structure的老的数据结构了,算法和数据结构是配套的,单看算法不看数据结构没有任何意义。

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

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

    ilu0没有填入,of玩的ldu全是用的不填入的算法
    你说的半带宽那套是针对banded structure的老的数据结构了

    在另一个帖子我也看到你说的LDU,这只是OpenFOAM存储矩阵的方式,没有任何算法的存在意义,OpenFOAM编程可以酸则LDU,也可以选择Coordinate list (COO),也可以选择List of lists (LIL)。ILU0是ILU0算法,LDU是OpenFOAM的存储矩阵的方式。我觉得你弄混了。

    另外,矩阵存在带宽是客观存在的,不管你怎么存储。是LDU还是LIL。

    矩阵存储和带宽是两个概念:https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR.2C_CRS_or_Yale_format.29

    对ILU矩阵进行reordering是另一个概念:
    Saad, Yousef. Iterative methods for sparse linear systems. Society for Industrial and Applied Mathematics, 2003.

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

    程 1 条回复 最后回复

  • 登录

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