RFR: JDK-8266431: Dual-Pivot Quicksort improvements (Radix sort) [v9]

iaroslavski duke at openjdk.org
Sat Sep 23 21:54:16 UTC 2023


On Thu, 21 Sep 2023 23:40:25 GMT, Srinivas Vamsi Parasa <duke at openjdk.org> wrote:

>>> Hi Vladimir,
>>> 
>>> Just trying to understand: is there a reason to use `DualPivotQuicksort_RadixForParallel.java` and `DualPivotQuicksort_RadixForAll.java`?
>>> 
>>> Would it not be sufficient to do the following two runs:
>>> 
>>> 1. Baseline (Stock JDK) vs. AVX512 sort for`sort()`and `parallelSort()` ?
>>> 2. AVX512 sort vs. Radix sort for `sort()` and `parallelSort()` ?
>>> 
>>> Thanks, Vamsi
>> 
>> Hi Vamsi (@vamsi-parasa)!
>> 
>> I appreciate if you kindly agree to help with perf runs on your environment.
>> Results from your runs will help us to detect the impact of Radix sort in *vectorized* sorting, this is very important topic.
>> 
>> Interesting comparisons are:
>> 
>> 1. AVX512 sort (your implementation) vs. DualPivotQuicksort_RadixForParallel (contains AVX512 + radix for parallel sort)
>>     https://github.com/iaroslavski/sorting/blob/master/radixsort/DualPivotQuicksort_RadixForParallel.java
>> 
>> 2. AVX512 sort (your implementation) vs. DualPivotQuicksort_RadixForAll (contains AVX512 + radix for all)
>>     https://github.com/iaroslavski/sorting/blob/master/radixsort/DualPivotQuicksort_RadixForAll.java
>> 
>> If you add the 3-rd comparison
>> baseline (stock JDK) vs. AVX512 sort - it would be great also!
>> 
>> Please use this JMH test to run on:
>> https://github.com/iaroslavski/sorting/blob/master/radixsort/ArraysSort.java
>> 
>> * all sizes
>> * all inputs
>> * int type only
>> * sort() and parallelSort()
>> 
>> Looking forward the results,
>> Vladimir
>
> Hi Vladimir (@iaroslavski),
> 
> Kindly give me some time to do the JMH performance runs as I am currently occupied with various tasks related to the closing of the AVX512 sort PR.
> 
> Thanks,
> Vamsi

Sure, Vamsi @vamsi-parasa

Please find all my sorting classes
https://github.com/iaroslavski/sorting/blob/master/radixsort/DualPivotQuicksort_RadixForParallel.java
https://github.com/iaroslavski/sorting/blob/master/radixsort/DualPivotQuicksort_RadixForAll.java

and benchmarking test
https://github.com/iaroslavski/sorting/blob/master/radixsort/ArraysSort.java

It is already prepared and contains all sizes, all inputs, sort() and parallelSort(), but int type only.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13568#issuecomment-1732416840


More information about the core-libs-dev mailing list