English

An Agglomeration Law for Sorting Networks and its Application in Functional Programming

Data Structures and Algorithms 2017-01-04 v1

Abstract

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.

Keywords

Cite

@article{arxiv.1701.00635,
  title  = {An Agglomeration Law for Sorting Networks and its Application in Functional Programming},
  author = {Lukas Immanuel Schiller},
  journal= {arXiv preprint arXiv:1701.00635},
  year   = {2017}
}

Comments

In Proceedings WLP'15/'16/WFLP'16, arXiv:1701.00148

R2 v1 2026-06-22T17:39:50.953Z