Breaking the computation and communication abstraction barrier in distributed machine learning workloads | Synapse