make reduce_shuffle different from reduce