加快MATLAB应用的方法

时间:2013-10-11 13:23:51

标签: matlab parallel-processing computation

我对MATLAB软件构建的加速应用程序有疑问,我需要知道使用矢量化和并行计算对加速应用程序的影响吗?如果在这种情况下有比以前两种方法更好的方法?谢谢

1 个答案:

答案 0 :(得分:3)

当您的MATLAB代码运行速度太慢时,您需要做的第一件事就是在分析器中运行它。在最新版本的MATLAB中,可以通过按主工具栏上的“运行和时间”按钮来完成。这样,您现在将使用这些函数中的哪些函数和哪些行占用最多时间。一旦您知道这一点,您可以根据您的具体情况和特定代码的性质执行以下操作之一:

  • 根据O()复杂度考虑您的算法是否是最优的算法。
  • 尝试将循环转换为矢量操作。由于改进了循环的执行方式,最近版本的MATLAB的效果已经下降。
  • 如果您有多核CPU,请尝试使用parallel computing toolbox。如果你的代码很好地并行化,那么你的速度几乎会等于内核的数量。
  • 如果您有nVidia GPU,请尝试使用GPU support。对于某些问题,你可以将速度提高10倍或更多,但并非所有问题都适合这种优化。
  • 如果其他一切都失败了,您可以将代码中最慢的代码外包给像C这样的低级语言。有关如何执行此操作,请参阅here。然后,您可以使用英特尔vTune等低级分析工具从低级代码中获得绝对最大速度。
  • 如果仍然太慢,您可能需要购买FPGA。有关简要教程,请参阅here