On Tue, Mar 17, 2026 at 11:38 PM Kandimalla, Nagarjuna (MU-Student)
<[email protected]> wrote:
>
> I am Nagarjuna Kandimalla (www.linkedin.com/in/nagarjuna-kandimalla), a 
> Computer Science graduate student at the University of Missouri, Columbia. I 
> recently came to know about Google Summer of Code and am interested in 
> submitting a proposal on enhancements that can be made to GNU Parallel.

One of the side projects I have never gotten around to is to produce a
parallel sort that is 100% parallelized.

parsort (from GNU Parallel) is a very simple merge sort (it calls GNU
sort 2k times in parallel), but all data has to go through a single
core for the last merge.

We have better sorting algorithms that can use 100% of all cores all
the time with time complexity O((n log n)/k) (k = number of CPU
threads). E.g. https://en.wikipedia.org/wiki/Samplesort#Uses_in_parallel_systems
and https://github.com/bingmann/parallel-string-sorting

I think it would be a very useful tool to have: A lot of data
processing tasks have sorting as one of the steps, and everyone has
more cores sitting idle.

The program should be written in a compiled language for speed.
Personally, I would do it in Rust if I had the skills. Bingmann (see
above) uses C++ which is also great.

It should respect locale but only do the locale conversion once -
probably using strxfrm(3). parsort does the conversion log k times,
which is a waste.

It should be a drop-in replacement for GNU sort, so implement the same options.

It should (like GNU sort) be able to limit memory use and use
temporary files on disk.

One of the good parts about this project is that you really do not
need a lot of mentoring:

* The goal is extremely clear - produce a program, that works like GNU
sort but is k times faster that the single threaded version.
* The algorithms already exist - they "just" need to be packaged nicely.
* The interface to existing code base is minimal: Do the same as GNU
sort and you are golden.

I will be willing to spend some time on mentoring if needed.


/Ole

Reply via email to