code: def alltoall_cpu(
      rank, world_size, output_tensor_list, input_tensor_list
  ):
      """Each process scatters list of input tensors to all processes in a cluster
      and return gathered list of tensors in output list. The tensors should have the same shape.
  
      Parameters
      ----------
      rank : int
          The rank of current worker
      world_size : int
          The size of the entire communicator
      output_tensor_list : List of tensor
          The received tensors
      input_tensor_list : List of tensor
          The tensors to exchange
      """
      input_tensor_list = [
          tensor.to(th.device("cpu")) for tensor in input_tensor_list
      ]
      for i in range(world_size):
          dist.scatter(
              output_tensor_list[i],
              input_tensor_list if i == rank else [],
              src=i,
          )
  
imports: import torch
  import torch.distributed
label_desc: Use image node_id 1 for calling a global function with example usage: alltoall_cpu(rank, world_size, output_tensor_list, input_tensor_list) without return types