主要内容

未来

函数调度运行

描述

一个未来对象表示一个函数,在MATLAB运行时间表®

  • 如果你使用parfevalparfevalOnAll创建一个未来MATLAB的函数:

    • 在后台,如果指定backgroundPool在创建未来

    • 在一个平行的池,如果你不指定backgroundPool在创建未来之一,具有并行计算工具箱™和以下应用:

      • 你有一个平行池当前打开的。

      • 你有自动池创建启用。

    • 在串行,否则。

  • 如果你使用afterEach毕竟创建一个未来,函数是由当前的MATLAB会话。它不是在后台运行或在任何平行池。

创建

您创建一个未来对象当你做以下之一:

  • 使用parfeval安排一个函数在后台运行,在一个平行的池,或串行。

  • 使用parfevalOnAll安排一个函数运行在所有工人在一个池,或串行。

  • 使用afterEach毕竟安排一个函数运行后未来对象完成。

可用的类型的未来的对象。

未来的对象 描述
FevalFuture parfeval
FevalOnAllFuture parfevalOnAll
AfterEachFuture afterEach
AfterAllFuture 毕竟

属性

全部展开

一般选择

这个属性是只读的。

日期和时间未来对象被创建,指定为一个datetime标量。

这个属性是只读的。

错误信息,指定为一个MException标量或单元阵列异常对象。

  • 如果您创建了一个未来对象使用parfeval毕竟这个属性是一个数组或细胞异常标量。如果未来对象完成,没有错误,这个属性是空的。

  • 如果您创建了一个未来对象使用afterEach,这个属性是一个单元阵列,每个执行的一个细胞未来错误,或1——- - - - - -1单元阵列,如果未来被取消了。如果未来对象完成,没有错误,这个属性是空的。

  • 如果您创建了一个未来对象使用parfevalOnAll,这个属性是一个与一个细胞单元阵列每个工人如果任何错误发生在工人,或1——- - - - - -1单元阵列,如果未来被取消了。如果未来对象完成,没有错误,这个属性是空的。

关于错误的更多信息当你遇到一个函数运行未来对象完成,请参阅afterEach毕竟

这个属性是只读的。

日期和时间函数完成时,指定的作为datetime标量。

未来完成运行当MATLAB完成运行相关的函数。

如果相关的函数未来对象不是运行结束之后,这个属性是一个空的datetime数组中。

数据类型:datetime

这个属性是只读的。

相关函数未来对象,指定为一个函数处理。

  • 如果你创建未来使用parfevalparfevalOnAllMATLAB函数在后台运行,一个平行的池(如果你有并行计算工具箱),或在串行。

  • 如果你创建未来使用afterEach毕竟,函数是由当前的MATLAB会话。它不是在后台运行或在任何平行池。

例子:@magic

数据类型:function_handle

这个属性是只读的。

标识符,指定为一个整数标量。

数据类型:

这个属性是只读的。

函数的输入参数,指定为一个单元阵列。

当预定的功能fcn指定的函数房地产运行时,它运行fcn (X {:}),在那里X单元阵列的输入参数指定这个属性。

例子:{[1]}

例子:{[1,2],(2,1)}

数据类型:细胞

这个属性是只读的。

函数返回的参数数量,指定为一个整数标量。

指定的函数函数属性必须返回至少尽可能多的参数指定这个属性。

数据类型:

这个属性是只读的。

从运行这个函数,输出参数指定为一个单元阵列。

如果这个属性是一个空单元格数组未来对象是没有完成或运行未来对象完成一个错误。

例子:{[3.14]}

数据类型:细胞

当前的时间未来对象,指定为一个持续时间标量。

未来对象结束运行时,这个属性成为常数。

这个属性是只读的。

日期和时间未来对象开始跑步时,指定的作为datetime标量。

未来开始运行时,与之关联的MATLAB函数开始运行。

数据类型:datetime

这个属性是只读的。

未来的当前状态,指定这些值之一:

  • “排队”- - - - - -未来排队,函数与调度运行。

  • “奔跑”——相关函数未来当前正在运行。

  • “完成”“失败”——相关函数未来完成运行。

  • “不可用”- - - - - -未来无法运行。预先分配的元素未来数组有这个状态。

FevalFuture选项

这个属性是只读的。

文本输出,指定为一个特征向量。

这个属性是一个特征向量包含所有文本显示如果您显式地指定的功能运行函数使用指定的输入参数属性InputArguments财产。

