code: def forward(ctx, dst, group, tensor):
      ctx.dst = dst
      ctx.group = group
      # Need to create a list of tensors here to do the
      # aggregation, get it from the group size
      # tensor should be correctly sized for the method
      # gathering
      tensor_list = [
          torch.zeros_like(tensor)
          for i in range(dist.get_world_size(group=group))
      ]
  
      tensor = tensor.contiguous()
      if dist.get_rank(group=group) == dst:
          dist.gather(tensor, tensor_list, dst, group=group)
      else:
          dist.gather(tensor, None, dst, group=group)
      return tuple(tensor_list)
  
imports: import torch
  import torch.distributed
  from torch.autograd import Function
label_desc: Use image node_id 1 for calling the _Gather obj's underlying member method code with example usage: obj.forward(ctx, dst, group, tensor) and returns: tuple