主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

将并行代码扩展到大型集群

您可以使用不同的方法将并行代码扩展到数千个工作单元。Parallel Computing Toolbox™ 在单个并行池中支持最多 2000 个工作单元。但是,当您的计算任务所需的工作单元数量超过所支持的数目时,您可以使用其他方法将您的代码扩展到并行池限制之外。

何时使用推荐方法描述

您想使用交互式池将包含 parforparfeval 的代码扩展到数千个工作单元。

在交互式并行池中使用 parforparfeval

  • 直接扩展您的代码,无需修改。在您的代码中使用 DataQueue、池 ValueStoreFileStore 对象。

  • 一个池最多支持 2000 个工作单元。

示例:使用大型计算集群分析风能数据

您想要在集群上使用数千个工作单元卸载并运行包含 parforparfeval 的代码。

您想在集群上使用并行池。

使用并行池将包含 parforparfeval 的代码作为批处理作业运行。

  • 使用并行池将计算卸载到批处理作业并关闭您的 MATLAB® 客户端。您稍后可以检索结果。

  • 访问批处理作业的 ValueStoreFileStore 对象。

  • 一个批处理池最多支持 2000 个工作单元。

  • 您想要将 parfor 代码扩展到数千个工作单元,但您的集群不支持并行池。

  • 您想要将 parfor 代码扩展到超过 2000 个工作单元。

使用 parforOptions 直接在集群上运行 parfor

  • parfor 根据需要动态使用工作单元。

  • 当您的集群不允许通信作业(例如并行池)时,请使用这种方法。

  • 这种方法不支持 DataQueueConstant 对象,并且可能导致第三方调度器集群的大量开销,因为每个 parfor 子范围都会启动一个 MATLAB 工作单元。

  • 这种方法允许您在 MATLAB 作业调度器集群上扩展最多 10,000 个工作单元,并支持在第三方集群上进行无限制扩展。

示例:运行不使用并行池的 parfor 循环

修改您的 parfor 代码以使用作业和任务工作流。

  • parfor 迭代重构为作业的独立任务。

  • 访问作业的 ValueStoreFileStore 对象。

  • 这种方法允许您在 MATLAB 作业调度器集群上扩展最多 10,000 个工作单元,并支持在第三方集群上进行无限制扩展。

示例:利用并行作业和任务进行扩展

另请参阅

| | |

主题