如何选择最能优化MATLAB性能的计算机硬件?

Mat*_*oug 22 matlab

例如:

  • 我想知道RAM的最低规格是什么

  • 我想知道哪个处理器最好

  • 我想知道什么系统最好,UNIX,Windows?

Mat*_*oug 20

许多MATLAB用户需要优化MATLAB的性能,以便在最短的时间内完成所涉及的计算任务.很明显,任何应用程序的性能都取决于系统资源的可用性.运行MATLAB以及许多其他过程会降低MATLAB的性能.

我不推荐特定品牌的计算机硬件,但有一些系统要求,MATLAB需要正常运行.有关MATLAB系统要求的更多信息,请参阅以下内容:

http://www.mathworks.com/support/sysreq/

http://www.mathworks.com/products/matlab/choosing_hardware.html

本文档将解决哪些计算机硬件将帮助MATLAB发挥最佳性能的问题.

注意:在回答这个问题时,我只能提出一些相关性,而不是绝对性.除非您在特定配置中实际在MATLAB中运行BENCH命令,否则无法事先预测MATLAB的任何性能指标.应用程序可能是内存密集型的,或者可能会大量使用中央处理单元(CPU)进行数值计算.您可以通过在MATLAB命令窗口中键入BENCH来对系统进行基准测试.

值得注意的是,MATLAB加速器(MATLAB 6.5(R13)中增加的性能增强功能在基于x86的处理器(如Intel和AMD)上运行最为显着.有关编写M​​ATLAB代码以获得性能的更多信息,请参见本页底部列出的相关解决方案.

在您购买下载试用版MATLAB并在该配置上运行BENCH以帮助您进行评估之前,强烈建议您购买.您不应该专门使用BENCH进行评估.但是,使用它可以帮助您初步了解一些常见MATLAB应用程序的机器性能.BENCH中列出的系统是已经评估过的系统.可能有新的系统尚未评估,因此不在列表中.

另请注意,从MATLAB 7.4(R2007a)开始,可以使MATLAB使用处理器的多线程功能.这可能会在执行冗长的逐元素操作时提高性能.有关详细信息,请参见文档的"MATLAB多处理"部分.

"多线程计算"示例基准测试了多线程的效果.本基准中关注的类别包括: - LU:线性代数. - FFT:计算. - ODE:函数调用. - 稀疏:计算 - 2D图形: - 3D图形:

以下是两组相关性.我更了解的强大列表可以强烈地与性能变化联系起来.我理解的弱列表通常会对性能产生更加模糊的影响.

I)强相关性:

  1. 时钟速度和处理器系列:性能可以通过数学方式计算如下:

性能=时钟速率/(CPU指令数*每CPU指令周期数)

分母中的变量是指令集,寻址模式和处理器组件的硬件实现的功能.

在处理器系列中,时钟频率越高,性能越好.在较高的时钟速率下,性能变化率可能较小,因为其他系统参数(如主存储器和总线速度)开始发挥关键作用.因此,从600MHz Pentium到1.1GHz Pentium,可能无法显示相应的性能变化.

通常,您无法比较不同微处理器系列的时钟速度.例如,许多RISC微处理器可以在每个时钟周期执行多个指令.这意味着,即使它们的时钟速率可能小于每个时钟周期执行较少指令的时钟速率,但如果保持忙碌,它们可能会执行更多工作.

  1. 其他必要的硬件:MATLAB应用程序只能与所涉及的最慢的硬件组件一样快,例如数据采集卡读取数据以进行实时模拟,或图形卡立即显示结果.要获得MATLAB图形的最大性能,请使用您能够承受的最快的卡,以及尽可能多地在硬件中实现OpenGL的卡.

  2. 足够的主存储器(RAM):添加比MATLAB更多的RAM将被理解,只能对性能产生微不足道的影响,因为工作集大小决定了你需要多少内存,而且这在应用程序上有很大差异.此外,在同一系统上与MATLAB一起运行的其他应用程序在内存使用方面也有所不同.我建议Windows系统至少使用512 MB的RAM.请参阅上面提到的系统要求页面.RAM的访问速度也是一个重要因素.

您可能还需要查看"内存管理技术支持指南",以便更好地了解MATLAB如何使用内存:

http://www.mathworks.com/support/tech-notes/1100/1106.shtml

II)弱到不存在的相关性:

  1. 处理器数量:

    由于M代码执行不是完全多线程的,因此添加处理器可能不会改变性能.但是,如果您在计算机上运行了许多应用程序,那么拥有多个处理器可以大大提高系统的吞吐量.

  2. 系统总线的带宽:这是一个难以评估的领域.如果要通过大型数据集的内存分页或支持数据库操作的文件I/O操作导致大量数据进出主内存,这一点至关重要.

  3. 高速缓冲存储器的数量:高速缓冲存储器快速但昂贵,因此通常是有限的.每当高速缓冲存储器耗尽时,更便宜但更慢的RAM变为活动状态.

如果没有仔细的基准测试,这也很难评估.除非识别出特殊需求,否则系统通常会为许多常见应用程序提供足够的高速缓存.

最后,您可以考虑将消息发布到新闻组(comp.soft-sys.matlab).这是一个基于MATLAB用户的新闻组,每天有数千人查看.很可能那些人可能有这些问题的经验.

您可以从MATLAB Central网站访问此新闻组:

http://www.mathworks.com/matlabcentral

这是用于查看新闻组的常用URL.

  • Lasse,在某种程度上,我在网上用MATLAB做的任何事都是广告.我选择了我的名字和所属关系来保持这一点.这个问答是一个实验.我可以访问The MathWorks技术支持数据库,这是最常见的问题之一.我们的历史记录显示,至少有一位其他程序员肯定会对这些问题感兴趣.在发布之前,我花了很长时间阅读常见问题解答和文化.投票表明这些是有价值的问题.我正在密切关注,以确保我在这方面为这个社区赋予价值.谢谢,道格 (21认同)
  • 但Lasse,不是自我问题公平游戏的答案吗?如果SO允许他们那么他们应该.坦率地说,让社区决定(通过投票)答案是否看起来像广告,或者确实包含重要且有用的信息. (12认同)
  • 在你以某种方式说出问题和答案之前要考虑的一件事是,你似乎想要回答别人的问题,我们可以在两者上看到你的名字,你自己的答案变成了蓝色.说实话,当这样的帖子也包含链接时,看起来更像是有人试图发布他们自己产品的某种广告.考虑到你的博客是关于mathworks的,我会说这是相当明确的. (3认同)