这个属性是只读的。

队列的未来对象,指定为一个parallel.FevalQueue对象。

这个属性等于的队列未来特定的对象FevalQueue池的运行在未来。

这个属性是不可用的未来对象在线程中运行的功能环境。

这个属性是只读的。

标志指示已阅读,如果输出指定为真正的

设置此属性真正的只有你使用fetchOutputsfetchNext

数据类型:逻辑

FevalOnAllFuture选项

这个属性是只读的。

记录文本,指定为一个单元阵列的特征向量。

这个属性是一个包含所有文本的单元阵列显示如果您显式地运行指定的函数函数使用指定的输入参数属性InputArguments财产。

jth数组的元素的文本输出捕获jth工人在游泳池里了未来

数据类型:细胞

这个属性是只读的。

队列的未来对象,指定为一个parallel.FevalQueue对象。

这个属性等于的队列未来特定的对象FevalQueue池的运行在未来。

这个属性是不可用的未来对象在线程中运行的功能环境。

对象的功能

全部展开

毕竟 所有功能完成后运行功能在后台运行
afterEach 每个函数完成后运行功能在后台运行
取消 停止功能在后台运行
fetchOutputs 检索结果函数在后台运行
等待 等待期货来完成
fetchNext 获取下一个未读的输出未来数组

例子

全部折叠

这个例子展示了如何使用afterEach安排一个回调函数来运行一个函数完成后在后台运行。

使用parfeval运行函数兰特(1)和检索一个输出。指定backgroundPool作为第一个参数在后台运行功能。创建10个重复10次未来对象。

我(我)= = 1:10 f parfeval (backgroundPool @rand 1,1);结束

在每一个未来完成后,显示了使用价值disp函数。的输入参数disp输出参数从每个未来。指定的第三个参数afterEach函数作为0从回调返回任何输出。

afterEach (f @disp 0);

这个例子展示了如何使用afterEach更新等酒吧与功能在后台运行的进程。

创建一个酒吧等,w

w = waitbar (0,“请等待…”);

为你设定的迭代次数循环,N。存储当前迭代完成的数量,0迭代的总数,N,在用户数据财产等的酒吧。

N =20.;w。用户数据= [0 N];

运行一个循环与N迭代。在每个迭代中,使用parfevalbackgroundPool运行暂停在后台为一个随机的秒数。存储每个未来对象数组中。

i = 1: N延迟=兰德;f (i) = parfeval (backgroundPool @pause 0,延迟);结束

使用辅助函数updateWaitbar更新waitbar之后未来完成。

afterEach (f, @ (~) updateWaitbar (w), 0);

使用删除关闭等待毕竟酒吧未来对象完成。

毕竟(f, @(~)删除(w), 0);

定义辅助函数

定义的helper函数updateWaitbar。函数增量的第一个元素用户数据属性,然后使用向量计算的进展。

函数updateWaitbar (w)%更新waitbar使用用户数据的属性。%检查如果waitbar删除对象的引用如果isvalid (w)%增量迭代完成的数量w.UserData (1) = w.UserData (1) + 1;%计算的进展进步= w.UserData (1) / w.UserData (2);%更新waitbarwaitbar(进步,w);结束结束

这个例子展示了如何阻止一个MATLAB函数,你在后台运行。当你使用parfeval在后台运行一个函数,MATLAB立即返回未来对象。长时间运行的函数可以阻止其他功能在后台运行。阻止功能运行,您必须使用取消函数,而不是选择住编辑>>停止运行

使用parfeval运行暂停(正)没有获取任何输出。指定backgroundPool作为第一个参数在后台运行功能。当你使用parfeval,您可以创建一个未来对象。

f = parfeval (backgroundPool @pause 0,正);

检查的状态未来对象。

f.State
ans =“奔跑”

当您运行parfeval,你安排一个函数在后台运行。当背景池运行功能,资源不足未来是在“排队”状态。当函数是由背景池,未来是在“奔跑”状态。

阻止功能在后台运行,取消未来对象。

取消f.State (f)
ans = '完成'

现在的函数“完成”状态。

提示

  • 未来可以访问对象是本地对象,只有在MATLAB会话创建它们。

    例如,如果您使用parfeval运行在后台创建一个函数未来对象,未来在工作区中不可用的背景的工人。

版本历史

介绍了R2013b

另请参阅

(并行计算工具箱)|(并行计算工具箱)|(并行计算工具箱)||