我得到的混合信号是否有多个线程执行相同的CPU绑定例程(当然,每个线程都通过不同的数据翻动)是有意义的。使用CPU绑定例程的多线程?
如果你是CPU绑定,你已经对处理器征税了,对吧?为什么添加额外的CPU工作是有意义的呢?是否应该尝试将CPU绑定线程的数量与内核匹配?
单核机器的情况如何?多线程的CPU绑定操作是否有意义?
在此先感谢。
我得到的混合信号是否有多个线程执行相同的CPU绑定例程(当然,每个线程都通过不同的数据翻动)是有意义的。使用CPU绑定例程的多线程?
如果你是CPU绑定,你已经对处理器征税了,对吧?为什么添加额外的CPU工作是有意义的呢?是否应该尝试将CPU绑定线程的数量与内核匹配?
单核机器的情况如何?多线程的CPU绑定操作是否有意义?
在此先感谢。
如果你是CPU绑定,你已经对处理器征税了,对吧?为什么添加额外的CPU工作是有意义的呢?是否应该尝试将CPU绑定线程的数量与内核匹配?
是的,这基本上是这个想法。如果你的算法是CPU绑定的,它将绑定一个处理核心。如果系统中有4个,使用全部4个可以显着提高整体吞吐量。如果没有多个线程,您将只使用单个内核来处理数据。
单核心机器的情况如何?多线程的CPU绑定操作是否有意义?
它可以,但通常只有当它不是纯粹 CPU绑定。如果您的例程完全受CPU限制,那么通常每个内核不要超过1个线程。但是,如果算法的某些部分具有其他特征并受其他事物约束,则该部分可能会受益于整个例程都是线程化的。
谢谢你这个好的答案。 – jglouie
多线程一个CPU绑定例程的意义与它所能做到的一样。 – Mysticial