Main Content

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

异步并行编程

使用 parfeval 在后台计算函数

您可以使用 parfeval 在后台计算函数,而无需等待它完成。在许多情况下,提前退出 for 循环是很方便的。例如,在优化过程中,当结果足够好时,您可以提前停止循环。您可以使用 parfevalparfevalOnAll 对一个或所有并行池工作进程执行此操作。如果您希望能够绘制中间结果,这样做可能很有用。请注意,这与使用 parfor 不同,使用该函数时,您必须等待循环完成。

结合使用 sendpoll,可通过数据队列发送和轮询来自不同工作进程的消息或数据。使用 afterEach 可添加一个从数据队列接收到新数据时要调用的函数。

使用 afterEachafterAll 可在 Future 数组的每个或所有元素都完成后自动调用函数。该数组可以包含由 parfevalparfevalOnAllafterEachafterAll 返回的 Future。

函数

全部展开

parfeval在并行池工作进程上运行函数
parfevalOnAll在并行池中的所有工作进程上异步运行函数
ticBytes开始计算并行池中传输的字节数
tocBytes读取自调用 ticBytes 以来已传输了多少字节
send使用数据队列将数据从工作进程发送到客户端
poll 检索从工作进程发送的数据
afterEach定义一个函数,当 DataQueue 收到新数据时调用
afterEachRun function after each function finishes running in the background
afterAllRun function after all functions finish running in the background
fetchOutputsRetrieve results from function running in the background
fetchNextRetrieve next unread outputs from Future array
cancelStop function running in the background
cancelAll取消所有作业或任务 (自 R2022a 起)
wait等待 future 完成
FutureFunction scheduled to run
parallel.Pool工作进程并行池
parallel.pool.DataQueue在客户端和工作进程之间发送和监听数据
parallel.pool.PollableDataQueue 在客户端和工作进程之间发送和轮询数据

主题