code: def _make_broadcast_group_fn():
      if _executing_eagerly():
          # Eager mode will parallelize independent control flow
          def broadcast_group(
              variables, root_rank, process_set: ProcessSet
          ):
              for var in variables:
                  var.assign(
                      broadcast(var, root_rank, process_set=process_set)
                  )
  
          return _make_subgraph(broadcast_group)
      else:
          # Graph mode requires an Op
          def broadcast_group(
              variables, root_rank, process_set: ProcessSet
          ):
              return tf.group(
                  *[
                      var.assign(
                          broadcast(
                              var, root_rank, process_set=process_set
                          )
                      )
                      for var in variables
                  ]
              )
  
          return broadcast_group
  
file_path: horovod/horovod/tensorflow/functions.py
imports: import io
  import cloudpickle
  import numpy
  import tensorflow
  from tensorflow.python.framework import ops
  from horovod.tensorflow.mpi_ops import allgather, broadcast, broadcast_
  from horovod.tensorflow.mpi_ops import rank, size
  from horovod.tensorflow.util import _cache, _executing_eagerly, _make_subgraph
  from horovod.common.process_sets import ProcessSet, global_process_set
label_desc: Use image node_id 1 for calling a global function with example usage: _make_broadcast_group_fn() and returns: _make_subgraph, broadcast_group, tf