HAP: SPMD DNN Training on Heterogeneous GPU Clusters with Automated Program Synthesis | Synapse