windows - 使用不同数量的多核 worker 时的不同行为

标签 windows r multicore

我正在研究我的程序(尝试对一些部分进行多核处理),我注意到“CPU 历史记录”看起来有点不同,这取决于我启动了多少个 worker。 2-4 个 worker 似乎产生了一个“稳定”的工作流程,但是固定 5-8 个 worker 会产生不稳定的行为(从零到最大,见图片)。我应该指出,所有运行都以“平滑”的最大容量开始(例如,只有 25% 的 2 个内核),并且仅在一分钟左右后才开始表现出不稳定的行为。 这是怎么回事?我有 4 核处理器,你认为这种行为可能与这个事实有关吗?

我希望你能看到这些照片。

2名 worker 2 workers

3名 worker 3 workers

4个 worker 4 workers

5 名 worker 5 workers

6名 worker 6 workers

7个 worker 7 workers

8名 worker 8 workers

最佳答案

这是具有超线程的四核上的经典行为。 R 不会从超线程中获益,因为它通常使用完整的核心进行计算。因此,如果一个物理处理器进行 2 个逻辑 1,则处理器必须在两个线程之间连续切换,这就解释了模式。

对于 R,我推迟了计算机上的超线程。相反,它只是无济于事。当像 R 通常那样只使用一个线程时,您会损失容量(最大值为 12.5% 而不是 25%)。

关于windows - 使用不同数量的多核 worker 时的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547831/

相关文章:

r - 涉及数字 (0) 值的加法

r - 在knitr中使用webshot

multithreading - 使用多核解决迷宫?

operating-system - 什么是 "Logical CPU Core"

windows - Chef 12 中的默认 SSL 验证如何在 Windows 节点上工作?

c++ - Windows 中的 DJI OSDK

r - 用于构建变量名称的 Dplyr Tidyyeval

multicore - 如何在 Ocaml 中使用多核进行蒙特卡罗模拟?

c++ - VirtualAlloc 的困惑 - 它只适用于页面吗?

java - 使用服务器 ip 而不是字母获取路径