主要内容

spmdReduce

减少数组spmd工人

自从R2022b

    描述

    例子

    B= spmdReduce (fcn,一个)使用函数fcn减少数组一个运行一个定义在每个工人spmd块或沟通工作。还原B函数将结果存储在每个工人。

    例如,spmdReduce (@plus)返回数组的总和一个定义在每个工人。

    MATLAB®使用fcn函数来减少一个J通过调用函数N - 1次了。

    • N运行工人的数量吗spmd块或沟通工作。使工人的数量运行当前spmd块,使用spmdSize函数

    • 一个j是数组一个上定义spmd工人的指数是j

    确保你的spmd块或沟通的工作总是产生同样的结果,指定fcn作为一个关联函数。

    当你使用parfor,parfeval,或parfevalOnAll在并行运行代码池,工人们是独立的,不会相互通信。如果你使用spmdReduce在这些工人,结果是一样的spmdReduce在一个客户端。

    如果一个工人正在运行当前spmd块,B等于一个

    B= spmdReduce (fcn,一个,目的地)减少了一个并将结果存储在只有一个工人。

    例子

    全部折叠

    这个例子展示了如何使用spmdReduce计算数组的最大值在所有工人。

    创建一个平行池有四个工人。

    parpool (4);

    当你执行一个spmd块创建一个平行的池后,默认情况下所有可用的工人池内运行代码spmd块。

    运行spmdIndex在每个工人spmd并将结果存储在块一个。使用spmdReduce马克斯计算的最大价值一个从每个工人。

    除非你指定的目的地,spmdReduce将结果存储在每个工人。在客户端,是一个结果复合对象。结果,索引到复合对象。

    spmd一个= spmdIndex;B = spmdReduce (@max);结束disp (B {1})
    4

    输入参数

    全部折叠

    输入数组,指定为一个标量、向量矩阵,多维数组,桌子,时间表,或任何MATLAB支持连接的变量。万博1manbetx

    例子:=魔法(3)

    减少功能,指定为一个函数处理。减少函数必须采取两个输入参数。

    例子:fcn = @max

    数据类型:function_handle

    指定的目的地工人,指数作为一个正整数或一个空数组。这个输入的值必须小于或等于当前运行的工人数量spmd块或沟通工作。

    当你指定这个输入,存储的值的函数B只有在这种指数的工人。在工人的指数=目的地,B是操作的结果。在所有其他工人,B[]

    例子:1

    算法

    此图显示了spmdReduce函数使用fcn当你打电话spmdReduce (fcn)

    图展示了四个工人把数组指定为一个成一个数组,B。

    扩展功能

    版本历史

    介绍了R2022b