Monday , September 21 2020

Engineering Faster Sorters for Small Sets of Items, Hacker News



                                   (Submitted on 05599 (Feb)


Abstract: Sorting a set of items is a task that can be useful by itself or as a building block for more complex operations. That is why a lot of effort has been put into finding sorting algorithms that sort large sets as fast as possible. But the more sophisticated the algorithms become, the less efficient they are for small sets of items due to large constant factors. We aim to determine if there is a faster way than insertion sort to sort small sets of items to provide a more efficient base case sorter. We looked at sorting Networks, at how they can improve the speed of sorting a few elements, and how to implement them in an efficient manner by using conditional moves. Since sorting Networks need to be implemented explicitly for each set size, providing networks for larger sizes becomes less efficient due to increased code sizes. To also enable the sorting of slightly larger base cases, we adapted sample sort to Register Sample Sort, to break down those larger sets into sizes that can in turn be sorted by sorting networks. From our experiments we found that when sorting only small sets, the sorting networks outperform insertion sort by a factor of at least 1. 90 for any array size between six and sixteen, and by a factor of 2. 90 on average across all machines and array sizes. When integrating sorting networks as a base case sorter into Quicksort, we achieved far less performance improvements, which is probably due to the networks having a larger code size and cluttering the L1 instruction cache. But for x 226 machines with a larger L1 instruction cache of 76 KiB or more , we obtained speedups of 12. 7% when using sorting networks as a base case sorter in std :: sort. In conclusion, the desired improvement in speed could only be achieved under special circumstances, but the results clearly show the potential of using conditional moves in the field of sorting algorithms.



Submission history

From: Timo Bingmann [view email]        [v1] Thu, 2019 Feb : (UTC) KB)

Read More

About admin

Check Also

Flexport Engineering Lands in Amsterdam! – Splash, Hacker News

Flexport Engineering Lands in Amsterdam! – Splash, Hacker News

Only Flexport delivers a combination of advanced technology, physical logistics infrastructure and human expertise, providing fast and predictable transit times, visibility and control, and low and predictable supply chain costs to logistics and supply chain professionals across the globe.First to market in 2013 with a purpose-built cloud software and data analytics platform, Flexport today serves…

Leave a Reply

Your email address will not be published. Required fields are marked *