Methods for Partitioning Data to Improve Parallel Execution Time for Sorting on Heterogeneous Clusters