主要内容

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

并行 for 循环 (parfor)

通过在并行池中的工作单元上运行 parfor 来使用并行处理

Parallel Computing Toolbox™ 支持交互式并行计算,使您能够通过在并行池中的多个工作单元上运行来加速工作流。使用 parfor 在并行池中的工作单元上并行执行 for 循环迭代。当您对代码进行了探查后发现 for 循环运行速度很慢时,请尝试使用 parfor 来增加吞吐量。在您的桌面上开发 parfor 循环并扩展到集群,而无需更改您的代码。

函数

全部展开

parfor在工作单元并行上并行执行 for 循环迭代
parforOptionsparfor 设置的选项
parpool在集群上创建并行池
parfeval在并行池工作单元上运行函数
ticBytes开始计算并行池中传输的字节数
tocBytes读取自调用 ticBytes 以来已传输了多少字节
send使用数据队列在客户端和工作单元之间发送数据
afterEach定义一个函数,当数据队列接收到新数据时调用
parallel.Pool工作单元并行池
parallel.pool.DataQueue在客户端和工作单元之间发送和监听数据

主题

parfor 快速入门

运行 parfor 循环

  • 提高 parfor 性能
    parfor 循环内部或外部创建数组以加快代码速度。
  • 在 parfor 循环中使用对象和句柄
    了解如何在 parfor 循环中使用对象、句柄和分段变量。
  • 确保 parfor 循环或 spmd 语句的透明度
    parfor 循环中对变量的所有引用都必须在程序主体中可见。
  • 在 parfor 循环中保存变量
    此示例显示如何在 save 循环中使用 parfor 函数将一个或多个变量保存到文件中。 (自 R2024a 起)
  • 将 parfor 循环扩展到集群和云
    在您的桌面上开发 parfor 循环,并扩展到集群而无需更改您的代码。
  • 使用 parfor 循环进行归约分配
    您可以使用 parfor 循环来计算每次迭代更新的累积值。
  • 在 parfor-循环中重复随机数
    本示例演示了如何通过为每次迭代分配特定的子流,来控制 parfor 循环中的随机数生成。
  • 使用 parfor 加速蒙特卡罗代码
    此示例显示如何使用 parfor 循环来加速蒙特卡罗代码。蒙特卡罗方法应用于许多领域,包括物理学、数学、生物学和金融。蒙特卡罗方法涉及使用随机分布的输入多次执行一个函数。使用 Parallel Computing Toolbox™,您可以将 for 循环替换为 parfor 循环,从而轻松加快代码运行速度。
  • 以交互方式并行导入和处理数据
    此示例显示如何在交互式并行池中同时导入和处理数据。为了简化您的工作流,您可以在同一个并行池上重叠parfevalparfor计算。 (自 R2023b 起)
  • 比较多线程和 ProcessPool 的性能
    比较函数在客户端和 ProcessPool 上的运行速度。某些 MATLAB® 函数在多核计算机上默认情况下已使用多线程。当有多个线程可用时,使用这些函数的计算比在单个线程上执行得更好。因此,对于其中一个函数的多个计算,在具有计算单线程工作单元的本地并行池上并行执行的性能不会比在客户端的多线程核上执行更好。并行化带来的开销可能会加剧这种影响。
  • 优化并行池以支持多线程计算
    调整工作单元数量以及每个工作单元线程数,以提升并行池的计算性能。 (自 R2026a 起)
  • 解决错误:客户端与工作单元断开连接
    在并行池中运行代码时,排查“与工作单元连接丢失”错误。 (自 R2026a 起)

应用

精选示例