  In this paper we will present a general agglomeration law for sorting
networks. Agglomeration is a common technique when designing parallel
programmes to control the granularity of the computation thereby finding a
better fit between the algorithm and the machine on which the algorithm runs.
Usually this is done by grouping smaller tasks and computing them en bloc
within one parallel process. In the case of sorting networks this could be done
by computing bigger parts of the network with one process. The agglomeration
law in this paper pursues a different strategy: The input data is grouped and
the algorithm is generalized to work on the agglomerated input while the
original structure of the algorithm remains. This will result in a new access
opportunity to sorting networks well-suited for efficient parallelization on
modern multicore computers, computer networks or GPGPU programming.
Additionally this enables us to use sorting networks as (parallel or
distributed) merging stages for arbitrary sorting algorithms, thereby creating
new hybrid sorting algorithms with ease. The expressiveness of functional
programming languages helps us to apply this law to systematically constructed
sorting networks, leading to efficient and easily adaptable sorting algorithms.
An application example is given, using the Eden programming language to show
the effectiveness of the law. The implementation is compared with different
parallel sorting algorithms by runtime behaviour.
