spmdSendReceive
说明
将来自 B = spmdSendReceive(destination,source,A)spmd 代码块或通信作业中的当前工作单元的数据 A 发送到 destination,并从 source 接收数据。数组 A 从当前工作单元发送到索引等于 destination 的工作单元。当前工作单元接收索引等于 B 的工作单元发送给当前工作单元 的数据 source。
当您使用此语法时,计算相当于通过同时运行以下代码行来发送和接收数据的工作单元:
spmdSend(A,destination); B = spmdReceive(source);
使用标记 B = spmdSendReceive(___,tag)tag 发送和接收数据。当您使用 spmdSendReceive 在工作单元之间发送数据时,可能有多个数据项等待被收集。当您向一个工作单元发送多个数据项时,请为每个数据项添加一个标记以区分这些数据项。
示例
输入参数
提示
标记有很多用途,例如:
使用标记来节省内存,方法是仅在需要数据时在工作单元上加载数组。
使用标记创建不依赖于发送工作单元索引的代码。
扩展功能
版本历史记录
在 R2022b 中推出
另请参阅
spmdBarrier | spmdIndex | spmdProbe | spmdReceive | spmdSend | spmdSize