broadcast_object_list

paddle.distributed. broadcast_object_list ( object_list, src, group=None ) [源代码]

将一个 picklable 对象发送到每个进程。 过程与 broadcast 类似,但可以传入自定义的 python 对象。

注解

该 API 只支持动态图模式。

参数

  • object_list (List[Any]) - 在目标进程上为待广播的 object 列表,在其他进程上为用于接收广播结果的 object 列表。

  • src (int) - 目标进程的 rank,该进程传入的 object 列表将被发送到其他进程上。

  • group (Group,可选) - 执行该操作的进程组实例(通过 new_group 创建)。默认为 None,即使用全局默认进程组。

返回

无返回值。

代码示例

# required: distributed
import paddle.distributed as dist

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