Table of Contents
Fetching ...

A Randomised Approach to Distributed Sorting

Sam Olesker-Taylor

TL;DR

This work introduces a lightweight, graph-based randomised sorting framework that is well suited to distributed and fault-tolerant environments. By assigning edge weights $w(\{i,j\})$ and repeatedly sorting endpoints of randomly chosen edges, the harmonic sorter achieves $\Theta\bigl(n (\log n)^2\bigr)$ comparisons and supports linear speedups in parallel settings, with both asynchronous and synchronous implementations. The authors establish a rigorous reduction to balanced 0--1 inputs, analyze a Uniform Sorter as a warm-up, and then develop two analyses for the Harmonic Sorter: a $(\log n)^2$-time bound and a refined $\log n$-time bound, along with parallelisation results. The framework offers robustness, simplicity, and natural scalability for distributed sorting tasks, potentially outperforming deterministic networks in large-scale, fault-prone environments.

Abstract

We introduce and analyse a new, extremely simple, randomised sorting algorithm: - choose a pair of indices $\{i, j\}$ according to some distribution $q$; - sort the elements in positions $i$ and $j$ of the array in ascending order. Choosing $q_{\{i,j\}} \propto 1/|j - i|$ yields an order-$n (\log n)^2$ sorting time. We call it the harmonic sorter. The sorter trivially parallelises in the asynchronous setting, yielding a linear speed-up. We also exhibit a low-communication, synchronous version with a linear speed-up. We compare and contrast this algorithm with other sorters, and discuss some of its benefits, particularly its robustness and amenability to parallelisation and distributed computing.

A Randomised Approach to Distributed Sorting

TL;DR

This work introduces a lightweight, graph-based randomised sorting framework that is well suited to distributed and fault-tolerant environments. By assigning edge weights and repeatedly sorting endpoints of randomly chosen edges, the harmonic sorter achieves comparisons and supports linear speedups in parallel settings, with both asynchronous and synchronous implementations. The authors establish a rigorous reduction to balanced 0--1 inputs, analyze a Uniform Sorter as a warm-up, and then develop two analyses for the Harmonic Sorter: a -time bound and a refined -time bound, along with parallelisation results. The framework offers robustness, simplicity, and natural scalability for distributed sorting tasks, potentially outperforming deterministic networks in large-scale, fault-prone environments.

Abstract

We introduce and analyse a new, extremely simple, randomised sorting algorithm: - choose a pair of indices according to some distribution ; - sort the elements in positions and of the array in ascending order. Choosing yields an order- sorting time. We call it the harmonic sorter. The sorter trivially parallelises in the asynchronous setting, yielding a linear speed-up. We also exhibit a low-communication, synchronous version with a linear speed-up. We compare and contrast this algorithm with other sorters, and discuss some of its benefits, particularly its robustness and amenability to parallelisation and distributed computing.

Paper Structure

This paper contains 16 sections, 54 equations, 2 figures, 1 table.

Figures (2)

  • Figure 1: Two examples of collections $(M_0, M_1, M_2, M_3)$ of matchings, both with $n = 64$. Above. Edge-lengths $D = 11$, so $K = \floor{\lg(n/D)} = 2$. Each of the four matchings has $2^{K-1} = 2$ 'blocks', each containing $n/2^{K+1} = 8$ edges of length $D = 11$.Below. Edge-lengths $D = 6$, so $K = \floor{\lg(n/D)} = 3$. Each of the four matchings has $2^{K-1} = 4$ 'blocks', each containing $n/2^{K+1} = 4$ edges of length $D = 6$.The blocks are all rotations of the 'fundamental block' $E_{D,K}$; the bisecting straight lines indicate the starting point of this rotated block. Each matching contains $n/4 = 16$ edges
  • Figure 2: Branching process from recursion. Vertex labels indicate which binary interval has just been split; eg, label $01$ indicates that $X_t(.010\mathord\star) = .010\mathord\star$ and $X_t(.011\mathord\star) = .011\mathord\star$ at this point. Edge labels indicate the passage time; eg, label $T_{01}$ indicates that it took time $T_{01}$ between achieving $\set{ X_t(.01\mathord\star) = .01\mathord\star }$ and $\set{ X_t(.010\mathord\star) = .010\mathord\star } \cap \set{ X_t(.011\mathord\star) = .011\mathord\star }$