未来

并行池工人要求功能执行或MATLAB客户

描述

一个未来对象表示的功能可以在平行池工人或MATLAB执行®客户。

创建

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

  • 指定的函数,在一个工人在一个平行的泳池使用执行parfeval。该parfeval函数创建一个FevalFuture对象来表示功能执行和保持的结果。要创建多个FevalFutures,通话parfeval多次;例如,你可以创建一个矢量FevalFutures在一个对于-循环。

  • 指定的函数,在每一个工人在一个平行池中使用执行parfevalOnAll。该parfevalOnAll函数创建一个FevalOnAllFuture对象来表示功能执行和保持的结果。

  • 指定功能的MATLAB客户端上毕竟执行未来使用对象完成毕竟。该毕竟函数创建一个AfterAllFuture对象来表示功能执行和保持的结果。

  • 指定功能的MATLAB客户端上的每个后执行未来反对使用完毕afterEach。该afterEach函数创建一个AfterEachFuture对象来表示功能执行和保持的结果。

综上所述,下表描述了可用的类型未来的对象:

Future对象 描述
FevalFuture parfeval未来实例
FevalOnAllFuture parfevalOnAll未来实例
AfterAllFuture 毕竟未来实例
AfterEachFuture afterEach未来实例

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

属性

展开全部

常规选项

此属性是只读的。

日期和时间这个未来被创建,指定为约会时间目的。

数据类型:约会时间

此属性是只读的。

错误信息,指定为例外。如果未来没有错误的完成,那么该字段为空。

此属性是只读的。

日期和这个未来运行完毕后,指定为时间约会时间目的。

数据类型:约会时间

此属性是只读的。

功能评估,指定为函数句柄。

例:@rand

数据类型:function_handle

此属性是只读的。

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

数据类型:

此属性是只读的。

输入参数执行该功能,指定为单元阵列。

例:{[1]}

例:{[1,2],[2,1]}

数据类型:细胞

此属性是只读的。

返回的执行功能,指定为整数参数的数目。

数据类型:

此属性是只读的。

输出参数,指定为从它完成执行之后运行函数结果的单元阵列。如果未来有错误的完成,该字段为空。要查看错误,请检查错误属性。

例:{[3.14]}

数据类型:细胞

此属性是只读的。

日期和时间这个未来开始运行,指定为约会时间目的。

数据类型:约会时间

此属性是只读的。

未来的当前状态,指定为这些值之一:“待定”“排队”“跑步”“成品”“失败”, 要么“不可用”

数据类型:烧焦

FevalFuture选项

此属性是只读的。

文本由功能执行产生,指定为烧焦阵列。

数据类型:烧焦

此属性是只读的。

的队列未来对象包含此未来,指定为FevalQueue。检查这个队列,以确定的数量未来对象运行或排队。

数据类型:FevalQueue

此属性是只读的。

如果输出已经阅读指示fetchNext要么fetchOutputs,指定为逻辑。

数据类型:合乎逻辑

FevalOnAllFuture选项

此属性是只读的。

文本所生产的功能,指定为字符阵列的单元阵列,其中包含每个工人的文本的执行。

数据类型:细胞

此属性是只读的。

的队列未来对象包含此未来,指定为FevalQueue。检查这个队列,以确定的数量未来对象运行或排队。

数据类型:FevalQueue

对象函数

展开全部

毕竟 指定功能完成所有parallel.Futures之后调用
afterEach 每个parallel.Future完成后指定要调用一个函数
取消 取消排队或正在运行的未来
fetchOutputs 检索未来所有输出参数
是平等的 如果真有期货相同的ID
等待 等待期货完成
fetchNext 检索下一个可用的未读FevalFuture输出

例子

全部收缩

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

parfeval计算在工人随机向量。在默认的喜好,parfeval创建parpool如果自动没有一个已经创建。

对于IDX = 1:10 F(IDX)= parfeval(@rand,1,1000,1);结束
开始使用“本地”的个人资料...连接到8名工人并行池(parpool)。

计算最大的元素在每个这些矢量的,当他们准备就绪。afterEach执行功能手柄上的每个未来的输出,当他们准备就绪,并创建另一个未来持有的结果。

maxFuture = afterEach(F,@(r)的最大值(R),1);

为了计算它们之间的最小值,通话毕竟在这个新的未来。毕竟执行后,他们所有的所有期货的组合输出参数的完整功能。在这种情况下,毕竟执行功能上的输出maxFuture完成后,并创建另一个未来持有的结果。

minFuture =毕竟(maxFuture,@(r)的分钟(R),1);

您可以通过获取结果fetchOutputsfetchOutput等待,直到将来完成对收集结果。

fetchOutputs(minFuture)
ANS = 0.9973

您可以检查的结果afterEach通过调用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