读书人

请问多核CPU与多线程CPU

发布时间: 2012-02-01 16:58:19 作者: rapoo

请教多核CPU与多线程CPU
现在的CPU很多的线程数是核心数的两倍。比如双核四线程。。

请教这种情况,,是开四个线程效率高,还是开两个效率高。。他是同时执行两个线程,还是四个线程。。

最近用IOCP。看看要建多少个线程数最好。。

[解决办法]
现在的CPU很多的线程数是核心数的两倍。比如双核四线程。。

一般是这样。还有一点就是,每个线程要执行4次以上。就是说如果只循环10次,也就最多用2个线程。

是开四个线程效率高,还是开两个效率高。

如果是很重要的代码,可能的实际测试下,才可靠。

任务调配也很重要。

我的经验:600万语句的字符处理任务,4核绑定4线程,每线程分配150万数据,需要8秒。

如果,每次给每线程分配50-100个任务,1秒完成。这应该与cache有关。

以上是数据处理。

如果是网络编程,涉及等待问题,可能得多开线程,而不是核的两倍。

[解决办法]
超线程,就是两个线程在同一时间的指令,如果使用的流水线单元不一样,则一个核可以同时处理。但理想情况总是较少的,所以比起真正的两个核心还是差得远。

双核超线程的四线程,大多数情况都不是四线程在真正的同时执行,不过同时执行四线程也不会有上下文切换就是了。

至于开多少个线程,3L分析得很清楚了,按核心数来建线程,如果你处理时有I/O之类的挂起操作,那个核心就在那里傻等没有工作了。

读书人网 >VC/MFC

热点推荐