code: def allgather(comm, x):
      """Differentiable all-gather communication between workers.
  
      This function invokes gather communications among processes specified
      by the communicator. Backward will be invoked as well as the ordinary
      chainer functions, where gradients are reduced to each process.
  
      The received array will be on the current CUDA device on the invoking
      process if ``x`` 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.Variables): Variables to send.
  
      Returns:
          ys (list of chainer.Variables): Received variables.
      """
      chainer.utils.experimental("chainermn.functions.all_gather")
  
      return AllGather(comm)(x)
  
imports: import chainer
  from chainer import backend
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: allgather(comm, x) and returns: AllGather