为什么进程在具有双核的计算机上使用超过两倍的CPU资源?

问题描述 投票:-1回答:2

我希望有人可以在这里向我指出正确的方向,以便我可以对此有所了解。

我们在使用约78%CPU的iMac Pro 8核计算机上运行一个进程。

[当我们在新的Mac Pro 16核计算机上运行相同的过程时,它将使用约176%的CPU。

可能会有什么原因?我们希望额外的内核可以让我们同时运行更多的进程,但是如果每个内核占用的CPU资源都超过一倍,那么这肯定意味着我们将能够在新计算机上运行更少的进程?

关于架构,我肯定缺少一些明显的东西。有人可以帮忙吗?我知道我还没有包含任何代码示例,我是从更一般的意义上询问可能导致这种情况的方案。

multithreading macos cpu multicore
2个回答
0
投票

我怀疑CPU线程管理器尝试使用尽可能多的CPU。如果有更多需要CPU时间的进程,则每个周期将更节省地共享。大概您的任务在新Mac上的运行速度相应地更快了?


0
投票

较高的CPU使用率只是表明它能够使用更多的硬件。没关系。您应该期望它在较短的时间内使用该硬件,因此应该在相同的总体时间内完成更多工作。

关于原因,它完全取决于代码。一些代码根据内核数量决定使用多少个线程。如果存在非CPU瓶颈(例如硬盘驱动器或GPU),则更快的系统可能会使进程花费更多时间进行计算,而等待非CPU资源的时间更少,这将表现为CPU利用率更高,并且吞吐量也更快。

如果您的实际目标是拥有更多的流程而不是更多的吞吐量(这可能是一个非常合理的目标),那么即使有可用资源,也需要调整流程以使用更少的资源。如何做到这一点完全取决于代码。是否需要这样做取决于在多个进程之间存在争用时测试系统的行为。在许多系统中,它会自行处理。如果没有问题,那就没有问题。更高或更低的CPU利用率本身并不是问题。这取决于系统,瓶颈所在以及您要优化的内容。

© www.soinside.com 2019 - 2024. All rights reserved.