broadcast_object_list¶
将一个 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)