Resource Monitor
我正在尝试通过Windows Server 2008 R2分析 HPC R 脚本的性能。
我曾提到过指导以获取有关 的 CPU 选项卡的更多信息Resource Monitor
,但我仍有一个问题。
根据 R 中检测核心和口碑的软件功能,该服务器(据称)有 24 个 CPU 核心。其中System Information
显示了 2 个处理器条目:
在 R 脚本中,我告诉函数使用比最大可用核心数少 2 个。我不太清楚系统信息中的Core(s)
和之间有什么区别Logical Processor(s)
,但显然 R 使用的“核心”一词的含义与这 24 个逻辑处理器有关。
有一个长时间运行的算法,目前应该利用 22 个(即 24 -2)CPU“核心”(或逻辑处理器)的 100%,这大约是最大 CPU 使用率的 92%。
但是,虽然正在使用的 22 个节点中的每一个节点的值都列在下面(4 * 22 = 88%)Resource Monitor
,但 CPU 使用率只有 43 - 45%。这是怎么回事?4
CPU
答案1
我不太清楚系统信息中的核心和逻辑处理器之间有什么区别
您有两个 Intel 处理器。每个芯片上都有 6 个物理核心。物理核心本质上是一个独立的 CPU 封装,您可以将多个核心塞进一个芯片中。此外,还启用了超线程,这是 Intel 的一项技术,允许一个物理核心同时执行两个线程。因此:
2 个 CPU,
每个 CPU 有 6 个核心,
= 总共12个物理核心。
超线程使操作系统看到的逻辑处理器数量增加了一倍,
= 总共 24 个逻辑处理器。
值得注意的是,超线程核心的性能不如物理核心。这取决于确切的工作负载,但超线程的性能比完整的物理核心低一定百分比。
尽管如此,操作系统还是能看到它们并平等对待它们。
至于为什么您的脚本无法充分利用您的处理能力,那是代码调试,我们必须能够看到脚本。或者,可能是 Rscript.exe 设置了某种亲和性,使其能够在某些 CPU 上进行调度?
没有更多信息就无法判断。
这些脚本会做什么?也许它们在等待其他资源(例如网络数据包或磁盘 I/O)时遇到瓶颈,这就是它们无法使 CPU 饱和的原因。问题是,CPU快速地。 CPU 几乎会等待计算机的任何其他部分。如果其他相关子系统无法跟上,您将无法最大限度地利用 CPU。