Linux SoftwareProgrammingLibrarieslibpmsort 0.2

libpmsort 0.2


libpmsort provides a parallel merge-sort algorithm that is interface compatible with qsort(3)
Developer:   Markus W. Weissmann
      more software by author →
Price:  0.00
License:   BSD License
File size:   66K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


libpmsort provides a parallel merge-sort algorithm that is interface compatible with qsort(3). If the compare function is thread-safe, you may easily swap qsort with pmsort.

Though merge-sort itself is slower then quicksort on average, utilizing multiple CPUs or waiting in parallel for I/O can speed up the sorting tremendously.

Parallel mergesort, interface-compatible with qsort(3);

The compare-function must be thread-safe!

Uses posix-threads, currently hard-coded number of threads (pmsort) or can be
given explicitely (pmsort_mt). The latter function call is of course not
entirely interface compatible with qsort as it needs an additional integer
argument.

The benchmark program pm_test will compare pmsort to your system's qsort(3)
and mergesort(3). Testing v0.2 on a 4x PPC970 system yields an advantage of
100% over qsort(3) when sorting pure integers (best-case for serial qsort).
So pmsort(3) takes roughly twice the CPU-time but scales very well with multiple
processors.

Remind that this was the worst-case for pmsort(3) - sorting with e. g. an
I/O bound compare function can put pmsort(3) much further in the lead, even on
single processor systems.

What's New in This Release:
  • This release fixes a silly compile error.
  • It adds a benchmark/test program.
  • The Benchmark compares qsort(3), mergesort(3), and pmsort(3) sorting arrays of integers, floats, and doubles.
  • The array size can be parametrized, as can be the number of threads used by pmsort(3).
  • Preliminary tests on a 4x PPC970 yield an edge of rougly 200% of pmsort over mergesort.
    tags compare function  compatible with  with qsort  interface compatible  case for  this release  the benchmark  the compare  merge sort  thread safe  

    Download libpmsort 0.2


     http://www.opendarwin.org/~mww/libpmsort/libpmsort-0.2.tar.gz


    Authors software

    libpmsort 0.2 (by Markus W. Weissmann)
    libpmsort provides a parallel merge-sort algorithm that is interface compatible with qsort(3)


    Similar software

    libpmsort 0.2 (by Markus W. Weissmann)
    libpmsort provides a parallel merge-sort algorithm that is interface compatible with qsort(3)

    libcontain 0.2 Alpha1 (by Ronald Landheer-Cieslak)
    libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++.

    The libconta

    kernbench 0.41 (by Con Kolivas)
    This is a cpu throughput benchmark originally devised and used by Martin J

    Robsort Sorting Algorithm 1.0 (by Robert Thompson)
    Robsort in a GNU public license sorting algorithm devleloped by Robert Thompson

    Algorithm::Networksort 1.05 (by John M. Gamble)
    Algorithm::Networksort can create inline comparisons for sorting.

    SYNOPSIS

    use Algorithm::Networksort qw(:all);

    my $inpu

    Parallel BZIP2 0.9.6 (by Jeff Gilchrist)
    Parallel BZIP2 project is a parallel implementation of the bzip2 block- sorting file compressor that uses pthreads and achieves near-

    bonnie++ 1.03a (by Russell Coker)
    Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance.

    Then

    JDumpViewer 0.2 (by Scott Bartram)
    JDumpViewer is a tool for analyzing Java thread dumps.

    ToDo:
    General

    · detect and handle parse exceptions - display info to u

    SmartSynchronize 1.5 (by Thomas Singer)
    SmartSynchronize™ is an multi-platform file/directory compare and merge tool

    nbench 2.2.2 (by Uwe F. Mayer)
    The benchmark program takes less than 10 minutes to run (on most machines) and compares the system it is run on to two benchmark syst


    Other software in this category

    zlib 1.2.3 (by Jean-loup Gailly)
    zlib is designed to be a free, general-purpose, legally unencumbered, lossless data-compression library for use on virtually any comp

    libjpeg v6b (by Independent JPEG Group)
    libjpeg is a library for handling the JPEG (JFIF) image format

    OpenSSL 0.9.7c (by The OpenSSL Project Team)
    The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implement

    libxml2 2.6.27 (by DV)
    Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), libxml2 library i

    GNU C library 2.4 (by Andreas Jaeger)
    GNU C library (glibc) is one of the most important components of GNU Hurd and most modern Linux distributions.

    GNU C library is us

  •     search


    Featured Software

    jEdit 4.3 pre8
    jEdit is an Open Source text editor written in Java

    Opera 9.02
    Surf the Internet in a safer, faster, and easier way with Opera browser

    GNU Aspell 0.60.4
    GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


    Subscribe in Rojo
    Google Reader
    Add to My Yahoo!

    Add to My AOL
    Subscribe with Bloglines
    Subscribe in NewsGator Online
    Add 'nixbit linux software' to Newsburst from CNET News.com
    del.icio.us nixbit linux software


    Top tags