Parallel Partition and Merge QuickSort (PPMQSort) on Multicore CPUs

dc.contributor.authorRanokphanuwat, Ratthaslip
dc.contributor.authorKittitornkun, Surin
dc.date.accessioned2026-08-06T10:13:32Z
dc.date.available2026-08-06T10:13:32Z
dc.date.issued2016-03-01
dc.description.abstractAn explosive amount of data has tremendous impacts on sorting, searching, indexing, and so on. Sorting is one of the basic Computer Science problems needed to be fast and efficient to serve Big Data. This paper presents an efficient and scalable algorithm called Parallel Partition and Merge QuickSort (PPMQSort) running on any shared memory/multicore/multi-socket systems. Together with OpenMP 3.0 library, the PPMQSort is developed to be compatible and benchmarked with the fastest C/C++ Stdlib qsort(). The PPMQSort recursively divides an unsorted input array into partially sorted partitions up to Cutoff length using nested multithreading. Finally, those independent partitions are qsort() (conquered) such that no synchronizations are needed. The resulting Speedup of 12.29 (Formula presented.) on a dual-socket 8-core Xeon E5520 can be achieved for sorting random 200 M 32-bit integer data at 16 threads. With the same configuration, a 4-core AMD A6-3600 CPU (non-HyperThread) can reach up to 4.67 (Formula presented.) , a superlinear Speedup. It has been proved that the proposed PPMQSort can exploit all available cache levels and HyperThread CPU cores well thus utilizing up to 83 % and 96 % of CPU on E5520 and A6-3600, respectively.
dc.identifier.citationJournal of Supercomputing, 72(3), 1063-1091, 2016
dc.identifier.doi10.1007/s11227-016-1641-y
dc.identifier.issn09208542
dc.identifier.other2-s2.0-84961053434
dc.identifier.urihttps://dspace.kmitl.ac.th/handle/123456789/6798
dc.sourceJournal of Supercomputing
dc.subjectMulticore
dc.subjectMultithread
dc.subjectOpenMP
dc.subjectParallel
dc.subjectQuickSort
dc.subjectSuperlinear
dc.titleParallel Partition and Merge QuickSort (PPMQSort) on Multicore CPUs
dc.typeArticle

Files

Collections