[Chapel Merge] Implement Parallel TimSort Algorithm

Branch: refs/heads/master
Revision: c6ef85c
Author: ben-albrecht
Log Message:

Merge pull request #16961 from Yudhishthira1406/master

Implement Parallel TimSort Algorithm

Parallel TimSort Implementation
Implemented parallel insertion sort for each block and parallel merge each segment at each level of merging.

Implementation based off the Python version rather than the Java version of timsort.

  • [x] implementation and documentation
  • [x] correctness test
  • [x] performance test

The issue #15045

[Contributed by @Yudhishthira1406]
[Reviewed by @ben-albrecht]

Modified Files:
M modules/packages/Sort.chpl
M test/library/packages/Sort/correctness/correctness.chpl
M test/library/packages/Sort/performance/performance.chpl
M test/library/packages/Sort/performance/performance.good
M test/library/packages/Sort/performance/performance.perfexecopts
M test/library/packages/Sort/performance/sort-performance-explorer.chpl
M test/library/packages/Sort/performance/sorts-linearithmic.graph

Compare: Comparing 296d93fc6e8e...c6ef85ca086a · chapel-lang/chapel · GitHub