DAME: An environment for preserving the efficiency of data-parallel computations on distributed systems