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