all_gather_object

paddle.distributed. all_gather_object ( object_list, object, group=0 ) [源代码]

进程组内所有进程指定的 picklable 对象进行聚合操作,并返回给所有进程聚合的结果。和 all_gather 类似,但可以传入自定义的 python 对象。

警告

该 API 只支持动态图模式。

参数

  • object_list (list) - 操作的输出 Object 列表。

  • object (Any) - 操作的输入 Object,需要保证输入自定义的 Object 是 picklable 的。

  • group (int,可选) - 工作的进程组编号,默认为 0。

返回

代码示例

# required: distributed
import paddle
import paddle.distributed as dist

dist.init_parallel_env()
object_list = []
if dist.get_rank() == 0:
    obj = {"foo": [1, 2, 3]}
else:
    obj = {"bar": [4, 5, 6]}
dist.all_gather_object(object_list, obj)
print(object_list)
# [{'foo': [1, 2, 3]}, {'bar': [4, 5, 6]}] (2 GPUs)