Matlab 只使用每个内核的一半

Matlab only using half of each core

我正在 运行在 4 核计算机上编写 matlab 代码。我正在使用 parfor 命令,所以正如预期的那样,matlab 使用 4 个内核来 运行 它。

但是,当我转到任务管理器时,我发现每个内核只使用了一半 - 即总共只有 CPU 的 50% 被 matlab 使用。

matlab 没有使用完整的 100% 有什么原因吗?

我不确定这个论坛是否适合解决这个问题。如果没有,请告诉我。

谢谢, V

最可能的解释是您打开了超线程。然后 Windows 会看到有 8 个内核而不是 4 个内核。如果您关闭超线程,我敢打赌您会看到它上升到 100%。

MATLAB 在任何情况下都没有真正受益于超线程(事实上,性能甚至可能有非常小的降低),所以如果您关心的是最大化 MATLAB 性能,您最好将其关闭。当然,如果您这样做,其他受益于超线程的应用程序(例如 Outlook 或 Word)可能会受到影响。

还有其他可能性 - 例如,CPU 以外的其他东西(例如文件 I/O,内存)可能是你应用程序的瓶颈 - 但如果你看到一致的 50 % 使用率,我敢打赌超线程是原因。