code: def bcast(comm, x, root=0):
      """Differentiable broadcast communication between workers.
  
      This function invokes broadcast communications among processes specified
      by the communicator. Backward will be invoked as well as the ordinary
      chainer functions, where gradients are gathered to the root process
      and summed up.
  
      The received array will be on the current CUDA device if ``x`` on the
      invoking process is on GPU. Please be aware that the current CUDA device
      is intended one.
      (``https://docs-cupy.chainer.org/en/stable/tutorial/basic.html#current-device``)
  
      Args:
          comm: ChainerMN communicator.
          x (chainer.Variable): Variable to be sent.
  
      Returns:
          y (chainer.Variable): Broadcasted variable.
      """
      chainer.utils.experimental("chainermn.functions.bcast")
  
      if comm.rank == root:
          return Bcast(comm, root)(x)
      else:
          return Bcast(comm, root)()
  
imports: import chainer
  from chainer import backend
  import numpy
label_desc: Use image node_id 3 for calling a global function with example usage: bcast(comm, x, root) and returns: Bcast, Bcast