Compiling communication-efficient programs for massively parallel machines | Synapse