class_docstr: Interface that uses NVIDIA's NCCL to perform communications.
  
  Args:
      n_devices (int): Total number of devices that will be used in the
          distributed execution.
      rank (int): Unique id of the GPU that the communicator is associated to
          its value needs to be `0 <= rank < n_devices`.
      host (str, optional): host address for the process rendezvous on
          initialization. Defaults to `"127.0.0.1"`.
      port (int, optional): port used for the process rendezvous on
          initialization. Defaults to `13333`.
      use_mpi(bool, optional): switch between MPI and use the included TCP
          server for initialization & synchronization. Defaults to `False`.
class_docstr_tok: ["Interface","that","uses","NVIDIA","'s","NCCL","to","perform","communications",".","Args",":","n_devices","(","int",")",":","Total","number","of","devices","that","will","be","used","in","the","distributed","execution",".","rank","(","int",")",":","Unique","id","of","the","GPU","that","the","communicator","is","associated","to","its","value","needs","to","be","`","0","<","=","rank","<","n_devices","`",".","host","(","str",",","optional",")",":","host","address","for","the","process","rendezvous","on","initialization",".","Defaults","to","`","``","127.0.0.1","''","`",".","port","(","int",",","optional",")",":","port","used","for","the","process","rendezvous","on","initialization",".","Defaults","to","`","13333","`",".","use_mpi","(","bool",",","optional",")",":","switch","between","MPI","and","use","the","included","TCP","server","for","initialization","&","synchronization",".","Defaults","to","`","False","`","."]
docstr: Performs a scatter operation.
  
  Args:
      in_array (cupy.ndarray): array to be sent. Its shape must be
          `(total_ranks, ...)`.
      out_array (cupy.ndarray): array where the result with be stored.
      root (int): rank that will send the `in_array` to other ranks.
      stream (cupy.cuda.Stream, optional): if supported, stream to
          perform the communication.
code: def scatter(self, in_array, out_array, root=0, stream=None):
      """Performs a scatter operation.
  
      Args:
          in_array (cupy.ndarray): array to be sent. Its shape must be
              `(total_ranks, ...)`.
          out_array (cupy.ndarray): array where the result with be stored.
          root (int): rank that will send the `in_array` to other ranks.
          stream (cupy.cuda.Stream, optional): if supported, stream to
              perform the communication.
      """
      self._dispatch_arg_type(
          "scatter", (in_array, out_array, root, stream)
      )
  
imports: import numpy
  import warnings
  import cupy
  from cupy.cuda import nccl
  from cupyx.distributed import _store
  from cupyx.distributed._comm import _Backend
  from cupyx.scipy import sparse
label_desc: Use image node_id 16 for calling the NCCLBackend obj's underlying member method code with example usage: obj.scatter(in_array, out_array, root, stream) without return types