主要内容

未来

请求函数在并行池工作器或MATLAB客户端

描述

一个未来对象表示要在并行池工作程序或MATLAB上执行的函数®客户端。

创建

有几种方法可以创建未来目的:

  • 使用以下命令指定要在并行池中的工作器上执行的函数parfeval.这parfeval函数创建一个FevalFuture对象来表示函数执行并保存结果。创建多个FevalFutures,叫parfeval多次;例如,你可以创建一个向量FevalFutures在一个循环。

  • 使用以下命令指定要在并行池中的每个worker上执行的函数parfevalOnAll.这parfevalOnAll函数创建一个FevalOnAllFuture对象来表示函数执行并保存结果。

  • 最终指定一个要在MATLAB客户端上执行的函数未来对象完成使用毕竟.这毕竟函数创建一个AfterAllFuture对象来表示函数执行并保存结果。

  • 指定在每个函数之后在Matlab客户端上执行的函数未来对象完成使用after.这after函数创建一个AfterEachFuture对象来表示函数执行并保存结果。

总之,下表介绍了未来的可用类型:

未来的对象 描述
FevalFuture 单身的parfeval未来的实例
FevalOnAllFuture parfevalOnAll未来的实例
AfterAllFuture 毕竟未来的实例
AfterEachFuture after未来的实例

未来对象是本地对象,只能在创建它的Matlab会话中访问。

属性

全部展开

一般选择

此属性是只读的。

创建此未来的日期和时间,指定为a约会时间目的。

数据类型:约会时间

此属性是只读的。

错误信息,指定为异常。如果未来完成没有错误,则此字段为空。

此属性是只读的。

此未来完成运行的日期和时间,指定为a约会时间目的。

数据类型:约会时间

此属性是只读的。

要计算的函数,指定为函数句柄。

例子:@rand.

数据类型:function_handle

此属性是只读的。

未来的数字标识符,指定为整数。

数据类型:

此属性是只读的。

要执行的函数的输入参数,指定为单元数组。

例子:{[1]}

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

数据类型:细胞

此属性是只读的。

执行函数返回的参数数,指定为整数。

数据类型:

此属性是只读的。

输出参数,指定为正在运行的函数执行完成后的结果单元格数组。如果未来完成错误,此字段为空。要查看错误,请检查错误财产。

例子:{[3.14]}

数据类型:细胞

此属性是只读的。

此未来启动运行的日期和时间,指定为a约会时间目的。

数据类型:约会时间

此属性是只读的。

未来的当前状态,指定为以下值之一:'待办的','排队',“奔跑”,'完成的',“失败”,或“不可用”

数据类型:char

FevalFuture选项

此属性是只读的。

由函数执行产生的文本,指定为char数组中。

数据类型:char

此属性是只读的。

队列的未来对象,其中包含未来,指定为Fevalqueue..检查这个队列来识别号码未来对象正在运行或排队。

数据类型:Fevalqueue.

此属性是只读的。

指示是否已被读取输出fetchNext或者fetchOutputs,指定为逻辑。

数据类型:逻辑

FevalOnAllFuture选项

此属性是只读的。

由函数执行产生的文本,指定为字符数组的单元格数组,其中包含每个工作人员的文本。

数据类型:细胞

此属性是只读的。

队列的未来对象,其中包含未来,指定为Fevalqueue..检查这个队列来识别号码未来对象正在运行或排队。

数据类型:Fevalqueue.

对象的功能

全部展开

毕竟 指定在所有并行操作之后要调用的函数。期货交易完成
after 指定要在每次并行之后调用的函数。将来完成
取消 取消排队或运行的未来
fetchOutputs 从Future获取所有输出参数
isequal 如果期货ID相同,则为True
等待 等待未来的完成
fetchNext 检索下一个可用的未读FevalFuture输出

例子

全部折叠

您可以组合after毕竟自动调用期货结果的更多功能。两个都after毕竟生成可以再次使用的未来变量after毕竟

parfeval计算工人的随机载体。带默认首选项,parfeval创建一个parpool如果还没有创建,则自动创建。

if (Idx) = parfeval(@rand, 1, 1000, 1);结束
使用“本地”配置文件启动并行池(Parpool)...连接到8名工人。

计算每个向量中最大的元素当它们准备好了。after当每个future准备就绪时,对它们的输出执行函数句柄,并创建另一个future来保存结果。

maxfuture = sulteach(f,@(r)max(r),1);

要计算它们之间的最小值,调用毕竟在这个新的未来。毕竟在全部完成后执行所有期货的组合输出参数的函数。在这种情况下,毕竟执行功能最小值关于产出MaxFuture.完成之后,再创造一个拥有未来的结果。

minfuture =追随(maxfuture,@(r)min(r),1);

您可以使用使用结果fetchOutputsfetchOutput等待,直到未来完成以收集结果。

fetchOutputs (minFuture)
ans = 0.9973

您可以检查的结果after通过调用fetchOutputs在其未来的变量上。

FetchOutputs(MaxFuture)
ans =10×10.9996 0.9989 0.9994 0.9973 1.0000 1.0000 0.9989 0.9994 0.9998 0.9999
介绍在R2013B.