主要内容

并行.Pool.Constant.

从数据或功能句柄构建并行.Pool.Constant

句法

c = parallel.Pool.Constant(x)
c = parallel.Pool.Constant(FH)
c = parallel.Pool.Constant(FH,Cleanup)
c = parallel.Pool.Constant(Comp)

描述

c = parallel.Pool.Constant(x)复制价值X对每个工人并返回并行.Pool.Constant对象,C,这允许每个工人访问该值X在并行语言构造中(议案SPMD.Parfeval.)使用该物业C.Value.。当您有多个ParfOr-LoOPS访问相同的常量数据集时,这可以提高性能,因为X只转给工人一次。

c = parallel.Pool.Constant(FH)评估功能句柄FH.在每个工人上并存储结果C.Value.。这对于在工人和数据库和数据库连接等工人上创建和使用任何句柄类型资源也是有用的。

c = parallel.Pool.Constant(FH,Cleanup)评估功能句柄FH.在每个工人上并存储结果C.Value.。什么时候C被清除,功能手柄清理用单个论点进行评估C.Value.在每个工人。

c = parallel.Pool.Constant(Comp)使用存储在复合中的值筹码,并将它们存储在C.Value.在每个工人。当您需要在循环内部需要使用的数据只能在工人上构建时,这尤其有用,例如当数据太大而无法方便地适合客户端,或者从文件加载时只有工人可以访问。如果筹码对每个工作者没有定义值,会导致错误。

尖端

并行.Pool.Constant.必须在Matlab客户端会话中调用。

你可以使用一个并行.Pool.Constant.使用已运行的并行池或后续并行池。

例子

从客户端中的数组进行并行.pool.pool.poolstant

此示例显示如何创建数字并行.Pool.Constant,并在多个中使用它议案- 在同一个池中。

首先,在客户端上创建一些大数据,然后构建并行.Pool.Constant,仅将数据传输到池中一次。

数据= rand(1000);c = parallel.pool.poolstant(数据);为了II = 1:10%运行访问数据的循环的多个Par。议案JJ = 1:10 x(II,JJ)= C.Value(II,JJ);结尾结尾

从功能句柄中进行并行.Pool.poolstant

此示例显示如何使用函数句柄和清理功能创建并行.Pool.Constant。

在每个工作人员上创建临时文件。通过传递@fclose.作为第二个参数,该文件将在此时自动关闭C超出范围。

c = parallel.pool.Constant(@()fopen(tempname(pwd),'wt'),@ fclose);SPMD.DISP(FOPEN(C.Value));%显示临时文件名。结尾议案IDX = 1:1000 fprintf(C.Value,'迭代:%d \ n',IDX);结尾清晰的C;%关闭临时文件。

从综合制作并行.Pool.poolstant

此示例显示如何在池工人内构建大数据集作为堆栈SPMD.块,然后使用该数据作为并行.Pool.poolstant议案-环形。

SPMD.如果Labindex == 1 x = LabBroadcast(1,Rand(5000));别的x = LabBroadcast(1);结尾结尾XC = parallel.Pool.Constant(x);议案idx = 1:10 s(idx)= sum(xc.value(:,idx));结尾S.
S = 1.0E + 03 * 2.5108 2.5031 2.5123 2.4909 2.4957 2.5462 2.4859 2.5320 2.5076 2.5432
介绍了R2015b