能否选择最大程度优化 MATLAB 性能的计算机硬件?
125 views (last 30 days)
Show older comments
MathWorks Support Team
on 18 Jul 2014
Edited: MathWorks Support Team
on 19 Apr 2021
例如:
- 我想知道 RAM 的最低规格是什么
- 我想知道哪款处理器最好
- 我想知道哪个系统最好 -- UNIX、Windows
Accepted Answer
MathWorks Support Team
on 19 Apr 2021
Edited: MathWorks Support Team
on 19 Apr 2021
许多 MATLAB 用户需要优化 MATLAB 性能以在最短时间内完成所涉及的计算任务。显然,任何应用程序的性能都取决于系统资源的可用性。运行 MATLAB 时如伴有大量其他进程则会降低性能。
虽然我们不推荐采用哪种特定品牌的计算机硬件,但我们有一些系统要求,是 MATLAB 正常运行所必需的。有关 MATLAB 的系统要求的详细信息,请参阅下面的 URL:
本文档将解决哪种计算机硬件可帮助 MATLAB 达到最佳性能这一问题。
注意:在回答这个问题时,我们提出的只是相关建议而非绝对答案。除非您在特定配置上的 MATLAB 中运行执行了 BENCH 命令,否则不可能事先预测 MATLAB 的任何性能指标。一个应用程序可能占用很多内存,也可能大量使用中央处理单元 (CPU) 进行数值计算。您可以通过在 MATLAB 命令行窗口键入 BENCH 来测试系统基准。
还需要注意 MATLAB Accelerator,这是在 MATLAB 6.5 (R13) 中添加的性能增强功能,它在基于 x86 的处理器(如 Intel 和 AMD)上作用最显著。有关如何编写 MATLAB 代码以实现更高的性能的详细信息,可以在页面底部列出的相关解决方案中找到。
强烈建议您在购买一套配置前,先下载一个 MATLAB 试用版并在该配置上运行 BENCH 以帮助进行评估。不应完全靠 BENCH 来进行评估,但是,使用它确实有助于您大致了解对于一些常见的 MATLAB 应用程序计算机的性能如何。BENCH 中列出的系统是我们评估过的。可能有些新系统我们还没有评估,因此没有在表中列出。
另请注意,从 MATLAB 7.4 (R2007a) 开始,MATLAB 可以利用您的处理器的多线程处理能力。当执行冗长的逐元素操作时,这或许能提高性能。有关详细信息,请参阅文档的“MATLAB Multiprocessing”部分。
“多线程计算”示例对多线程处理的效果进行基准测试。此基准测试侧重于以下类别:
- LU:线性代数。
- FFT:计算。
- ODE:函数调用。
- Sparse:计算
- 2 维图形:
- 3 维图形:
下面是两组相关性。对于强列表,我们了解得很清楚,它们与性能变化密切相关。对于弱列表,我们了解得不是很清楚,它们对性能的影响通常较模糊。
I. 强相关:
--------------------------
1. 时钟速度和处理器系列:
可以从数学上计算性能,如下所示:
性能 = 时钟速率 / (CPU 指令数 * 每 CPU 指令的周期数)
分母中的变量是指令集、寻址模式和处理器组件的硬件实现的函数。
在一个处理器系列内,时钟速率越高性能越好。时钟速率越高性能变化率可能越小,因为其他系统参数(如主内存和总线速度等)开始发挥关键作用。所以,从 600MHz Pentium 转变为 1.1GHz Pentium 可能不会显示相应的性能变化。
一般来讲,不同微处理器系列的时钟速度不具可比性的。例如,许多 RISC 微处理器在每个时钟周期可以执行多个指令。这意味着,即使它们的时钟速率可能比那些每时钟周期执行更少指令的微处理器小,它们也可能在忙状态下执行更多工作。
2.其他必要硬件:
MATLAB 应用程序的速度受制于所涉及的最慢硬件组件的速度,例如读取数据进行实时仿真的数据采集卡,或者即时显示结果的显卡。为了使 MATLAB 显卡发挥最大性能,请使用您负担得起的最快显卡,以及尽可能多地在硬件中实现 OpenGL 的卡。
3.足够的主内存 (RAM):
增加的 RAM 超过 MATLAB 的需要量显然只会对性能产生微不足道的影响,因为您需要多少内存由工作集大小来决定,而且不同应用程序的需要差别悬殊。另外,伴随 MATLAB 在同一系统上运行的其他应用程序使用内存情况也不尽相同。我们建议对于 Windows 系统,RAM 最低为 1024 MB。请参阅上面提到的系统要求页面。以什么速度访问 RAM 也是一个重要因素。
您可能还需要查看《技术支持指南》中的“内存管理”,以便更好地理解 MATLAB 如何使用内存:
II.微弱的关联:
--------------------------------------------
1.处理器数:
因为 MATLAB 代码执行不是多线程的,所以添加处理器可能不会改变性能。但是,如果您有许多应用程序在计算机上运行,那么拥有多个处理器可以大大提高系统的吞吐量。
2.系统总线带宽:
这是一个难以评估的领域。如果由于大型数据集内存分页,或者由于支持数据库操作的文件 I/O 操作而导致您在主内存中移进移出大量数据,它就变得至关重要了。
3.缓存内存量:
缓存内存虽然快,但很昂贵,因此通常作用有限。每当缓存内存耗尽时,较为便宜但速度较慢的 RAM 变为活动状态。
如果不仔细地进行基础测试,这也很难评估。除非明确了特殊需要,否则系统通常会附带足够量的缓存内存供许多常见应用程序使用。
最后,您可以考虑在新闻组 (comp.soft-sys.matlab) 中张贴消息。这是一个基于用户的 MATLAB 新闻组,每天有成千上万人在上面浏览。很可能别人也曾遇到过和您同样的问题。
您还可以登录以下 MATLAB Central 网站访问该新闻组:
0 Comments
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!