code: def concat_all_gather(tensor: torch.Tensor) -> torch.Tensor:
      """
      Performs all_gather operation on the provided tensors.
      *** Warning ***: torch.distributed.all_gather has no gradient.
      """
      tensors_gather = [
          torch.ones_like(tensor)
          for _ in range(torch.distributed.get_world_size())
      ]
      torch.distributed.all_gather(
          tensors_gather, tensor, async_op=False
      )
  
      output = torch.cat(tensors_gather, dim=0)
      return output
  
file_path: vissl/vissl/utils/distributed_utils.py
imports: from typing import List
  import torch
  import torch.distributed
  from classy_vision.generic.distributed_util import convert_to_distributed_tensor, convert_to_normal_tensor, is_distributed_training_run
label_desc: Use image node_id 4 for calling a global function with example usage: concat_all_gather(tensor) and returns: output