Q9400为何难以100%全速运行

采用基于正域的约简。

数据:Ticdata2000 记录数:5822 条件属性:85

结果:

1、 Core i7 3632QM 4四核八线程 2.2G 动态加速3.2G 0.516s

2、 Core i3 2100 双核四线程 3.1G 0.813s

3、 Pentium 4 530 超线程关闭 3G 5.625s

4、 Core 2 Quad Q9400 四核四线程 2.66G 2.68s

 

无论数据集大小,Sandy Bridge及以后的CPU都能全速运行。

 

而对Q9400这类CPU来讲:

1、  对中小数据量(10MB以下),  即便发起64个线程,CPU利用率也只能60%-70%;  线程数低的时候,CPU利用率基本在40%左右。

2、  对于数据量大的测试集,16个线程甚至8个就足以保持开工率平均95%。  所以我的结论是:Q9400配套的内存系统太慢了。

 

因为存储器慢,所以CPU无事可做,发起更多线程也只能部分缓解这种情况。 对于大数据集来讲,数据有着更强的局部性,弥补了存储器慢的缺点。

 

想更进一步,就要做更细致的跟踪和代码调整,联想到Bloomfield以来的intel CPU全系列集成内存控制器,那就先这么认为吧。

这个问题也可以利用 Vtune进行进一步跟踪

你可能感兴趣的:(400)