MATLAB性能

优化MATLAB代码的性能

MATLAB快速越来越快

matlab®在R2015A中引入的执行引擎使用JIT编译来加速所有MATLAB代码。JIT编译生成了针对MATLAB代码和特定硬件进行优化的本机机器级代码。执行引擎的体系结构可以对每个版本进行进一步的优化,包括更快地调用内置功能和更快的索引操作。此外,许多核心MATLAB函数都隐含多线程,以提高性能。

MATLAB性能是使用一组涵盖单元操作和代表实际用户工作流的完整应用程序的基准测量的。这些基准测试在不同的硬件和操作系统上的MATLAB发布周期中多次运行,以验证新的优化,检测和解决性能回归,并确定操作系统特定问题。

您可以在MATLAB发行说明中了解特定的性能改进。由于MATLAB R2019B,性能发行说明包括与以前的MATLAB版本相比的执行时间的测量改进。


客户工作流程的平均加速

MATLAB性能测试套件中的平均加速。

MATLAB PROFILER

使用MATLAB Profiler识别代码中的瓶颈。

提高MATLAB代码的性能

提高代码性能的第一步是识别瓶颈。例如,您可以:

  • 测量代码执行时间,具有诸如抽动,,,,TOC, 和时间段
  • 使用MATLAB Profiler查看程序的哪些部分需要最多的时间运行
  • 使用MATLAB代码分析仪进行其他建议以提高性能

一旦确定了代码中的瓶颈,已知的编程实践通常可以使您的代码更快。最常用的两种技术是阵列预定和矢量化。预定可以通过避免动态内存分配来提高性能。矢量化使您可以通过在单个命令中的向量的所有元素操作来避免循环。这些技术共同加快了代码的加快数量级。

如有必要,您可以通过编写计算要求的一部分来提高性能。在MATLAB中,MEX功能使您可以像MATLAB内置功能一样调用高性能C,C ++或FORTRAN代码。使用MATLAB CODER™,您可以自动将MATLAB代码转换为MEX文件,该文件可能会更快地运行。


使用并行计算来利用更多的硬件

您可以通过使用并行计算明确访问所有硬件资源来解决计算或数据密集型问题。您可以利用功能来扩展到多个过程,多个线程和GPU,均具有MATLAB的熟悉度和易用性。您可以在一台计算机上开发和运行,并且可以将执行缩放到计算集群或云,而无需重新编码。


使用并行计算明确使用所有硬件资源。