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

    请教大家,我在课题组刚配置的集群上测试OpenFOAM并行效率,一共有320核心,单节点64核心。

    我测试1500万网格的算例,单节点运行单步大约19秒,当采用两个节点时,单步11.5秒,并未提升明显。进一步增至3个节点时,计算反而减慢。

    第二个LES算例,2000万左右网格,在其他超算平台上测试过采用336核心大约只需要5-6秒,但是在我们自己的集群上我采用4-5个节点,最快都得20秒,明显跨节点通讯有问题。

    我采用的编译器是Intel-2018和IntelMPI。因为我们还测试过FLUENT的并行效率,没有出现问题,所以猜测不是硬件的问题,请问有可能是openfoam哪里配置出现问题?

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #2
    1. 交换机带宽多大的?

    2. 集群多少钱买的?

    3. 并行计算相关设置都是你自己搭建的?

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

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

    比表现性能也没有比只核数的呀:chigua2:

    比核数,安桌手机超过苹果。

    要看处理器型号、主频,硬盘读写速度,有木有阵列,还有BIOS设置什么的。

    测算力用 linkpack benckmark 什么的。自己搞得,简单的测不出来,复杂的容易设置错。

    滚来滚去……~(~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

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

    @bestucan 估计他就是双倍来了

    单节点运行单步大约19秒,当采用两个节点时,单步11.5秒,

    可能就是单节点10,双节点20核,这样

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

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

    @李东岳
    李老师您好,我们的并行计算相关设置都是购买集群的时候帮我们配置的。具体的配置如下:
    infiniband交换机带宽:56Gbps
    CPU型号:英特尔至强铂金8375C (每节点双路共64核)主频3.5GHz
    硬盘:东芝企业级14T*6,组raid6阵列,系统安装在固态硬盘内
    总共花了31万多一点

    Openfoam-7 bashrcfile:
    config.png

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

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

    比表现性能也没有比只核数的呀:chigua2:

    比核数,安桌手机超过苹果。

    要看处理器型号、主频,硬盘读写速度,有木有阵列,还有BIOS设置什么的。

    测算力用 linkpack benckmark 什么的。自己搞得,简单的测不出来,复杂的容易设置错。

    感谢您的回复,我们具体的配置是:
    infiniband交换机带宽:56Gbps
    CPU型号:英特尔至强铂金8375C (每节点双路共64核)主频3.5GHz
    硬盘:东芝企业级14T*6,组raid6阵列,系统安装在固态硬盘内
    BIOS设置过,但是跑FLUENT速度正常,所以猜测BIOS应该没有大问题

    有关于测试算例,我采用的1500万网格就是最简单的空腔算例,因为之前我们用过国内的超算平台,我也测试过这个算例。请问,你说的benchmark应该是哪些?是李老师在网站上提到的qDNS吗?还是别的什么?我不是很清楚,请教您一下。

    谢谢!

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

    单节点运行单步大约19秒,当采用两个节点时,单步11.5秒,并未提升明显。进一步增至3个节点时,计算反而减慢。

    1. 出一下具体的数据。单节点跑64核么,双节点128?3节点192?

    2. 每个算例要跑1000s左右,不能跑第一步看结果。

    第二个LES算例,2000万左右网格,在其他超算平台上测试过采用336核心大约只需要5-6秒,但是在我们自己的集群上我采用4-5个节点,最快都得20秒,明显跨节点通讯有问题。

    这个没法横向对比。可能别的集群本身就快。你只能自己测试自己集群的scale性能,类似这个:http://dyfluid.com/html/DMCmodel.html 目前你的scale确实不达标

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

    S 1 条回复 最后回复
  • L 离线
    L 离线
    lzf
    写于 最后由 编辑
    #8

    命令怎么写的

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

    @李东岳
    李老师,我是按照单节点64核,双节点128核,以此类推来测试的。目前主要测试的是空腔算例和我自己的LES算例。

    1. 空腔算例:1500万,icoFoam,我是一共运行了100步,平均计算每步运行时间。
      一个节点64核心:平均单步19.18s
      五个节点320核心:平均单步7.1s
      可以看到并行加速比明显未达到预期。我在超算平台上测试过128核心,采用完全相同的计算设置,平均单步6.65s
    2. LES算例,2000万,pisoFoam,同样运行了100个时间步。
      这个算例我仅仅测试了256核心和320核心,因为我之前计算的时候采用的就是300核心左右。
      我同时测试了每步跑满1000迭代步和最大迭代步设置为100迭代步的情况,以下是具体的数据:
      五个节点320核心,最慢平均每步26s,最快平均每步9.2s
      四个节点256核心,最慢平均每步29s,最快平均10.5s
      作为参考,在超算平台上,同样的算例,336核心,平均每步5s左右。

    所以很明显并行测试不达标,主要是因为我们在fluent里测试没有问题,主要问题就在于openFoam,所以目前不知道该怎么解决这个问题。

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

    @lzf
    你好,请问指的是什么命令?是提交任务的命令吗?
    command.png

    L X 2 条回复 最后回复
  • L 离线
    L 离线
    lzf
    在 中回复了 sjlouie91 最后由 编辑
    #11

    @sjlouie91 ofi换成dapl

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

    一个节点64核心:平均单步19.18s

    五个节点320核心:平均单步7.1s

    所以你期望的是有5倍的scale吧?5节点达到4s左右。

    我在超算平台上测试过128核心,采用完全相同的计算设置,平均单步6.65s

    这个比不了。硬件不一样。我们这样同样64核的计算速度都不一样。可能他们的CPU更暴力。不能这么比。你只能看你们自己这个机架式,能否达到你的scale预期。

    我建议你这么跑,对比总时间,而不是平均每步的时间,比如你把这个表格填一下:

    1500万,icoFoam
    1节点64核100步,总共 ___ 秒
    2节点128核100步,总共 ___ 秒
    3节点192核100步,总共 ___ 秒
    4节点256核100步,总共 ___ 秒
    5节点320核100步,总共 ___ 秒
    

    然后你看一下能否做到scale的线性。同样你还可以测试下:

    1500万,icoFoam
    1节点32核100步,总共 ___ 秒
    2节点64核100步,总共 ___ 秒
    3节点96核100步,总共 ___ 秒
    4节点128核100步,总共 ___ 秒
    5节点160核100步,总共 ___ 秒
    

    看一下能否做到scale的线性。

    另外你说的Fluent没问题。是什么没问题,能达到线性的scale,还事什么

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

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

    @李东岳
    好的,谢谢李老师,我先测试一下。

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

    @lzf
    好的,我试试。请问这个命令是会影响到并行效率吗?抱歉,我不太懂MPI相关命令

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

    @sjlouie91 会的,这方面李老师这边测过,dapl参数是最快的,另外你可以试一下hpcx的并行库。

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

    @lzf
    好的,感谢!

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

    @sjlouie91

    -genv FI_PROVIDER tcp

    这一条表示你指定使用 tcp 网络通信,所以很可能你的节点间通信就没用到 infiniband。

    建议先去掉 -genv FI_PROVIDER tcp ,这样mpi应该会默认选择一个可用且最快的选项。如果不行,那么参考
    https://www.intel.com/content/www/us/en/develop/documentation/mpi-developer-guide-linux/top/running-applications/fabrics-control/ofi-providers-support.html
    这里的说明选择一个跟你硬件匹配的 FI_PROVIDER。

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

    我在想他这面网卡设置这面,如果已经设定好了走infiniband,同样他还加这个参数-genv FI_PROVIDER tcp,这两个不是抵触了么?

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

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

    @李东岳
    请问这种有问题吗?
    -genv FI_PROVIDER mlx

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

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

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

    S 1 条回复 最后回复

  • 登录

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