6

让多个线程执行相同的 CPU 绑定例程是否有意义(当然,每个线程都在处理不同的数据),我得到了混合的信号。

如果您受 CPU 限制,那么您已经对处理器征税了,对吧?那么为什么添加额外的 CPU 工作有意义呢?您是否应该尝试将受 CPU 限制的线程数与内核数相匹配?

单核机的情况呢。多线程 CPU 绑定操作是否有意义?

提前致谢。

4

1 回答 1

16

如果您受 CPU 限制,那么您已经对处理器征税了,对吧?那么为什么添加额外的 CPU 工作有意义呢?您是否应该尝试将受 CPU 限制的线程数与内核数相匹配?

是的,这基本上是这个想法。如果您的算法受 CPU 限制,它将占用一个处理核心。如果您的系统中有 4 个,则使用全部 4 个可以显着提高整体吞吐量。如果没有多个线程,您将只能使用一个内核来处理您的数据。

单核机的情况呢。多线程 CPU 绑定操作是否有意义?

它可以,但通常只有在它不是纯粹受 CPU 限制的情况下。如果您的例程完全受 CPU 限制,您通常希望每个内核不超过 1 个线程。但是,如果您的算法的某些部分具有其他特征,并且受其他事物的约束,则该部分有时可以从整个例程线程化中受益。

于 2012-06-11T18:14:57.453 回答