title: parallel quicksort in c
body: <p>After a lot of searching for an implementation of parallel quicksort in c, I'm about to dive in and code it myself.  (I need to sort an array of about 1 million text strings.)  It seems that all the implementations I have found divide the work inside the qsort function itself, which creates a huge amount of overhead in partitioning the relatively small amount of work per thread.</p>
  
  <p>Would it not be much faster to divide the 1 million strings by the number of threads (in my case, 24 threads), and have them each work on a section, and then do a mergesort?  Granted, this has the theoretical disadvantage that it is not an in-place sort, but with gobs of memory available it is not a problem. The machine this runs on has 12 (very fast) physical/24 logical cores and 192 GB (yes, gigabytes) of memory.  Currently, even on this machine, the sort takes almost 8 minutes!</p>