Parallel Data Processing
We consider a version of merge sort that operates on trees rather than lists. We observe that while this merge sort on trees does the same work as merge sort on lists, their span is very different. We track it down to the underlying data structures: merge sort on lists imposes dependencies that prevent opportunities for parallelism; trees instead impose fewer dependencies. This suggests that trees are a more advantageous data structure than lists for parallel computation.