CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFOAM并行计算中,物理核心数与线程的关系

    OpenFOAM
    3
    5
    1938
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • M
      Mr.Shan 最后由 编辑

      各位老师,我想问个问题,目前,我有一台服务器计算资源,计算规模为256核心,512线程。在OpenFOAM的并行计算中,最多是可以256核心数并行。从性能监视器中可以看出,cpu并没有全部参与计算,大约有一半的cpu在进行计算,所以,这是不是说明,256核心并行时,并没有启用全部的线程,只使用了256个线程?我如何让512个线程同时工作呢?谢谢各位老师

      队长别开枪 1 条回复 最后回复 回复 引用
      • 队长别开枪
        队长别开枪 教授 @Mr.Shan 最后由 编辑

        @Mr-Shan 数值计算不要超过物理核心数,虽然你看到有一半线程空闲,但是没啥球用的,都用了效率反而下降。

        M 1 条回复 最后回复 回复 引用
        • M
          Mr.Shan @队长别开枪 最后由 编辑

          @队长别开枪 为什么超线程没有用呢?这和我的认知有点不一样啊:xinlei:

          队长别开枪 1 条回复 最后回复 回复 引用
          • W
            wwzhao 教授 最后由 编辑

            高性能计算一般都会在BIOS中关闭超线程,以物理核心数为准。

            1 条回复 最后回复 回复 引用
            • 队长别开枪
              队长别开枪 教授 @Mr.Shan 最后由 编辑

              @Mr-Shan 怎么说呢,貌似是说超线程技术可以使单个物理核心执行多个控制流程,会使操作系统认为核心数目是实际物理核心数的两倍,对于非计算密集型程序性能提升很明显,不过不幸的是一个物理核心内部处理浮点运算的组件只有一套,可以被两个线程共享,所以其中一个在执行浮点运算的时候另外一个必须等待,就好比八车道高速只设置了四个收费站,每两个车道共享一个,肯定堵啊,还不如关掉四个,还能省下线程调度,I/O的额外开销。这是我个人的理解。不过也不要在BIOS里关闭超线程,可以跑并行的时候额外看个小电影,不然真的卡死。
              :chigua:
              参考资料:https://blog.csdn.net/xlinsist/article/details/54562571, http://bbs.keinsci.com/thread-2105-1-1.html

              1 条回复 最后回复 回复 引用
              • First post
                Last post