add shuffle-based binaryTreeReduce