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

    @李东岳
    也不是抵触,infiniband 网络和 tcp 网络是共存的,他这样设置,应该是显式指定使用 tcp 网络,而没有使用 infiniband,所以速度就慢了。

    这个设置有的时候也是有用的,比如假设我有个工作站,没有 infiniband 也不需要,我只想单节点内的核之间通信。但是有的 mpi 它的 FI_PROVIDER 的默认值是 PSM2,这样的话如果不加参数,单节点并行也无法跑,加上 -genv FI_PROVIDER tcp 或者 -genv FI_PROVIDER shm 就可以正常跑了。

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

    @sjlouie91 在 集群上并行测试OpenFOAM,并行效率并没有比单节点提升 中说:

    -genv FI_PROVIDER mlx

    这个参数我没用过。像 @lzf 说的,你可以试下dapl,像 @xpqiu 说的,你可以试下把-genv FI_PROVIDER tcp去掉。

    但是有的 mpi 它的 FI_PROVIDER 的默认值是 PSM2,这样的话如果不加参数,单节点并行也无法跑,加上 -genv FI_PROVIDER tcp 或者 -genv FI_PROVIDER shm 就可以正常跑了

    还有这样的mpi

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

    1 条回复 最后回复
  • L 离线
    L 离线
    lzf
    在 中回复了 sjlouie91 最后由 编辑
    #22

    @sjlouie91 如果可以的话希望可以提供一个五节点跑满320核的benchmark结果

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #23

    @李东岳 在 集群上并行测试OpenFOAM,并行效率并没有比单节点提升 中说:

    估计他就是双倍来了

    那就是相对速度了,自己跟自己比:jingya:

    @sjlouie91 这个:https://www.top500.org/project/linpack/ 专门测超算性能的。但是流体计算的效率,影响因素太多。用李老师网站上大家都用的算例比对更容易找着对比点。

    还有一个方法,开始计算后观察系统各项指标,看看哪个满负荷,哪个就是瓶颈。https://github.com/cjbassi/gotop 这个是终端界面的系统监视器。看看运行算例的时候是 CPU ,还是硬盘读写,还是网络通信,还是内存是爆满的。可以对比 fluent 运行的时候的不同。找到瓶颈后再排查比较有目标。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 李东岳 最后由 编辑
    #24

    @李东岳 李老师,您好。我按照您的建议进行了测试,但是每个节点跑满所有核时,在3个节点时还可以实现线性,但是5个节点反而变慢。test.png
    加速比.png
    请问这种情况还有可能是并行哪里有问题呢?

    1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    写于 最后由 编辑
    #25

    @lzf 你好,抱歉回复的晚。请问你指的结果是说最后计算时长吗?还是指的流场结果?
    这个是我测试的加速比曲线和计算时长。如果有需要,我可以提供算例cavity文件
    加速比.png
    test.png
    cavity算例的计算设置文件blockMeshDict, controlDict,fvSolution如下,fvSchemes采用tutorials中的设置:
    blockMeshDict
    blockMesh.png
    controlDict
    controlDict.png
    fvSolution
    fvSolution.png

    1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 lzf 最后由 编辑
    #26

    @lzf 还有一个问题想请教一下,你们使用集群计算模块加载的除了intel和intel-mpi,是否还需要其他什么模块吗?
    如果可能的话,能否私信告诉我一下你的联系方式方便沟通并行相关问题?

    1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 xpqiu 最后由 编辑
    #27

    @xpqiu 您好,感谢您的回复。
    关于-genv FI_PROVIDER tcp,我测试过,必须得加上这个参数,否则没办法计算。至于shm:ofi,我发现好像是否添加这个参数对结果影响不大。

    1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 李东岳 最后由 编辑
    #28

    @李东岳 李老师您好,除了刚才发的OpenFOAM的测试性能以外,关于Fluent测试的效果是5个节点的加速比符合线性scale。

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

    -genv FI_PROVIDER tcp你这个去掉不能跑的话。你如何确定走的是infiniband,而不是以太网模式。我们这面跑openfoam不需要这个参数。我们之前测试也出现过你这种情况。后来我们换交换机硬件了。但目前我还不确定现在我们这5节点能到什么样,得下周能出个测试结果。另外,openfoam离散设置差异(比如GAMG那个),我个人感觉不会引起特别大的差异。不过你可以实测看看,我也不100%确定

    @xpqiu 这位大佬之前好像测试过2048个核心 :mianmo:

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

    S C 2 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 李东岳 最后由 sjlouie91 编辑
    #30

    @李东岳
    应该走的是infiniband,我还试过更改-genv I_MPI_FABRICS shm:ofi为shm:dapl,但是提示只有shm:ofi和ofi两种。
    此外,除了一个节点使用32核心,我还测试过1个节点使用48和56核心,我发现不知道有没有可能是计算瓶颈的问题,我只要是用到240核上,每步计算的时长就没法再减小了。

    1节点64核100步,总共1851s
    2节点128核100步,总共928s
    3节点196核100步,总共553s
    4节点256核100步,总共505s
    5节点320核100步,总共557s
    
    1节点32核100步,总共5946s
    2节点64核100步,总共1863s
    3节点96核100步,总共1163s
    4节点128核100步,总共836s
    5节点160核100步,总共616s
    
    5节点240核100步,总共526s
    5节点280核100步,总共567s
    

    请问李老师你们测试采用的算例是什么?

    李东岳李 Number44N 2 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 sjlouie91 最后由 编辑
    #31

    下面是你的数据:

    5节点160核100步,总共616s
    5节点240核100步,总共526s
    5节点280核100步,总共567s
    5节点320核100步,总共557s
    

    怎么有个波动在里面。

    @sjlouie91 就是我那个200万网格那个。后来加密到3000多万。我们团队那个老师最近组织博士生考试,没时间测。下一步测试要4月初了...

    我猜测也有可能跟算例相关,你可以跑一下摩托车那个算例。simpleFoam里面motorbike那个,你把网格相关量调成4000万网格的算例。直接测试

    5节点160核
    5节点240核
    5节点280核
    5节点320核
    

    我们下一步也要换成motorbike这个算例。我们他们外国人用这个比较多。

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

    S 1 条回复 最后回复
  • Number44N 离线
    Number44N 离线
    Number44
    在 中回复了 sjlouie91 最后由 编辑
    #32

    @sjlouie91
    从你这个结果看,scaling看上去还算线性,线性区间应该在256核前一点,峰值点在5万+网格/核,不算好,也不算特别差,峰值点和集群本身的性能有关,CPU,内存之类的,但至强系列的CPU应该没那么差。
    另外,不同的矩阵迭代算法的scaling不一样,CG类的scaling看上去很好,但绝对速度就那样,AMG类的scaling一般,但是真的快。

    算不准,发个散,报error,没问题!

    S 1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 Number44 最后由 编辑
    #33

    @number44
    感谢你的建议。如果不是CPU的问题的话,有没有可能瓶颈在硬盘读取上?
    我还有个疑问,我之前在LES算例上测试过GAMG求解器,一般来说GAMG计算更快,但是我不清楚是我设置有问题还是其他别的什么原因,我在使用GAMG的时候计算异常缓慢。
    这个是我之前的计算设置,请问是否有针对这个算法的较优的设置参数?
    GAMG.png

    Number44N 1 条回复 最后回复
  • S 离线
    S 离线
    sjlouie91
    在 中回复了 李东岳 最后由 编辑
    #34

    @李东岳
    您好李老师,针对这个波动,我之前也发现了,但是我后续又计算过一次,最终320核计算用时577s。总之,就是在240核以上基本上就不太有效果了。
    针对您提到的这两个算例,我测试一下。

    1 条回复 最后回复
  • Number44N 离线
    Number44N 离线
    Number44
    在 中回复了 sjlouie91 最后由 编辑
    #35

    @sjlouie91
    硬盘的读写只有刚开始和写结果的时候进行,迭代过程是不做硬盘读写的,除非频繁大量进行结果的存储,不然一般硬盘不太影响计算性能,更多受CPU的cache和内存影响。
    至于GAMG的参数,我选择抄
    PETSc4FOAM: a library to plug-in PETSc into the OpenFOAM framework
    里面提到的。

    算不准,发个散,报error,没问题!

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

    不知道后来楼主怎么样了

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

    1 条回复 最后回复
  • C 离线
    C 离线
    Caijinjin
    在 中回复了 李东岳 最后由 编辑
    #37

    @李东岳 在 集群上并行测试OpenFOAM,并行效率并没有比单节点提升 中说:

    -genv FI_PROVIDER tcp你这个去掉不能跑的话。你如何确定走的是infiniband,而不是以太网模式。我们这面跑openfoam不需要这个参数。我们之前测试也出现过你这种情况。后来我们换交换机硬件了。但目前我还不确定现在我们这5节点能到什么样,得下周能出个测试结果。另外,openfoam离散设置差异(比如GAMG那个),我个人感觉不会引起特别大的差异。不过你可以实测看看,我也不100%确定

    @xpqiu 这位大佬之前好像测试过2048个核心 :mianmo:

    老师,想问一下,用openmpi在自己组里面的集群上用pbs跨节点并行(10g以太网交换机)命令用的mpirun --mca btl_tcp_if_include <ip地址> -np reactingTwoPhaseEulerFoam -parallel,运行的时候发现计算的节点上cpu的用户进程占比us只有50-60%,系统进程占比sy有40-50%,这个问题有没有什么好的解决办法?

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

    才看到这个回复,首先,这个看起来不是正常的。CPU用满了应该是100%。能想到的是,能不能是系统被黑了有后台程序

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Caijinjin
    在 中回复了 李东岳 最后由 编辑
    #39

    @李东岳 李老师,我们组集群是新买的,应该不太可能是被黑了,除非是大厂他们给加了限制。现在我导给换了100G的IB交换机,就是运行案例的时候,它虽然显示是在run的,但是log文件里面没有实际的计算结果。我看了调度系统的日志说是:
    Open MPI accepted a TCP connection from what appears to be an another Open MPI process but cannot find a corresponding process entry for that peer.
    暂时还在寻找原因。

    李东岳李 1 条回复 最后回复

  • 登录

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