计算化学公社

 找回密码 Forget password
 注册 Register

CPU(带HT) 一半线程 vs 100%使用 效率实测

查看数: 14564 | 评论数: 15 | 收藏 Add to favorites 5
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-11-13 05:12

正文摘要:

本帖最后由 liyuanhe211 于 2017-2-6 14:28 编辑 曾有谣传说做计算应当在BIOS中关闭HyperThread(超线程),Sob已经辟谣: 从结果可见,E5-2643上使用2N个核的效率稍高10%~15%左右;E5-2680视进程不同 ...

回复 Reply

ggdh 发表于 Post on 2017-2-7 09:52:33
yjcmwgk 发表于 2017-2-7 08:17
40核?难道你买了E5-2698v4双路服务器?出个评测呗~

小卒,已经测过。而且还引用了你的大作。。。
http://bbs.keinsci.com/forum.php?mod=viewthread&tid=4841
yjcmwgk 发表于 Post on 2017-2-7 08:17:14
ggdh 发表于 2017-2-6 14:17
面对越来越胖的节点。这个问题值得研究。
比如我有一个40核的cpu。同时我有1000个任务。
那么是每个任 ...

40核?难道你买了E5-2698v4双路服务器?出个评测呗~
ggdh 发表于 Post on 2017-2-6 14:17:33
卡开发发 发表于 2015-11-14 00:58
不好说,下次可以找找原因,比如全部限制Turbo。

面对越来越胖的节点。这个问题值得研究。
比如我有一个40核的cpu。同时我有1000个任务。
那么是每个任务设多少个核能够最快的算完呢?
cdh1075 发表于 Post on 2017-2-6 13:25:57
cpu使用时间和cpu寿命之间毫无影响,除非你想一个cpu用10年
liyuanhe211 发表于 Post on 2016-1-2 13:44:24
yjcmwgk 发表于 2016-1-2 11:41
这么一来岂不是说,开不开超线程简直无所谓了吗?无论是提高10%还是损失4%,都在可接受范围内呢。{:5_117 ...

测试是开了超线程,但是只用了一半的逻辑核心,不知道直接BIOS里关掉会是什么结果。
确实是,没有排队系统又有不自觉的确实没招。不过就算是关了超线程,没排队 CPU 100%照样有不自觉的能提交。
yjcmwgk 发表于 Post on 2016-1-2 11:41:36
本帖最后由 yjcmwgk 于 2016-1-2 11:45 编辑
liyuanhe211 发表于 2015-11-14 00:19
You completely miss my point. 或许我说的不够明白
你这样测出来的是Gaussian在N线程和2N线程的并行效 ...

这么一来岂不是说,开不开超线程简直无所谓了吗?无论是提高10%还是损失4%,都在可接受范围内呢。
考虑其他方面:
(1)自己私用的服务器,或者有排队系统的公用服务器,那就打开超线程好了,电脑一边干重活儿,那些逻辑核心还能跑个小小轻活儿;
(2)没有排队系统的公用服务器,一定要关掉超线程吧,免得某些人看到CPU利用率只有50%就兴冲冲又提交了更多任务。

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
sobereva + 1

查看全部评分 View all ratings

卡开发发 发表于 Post on 2015-11-14 00:58:13
liyuanhe211 发表于 2015-11-14 00:20
你这个现象是不是因为CPU只用一半核心的时候可以Turbo到更高的频率(和满载相比)?

不好说,下次可以找找原因,比如全部限制Turbo。
liyuanhe211 发表于 Post on 2015-11-14 00:20:45
卡开发发 发表于 2015-11-13 23:47
以前不开超线程的时候这样干过,两个任务如果各自使用N/2核心总共使用N个核心,比一个任务单独使用N/2核 ...

你这个现象是不是因为CPU只用一半核心的时候可以Turbo到更高的频率(和满载相比)?
liyuanhe211 发表于 Post on 2015-11-14 00:19:02
本帖最后由 liyuanhe211 于 2015-11-14 00:24 编辑
smutao 发表于 2015-11-13 23:26
我的意思是当你只用N的线程的时候,CPU并没有像用2N个线程时那样100%工作着。但是当你跑了2个相同的任务 ...

You completely miss my point. 或许我说的不够明白
你这样测出来的是Gaussian在N线程和2N线程的并行效率,我并不想测这个数值,这个数值别人已经测过了。
我想测试的就是CPU只跑N个线程(表观50%)和跑2N的线程(100%)时的CPU性能差异

因为超线程把一个物理核心变成了两个逻辑线程以压榨剩余资源,但满载时被分配在同一个核心上的两个线程会抢资源,可能因为来回Switch任务,没榨出资源反而效率降低了。

我就是想测试CPU在满载时,使用100%比使用50%时有多大的提高(根据上述推测,应该远小于2),所以做了这个测试,结果是大概110%~115% for E5-2643,也就是用超线程在E5-2643上榨出了10%,而E5-2680是96%,说明资源没榨出来,反而损失了4%。

用Gaussian只不过是一种把CPU塞满的方法,而且又有一定得实用性而已。

卡开发发 发表于 Post on 2015-11-13 23:47:28
smutao 发表于 2015-11-13 23:26
我的意思是当你只用N的线程的时候,CPU并没有像用2N个线程时那样100%工作着。但是当你跑了2个相同的任务 ...

以前不开超线程的时候这样干过,两个任务如果各自使用N/2核心总共使用N个核心,比一个任务单独使用N/2核心还慢。开超线程是怎么个情况我还真不知道呢
smutao 发表于 Post on 2015-11-13 23:26:58
liyuanhe211 发表于 2015-11-13 16:47
用2*6和2*12比较就不能单纯的测量CPU性能的差异,而是掺入了Gaussian并行效率的因素,换个软件可能差别很 ...

我的意思是当你只用N的线程的时候,CPU并没有像用2N个线程时那样100%工作着。但是当你跑了2个相同的任务,每个任务占N线程的时候,CPU就100%工作了,这个结果也许可以和2N的情况比较。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
卡开发发 + 5 我很赞同

查看全部评分 View all ratings

liyuanhe211 发表于 Post on 2015-11-13 16:47:16
smutao 发表于 2015-11-13 06:01
如果单个任务用N个线程的时候,可以同时跑2个相同的任务(控制变量),这样的话更有可比性。

用2*6和2*12比较就不能单纯的测量CPU性能的差异,而是掺入了Gaussian并行效率的因素,换个软件可能差别很大。

Gaussian并行效率已经有人测试过了,如果需要2*6和2*12比较的结果,只需要在我测出的当前的数值上乘以Gaussian在6线程和12线程的并行效率的比值就可以了。
liyuanhe211 发表于 Post on 2015-11-13 13:35:44
本帖最后由 liyuanhe211 于 2015-11-13 16:45 编辑
smutao 发表于 2015-11-13 06:01
如果单个任务用N个线程的时候,可以同时跑2个相同的任务(控制变量),这样的话更有可比性。

没明白什么意思,你是觉得应当2*6和2*12比,不是1*12.和2*12比吗?我觉得这样反而没控制变量。
sobereva 发表于 Post on 2015-11-13 06:29:52
很有益的测试。
图片大小只能在传图之前缩放合适。(仅当超过论坛最大宽度的时候才会缩到最大宽度)

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 15:26 , Processed in 0.189645 second(s), 27 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list