Optimizing Explicit Data Transfers for Data Parallel