本帖最后由 automation 于 2013-3-18 19:05 编辑
请教楼主一个和可能超线程有关现象。
我写了1个科学计算的程序,需要进行数万个计算任务(比如矩阵乘啥的),用openMP for在任务级进行并行,但是如果设置线程数恰好等于超线程数(比如在双路E5的工作站 设置成32,或者在i7的笔记本上设置成8),程序非常卡,每个任务完成时间不一,总时间也明显慢。
但是如果设置成超线程数-1(31和7),就非常流畅,每个任务完成时间相近而且很快,总时间也短不少,而且任务管理器里显示CPU占用还是基本满载而不是7/8。
请问,能推测下算得慢是超线程的问题么?还是缓存冲突? |