在所有工人全球运营
RES = GOP(FUN,x)的
RES = GOP(FUN,X,targetlab)
|
功能跨越工人操作。 |
|
参数功能 |
|
变量保存减少的结果。 |
|
实验室到返回减少的结果。这个值是由工人返回 |
RES = GOP(FUN,x)的
是通过函数的减少FUN
数量的X
从每个工人。结果被复制在所有工人。
FUN
可以是一个手柄的任何功能,包括用户编写的函数和用户定义的匿名函数。它应该接受相同类型的两个参数,并返回一个同类型的结果,所以它可以反复的形式使用:
FUN(FUN(X1,X2),FUN(X3,X4))
功能FUN
应该是关联的,也就是说,
FUN(FUN(X1,X2),X3)= FUN(X1,FUN(X2,X3))
RES = GOP(FUN,X,targetlab)
执行还原,并将结果存放到水库
仅在工人的指示targetlab
。水库
设定为[]
在所有其他工人。
这个例子说明了如何计算总和和最大值X
所有的工人。
P = parpool('本地',4);X =复合();X {1} = 3;X {2} = 1;X {3} = 4;X {4} = 2;SPMDXSUM = GOP(@加,X);XMAX = GOP(@最大值,X);结束XSUM {1}
10
XMAX {1}
4
此示例示出了如何在水平方向并置的列向量X
从所有工人到矩阵。它使用前面的例子打开了相同的4个工人并行池。
X {1} = [3; 30];X {2} = [1; 10];X {3} = [4; 40];X {4} = [2; 20];SPMDRES = GOP(@ horzcat,X);结束RES {1}
3 1 4 2 30 10 40 20
这个例子说明了如何使用匿名函数GOP
加入特征向量与它们之间的间隔。在这种情况下,从每个工人创造的特征向量labindex
值。
afun = @(A,B)并[a,“”,b]的SPMDRES = GOP(afun,num2str(labindex));结束RES {1}
1 2 3 4