如何减少MATLAB中大型计算所需的时间

时间:2014-03-16 04:17:05

标签: performance matlab

在我的大学使用台式电脑时(有4Gb的RAM),Matlab的计算速度相当快,但在我的笔记本电脑上(也有4Gb的ram),完全相同的计算需要很长时间。我的笔记本电脑更加现代化,所以我认为它的时钟速度与台式机相似。

例如,我编写了一个程序,用于计算500个点处50个磁盘所对应的立体角。在台式电脑上,这个计算大约需要15秒,在我的笔记本电脑上需要大约5分钟。

有没有办法减少执行这些计算所需的时间?例如,我可以为MATLAB分配更多ram,还是可以通过优化使用MATLAB的方式启动我的PC?我认为如果我的笔记本电脑上的处理器也在进行计算以运行其他程序,这将减慢MATLAB的计算速度。我关闭了所有其他应用程序,但我知道可能有很多东西正在发生,我无法看到。我可以将我的笔记本电脑启动,以便在后台进行更少的这些工作吗?

我无法修改代码以提高效率。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以运行我的一些基准测试,以及示例结果,可以通过以下方式找到:

http://www.roylongbottom.org.uk/

在特定时间点使用的CPU核心在Pentiums,Celerons,Core 2s,Xeons等上是相同的。唯一的区别是L2 / L3高速缓存大小和外部存储器总线速度。因此,您可以将大多数结果与类似的老式2 GHz CPU进行比较。除了简单的数字运算测试外,还有其他的尝试。

1 - 尝试进行内存测试,例如我的BusSpeed,以显示正在使用缓存并且RAM没有死慢。

2 - 假设Windows,检查违规程序是否是在任务管理器中占用最多CPU时间的程序,以及程序未运行时,CPU利用率大约为零。

3 - 检查CPU温度是否过高,如SpeedFan(免费D / L)。

4 - 如果磁盘指示灯闪烁,可能正在使用太多RAM,其中一些正在进行交换。任务管理器性能会显示这一点。在我的一些可靠性测试中可以检查增加RAM需求。

答案 1 :(得分:0)

除了RAM之外,计算能力还有很多。您提到处理器速度,但也有核心数,GPU功能等。像MATLAB这样的程序旨在利用并行性等功能。

总结:你不能只比较两台机器之间的RAM,并且希望知道它们之间的相互作用。

旁注:对于现代笔记本电脑来说,4 GB的内存不是很多。

答案 2 :(得分:0)

首先,您应该在两台计算机上执行CPU性能基准测试。

现代操作系统在笔记本电脑上运行时通常会应用最具侵略性的电源管理方案。这通常意味着关闭一个或多个内核,或将其设置为非常低的频率。例如,通常以2.0 GHz运行的四核CPU可以在一个CPU上降低到700 MHz,而其他三个基本上都处于休眠状态,而它处于电池供电状态。 (备注。数字取自一个真实的例子。)

操作系统以动态方式管理CPU频率,并按秒的顺序调整它。您将需要一个软件监视工具,它实际上每秒都要求CPU频率(没有繁忙的工作本身),以便知道是否是这种情况。

插入笔记本电脑将使操作系统使用不那么激进的电源管理方案。

(如果发现这与MATLAB无关,请"标记"此帖子和要求主持人将此问题移至超级用户网站。)