docstr: Reduces the tensor data across all parties; all get the final result.
docstr_tok: ["Reduces","the","tensor","data","across","all","parties",";","all","get","the","final","result","."]
code: def all_reduce(self, tensor, op=ReduceOp.SUM, async_op=False):
      """Reduces the tensor data across all parties; all get the final result."""
      if async_op:
          raise NotImplementedError()
  
      ag = self.all_gather(tensor)
      reduce_fn = self._reduce_op_to_function(op)
      return reduce_fn(torch.stack(ag), dim=0)
  
imports: import logging
  import threading
  from operator import itemgetter
  from queue import Queue
  import torch
  from torch.distributed import ReduceOp
  from .communicator import Communicator
label_desc: Use image node_id 13 for calling the InProcessCommunicator obj's underlying member method code with example usage: obj.all_reduce(tensor, op, async_op) and returns: reduce_fn