主要内容

何时并行运行统计功能

为什么并行运行?

并行运行统计计算的主要原因是提高速度,这意味着减少程序或功能的执行时间。影响速度的因素讨论影响​​程序或功能速度的主要项目。影响结果的因素讨论可能导致并行运行的详细信息,以给出与串行运行不同的结果。

笔记

一些统计和机器学习工具箱™功能具有内置的并行计算功能。看快速启动统计和机器学习工具箱的平行计算。您还可以使用并行计算工具箱™功能(例如parfor循环。要决定何时并行调用功能,请考虑影响速度和结果的因素。

影响速度的因素

某些可能影响并行处理速度的因素是:

  • 并行环境设置。运行需要时间Parpool开始并行计算。如果您的计算快速,设置时间可以超过通过并行计算节省的任何时间。

  • 平行开销。并行运行时,通信和协调的开销。如果功能评估很快,则此开销可能是总计算时间的明显部分。因此,并行解决问题可能比串行解决问题要慢。例如,请参阅通过并行计算提高优化性能在Matlab®Digest,2009年3月。

  • 没有嵌套parfor循环。这在与Parfor合作parfor从另一个内部调用时不同行parfor环形。如果您已经编程了自定义功能以利用并行处理,则无嵌套的限制parfor循环会导致并行函数的运行速度慢于预期。

  • 连续执行时,parfor循环运行略低于为了循环。

  • 传递参数。在执行并行计算过程中,参数会自动传递给工作人员会话。如果有很多参数,或者它们采用大量内存,则传递参数可以减慢您的计算执行。

  • 资源争夺:网络和计算。如果工人库的带宽或高潜伏期较低,则并行计算可能会很慢。

影响结果的因素

使用并行处理时,某些因素可能会影响结果。例如,您可能需要调整代码以并行运行,例如,您需要独立的循环,工人必须能够访问变量。一些重要因素是:

  • 持续或全局变量。如果任何功能都使用持久或全局变量,这些变量可以在不同的工作处理器上采用不同的值。一个身体parfor循环不能包含全局或持续变量声明。

  • 访问外部文件。在并行处理过程中不能保证计算顺序,因此可以以无法预测的顺序访问外部文件,从而导致无法预测的结果。此外,如果多个处理器尝试同时读取外部文件,则文件可以锁定,导致读取错误并停止函数执行。

  • 非计算功能,例如输入,,,,阴谋, 和键盘,在您的自定义功能中使用时可能会表现不佳。不要在parfor循环,因为它们可能会导致工人变得无响应,因为它正在等待输入。

  • parfor不允许休息或者返回语句。

  • 您使用的随机数可能会影响计算结果。看并行统计计算中的可重复性

有关转换循环使用的建议parfor, 看平行的前面(PARFOR)(并行计算工具箱)