spmdReduce
说明
使用函数 B
= spmdReduce(fcn
,A
)fcn
来减少在每个运行 spmd
代码块或通信作业的工作进程上定义的数组 A
。该函数存储每个工作进程上的归约结果 B。
例如,spmdReduce(@plus,A)
返回每个工作进程上定义的数组 A
的总和。
MATLAB® 使用 fcn
函数通过调用 N - 1 次函数来减少 AJ。
N 是运行
spmd
代码块或通信作业的工作进程数量。要获取运行当前 spmd 代码块的工作进程数量,请使用spmdSize
函数Aj 是在
spmd
工作进程上定义的数组A
,其索引为 j。
为了确保您的 spmd
代码块或通信作业始终产生相同的结果,请将 fcn
指定为关联函数。
当您使用 parfor
、parfeval
或 parfevalOnAll
在并行池上运行代码时,工作进程是独立的并且彼此不会通信。如果您在这些工作进程上使用 spmdReduce
,其结果与在客户端上使用 spmdReduce
相同。
如果一个工作进程正在运行当前 spmd 代码块,则 B
等于 A
。
减少 B
= spmdReduce(fcn
,A
,destination
)A
并将结果存储在仅一个工作进程上。
示例
输入参数
算法
该图显示了当调用 spmdReduce(fcn,A)
时 spmdReduce
函数如何使用 fcn
。
扩展功能
版本历史记录
在 R2022b 中推出