Distributed Machine Learning Systems: Algorithms, Communication Eciency, and Convergence Guarantees | Synapse