如何对所有并行工作的 MATLAB 会话强制使用 100% 的 CPU



我有 9 个 Matlab 作业,我想从我的 Mac 终端使用 Matlab 运行(MAC OS X 10.8.5 2*2.4GHz 6 核英特尔至强)。

所以我在终端中打开了 9 个选项卡,在每个选项卡中我使用以下命令打开一个 Matlab 会话:

//Applications/MATLAB_R2014b.app/bin/matlab -nodesktop

然后在每个 Matlab 会话中,我都会启动我的程序(它不会 - 也不能 - 使用 parfor)。作业将运行。

但是当我在终端窗口中做一个顶部时,我发现 Matlab 会话只使用了 1% 到 45% 的 CPU(我假设有 12 个内核!

知道问题可能是什么吗?我可以强加一定比例的 CPU 使用率吗?

我试图使用

sudo renice -19 -p <PID number>

但它似乎不起作用(即使将 -19 更改为 0 或 +19)。

感谢您的帮助;)

正如@Olivier所写,只有当你的程序实际上是CPU密集型的时,你才会看到100%的负载。如果它从磁盘读取数据和/或处理大型矩阵,则它可能受 IO 限制。

例如一个简单的循环,如

>> for i = 1:1000000000000; i=i+1;end

应最大化 CPU 使用率

15627 user       20   0 7161m 618m 110m S 102.0  0.4   2:44.14 MATLAB 

因此,您可以使用它并查看一个实例的 CPU 使用率是否达到 100%。如果是这样,则意味着您的代码不受 CPU 限制,您可能希望在内存允许的情况下同时尝试运行更多 Matlab 实例。如果没有,则应检查配置并查找此行为的原因。

最新更新