OpenFOAM并行计算中,物理核心数与线程的关系
-
各位老师,我想问个问题,目前,我有一台服务器计算资源,计算规模为256核心,512线程。在OpenFOAM的并行计算中,最多是可以256核心数并行。从性能监视器中可以看出,cpu并没有全部参与计算,大约有一半的cpu在进行计算,所以,这是不是说明,256核心并行时,并没有启用全部的线程,只使用了256个线程?我如何让512个线程同时工作呢?谢谢各位老师
-
@Mr-Shan 怎么说呢,貌似是说超线程技术可以使单个物理核心执行多个控制流程,会使操作系统认为核心数目是实际物理核心数的两倍,对于非计算密集型程序性能提升很明显,不过不幸的是一个物理核心内部处理浮点运算的组件只有一套,可以被两个线程共享,所以其中一个在执行浮点运算的时候另外一个必须等待,就好比八车道高速只设置了四个收费站,每两个车道共享一个,肯定堵啊,还不如关掉四个,还能省下线程调度,I/O的额外开销。这是我个人的理解。不过也不要在BIOS里关闭超线程,可以跑并行的时候额外看个小电影,不然真的卡死。
参考资料:https://blog.csdn.net/xlinsist/article/details/54562571
,http://bbs.keinsci.com/thread-2105-1-1.html
2019年1月24日 11:35
3/5
2019年1月25日 08:15