我正在研究我的程序(尝试对一些部分进行多核处理),我注意到“CPU 历史记录”看起来有点不同,这取决于我启动了多少个 worker。 2-4 个 worker 似乎产生了一个“稳定”的工作流程,但是固定 5-8 个 worker 会产生不稳定的行为(从零到最大,见图片)。我应该指出,所有运行都以“平滑”的最大容量开始(例如,只有 25% 的 2 个内核),并且仅在一分钟左右后才开始表现出不稳定的行为。 这是怎么回事?我有 4 核处理器,你认为这种行为可能与这个事实有关吗?
我希望你能看到这些照片。
2名 worker
3名 worker
4个 worker
5 名 worker
6名 worker
7个 worker
8名 worker
最佳答案
这是具有超线程的四核上的经典行为。 R 不会从超线程中获益,因为它通常使用完整的核心进行计算。因此,如果一个物理处理器进行 2 个逻辑 1,则处理器必须在两个线程之间连续切换,这就解释了模式。
对于 R,我推迟了计算机上的超线程。相反,它只是无济于事。当像 R 通常那样只使用一个线程时,您会损失容量(最大值为 12.5% 而不是 25%)。
关于windows - 使用不同数量的多核 worker 时的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547831/