Distributed Machine Learning Scale Out with Algorithms and Systems