2013-10-27 44 views
2

所以我正在运行一个cpu密集型任务,在我的i7笔记本上没有并行化。超线程和CPU绑定进程

KSysGuard报告我正在使用12.5%的可用cpu。

如果我禁用超线程我可能会得到一个有意义的性能增加?这将需要快擦写新的BIOS,所以我想发表意见之前,我太参与的想法...

感谢,

ň

回答

5

你的任务是利用所有的单核的,不是一个的12.5%。 12.5%是1/8 - 你的超线程四核处理器拥有8个硬件线程中的一个。如果你禁用超线程,你将只有四个硬件线程,所以你的工具将报告25%的使用率 - 但你的任务不会更快完成。

如果您想使用更多的处理器,请尝试对作业进行并行处理。

+0

要清楚,我认为这是利用现有的4个核的12.5%,即一半核心,不是我的CPU四分之一的八分之一。这真的是效率低下:) –

+0

@ N.McA:是的。工具通常报告硬件线程加载的方式有点误导。 12.5%,当启用HT时,意味着你正在使用一个核心必须提供给一个软件线程。 HT的出现是因为Intel意识到一个被加载的内核可以做更多的工作,可能是25%,但是直到加载其他内核才会起​​作用。 –

0

我相信超线程方式的工作原理是,当运行单线程时,平均而言,核心流水线中只有一半可用阶段正在使用中。 HT试图“交织”两个线程以提高CPU利用率。

这确实意味着两个线程中的每一个线程运行速度可能会比其他线程慢,因为它们必须等待另一个线程,同时提高给定内核的整体吞吐量。不过,如果你的而不是在负载下运行,我想说“花生画廊”不太可能在忙于核心而不是无所事事的核心上安排。

(当然,这是现代CISC的性能,这是很难说根据theorethical分析肯定的东西)