1

我在 Windows 7 下使用 MATLAB 2012a,我正在执行一些密集的代码,我的意思是在内存使用和处理时间方面密集,但是,代码在 Windows 上运行良好。现在,我将操作系统更改为 ubuntu 12.04,并安装了 Matlab 2013a。使用的内存量比在 Windows 中的方式要少得多,但是 matlab 执行相同代码所花费的时间非常高 - 非常高。

我需要提一下,我的代码不包含任何可能花费如此大量时间的内容,除了带有符号替换的稀疏语句作为参数之一,如下所示

K=zeros(Np,Np);

for i=1:ord
K=K+sparse(t(1:ord,:),repmat(t(i,:),ord,1),double(subs(Kv(:,i),Arg(Kv,1,1,6),Arg(Kv,1,2,6))),Np,Np);
end

注意:Kv 是一个符号矩阵,Arg 是一个提供 OLD 和 NEW 的函数,它取决于许多全局变量。

我觉得我错过了向 ubuntu 添加一些可能有助于加速 Matlab 代码执行的东西。有任何想法吗 ?

4

2 回答 2

1

我在 Windows 上遇到了类似的问题,但我相信解决方案在 Ubuntu LTS 上是相同的。因此,如果您增加 Matlab 的 Java 堆内存,Matlab 会从您的系统中消耗更多内存,但速度会更快。

为此,请转到:File->preferences->General->Java Heap Memory 并增加到最大值。默认值为128,太少了。

于 2013-08-01T16:20:47.107 回答
0

如果堆内存限制不能解决问题,请尝试增加 matlab 进程。

先启动matlab,然后做

ps aux|grep MATLAB

在我的情况下,结果是:

comtom    9769 28.2 19.8 4360632 761808 tty2   S<l+ 14:00   1:50 /usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/glnxa64/MATLAB -desktop

查看第一个数字(PID)。然后将它与命令 renice 一起使用来更改进程优先级:

renice -3 -p 9769

而已。GUI 非常慢,因为它是针对过时的 Xorg 库构建的。因此更改优先级会有所帮助,您可能会注意到一些 gnome 效果的撕裂,但 matlab 的界面会更好地工作。

于 2016-07-04T17:13:53.300 回答