Optimizing Ring Allreduce For Sparse Data