异步并行编程
parfeval
在后台计算函数您可以使用 parfeval
在后台计算函数,而无需等待它完成。在许多情况下,提前退出 for 循环是很方便的。例如,在优化过程中,当结果足够好时,您可以提前停止循环。您可以使用 parfeval
或 parfevalOnAll
对一个或所有并行池工作进程执行此操作。如果您希望能够绘制中间结果,这样做可能很有用。请注意,这与使用 parfor
不同,使用该函数时,您必须等待循环完成。
结合使用 send
和 poll
,可通过数据队列发送和轮询来自不同工作进程的消息或数据。使用 afterEach
可添加一个从数据队列接收到新数据时要调用的函数。
使用 afterEach
和 afterAll
可在 Future
数组的每个或所有元素都完成后自动调用函数。该数组可以包含由 parfeval
、parfevalOnAll
、afterEach
或 afterAll
返回的 Future。
函数
主题
- 使用 parfeval 在后台计算函数
尽早摆脱优化循环并收集可用的结果。
- 查询及撤销 parfeval 期货
这个例子展示如何查询
parfeval
期货的状态并取消它们。 - 使用 afterEach 和 afterAll 运行回调函数
在并行池中
Future
对象运行完成后自动运行函数。 - 使用 parfeval 进行参数扫描时的绘图
此示例显示如何使用
parfeval
执行并行参数扫描,并在使用DataQueue
对象进行计算时发回结果。 - 使用 afterEach 和 afterAll 异步更新用户界面
此示例显示如何在计算完成时更新用户界面。当您使用
parfeval
将计算卸载给工作进程时,工作进程执行计算时所有用户界面都会做出响应。您可以使用waitbar
来创建一个简单的用户界面。 - 与后期处理并行执行网络摄像头图像采集
此示例展示了如何并行执行网络摄像头的帧采集和数据后处理。
- 执行图像采集和并行图像处理
此示例展示了如何从网络摄像头执行图像采集并并行进行数据并行处理。
- 并行训练深度学习网络 (Deep Learning Toolbox)
此示例说明如何在本地计算机上运行多个深度学习试验。使用此示例作为模板,您可以修改网络层和训练选项,以满足您的具体应用需要。无论您有一个还是多个 GPU,都可以使用这种方法。如果您只有一个 GPU,网络会在后台逐个进行训练。本示例中的方法使您能够在进行深度学习试验时继续使用 MATLAB®。
- 使用 parfeval 训练多个深度学习网络 (Deep Learning Toolbox)
此示例说明如何使用
parfeval
对深度学习网络的网络架构深度执行参数扫描,并在训练期间检索数据。 - 在 spmd、parfor 和 parfeval 之间选择
将
spmd
与其他并行计算功能(例如parfor
和parfeval
)进行比较和对比。 - 接收有关工作进程的通信
此示例显示如何在工作进程上设置数据队列来接收数据。 (自 R2023b 起)
- 以并行方式并行导入和处理数据
此示例显示如何在交互式并行池中同时导入和进程数据。为了简化您的工作流,您可以在同一个并行池上重叠
parfeval
和parfor
计算。 (自 R2023b 起)