I. Introduction  
II. Problem Settings  
III. State-of-the-Art Algorithms  
IV. Communication Perspective  
V. Computation Perspective  
VI. State-of-the-Art Performance  
VII. Numerical Experiments  
VIII. Future Directions  
IX. Conclusion