code: def scatter(comm, xs, root=0):
      """Differentiable scatter communication between workers.
  
      This function invokes scatter 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.
  
      The received array will be on the current CUDA device if ``xs`` on the
      root 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.
          xs (list of chainer.Variable):
              Variables to be scattered for master process.
              ``None`` for slave process.
  
      Returns:
          y (chainer.Variable): Scattered variable.
      """
      chainer.utils.experimental("chainermn.functions.scatter")
  
      if comm.rank == root:
          return Scatter(comm, root)(*xs)
      else:
          return Scatter(comm, root)()
  
imports: import chainer
  from chainer import backend
  import numpy
label_desc: Use image node_id 5 for calling a global function with example usage: scatter(comm, xs, root) and returns: Scatter, Scatter