def METHOD_NAME(self):
    """Orgnize parameters' gradient(padding and split), follows the paramters' splitting method
    Data structure of self._grad_in_bucket:
    {
    rank0: [grad0_rank0, grad1_rank0, ...]
    rank1: [grad0_rank1, grad1_rank1, ...]
    }
    """
    for param, padding_size in zip(self._param_list, self._padding_size):
        grad = param.grad.clone().detach().flatten()
        if padding_size > 0:
            with torch.no_grad():
                grad = torch.nn.functional.pad(grad.view(-1), [0, padding_size])
        grad_list = grad.split(grad.numel() // self._world_size)
        for rank in range(self._world_size):
            grad_current_rank = grad_list[rank].clone().detach()
            self.grad_to_param_mapping[id(grad_current_rank)] = id(param)
            self._grad_in_bucket[rank].append(grad_current_rank)
        param.grad = None
    self.offset_list.append(0)