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

    学到了,李老师,这我还是第一次知道。我一直以为单机多核的并行效率不会低于80%呢。

    1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 李东岳 最后由 编辑
    #6

    @李东岳 但是我这个测试时间只是高斯赛德尔求解矩阵方程的时间,理论上是完全并行的,这种情况下这样的效率也是可以接受的吗

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

    效率可以接受。单机都这样。

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

    W 2 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 李东岳 最后由 编辑
    #8

    @李东岳 了解了,多谢李老师解惑

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

    @李东岳 李老师,我工作站的配置如下,内存会对性能有影响吗
    7da35ca7-b347-433d-977e-316b0f322f48-0138914eb81df573d072f8ccabc6cd4.jpg

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

    看起来是的,插满比较好

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

    W 1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 李东岳 最后由 编辑
    #11

    @李东岳 好的,多谢李老师

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

    下载一个gotop二进制文件。github上有。跑代码的时候再开一个终端看gotop的各项指标,哪个满了就是哪个卡脖子🤣🤣🤣

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

    W 1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 bestucan 最后由 编辑
    #13

    @bestucan 多谢老师,安装您说的这个软件监测了一下,用的2000万网格测得,也没看懂哪里受限了。
    2870a2ce-4864-47b4-88fa-2922193f859e-image.png

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 w352405196 最后由 编辑
    #14

    @w352405196 CPU呀,都顶到100%了。

    硬盘读写都为0,说明硬盘没限制速度。

    还有不小的上传下载流量。这个计算是跨节点的?

    进程gs_test只占用60%左右,cpu都能顶到100%。这是还有些进程因为权限没显示出来。

    可能和网络通信有关

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

    W 1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 bestucan 最后由 编辑
    #15

    @bestucan 多谢老师回复。这台工作站两个cpu,跨cpu线程计算的,不知道跟上传下载流量有关没,还是因为我这边是远程网络连接导致的。

    我在指定跨cpu的线程计算时,如8和16线程,cpu很大概率上会有线程闲置或者无法满负荷运行,极少的情况下会100%运行,该情况下效率比较高;如果指定的是单cpu的线程时都是满负荷运行,但是在核数较多时效率反而较低,比如说32核。

    如果是内存带宽受限的话,会体现在那个数据上呢,多谢老师解惑

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 w352405196 最后由 编辑
    #16

    @w352405196 两个CPU呀,那要考虑主板总线带宽的影响了。

    线程开的越多,CPU交换数据越频繁。总线堵了,速度可不是上不去了。

    CPU和内存交换数据也是要通过总线的。所以,程序即使往硬盘读写不频繁。但是计算一定要从内存读指令和数据的。所以,可以查查你的主板型号,看看它的总线对多CPU或者说高性能计算的支持怎么样

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

    W 1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 bestucan 最后由 编辑
    #17

    @bestucan 老师,该主板型号如下所示。我这边测试,在大网格量线程数较多时如32核跨cpu计算效率比单cpu更高,但在核数较少如8核的情况下单cpu更好。感觉跟正常理解不太一样,按理说单cpu计算性能更高才对

    3c2b7a1b-f5ae-4493-beab-509562d0bb01-image.png

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 w352405196 最后由 编辑
    #18

    @w352405196 对于单个CPU而言,所有的核都用上,不会是最快的,但是慢多少说不清楚。

    因为还要留几个核做些调度工作,(往底层说是芯片上任务分支判断、多任务切换上下文转换、堆栈策略什么的,往系统上说是系统本身有些服务进程一直在后台运行)

    32核跨CPU效率高。可以解释为,对于单个CPU而言,满载32个核都用来任务,还得时不时停下任务做些任务调度工作,所以慢些。分到两个CPU。每个CPU。一半核用于调度工作,一半核用于计算任务。快些也合理。

    当8核的时候。无论是单个CPU还是两个CPU运行,都会有一部分核空闲用于随时的任务调度工作。所以,分到两个CPU上反而慢一些。因为CPU间通信会耗时一些。两个CPU互相不知道对方的工作状态,不如单个CPU统一调度效率高。这个现象也可以理解。

    如果把计算任务理解成打仗。不能让所有人都上战场(所有核用于计算),得留几个人搞后勤支援。否则,就得有些人一会披上铠甲打仗,一边系着围裙搞后勤。后勤保障不上,拖慢整体进度。相比于整体进度拖慢,做后勤的那个核因为做后勤而降低的打仗效率反而不重要了。


    而且,核多不一定快。
    核越多,核间通信的时间成本越大,核间任务调度算法越麻烦,调度效率也越低(总是难免核间互相等待对方的结果才能继续自己的)。

    如果横轴表示计算用的CPU核数量,纵轴表示计算用时,那应该是两头高,中间低。

    影响的因素很多,得具体分析瓶颈在哪里。

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

    W 1 条回复 最后回复
  • W 离线
    W 离线
    w352405196
    在 中回复了 bestucan 最后由 编辑
    #19

    @bestucan 好的,多谢老师解惑,我再好好找找原因

    1 条回复 最后回复

  • 登录

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