Peter Sanders 0001

dblp:s/PeterSanders · DBLP profile ↗
← Back
223ranked-venue papers
57as first author
57since 2021 · last 2026
0000-0003-3330-9349ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 130 · 27 first-author · 35 since 2021Systems, architecture and hardware · 60 · 24 first-author · 13 since 2021Databases, data management, data science and information retrieval · 20 · 5 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 16 · 5 first-author · 2 since 2021Artificial intelligence and machine learning · 12 · 3 first-author · 3 since 2021Software engineering, systems software and programming languages · 6 · 4 since 2021Graphics, computer vision, multimedia, augmented reality and games · 2 · 1 since 2021
YearPublicationVenuePosition
2026 BlockFIFO & MultiFIFO: Scalable Relaxed Queues
abstract
FIFO queues are a fundamental data structure used in a wide range of applications. Concurrent FIFO queues allow multiple execution threads to access the queue simultaneously. Maintaining strict FIFO semantics in concurrent queues leads to low throughput due to high contention at the head and tail of the queue. By relaxing the FIFO semantics to allow some reordering of elements, it becomes possible to achieve much higher scalability. This work presents two orthogonal designs for relaxed concurrent FIFO queues, one derived from the MultiQueue and the other based on ring buffers. We evaluate both designs extensively on various micro-benchmarks and a breadth-first search application on large graphs. Both designs outperform state-of-the-art relaxed and strict FIFO queues, achieving higher throughput and better scalability.
Stefan Koch 0004, Peter Sanders 0001, Marvin Williams
ALENEX2
2026 PHast - Perfect Hashing made fast
abstract
Perfect hash functions give unique “names” to arbitrary keys requiring only a few bits per key. This is an essential building block in applications like static hash tables, databases, or bioinformatics. This paper introduces the PHast approach that combines the fastest available queries, very fast construction, and good space consumption (below 2 bits per key). PHast improves bucket-placement which first hashes each key \(k\) to a bucket, and then looks for the bucket seed \(s\) such that a placement function maps pairs \((s,\, k)\) in a collision-free way. PHast can use smallrange hash functions with linear mapping, fixed-width encoding of seeds, and parallel construction. This is achieved using small overlapping slices of allowed values and bumping to handle unsuccessful seed assignment. A variant we called PHast+ uses additive placement, which enables bit-parallel seed searching, speeding up the construction by an order of magnitude.
Piotr Beling, Peter Sanders 0001
ALENEX2
2026 Mallob: Scalable Automated Reasoning on Demand
abstract
Abstract This tool paper presents the latest (2026) version of Mallob – a distributed platform for automated reasoning on demand. Mallob features a world-leading distributed SAT solving engine, which is the first of its kind that supports proof checking, incremental SAT queries, and flexible (re-)scheduling of computational resources. Exploiting this technology, Mallob features further engines relevant for verification, such as MaxSAT and SMT solving. We present these use cases, discuss a wide range of experimental results, and reflect on the system’s impact.
Dominik Schreiber 0001, Niccolò Rigi-Luperti, Peter Sanders 0001
CAV (2)3
2026 Deconstructed "Learned" Indexes and Their Smoothed Analysis
abstract
Data structures that maintain a sorted sequence are crucial for many applications. There is a zoo of variants with recent particular interest in "learned" indexes that accelerate operations by learning the distribution of the data. This paper helps to bring some order to this complex situation. We identify important building blocks and model the input using smoothed analysis where an adversary can control the dynamically changing input except for a small amount of noise. Within a resulting design space of data structures, we prove that already a simple 2-level data structure with minimal learning can achieve constant operation times in many situations: PARROT partitions the input into equal size parts, within which keys are approximately uniformly distributed. In many of our experiments, PARROT performs very well compared to state-of-the-art learned indexes, being 2× faster than the well known ALEX and LIPP indexes on large datasets, and 10× faster than a well engineered standard B-Tree.
Stefan Hermann 0002, Mattia Odorisio, Peter Sanders 0001, Stefan Walzer
ESA3
2026 Non-Minimal k-Perfect Hashing: Tight Lower Bounds and an Application to Fast Static Hash Tables
abstract
A minimal perfect hash function (minimal PHF) is a data structure mapping a static set of n keys to n bins without collisions. Two natural generalizations are minimal k-PHFs where n keys are mapped to n/k bins of capacity k each, and (non-minimal) PHFs with load factor α < 1 where the number of bins is increased by a factor of 1/α, resulting in spare capacity. While there has been a recent surge of interest in perfect hashing generally, non-minimal k-PHFs have not been systematically studied despite a natural use case of speeding up static hash tables: The idea is that a small cache-resident k-PHF maps each key x to a cache-line-sized bin of capacity k where x resides. Ideally, this yields a branchless lookup operation with a single cache miss working at high load factors for positive and negative queries alike. Our main theoretical contribution is to determine tight space lower bounds for k-PHFs for all pairs of α ∈ (0,1] and k ≥ 1. It turns out that combining α < 1 and k ≥ 2 drastically reduces the space of k-PHFs, e.g. for (k,α) = (16,0.8) the space lower bound is 0.027 bits per key while for (k,α) = (16,1.0) and (k,α) = (1,0.8) the lower bounds are higher by factors of ≈ 8 and ≈ 32, respectively. On the practical side, we develop a k-PHF based on PtrHash and tune it for use in static hash tables. Empirically, our implementation produces k-PHFs of size roughly 50% above the lower bound. A static hash set based on this k-PHF is consistently at least as fast as other hash sets for negative and mixed queries. On two of the three tested architectures it achieves up to 1.5× speedup for large n ≥ 30M where a 1-PHF does not fit in cache.
Ragnar Groot Koerkamp, Stefan Hermann 0002, Peter Sanders 0001, Stefan Walzer
ESA3
2026 Practical Bit Vectors Supporting Constant Time Rank and Select in Optimal Space
abstract
Bit vectors with support for fast rank and select are a fundamental building block for compressed data structures. We close a gap between theory and practice by mapping a design space of promising data structures, analyzing it, and experimentally evaluating a promising region. The result are implementations of rank and select data structures for bit vectors with worst-case constant query time, leading practical performance, and a space-overhead reaching below 1 %. For difficult inputs, we are ≈ 8 times faster than the best previous implementations.
Florian Kurpicz, Niccolò Rigi-Luperti, Peter Sanders 0001
ESA3
2026 Engineering Scalable Distributed List Ranking
Peter Sanders 0001, Matthias Schimek, Tim Niklas Uhl, Thomas Weidmann
Euro-Par (2)1
2026 Keynote Talk: Parallel Algorithm Engineering Reconsidered
abstract
Algorithm engineering is a view on the methodology of algorithmic research. At its core is a feedback cycle of modeling, design, analysis, implementation, and experimental evaluation [1, 3]; see Fig. 1. At each stage, we learn new things about an algorithmic problem that drives the development of better solutions. This is inspired by the hypothesis-driven cycle of scientific discovery prevalent in the natural sciences [2].
Peter Sanders 0001
PODC1
2026 Keynote Talk: Parallel Algorithm Engineering Reconsidered
abstract
Algorithm engineering is a view on the methodology of algorithmic research. At its core is a feedback cycle of modeling, design, analysis, implementation, and experimental evaluation [1, 3]; see Fig. 1. At each stage, we learn new things about an algorithmic problem that drives the development of better solutions. This is inspired by the hypothesis-driven cycle of scientific discovery prevalent in the natural sciences [2].
Peter Sanders 0001
SPAA1
2026 Ribbon: Fast Succinct Static Retrieval and Approximate Membership
abstract
Given a set \(S \subseteq \mathcal {U}\) and a function \(f:S\rightarrow \lbrace 0,1\rbrace ^r\) , a static retrieval data structure for f supports queries that return \(f(x)\) for \(x \in S\) and an arbitrary value from \(\lbrace 0,1\rbrace ^r\) for \(x \in \mathcal {U}\setminus S\) . Retrieval data structures can be used to implement a static approximate membership query (AMQ) data structure, i.e., a Bloom filter alternative, with false positive rate \(2^{-r}\) . The information-theoretic space lower bound for both tasks is \(r|S|\) bits, and here we aim to use space \(r|S|(1+\varepsilon)\) bits for a small overhead \(\varepsilon\) , including succinct constructions with \(\varepsilon = o(1)\) . A well-known approach to this task associates each key \(x \in S\) with a row vector \(\smash{\vec{h}}(x) \in \lbrace 0,1\rbrace ^{m}\) and stores a matrix \(Z\in \lbrace 0,1\rbrace ^{m\times r}\) such that \(\smash{\vec{h}}(x)\cdot Z = f(x)\) for every \(x \in S\) . We propose a new variant where \(\smash{\vec{h}}(x)\) contains a short block of random bits at a random position \(s(x)\) , and is otherwise zero. Sorting the row vectors by \(s(x)\) gives a matrix \(A \in \lbrace 0,1\rbrace ^{n \times m}\) with non-zero entries concentrated in a “ribbon” along a generalized diagonal. This makes a variant of Gaussian elimination particularly efficient at computing Z . We thus obtain simple data structures called Standard Ribbon Retrieval and Homogeneous Ribbon Filter . We then refine the construction using bumping (a variant of backyarding) and overloading (using \(m \lt n\) ) to obtain bumped ribbon retrieval (“BuRR”), with overhead \(\mathcal {O}\!(\frac{\log w}{rw^2})\) , query time \(\mathcal {O}\!(1+\frac{rw}{\log n})\) , and expected construction time \(\mathcal {O}\!\left(nw\right)\) , for a tuning parameter \(w=\mathcal {O}\!\left(\log n\right)\) that opens a trade-off between space and running time. Our experiments reveal our implementations to be the first to simultaneously achieve small overheads and fast running times in practice, with BuRR achieving overheads well below 1 % while being faster than most competitors, which have larger space overheads. This efficiency, including favorable constants, stems from a combination of simplicity, word parallelism, and high locality. We offer a unified theoretical perspective on these three ribbon-based data structures, including a nontrivial rigorous analysis of their running times and memory consumption.
Martin Dietzfelbinger, Peter C. Dillinger, Lorenz Hübschle-Schneider, Peter Sanders 0001, Stefan Walzer
J. ACM4
2025 Engineering Optimal Parallel Task Scheduling
abstract
The NP-hard scheduling problem \(P\Vert C_{\max}\) encompasses a set of tasks with known execution time which must be mapped to a set of identical machines such that the overall completion time is minimized. In this work, we improve existing techniques for optimal \(P\Vert C_{\max}\) scheduling with a combination of new theoretical insights and careful practical engineering. Most importantly, we derive techniques to prune vast portions of the search space of branch-and-bound (BnB) approaches and propose improved upper and lower bounding techniques. Moreover, we present new benchmarks for \(P\Vert C_{\max}\), based on diverse applications, which can shed light on aspects that prior synthetic instances fail to capture. In extensive evaluations, we observe that our pruning reduces the number of explored nodes by \(90\times\) and running times by \(12\times\). Compared to a state-of-the-art ILP-based approach, our approach is preferable for short running time limits and for instances with large makespans.
Matthew Akram, Nikolai Maas, Peter Sanders 0001, Dominik Schreiber 0001
ALENEX3
2025 Linear-Time Multilevel Graph Partitioning via Edge Sparsification
abstract
The current landscape of balanced graph partitioning is divided into high-quality but expensive multilevel algorithms and cheaper approaches with linear running time, such as single-level algorithms and streaming algorithms. We demonstrate how to achieve the best of both worlds with a linear time multilevel algorithm. Multilevel algorithms construct a hierarchy of increasingly smaller graphs by repeatedly contracting clusters of nodes. Our approach preserves their distinct advantage, allowing refinement of the partition over multiple levels with increasing detail. At the same time, we use edge sparsification to guarantee geometric size reduction between the levels and thus linear running time. We provide a proof of the linear running time as well as additional insights into the behavior of multilevel algorithms, showing that graphs with low modularity are most likely to trigger worst-case running time. We evaluate multiple approaches for edge sparsification and integrate our algorithm into the state-of-the-art multilevel partitioner KaMinPar, maintaining its excellent parallel scalability. As demonstrated in detailed experiments, this results in a 1.49× average speedup (up to 4× for some instances) with only 1% loss in solution quality. Moreover, our algorithm clearly outperforms state-of-the-art single-level and streaming approaches.
Lars Gottesbüren, Nikolai Maas, Dominik Rosch, Peter Sanders 0001, Daniel Seemaier
ESA4
2025 Fast and Lightweight Distributed Suffix Array Construction
abstract
The suffix array contains the lexicographical order of all suffixes of a text. It is one of the most well-studied text indices with applications in bioinformatics, compression, and pattern matching. The main bottleneck of distributed-memory suffix array construction algorithms is their memory requirements. Even careful implementations require 30×-60× the input size as working memory. We present a scalable and lightweight distributed-memory adaptation of the difference cover (DCX) suffix array construction algorithm. Our approach relies on novel bucketing and random chunk redistribution techniques which reduce our memory requirement to 20×-26× the input size for medium-sized inputs and to 14×-15× for large-sized inputs. Regarding running time, we achieve speedups of up to 5× over current state-of-the-art distributed suffix array construction algorithms.
Manuel Haag, Florian Kurpicz, Peter Sanders 0001, Matthias Schimek
ESA3
2025 Engineering Minimal k-Perfect Hash Functions
abstract
Given a set S of n keys, a k-perfect hash function (kPHF) is a data structure that maps the keys to the first m integers, where each output integer can be hit by at most k input keys. When m=n/k, the resulting function is called a minimal k-perfect hash function (MkPHF). Applications of kPHFs can be found in external memory data structures or to create efficient 1-perfect hash functions, which in turn have a wide range of applications from databases to bioinformatics. Several papers from the 1980s look at external memory data structures with small internal memory indexes. However, actual k-perfect hash functions are surprisingly rare, and the area has not seen a lot of research recently. At the same time, recent research in 1-perfect hashing shows that there is a lack of efficient kPHFs. In this paper, we revive the area of k-perfect hashing, presenting four new constructions. Our implementations simultaneously dominate older approaches in space consumption, construction time, and query time. We see this paper as a possible starting point of an active line of research, similar to the area of 1-perfect hashing.
Stefan Hermann 0002, Sebastian Kirmayer, Hans-Peter Lehmann, Peter Sanders 0001, Stefan Walzer
ESA4
2025 Combined Search and Encoding for Seeds, with an Application to Minimal Perfect Hashing
abstract
Randomised algorithms often employ methods that can fail and that are retried with independent randomness until they succeed. Randomised data structures therefore often store indices of successful attempts, called seeds. If n such seeds are required (e.g., for independent substructures) the standard approach is to compute for each i ∈ [n] the smallest successful seed S_i and store S = (S_1,…,S_n). The central observation of this paper is that this is not space-optimal. We present a different algorithm that computes a sequence S' = (S_1',…,S_n') of successful seeds such that the entropy of S' undercuts the entropy of S by Ω(n) bits in most cases. To achieve a memory consumption of OPT+εn, the expected number of inspected seeds increases by a factor of 𝒪(1/ε). We demonstrate the usefulness of our findings with a novel construction for minimal perfect hash functions that, for n keys and any ε ∈ [n^{-3/7},1], has space requirement (1+ε)OPT and construction time 𝒪(n/ε). All previous approaches only support ε = ω(1/log n) or have construction times that increase exponentially with 1/ε. Our implementation beats the construction throughput of the state of the art by more than two orders of magnitude for ε ≤ 3%.
Hans-Peter Lehmann, Peter Sanders 0001, Stefan Walzer, Jonatan Ziegler
ESA2
2025 Synergistic Traffic Assignment
Thomas Bläsius, Adrian Feilhauer, Markus Jung, Moritz Laupichler, Peter Sanders 0001, Michael Zündorf
AAMAS5
2025 Tera-Scale Multilevel Graph Partitioning
abstract
We present TeraPart, a memory-efficient multilevel graph partitioning method that is designed to scale to extremely large graphs. In balanced graph partitioning, the goal is to divide the vertices into$k$blocks with balanced size while cutting as few edges as possible. Due to its NP-hard nature, heuristics are prevalent in this field, with the multilevel framework as the state-of-the-art method. Recent work has seen tremendous progress in speeding up partitioning algorithms through parallelism. The current obstacle in scaling to larger graphs is the high memory usage due to auxiliary data structures and storing the graph itself in memory. In this paper, we present and study several optimizations to significantly reduce their memory footprint. We devise parallel label propagation clustering and graph contraction algorithms that use$O(n)$auxiliary space instead of$O(n p)$, where$p$is the number of processors. Moreover, we employ an existing compressed graph representation that enables iterating over a neighborhood by on-the-fly decoding at speeds close to the uncompressed graph. Combining these optimizations yields up to a 16 -fold reduction in peak memory, while retaining the same solution quality and similar speed. This configuration can partition a graph with one trillion edges in under 8 minutes on a single machine using around 900 GiB of RAM. This is the first work to employ the multilevel framework at this scale, which is vital to achieving low edge cuts. Moreover, our distributed memory implementation handles graphs of up to 16 trillion edges on 128 machines with 256 GiB each in just under 10 minutes. Finally, we present a version of shared-memory parallel FM local search that uses$O(m)$space instead of$O(n k)$, reducing peak memory by factor 5.8 on medium-sized graphs without affecting running time.
Daniel Salwasser, Daniel Seemaier, Lars Gottesbüren, Peter Sanders 0001
IPDPS4
2025 Pareto Sums of Pareto Sets: Lower Bounds and Algorithms
abstract
Abstract In bi-criteria optimization problems, the goal is typically to compute the set of Pareto-optimal solutions. Many algorithms for these types of problems rely on efficient merging or combining of partial solutions and filtering of dominated solutions in the resulting sets. In this article, we consider the task of computing the Pareto sum of two given Pareto sets A, B of size n. The Pareto sum C contains all non-dominated points of the Minkowski sum $$M = \{a+b|a \in A, b\in B\}$$ M = { a + b | a ∈ A , b ∈ B } . Since the Minkowski sum has a size of $$n^2$$ n 2 , but the Pareto sum C can be much smaller, the goal is to compute C without having to compute and store all of M. We present several new algorithms for efficient Pareto sum computation, including an output-sensitive successive algorithm with a running time of $$\mathcal {O}(n \log n + nk)$$ O ( n log n + n k ) and a space consumption of $$\mathcal {O}(n+k)$$ O ( n + k ) for $$k=|C|$$ k = | C | . If the elements of C are streamed, the space consumption reduces to $$\mathcal {O}(n)$$ O ( n ) . For output sizes $$k \ge 2n$$ k ≥ 2 n , we prove a conditional lower bound for Pareto sum computation, which excludes running times in $$\mathcal {O}(n^{2-\delta })$$ O ( n 2 - δ ) for $$\delta > 0$$ δ > 0 unless the (min,+)-convolution hardness conjecture fails. The successive algorithm matches this lower bound for $$k \in \Theta (n)$$ k ∈ Θ ( n ) . However, for $$k \in \Theta (n^2)$$ k ∈ Θ ( n 2 ) , the successive algorithm exhibits a cubic running time. But we also present an algorithm with an output-sensitive space consumption and a running time of $$\mathcal {O}(n^2 \log n)$$ O ( n 2 log n ) , which matches the lower bound up to a logarithmic factor even for large k. Furthermore, we describe suitable engineering techniques to improve the practical running times of our algorithms. Finally, we provide an extensive comparative experimental study on generated and real-world data. As a showcase application, we consider preprocessing-based bi-criteria route planning in road networks. Pareto sum computation is the bottleneck task in the preprocessing phase and in the query phase. We show that using our algorithms with an output-sensitive space consumption allows to tackle larger instances and reduces the preprocessing and query time compared to algorithms that fully store M.
Daniel Funke, Demian Hespe, Peter Sanders 0001, Sabine Storandt, Carina Truschel
Algorithmica3
2025 ShockHash: Near Optimal-Space Minimal Perfect Hashing Beyond Brute-Force
abstract
Abstract A minimal perfect hash function (MPHF) maps a set S of n keys to the first n integers without collisions. There is a lower bound of $$n\log _2e-\mathcal {O}(\log n) \approx 1.44n$$ n log 2 e - O ( log n ) ≈ 1.44 n bits needed to represent an MPHF. This can be reached by a brute-force algorithm that tries $$e^n$$ e n hash function seeds in expectation and stores the first seed that leads to an MPHF. The most space-efficient previous algorithms for constructing MPHFs all use such a brute-force approach as a basic building block. In this paper, we introduce ShockHash – Small, heavily overloaded cuckoo hash tables for minimal perfect hashing. ShockHash uses two hash functions $$h_0$$ h 0 and $$h_1$$ h 1 , hoping for the existence of a function $$f : S \rightarrow \{0,1\}$$ f : S → { 0 , 1 } such that $$x \mapsto h_{f(x)}(x)$$ x ↦ h f ( x ) ( x ) is an MPHF on S. It then uses a 1-bit retrieval data structure to store f using $$n + o(n)$$ n + o ( n ) bits. In graph terminology, ShockHash generates n-edge random graphs until stumbling on a pseudoforest – where each component contains as many edges as nodes. Using cuckoo hashing, ShockHash then derives an MPHF from the pseudoforest in linear time. We show that ShockHash needs to try only about $$(e/2)^n \approx 1.359^n$$ ( e / 2 ) n ≈ 1 . 359 n seeds in expectation. This reduces the space for storing the seed by roughly n bits (maintaining the asymptotically optimal space consumption) and speeds up construction by almost a factor of $$2^n$$ 2 n compared to brute-force. Bipartite ShockHash reduces the expected construction time again to about $$1.166^n$$ 1 . 166 n by maintaining a pool of candidate hash functions and checking all possible pairs. Using ShockHash as a building block within the RecSplit framework we obtain ShockHash-RS, which can be constructed up to 3 orders of magnitude faster than competing approaches. ShockHash-RS can build an MPHF for 10 million keys with 1.489 bits per key in about half an hour. When instead using ShockHash after an efficient k-perfect hash function, it achieves space usage similar to the best competitors, while being significantly faster to construct and query.
Hans-Peter Lehmann, Peter Sanders 0001, Stefan Walzer
Algorithmica2
2025 Customization Meets 2-Hop Labeling: Efficient Routing in Road Networks
abstract
Efficient route planning is crucial for modern navigation systems, yet traditional methods face challenges in scenarios with unknown or frequently changing traffic dynamics. This paper introduces a general labeling framework based on the 2-hop cover property, enabling robust, metric-independent preprocessing. Using this framework, we propose Customizable Tree Labeling (CTL), a tree-based method combining three key components: metric-independent preprocessing with tree hierarchies, metric customization for dynamic updates, and efficient query algorithms for fast route computation. To allow trade-offs between customization time, labeling size, and query performance, we further develop a parameterized customization technique by dynamically combining tree labels and shortcut graphs. Our key contributions include the introduction of a customizable labeling framework, a novel tree hierarchy for compact and scalable representation, and a hybrid query algorithm that integrates labels and shortcuts for fast and accurate route computation. We conduct extensive experiments on ten large-scale real-world road networks and a case study on the traffic assignment problem. Our algorithms achieve query response times significantly faster than the state-of-the-art methods, while maintaining competitive customization times and labeling size, making it well-suited for real-time and dynamic routing applications.
Henning Köhler, Qing Wang 0002, Moritz Laupichler, Peter Sanders 0001
Proc. VLDB Endow.6
2024 Fast Many-to-Many Routing for Dynamic Taxi Sharing with Meeting Points
abstract
We introduce an improved algorithm for the dynamic taxi sharing problem, i.e. a dispatcher that schedules a fleet of shared taxis as it is used by services like UberXShare and Lyft Shared. We speed up the basic online algorithm that looks for all possible insertions of a new customer into a set of existing routes, we generalize the objective function, and we efficiently support a large number of possible pick-up and drop-off locations. This lays an algorithmic foundation for taxi sharing systems with higher vehicle occupancy - enabling greatly reduced cost and ecological impact at comparable service quality. We find that our algorithm computes assignments between vehicles and riders several times faster than a previous state-of-the-art approach. Further, we observe that allowing meeting points for vehicles and riders can reduce the operating cost of vehicle fleets by up to 15% while also reducing rider wait and trip times.
Moritz Laupichler, Peter Sanders 0001
ALENEX2
2024 ShockHash: Towards Optimal-Space Minimal Perfect Hashing Beyond Brute-Force
abstract
A minimal perfect hash function (MPHF) maps a set S of n keys to the first n integers without collisions. There is a lower bound of n log2 ℓ — O(log n) bits of space needed to represent an MPHF. A matching upper bound is obtained using the brute-force algorithm that tries random hash functions until stumbling on an MPHF and stores that function's seed. In expectation, enpoly(n) seeds need to be tested. The most space-efficient previous algorithms for constructing MPHFs all use such a brute- force approach as a basic building block.
Hans-Peter Lehmann, Peter Sanders 0001, Stefan Walzer
ALENEX2
2024 PHOBIC: Perfect Hashing With Optimized Bucket Sizes and Interleaved Coding
abstract
A minimal perfect hash function (MPHF) maps a set of n keys to {1, ..., n} without collisions. Such functions find widespread application e.g. in bioinformatics and databases. In this paper we revisit PTHash - a construction technique particularly designed for fast queries. PTHash distributes the input keys into small buckets and, for each bucket, it searches for a hash function seed that places its keys in the output domain without collisions. The collection of all seeds is then stored in a compressed way. Since the first buckets are easier to place, buckets are considered in non-increasing order of size. Additionally, PTHash heuristically produces an imbalanced distribution of bucket sizes by distributing 60% of the keys into 30% of the buckets. Our main contribution is to characterize, up to lower order terms, an optimal distribution of expected bucket sizes. We arrive at a simple, closed form solution which improves construction throughput for space efficient configurations in practice. Our second contribution is a novel encoding scheme for the seeds. We split the keys into partitions. Within each partition, we run the bucket distribution and search step. We then store the seeds in an interleaved way by consecutively placing the seeds for the i-th buckets from all partitions. The seeds for the i-th bucket of each partition follow the same statistical distribution. This allows us to tune a compressor for each bucket. Hence, we call our technique PHOBIC - Perfect Hashing with Optimized Bucket sizes and Interleaved Coding. Compared to PTHash, PHOBIC is 0.17 bits/key more space efficient for same query time and construction throughput. We also contribute a GPU implementation to further accelerate MPHF construction. For a configuration with fast queries, PHOBIC-GPU can construct a perfect hash function at 2.17 bits/key in 28 ns per key, which can be queried in 37 ns on the CPU.
Stefan Hermann 0002, Hans-Peter Lehmann, Giulio Ermanno Pibiri, Peter Sanders 0001, Stefan Walzer
ESA4
2024 Scalable Distributed String Sorting
abstract
String sorting is an important part of tasks such as building index data structures. Unfortunately, current string sorting algorithms do not scale to massively parallel distributed-memory machines since they either have latency (at least) proportional to the number of processors $p$ or communicate the data a large number of times (at least logarithmic). We present practical and efficient algorithms for distributed-memory string sorting that scale to large $p$. Similar to state-of-the-art sorters for atomic objects, the algorithms have latency of about $p^{1/k}$ when allowing the data to be communicated $k$ times. Experiments indicate good scaling behavior on a wide range of inputs on up to 49152 cores. Overall, we achieve speedups of up to 5 over the current state-of-the-art distributed string sorting algorithms.
Florian Kurpicz, Pascal Mehnert, Peter Sanders 0001, Matthias Schimek
ESA3
2024 KaMPIng: Flexible and (Near) Zero-Overhead C++ Bindings for MPI
abstract
The Message-Passing Interface (MPI) and C++ form the backbone of high-performance computing, but MPI only provides $\mathbf{C}$ and Fortran bindings. While this offers great language interoperability, high-level programming languages like C++ make software development quicker and less error-prone.We propose novel $\mathrm{C}_{++}$language bindings that cover all abstraction levels from low-level MPI calls to convenient STL-style bindings, where most parameters are inferred from a small subset of parameters, by bringing named parameters to C++. This enables rapid prototyping and fine-tuning runtime behavior and memory management. A flexible type system and additional safety guarantees help to prevent programming errors.By exploiting C++’s template metaprogramming capabilities, this has (near) zero overhead, as only required code paths are generated at compile time.We demonstrate that our library is a strong foundation for a future distributed standard library using multiple application benchmarks, ranging from text-book sorting algorithms to phylogenetic interference.
Tim Niklas Uhl, Matthias Schimek, Lukas Hübner, Demian Hespe, Florian Kurpicz, Daniel Seemaier, Christoph Stelz, Peter Sanders 0001
SC8
2024 Brief Announcement: Distributed Unconstrained Local Search for Multilevel Graph Partitioning
abstract
Partitioning a graph into blocks of roughly equal weight while cutting only few edges is a fundamental problem in computer science with numerous practical applications. While shared-memory parallel partitioners have recently matured to achieve the same quality as widely used sequential partitioners, there is still a pronounced quality gap between distributed partitioners and their sequential counterparts. In this work, we shrink this gap considerably by describing the engineering of an unconstrained local search algorithm suitable for distributed partitioners. We integrate the proposed algorithm in a distributed multilevel partitioner. Our extensive experiments show that the resulting algorithm scales to thousands of PEs while computing cuts that are, on average, only 3.5% larger than those of a state-of-the-art high-quality shared-memory partitioner. Compared to previous distributed partitioners, we obtain on average 6.8% smaller cuts than the best-performing competitor while being more than 9 times faster.
Peter Sanders 0001, Daniel Seemaier
SPAA1
2024 Brief Announcement: (Near) Zero-Overhead C++ Bindings for MPI
abstract
The Message-Passing Interface (MPI) and C++ form the backbone of high-performance computing and algorithmic research in the field of distributed-memory computing, but MPI only provides C and Fortran bindings.This provides good language interoperability, but higher-level programming languages make development quicker and less error-prone.We propose novel C++ language bindings designed to cover the whole range of abstraction levels from low-level MPI calls to convenient STL-style bindings, where most parameters are inferred from a small subset of the full parameter set.This allows for both rapid prototyping and fine-tuning of distributed code with predictable runtime behavior and memory management.Using template-metaprogramming, only code paths required for computing missing parameters are generated at compile time, which results in (near) zero-overhead bindings.
Demian Hespe, Lukas Hübner, Florian Kurpicz, Peter Sanders 0001, Matthias Schimek, Daniel Seemaier, Tim Niklas Uhl
SPAA4
2024 Brief Announcement: Scalable Distributed String Sorting
abstract
String sorting is an important part of tasks such as building index data structures. Unfortunately, current string sorting algorithms do not scale to massively parallel distributed-memory machines since they either have latency (at least) proportional to the number of processors p or communicate the data a large number of times (at least logarithmic). We present practical and efficient algorithms for distributed-memory string sorting that scale to large p. Similar to state-of-the-art sorters for atomic objects, the algorithms have latency of about p1/k when allowing the data to be communicated k times. Experiments show good scaling behavior on a wide range of inputs on up to 49 152 cores.We achieve speedups of up to 5 over the current state-of-the-art distributed string sorting algorithms.
Florian Kurpicz, Pascal Mehnert, Peter Sanders 0001, Matthias Schimek
SPAA3
2024 Formally Verifying an Efficient Sorter
abstract
Abstract In this experience report, we present the complete formal verification of a Java implementation of inplace superscalar sample sort ( "Image missing") using the KeY program verification system. As "Image missing" is one of the fastest general purpose sorting algorithms, this is an important step towards a collection of basic toolbox components that are both provably correct and highly efficient. At the same time, it is an important case study of how careful, highly efficient implementations of complicated algorithms can be formally verified directly. We provide an analysis of which features of the KeY system and its verification calculus are instrumental in enabling algorithm verification without any compromise on algorithm efficiency.
Bernhard Beckert, Peter Sanders 0001, Mattias Ulbrich, Julian Wiesler, Sascha Witt
TACAS (1)2
2024 Targeted Branching for the Maximum Independent Set Problem Using Graph Neural Networks
abstract
Identifying a maximum independent set is a fundamental NP-hard problem. This problem has several real-world applications and requires finding the largest possible set of vertices not adjacent to each other in an undirected graph. Over the past few years, branch-and-bound and branch-and-reduce algorithms have emerged as some of the most effective methods for solving the problem exactly. Specifically, the branch-and-reduce approach, which combines branch-and-bound principles with reduction rules, has proven particularly successful in tackling previously unmanageable real-world instances. This progress was largely made possible by the development of more effective reduction rules. Nevertheless, other key components that can impact the efficiency of these algorithms have not received the same level of interest. Among these is the branching strategy, which determines which vertex to branch on next. Until recently, the most widely used strategy was to choose the vertex of the highest degree. In this work, we present a graph neural network approach for selecting the next branching vertex. The intricate nature of current branch-and-bound solvers makes supervised and reinforcement learning difficult. Therefore, we use a population-based genetic algorithm to evolve the model’s parameters instead. Our proposed approach results in a speedup on 73% of the benchmark instances with a median speedup of 24%.
Kenneth Langedal, Demian Hespe, Peter Sanders 0001
SEA3
2024 MallobSat: Scalable SAT Solving by Clause Sharing
abstract
SAT solving in large distributed environments has previously led to some famous results and to impressive speedups for selected inputs. However, in terms of general-purpose SAT solving, prior approaches still cannot make efficient use of a large number of processors. We aim to address this issue with a complete and systematic overhaul of the distributed solver HordeSat with a focus on its algorithmic building blocks. In particular, we present a communication-efficient approach to clause sharing, careful buffering and filtering of produced clauses, and effective orchestration of state-of-the-art solver backends. In extensive evaluations, our approach named MallobSat significantly outperforms an updated HordeSat, doubling its mean speedup. Our clause sharing results in effective parallelization even if all threads execute identical solver programs that only differ based on which clauses they import at which times. We thus argue that MallobSat is not a portfolio solver with the added bonus of clause sharing but rather a clause-sharing solver where adding some explicit diversification is useful but not essential. We also discuss the last four iterations of the International SAT Competition (2020–2023), where our system ranked very favorably, and identify several previously unsolved competition problems that MallobSat solved successfully. Last but not least, our approach is malleable, i.e., supports running on a fluctuating set of resources, which allows us to combine parallel job processing and parallel SAT solving in a flexible manner for best resource efficiency
Dominik Schreiber 0001, Peter Sanders 0001
J. Artif. Intell. Res.2
2024 Scalable High-Quality Hypergraph Partitioning
abstract
Balanced hypergraph partitioning is an NP-hard problem with many applications, e.g., optimizing communication in distributed data placement problems. The goal is to place all nodes across k different blocks of bounded size, such that hyperedges span as few parts as possible. This problem is well-studied in sequential and distributed settings, but not in shared-memory. We close this gap by devising efficient and scalable shared-memory algorithms for all components employed in the best sequential solvers without compromises with regards to solution quality. This work presents the scalable and high-quality hypergraph partitioning framework Mt-KaHyPar . Its most important components are parallel improvement algorithms based on the FM algorithm and maximum flows, as well as a parallel clustering algorithm for coarsening – which are used in a multilevel scheme with log (n) levels. As additional components, we parallelize the n -level partitioning scheme, devise a deterministic version of our algorithm, and present optimizations for plain graphs. We evaluate our solver on more than 800 graphs and hypergraphs, and compare it with 25 different algorithms from the literature. Our fastest configuration outperforms almost all existing hypergraph partitioners with regards to both solution quality and running time. Our highest-quality configuration achieves the same solution quality as the best sequential partitioner KaHyPar , while being an order of magnitude faster with ten threads. Thus, two of our configurations occupy all fronts of the Pareto curve for hypergraph partitioning. Furthermore, our solvers exhibit good speedups, e.g., 29.6x in the geometric mean on 64 cores (deterministic), 22.3x (log (n) -level), and 25.9x ( n -level).
Lars Gottesbüren, Tobias Heuer, Nikolai Maas, Peter Sanders 0001, Sebastian Schlag
ACM Trans. Algorithms4
2023 PaCHash: Packed and Compressed Hash Tables
abstract
We introduce PaCHash, a hash table that stores its objects contiguously in an array without intervening space, even if the objects have variable size. In particular, each object can be compressed using standard compression techniques. A small search data structure allows locating the objects in constant expected time. PaCHash is most naturally described as a static external hash table where it needs a constant number of bits of internal memory per block of external memory. Here, in some sense, PaCHash beats a lower bound on the space consumption of k-perfect hashing. An implementation for fast SSDs needs about 5 bits of internal memory per block of external memory, requires only one disk access (of variable length) per search operation, and has small internal search overhead compared to the disk access cost. Our experiments show that it has lower space consumption than all previous approaches even when considering objects of identical size.
Florian Kurpicz, Hans-Peter Lehmann, Peter Sanders 0001
ALENEX3
2023 SicHash - Small Irregular Cuckoo Tables for Perfect Hashing
abstract
A Perfect Hash Function (PHF) is a hash function that has no collisions on a given input set. PHFs can be used for space efficient storage of data in an array, or for determining a compact representative of each object in the set. In this paper, we present the PHF construction algorithm SicHash - Small Irregular Cuckoo Tables for Perfect Hashing. At its core, SicHash uses a known technique: it places objects in a cuckoo hash table and then stores the final hash function choice of each object in a retrieval data structure. We combine the idea with irregular cuckoo hashing, where different objects can have a different number of hash functions. Additionally, we use many small tables that we overload beyond their asymptotic maximum load factor. The most space efficient competitors often use brute force methods to determine the PHFs. SicHash provides a more direct construction algorithm that only rarely needs to re-compute parts. Our implementation improves the state of the art in terms of space usage versus construction time for a wide range of configurations. For some configurations, SicHash is up to 4.3 times faster than the next best competitor. At the same time, it provides very fast queries.
Hans-Peter Lehmann, Peter Sanders 0001, Stefan Walzer
ALENEX2
2023 High Performance Construction of RecSplit Based Minimal Perfect Hash Functions
abstract
A minimal perfect hash function (MPHF) bijectively maps a set S of objects to the first |S| integers. It can be used as a building block in databases and data compression. RecSplit [Esposito et al., ALENEX'20] is currently the most space efficient practical minimal perfect hash function. It heavily relies on trying out hash functions in a brute force way. We introduce rotation fitting, a new technique that makes the search more efficient by drastically reducing the number of tried hash functions. Additionally, we greatly improve the construction time of RecSplit by harnessing parallelism on the level of bits, vectors, cores, and GPUs. In combination, the resulting improvements yield speedups up to 239 on an 8-core CPU and up to 5438 using a GPU. The original single-threaded RecSplit implementation needs 1.5 hours to construct an MPHF for 5 Million objects with 1.56 bits per object. On the GPU, we achieve the same space usage in just 5 seconds. Given that the speedups are larger than the increase in energy consumption, our implementation is more energy efficient than the original implementation.
Dominik Bez, Florian Kurpicz, Hans-Peter Lehmann, Peter Sanders 0001
ESA4
2023 Learned Monotone Minimal Perfect Hashing
abstract
A Monotone Minimal Perfect Hash Function (MMPHF) constructed on a set S of keys is a function that maps each key in S to its rank. On keys not in S, the function returns an arbitrary value. Applications range from databases, search engines, data encryption, to pattern-matching algorithms. In this paper, we describe LeMonHash, a new technique for constructing MMPHFs for integers. The core idea of LeMonHash is surprisingly simple and effective: we learn a monotone mapping from keys to their rank via an error-bounded piecewise linear model (the PGM-index), and then we solve the collisions that might arise among keys mapping to the same rank estimate by associating small integers with them in a retrieval data structure (BuRR). On synthetic random datasets, LeMonHash needs 34% less space than the next larger competitor, while achieving about 16 times faster queries. On real-world datasets, the space usage is very close to or much better than the best competitors, while achieving up to 19 times faster queries than the next larger competitor. As far as the construction of LeMonHash is concerned, we get an improvement by a factor of up to 2, compared to the competitor with the next best space usage. We also investigate the case of keys being variable-length strings, introducing the so-called LeMonHash-VL: it needs space within 13% of the best competitors while achieving up to 3 times faster queries than the next larger competitor.
Paolo Ferragina, Hans-Peter Lehmann, Peter Sanders 0001, Giorgio Vinciguerra
ESA3
2023 A Sweep-Plane Algorithm for Calculating the Isolation of Mountains
abstract
One established metric to classify the significance of a mountain peak is its isolation. It specifies the distance between a peak and the closest point of higher elevation. Peaks with high isolation dominate their surroundings and provide a nice view from the top. With the availability of worldwide Digital Elevation Models (DEMs), the isolation of all mountain peaks can be computed automatically. Previous algorithms run in worst case time that is quadratic in the input size. We present a novel sweep-plane algorithm that runs in time 𝒪(nlog n+pT_NN) where n is the input size, p the number of considered peaks and T_NN the time for a 2D nearest-neighbor query in an appropriate geometric search tree. We refine this to a two-level approach that has high locality and good parallel scalability. Our implementation reduces the time for calculating the isolation of every peak on Earth from hours to minutes while improving precision.
Daniel Funke, Nicolai Hüning, Peter Sanders 0001
ESA3
2023 Pareto Sums of Pareto Sets
Demian Hespe, Peter Sanders 0001, Sabine Storandt, Carina Truschel
ESA2
2023 Distributed Deep Multilevel Graph Partitioning
abstract
Abstract We describe the engineering of the distributed-memory multilevel graph partitioner . It scales to (at least) 8192 cores while achieving partitioning quality comparable to widely used sequential and shared-memory graph partitioners. In comparison, previous distributed graph partitioners scale only in more restricted scenarios and often induce a considerable quality penalty compared to non-distributed partitioners. When partitioning into a large number of blocks, they even produce infeasible solution that violate the balancing constraint. achieves its robustness by a scalable distributed implementation of the deep-multilevel scheme for graph partitioning. Crucially, this includes new algorithms for balancing during refinement and coarsening.
Peter Sanders 0001, Daniel Seemaier
Euro-Par1
2023 Engineering Massively Parallel MST Algorithms
abstract
We develop and extensively evaluate highly scalable distributed-memory algorithms for computing minimum spanning trees (MSTs). At the heart of our solutions is a scalable variant of Borůvka’s algorithm. For partitioned graphs with many local edges we improve this with an effective form of contracting local parts of the graph during a preprocessing step. We also adapt the filtering concept of the best practical sequential algorithm to develop a massively parallel Filter-Borůvka algorithm that is very useful for graphs with poor locality and high average degree. Our experiments indicate that our algorithms scale well up to at least 65 536 cores and are up to 800 times faster than previous distributed MST algorithms.
Peter Sanders 0001, Matthias Schimek
IPDPS1
2023 Engineering a Distributed-Memory Triangle Counting Algorithm
abstract
Counting triangles in a graph and incident to each vertex is a fundamental and frequently considered task of graph analysis. We consider how to efficiently do this for huge graphs using massively parallel distributed-memory machines. Unsurprisingly, the main issue is to reduce communication between processors. We achieve this by counting locally whenever possible and reducing the amount of information that needs to be sent in order to handle (possible) nonlocal triangles. We also achieve linear memory requirements despite superlinear communication volume by introducing a new asynchronous sparse-all-to-all operation. Furthermore, we dramatically reduce startup overheads by allowing this communication to use indirect routing. Our algorithms scale (at least) up to 32 768 cores and are up to 18 times faster than the previous state of the art.
Peter Sanders 0001, Tim Niklas Uhl
IPDPS1
2023 Efficient Yao Graph Construction
abstract
Yao graphs are geometric spanners that connect each point of a given point set to its nearest neighbor in each of $k$ cones drawn around it. Yao graphs were introduced to construct minimum spanning trees in $d$ dimensional spaces. Moreover, they are used for instance in topology control in wireless networks. An optimal \Onlogn time algorithm to construct Yao graphs for given point set has been proposed in the literature but -- to the best of our knowledge -- never been implemented. Instead, algorithms with a quadratic complexity are used in popular packages to construct these graphs. In this paper we present the first implementation of the optimal Yao graph algorithm. We develop and tune the data structures required to achieve the O(n log n) bound and detail algorithmic adaptions necessary to take the original algorithm from theory to practice. We propose a priority queue data structure that separates static and dynamic events and might be of independent interest for other sweepline algorithms. Additionally, we propose a new Yao graph algorithm based on a uniform grid data structure that performs well for medium-sized inputs. We evaluate our implementations on a wide variety synthetic and real-world datasets and show that our implementation outperforms current publicly available implementations by at least an order of magnitude.
Daniel Funke, Peter Sanders 0001
SEA2
2023 Editorial
Martin Held, Martin Nöllenburg, Peter Sanders 0001
Comput. Geom.3
2022 Shared-Memory n-level Hypergraph Partitioning
abstract
We present a shared-memory algorithm to compute high-quality solutions to the balanced k-way hypergraph partitioning problem. This problem asks for a partition of the vertex set into k disjoint blocks of bounded size that minimizes the connectivity metric (i.e., the sum of the number of different blocks connected by each hyperedge). High solution quality is achieved by parallelizing the core technique of the currently best sequential partitioner KaHyPar: the most extreme n-level version of the widely used multilevel paradigm, where only a single vertex is contracted on each level. This approach is made fast and scalable through intrusive algorithms and data structures that allow precise control of parallelism through atomic operations and finegrained locking. We perform extensive experiments on more than 500 real-world hypergraphs with up to 140 million vertices and two billion pins (sum of hyperedge sizes). We find that our algorithm computes solutions that are on par with a comparable configuration of KaHyPar while being a factor of 9 faster using 10 threads.
Lars Gottesbüren, Tobias Heuer, Peter Sanders 0001, Sebastian Schlag
ALENEX3
2022 Decentralized Online Scheduling of Malleable NP-hard Jobs
abstract
Abstract In this work, we address an online job scheduling problem in a large distributed computing environment. Each job has a priority and a demand of resources, takes an unknown amount of time, and is malleable, i.e., the number of allotted workers can fluctuate during its execution. We subdivide the problem into (a) determining a fair amount of resources for each job and (b) assigning each job to an according number of processing elements. Our approach is fully decentralized, uses lightweight communication, and arranges each job as a binary tree of workers which can grow and shrink as necessary. Using the NP-complete problem of propositional satisfiability (SAT) as a case study, we experimentally show on up to 128 machines (6144 cores) that our approach leads to near-optimal utilization, imposes minimal computational overhead, and performs fair scheduling of incoming jobs within a few milliseconds.
Peter Sanders 0001, Dominik Schreiber 0001
Euro-Par1
2022 Communication-efficient Massively Distributed Connected Components
abstract
Finding the connected components of an undirected graph is one of the most fundamental graph problems. Connected components are used in a wide spectrum of applications including VLSI design, machine learning and image analysis. Sequentially, one can easily find all connected components in linear time using breadth-first traversal. However, in a massively distributed setting, finding connected components in a scalable way becomes much harder due to data irregularities and the overhead associated with the increased need for communication. In this work, we present a communication-efficient distributed graph algorithm for finding connected components that scales to massively parallel machines. Our algorithm is based on a recent linear-work shared-memory parallel algorithm by Blelloch et al. [1] and refines it for a distributed memory setting. This includes a communication-efficient graph contraction procedure, as well as a distributed variant of the low diameter decomposition by Miller et al. [2]. We tackle the data irregularities introduced by high degree vertices by using an efficient procedure for distributing their incident edges. Our experimental evaluation on up to 16384 cores indicates a good weak scaling behavior that outperforms current state-of-the-art algorithms.
Sebastian Lamm, Peter Sanders 0001
IPDPS2
2022 Fast Succinct Retrieval and Approximate Membership Using Ribbon
abstract
A retrieval data structure for a static function $f:S\rightarrow \{0,1\}^r$ supports queries that return $f(x)$ for any $x \in S$. Retrieval data structures can be used to implement a static approximate membership query data structure (AMQ), i.e., a Bloom filter alternative, with false positive rate $2^{-r}$. The information-theoretic lower bound for both tasks is $r|S|$ bits. While succinct theoretical constructions using $(1+o(1))r|S|$ bits were known, these could not achieve very small overheads in practice because they have an unfavorable space--time tradeoff hidden in the asymptotic costs or because small overheads would only be reached for physically impossible input sizes. With bumped ribbon retrieval (BuRR), we present the first practical succinct retrieval data structure. In an extensive experimental evaluation BuRR achieves space overheads well below 1\,\% while being faster than most previously used retrieval data structures (typically with space overheads at least an order of magnitude larger) and faster than classical Bloom filters (with space overhead $\geq 44\,\%$). This efficiency, including favorable constants, stems from a combination of simplicity, word parallelism, and high locality. We additionally describe homogeneous ribbon filter AMQs, which are even simpler and faster at the price of slightly larger space overhead.
Peter C. Dillinger, Lorenz Hübschle-Schneider, Peter Sanders 0001, Stefan Walzer
SEA3
2022 Parallel Flow-Based Hypergraph Partitioning
abstract
We present a shared-memory parallelization of flow-based refinement, which is considered the most powerful iterative improvement technique for hypergraph partitioning at the moment. Flow-based refinement works on bipartitions, so current sequential partitioners schedule it on different block pairs to improve $k$-way partitions. We investigate two different sources of parallelism: a parallel scheduling scheme and a parallel maximum flow algorithm based on the well-known push-relabel algorithm. In addition to thoroughly engineered implementations, we propose several optimizations that substantially accelerate the algorithm in practice, enabling the use on extremely large hypergraphs (up to 1 billion pins). We integrate our approach in the state-of-the-art parallel multilevel framework Mt-KaHyPar and conduct extensive experiments on a benchmark set of more than 500 real-world hypergraphs, to show that the partition quality of our code is on par with the highest quality sequential code (KaHyPar), while being an order of magnitude faster with 10 threads.
Lars Gottesbüren, Tobias Heuer, Peter Sanders 0001
SEA3
2022 Vectorized and performance-portable quicksort
abstract
Abstract Recent works showed that implementations of quicksort using vector CPU instructions can outperform the non‐vectorized algorithms in widespread use. However, these implementations are typically single‐threaded, implemented for a particular instruction set, and restricted to a small set of key types. We lift these three restrictions: our proposedvqsortalgorithm integrates into the state‐of‐the‐art parallel sorter , with a geometric mean speedup of 1.59. The same implementation works on seven instruction sets (including SVE and RISC‐V V) across four platforms. It also supports floating‐point and 16–128 bit integer keys. To the best of our knowledge, this is the fastest sort for large arrays of non‐tuple keys on CPUs, up to 20 times as fast as the sorting algorithms implemented in standard libraries. This article focuses on the practical engineering aspects enabling the speed and portability, which we have not yet seen demonstrated for a quicksort implementation. Furthermore, we introduce compact and transpose‐free sorting networks for in‐register sorting of small arrays, and a vector‐friendly pivot sampling strategy that is robust against adversarial input.
Jan Wassenberg, Mark Blacher, Joachim Giesen, Peter Sanders 0001
Softw. Pract. Exp.4
2022 Parallel Weighted Random Sampling
abstract
Data structures for efficient sampling from a set of weighted items are an important building block of many applications. However, few parallel solutions are known. We close many of these gaps. We give efficient, fast, and practicable parallel and distributed algorithms for building data structures that support sampling single items (alias tables, compressed data structures). This also yields a simplified and more space-efficient sequential algorithm for alias table construction. Our approaches to sampling k out of n items with/without replacement and to subset (Poisson) sampling are output-sensitive , i.e., the sampling algorithms use work linear in the number of different samples. This is also interesting in the sequential case. Weighted random permutation can be done by sorting appropriate random deviates. We show that this is possible with linear work. Finally, we give a communication-efficient, highly scalable approach to (weighted and unweighted) reservoir sampling. This algorithm is based on a fully distributed model of streaming algorithms that might be of independent interest. Experiments for alias tables and sampling with replacement show near linear speedups using up to 158 threads of shared-memory machines. An experimental evaluation of distributed weighted reservoir sampling on up to 5,120 cores also shows good speedups.
Lorenz Hübschle-Schneider, Peter Sanders 0001
ACM Trans. Math. Softw.2
2021 Fast, Exact and Scalable Dynamic Ridesharing
abstract
We study the problem of servicing a set of ride requests by dispatching a set of shared vehicles, which is faced by ridesharing companies such as Uber and Lyft. Solving this problem at a large scale might be crucial in the future for effectively using large fleets of autonomous vehicles. Since finding a solution for the entire set of requests that minimizes the total driving time is NP-complete, most practical approaches process the requests one by one. Each request is inserted into any vehicle's route such that the increase in driving time is minimized. Although this variant is solvable in polynomial time, it still takes considerable time in current implementations, even when inexact filtering heuristics are used. In this work, we present a novel algorithm for finding best insertions, based on (customizable) contraction hierarchies with local buckets. Our algorithm finds provably exact solutions, is still 30 times faster than a state-of-the-art algorithm currently used in industry and academia, and scales much better. When used within iterative transport simulations, our algorithm decreases the simulation time for largescale scenarios with many requests from days to hours.
Valentin Buchhold, Peter Sanders 0001, Dorothea Wagner
ALENEX2
2021 Scalable Shared-Memory Hypergraph Partitioning
abstract
Hypergraph partitioning is an important preprocessing step for optimizing data placement and minimizing communication volumes in high-performance computing applications. To cope with ever growing problem sizes, it has become increasingly important to develop fast parallel partitioning algorithms whose solution quality is competitive with existing sequential algorithms. To this end, we present Mt-KaHyPar, the first shared-memory multilevel hypergraph partitioner with parallel implementations of many techniques used by the sequential, high-quality partitioning systems: a parallel coarsening algorithm that uses parallel community detection as guidance, initial partitioning via parallel recursive bipartitioning with work-stealing, a scalable label propagation refinement algorithm, and the first fully-parallel direct k-way formulation of the classical FM algorithm. Experiments performed on a large benchmark set of instances from various application domains demonstrate the scalability and effectiveness of our approach. With 64 cores, we observe self-relative speedups of up to 51 and a harmonic mean speedup of 23.5. In terms of solution quality, we outperform the distributed hypergraph partitioner Zoltan on 95% of the instances while also being a factor of 2.1 faster. With just four cores, Mt-KaHyPar is also slightly faster than the fastest sequential multilevel partitioner PaToH while producing better solutions on 83% of all instances. The sequential high-quality partitioner KaHyPar still finds better solutions than our parallel approach, especially when using max-flow-based refinement. This, however, comes at the cost of considerably longer running times.
Lars Gottesbüren, Tobias Heuer, Peter Sanders 0001, Sebastian Schlag
ALENEX3
2021 Deep Multilevel Graph Partitioning
abstract
Partitioning a graph into blocks of "roughly equal" weight while cutting only few edges is a fundamental problem in computer science with a wide range of applications. In particular, the problem is a building block in applications that require parallel processing. While the amount of available cores in parallel architectures has significantly increased in recent years, state-of-the-art graph partitioning algorithms do not work well if the input needs to be partitioned into a large number of blocks. Often currently available algorithms compute highly imbalanced solutions, solutions of low quality, or have excessive running time for this case. This is due to the fact that most high-quality general-purpose graph partitioners are multilevel algorithms which perform graph coarsening to build a hierarchy of graphs, initial partitioning to compute an initial solution, and local improvement to improve the solution throughout the hierarchy. However, for large number of blocks, the smallest graph in the hierarchy that is used for initial partitioning still has to be large. In this work, we substantially mitigate these problems by introducing deep multilevel graph partitioning and a shared-memory implementation thereof. Our scheme continues the multilevel approach deep into initial partitioning - integrating it into a framework where recursive bipartitioning and direct k-way partitioning are combined such that they can operate with high performance and quality. Our integrated approach is stronger, more flexible, arguably more elegant, and reduces bottlenecks for parallelization compared to existing multilevel approaches. For example, for large number of blocks our algorithm is on average at least an order of magnitude faster than competing algorithms while computing partitions with comparable solution quality. At the same time, our algorithm consistently produces balanced solutions. Moreover, for small number of blocks, our algorithms are the fastest among competing systems with comparable quality.
Lars Gottesbüren, Tobias Heuer, Peter Sanders 0001, Christian Schulz 0003, Daniel Seemaier
ESA3
2021 Engineering MultiQueues: Fast Relaxed Concurrent Priority Queues
Marvin Williams, Peter Sanders 0001, Roman Dementiev
ESA2
2021 Scalable SAT Solving in the Cloud
Dominik Schreiber 0001, Peter Sanders 0001
SAT2
2021 Exploring parallel MPI fault tolerance mechanisms for phylogenetic inference with RAxML-NG
abstract
MOTIVATION: Phylogenetic trees are now routinely inferred on large scale high performance computing systems with thousands of cores as the parallel scalability of phylogenetic inference tools has improved over the past years to cope with the molecular data avalanche. Thus, the parallel fault tolerance of phylogenetic inference tools has become a relevant challenge. To this end, we explore parallel fault tolerance mechanisms and algorithms, the software modifications required and the performance penalties induced via enabling parallel fault tolerance by example of RAxML-NG, the successor of the widely used RAxML tool for maximum likelihood-based phylogenetic tree inference. RESULTS: We find that the slowdown induced by the necessary additional recovery mechanisms in RAxML-NG is on average 1.00 ± 0.04. The overall slowdown by using these recovery mechanisms in conjunction with a fault-tolerant Message Passing Interface implementation amounts to on average 1.7 ± 0.6 for large empirical datasets. Via failure simulations, we show that RAxML-NG can successfully recover from multiple simultaneous failures, subsequent failures, failures during recovery and failures during checkpointing. Recoveries are automatic and transparent to the user. AVAILABILITY AND IMPLEMENTATION: The modified fault-tolerant RAxML-NG code is available under GNU GPL at https://github.com/lukashuebner/ft-raxml-ng. SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online.
Lukas Hübner, Alexey M. Kozlov, Demian Hespe, Peter Sanders 0001, Alexandros Stamatakis
Bioinform.4
2021 Engineering faster sorters for small sets of items
abstract
Abstract Sorting a set of items is a task that can be useful by itself or as a building block for more complex operations. That is why a lot of effort has been put into finding sorting algorithms that sort large sets as efficiently as possible. But the more sophisticated and complex the algorithms become, the less efficient they are for small sets of items due to large constant factors. A relatively simple sorting algorithm that is often used as a base case sorter is insertion sort, because it has small code size and small constant factors influencing its execution time. We aim to determine if there is a faster way to sort small sets of items to provide an efficient base case sorter. We looked at sorting networks, at how they can improve the speed of sorting few elements, and how to implement them in an efficient manner using conditional moves. Since sorting networks need to be implemented explicitly for each set size, providing networks for larger sizes becomes less efficient due to increased code sizes. To also enable the sorting of slightly larger base cases, we adapted sample sort to Register Sample Sort, to break down those larger sets into sizes that can in turn be sorted by sorting networks. From our experiments we found that when sorting only small sets of integers, the sorting networks outperform insertion sort by a factor of at least 1.76 for any array size between six and 16, and by a factor of 2.72 on average across all machines and array sizes. When integrating sorting networks as a base case sorter into Quicksort, we achieved far less performance improvements over using insertion sort, which is probably due to the networks having a larger code size and cluttering the L1 instruction cache. The same effect occurs when including Register Sample Sort as a base case sorter for IPS o. But for x86 machines that have a larger L1 instruction cache of 64 KiB or more, we obtained speedups of 12.7% when using sorting networks as a base case sorter in std::sort, and of 5%–6% when integrating Register Sample Sort as a base case sorter into IPS o, each in comparison to using insertion sort as the base case sorter. In conclusion, the desired improvement in speed could only be achieved under special circumstances, but the results clearly show the potential of using conditional moves in the field of sorting algorithms.
Timo Bingmann, Jasper Marianczuk, Peter Sanders 0001
Softw. Pract. Exp.3
2020 Connecting MapReduce Computations to Realistic Machine Models
abstract
This paper explains how the popular, highly abstract MapReduce model of parallel computation (MRC/MPC) can be rooted in reality by showing how to execute MapReduce computations robustly and efficiently on realistic distributed-memory parallel machines. First, a refined model MRC+ is introduced that includes parameters for total work w, bottleneck work ŵ, data volume m, and maximum object sizes m̂. Then matching upper and lower bounds are established for executing a MapReduce calculation on distributed-memory machines - Θ(w/p + ŵ + logp) work and Θ(m/p + m̂ + logp) bottleneck communication volume using p processing elements. The theorem is formulated in such a way that multiple MapReduce steps can be chained. The result is obtained using a careful combination of several load balancing algorithms some of which may be of independent interest.
Peter Sanders 0001
IEEE BigData1
2020 Communication-Efficient String Sorting
abstract
There has been surprisingly little work on algorithms for sorting strings on distributed-memory parallel machines. We develop efficient algorithms for this problem based on the multi-way merging principle. These algorithms inspect only characters that are needed to determine the sorting order. Moreover, communication volume is reduced by also communicating (roughly) only those characters and by communicating repetitions of the same prefixes only once. Experiments on up to 1280 cores reveal that these algorithm are often more than five times faster than previous algorithms.
Timo Bingmann, Peter Sanders 0001, Matthias Schimek
IPDPS2
2020 Communication-Efficient Weighted Reservoir Sampling from Fully Distributed Data Streams
abstract
We consider weighted random sampling from distributed data streams presented as a sequence of mini-batches of items. This is a natural model for distributed streaming computation, and our goal is to showcase its usefulness. We present and analyze a fully distributed, communication-efficient algorithm for weighted reservoir sampling in this model. An experimental evaluation on up to 256 nodes (5120 processors) shows good speedups, while theoretical analysis promises further scaling to much larger machines.
Lorenz Hübschle-Schneider, Peter Sanders 0001
SPAA2
2020 Concurrent Expandable AMQs on the Basis of Quotient Filters
abstract
A quotient filter is a cache efficient AMQ data structure. Depending on the fill degree of the filter most insertions and queries only need to access one or two consecutive cache lines. This makes quotient filters fast compared to the more commonly used Bloom filters that incur multiple cache misses. However, concurrent Bloom filters are easy to implement and can be implemented lock-free while concurrent quotient filters are not as simple. Usually concurrent quotient filters work by using an external array of locks -- each protecting a region of the table. Accessing this array incurs one additional cache miss per operation. We propose a new locking scheme that has no memory overhead. Using this new locking scheme we achieve 1.8 times higher speedups than with the common external locking scheme. Another advantage of quotient filters over Bloom filters is that a quotient filter can change its size when it is becoming full. We implement this growing technique for our concurrent quotient filters and adapt it in a way that allows unbounded growing while keeping a bounded false positive rate. We call the resulting data structure a fully expandable quotient filter. Its design is similar to scalable Bloom filters, but we exploit some concepts inherent to quotient filters to improve the space efficiency and the query speed. We also propose quotient filter variants that are aimed to reduce the number of status bits (2-status-bit variant) or to simplify concurrent implementations (linear probing quotient filter). The linear probing quotient filter even leads to a lock-free concurrent filter implementation. This is especially interesting, since we show that any lock-free implementation of another common quotient filter variant would incur significant overheads in the form of additional data fields or multiple passes over the accessed data.
Tobias Maier, Peter Sanders 0001, Robert Williger
SEA2
2020 High-Quality Shared-Memory Graph Partitioning
Yaroslav Akhremtsev, Peter Sanders 0001, Christian Schulz 0003
IEEE Trans. Parallel Distributed Syst.2
2019 More Hierarchy in Route Planning Using Edge Hierarchies
abstract
A highly successful approach to route planning in networks (particularly road networks) is to identify a hierarchy in the network that allows faster queries after some preprocessing that basically inserts additional "shortcut"-edges into a graph. In the past there has been a succession of techniques that infer a more and more fine grained hierarchy enabling increasingly more efficient queries. This appeared to culminate in contraction hierarchies that assign one hierarchy level to each vertex. In this paper we show how to identify an even more fine grained hierarchy that assigns one level to each edge of the network. Our findings indicate that this can lead to considerably smaller search spaces in terms of visited edges. Currently, this rarely implies improved query times so that it remains an open question whether edge hierarchies can lead to consistently improved performance. However, we believe that the technique as such is a noteworthy enrichment of the portfolio of available techniques that might prove useful in the future.
Demian Hespe, Peter Sanders 0001
ATMOS2
2019 Parallel Weighted Random Sampling
abstract
Data structures for efficient sampling from a set of weighted items are an important building block of many applications. However, few parallel solutions are known. We close many of these gaps both for shared-memory and distributed-memory machines. We give efficient, fast, and practicable algorithms for sampling single items, k items with/without replacement, permutations, subsets, and reservoirs. We also give improved sequential algorithms for alias table construction and for sampling with replacement. Experiments on shared-memory parallel machines with up to 158 threads show near linear speedups both for construction and queries.
Lorenz Hübschle-Schneider, Peter Sanders 0001
ESA2
2019 Load-Balancing for Parallel Delaunay Triangulations
Daniel Funke, Peter Sanders 0001, Vincent Winkler
Euro-Par2
2019 Efficient Calculation of Microscopic Travel Demand Data with Low Calibration Effort
abstract
Determining travel demand within a region of interest takes a considerable calibration effort, requiring transportation surveys, traffic counts, and empirical trip volumes. However, there is a need for demand calculation without substantial calibration, for example to generate large-scale benchmark data for evaluating transportation algorithms. In this work, we present several approaches for demand calculation that take as input only publicly available data, such as population and POI densities. Our algorithms build upon the recently proposed radiation model, which is inspired by job search models in economics. We show that a straightforward implementation of the radiation model does not scale to continental road networks, taking months even on a modern 16-core server. Therefore, we introduce more scalable implementations, substantially decreasing the running time by five orders of magnitude from months to seconds. An extensive experimental evaluation shows that the output of our algorithms is in accordance with demand data used in production systems. Compared to simple approaches previously used in algorithmic publications to generate benchmark data, our algorithms output demand data of better quality, take less time, and have similar implementation complexity.
Valentin Buchhold, Peter Sanders 0001, Dorothea Wagner
SIGSPATIAL/GIS2
2019 Dynamic Space Efficient Hashing
abstract
We consider space efficient hash tables that can grow and shrink dynamically and are always highly space efficient, i.e., their space consumption is always close to the lower bound even while growing and when taking into account storage that is only needed temporarily. None of the traditionally used hash tables have this property. We show how known approaches like linear probing and bucket cuckoo hashing can be adapted to this scenario by subdividing them into many subtables or using virtual memory overcommitting. However, these rather straightforward solutions suffer from slow amortized insertion times due to frequent reallocation in small increments. Our main result is Dynamic Space Efficient Cuckoo Table (DySECT ) which avoids these problems. DySECT consists of many subtables which grow by doubling their size. The resulting inhomogeneity in subtable sizes is counterbalanced by the flexibility available in bucket cuckoo hashing where each element can go to several buckets each of which containing several cells. Experiments indicate that DySECT works well with loads up to 98%. With up to 1.9 times better performance than the next best solution. Additionally, we give a tight theoretical analysis for the possible load threshold of DySECT, i.e., a bound where with high probability the table can be filled up to that load but not above said load. This load also matches our experimental findings.
Tobias Maier, Peter Sanders 0001, Stefan Walzer
Algorithmica2
2019 Novel Parallel Algorithms for Fast Multi-GPU-Based Generation of Massive Scale-Free Networks
abstract
A novel parallel algorithm is presented for generating random scale-free networks using the preferential attachment model. The algorithm, named cuPPA , is custom-designed for “single instruction multiple data (SIMD)” style of parallel processing supported by modern processors such as graphical processing units (GPUs). To the best of our knowledge, our algorithm is the first to exploit GPUs, and also the fastest implementation available today, to generate scale-free networks using the preferential attachment model. A detailed performance study is presented to understand the scalability and runtime characteristics of the cuPPA algorithm. Also another version of the algorithm called cuPPA-Hash tailored for multiple GPUs is presented. On a single GPU, the original cuPPA algorithm delivers the best performance, but is challenging to port to multi-GPU implementation. For multi-GPU implementation, cuPPA-Hash has been used as the parallel algorithm to achieve a perfect linear speedup up to 4 GPUs. In one of the best cases, when executed on an NVidia GeForce 1080 GPU, the original cuPPA generates a scale-free network of two billion edges in less than 3 s. On multi-GPU platforms, cuPPA-Hash generates a scale-free network of 16 billion edges in less than 7 s using a machine consisting of 4 NVidia Tesla P100 GPUs.
Md. Maksudul Alam, Kalyan S. Perumalla, Peter Sanders 0001
Data Sci. Eng.3
2019 Communication-free massively distributed graph generation
Daniel Funke, Sebastian Lamm, Ulrich Meyer 0001, Manuel Penschuck, Peter Sanders 0001, Christian Schulz 0003, Darren Strash, Moritz von Looz
J. Parallel Distributed Comput.5
2018 Optimizing energy consumption and user experience in a mobile video streaming scenario
abstract
When a smartphone receives data via a mobile network, client-side energy consumption depends - among others - on the available bandwidth, which typically varies while traveling. Based on this observation, we firstly design and analyze a generic dynamic programming approach - solely at the application layer/at client's side - that can be used to optimize various target values w.r.t. mobile video streaming, and secondly develop concrete variants of our general approach in order to optimize energy consumption and user experience using historic data to make assumptions on the available bandwidths along a planned journey. We are able to compute all schedules that lead to Pareto-optimal solutions in quadratic time. Applying our approach to the real-world scenario of train rides provokes several challenges, mainly due to the facts that trains usually do not keep schedules to the split second and that the available bandwidth at one particular client may be significantly smaller during rush hour than during other times of day. We tackle these challenges by employing our own simulation environment to analyze the dependencies on the time of day and to optimize various robustness parameters. In extensive real-world experiments - spending more than 200 hours in local trains - we demonstrate that it is feasible to simultaneously improve the user experience and to save communication energy.
Thomas Breitbach, Peter Sanders 0001, Dominik Schultes
CCNC2
2018 High-Quality Shared-Memory Graph Partitioning
abstract
Partitioning graphs into blocks of roughly equal size such that few edges run between blocks is a frequently needed operation in processing graphs. Recently, size, variety, and structural complexity of these networks has grown dramatically. Unfortunately, previous approaches to parallel graph partitioning have problems in this context since they often show a negative trade-off between speed and quality. We present an approach to multi-level shared-memory parallel graph partitioning that guarantees balanced solutions, shows high speed-ups for a variety of large graphs and yields very good quality independently of the number of cores used. For example, on 31 cores, our algorithm partitions our largest test instance into 16 blocks cutting less than half the number of edges than our main competitor when both algorithms are given the same amount of time. Important ingredients include parallel label propagation, parallel initial partitioning, a simple yet effective approach to parallel localized local search, and cache-aware hash tables.
Yaroslav Akhremtsev, Peter Sanders 0001, Christian Schulz 0003
Euro-Par2
2018 Lightweight MPI Communicators with Applications to Perfectly Balanced Quicksort
abstract
MPI uses the concept of communicators to connect groups of processes. It provides nonblocking collective operations on communicators to overlap communication and computation. Flexible algorithms demand flexible communicators. E.g., a process can work on different subproblems within different process groups simultaneously, new process groups can be created, or the members of a process group can change. Depending on the number of communicators, the time for communicator creation can drastically increase the running time of the algorithm. Furthermore, a new communicator synchronizes all processes as communicator creation routines are blocking collective operations. We present RBC, a communication library based on MPI, that creates range-based communicators in constant time without communication. These RBC communicators support (non) blocking point-to-point communication as well as (non) blocking collective operations. Our experiments show that the library reduces the time to create a new communicator by a factor of more than 400 whereas the running time of collective operations remains about the same. We propose Janus Quicksort, a distributed sorting algorithm that avoids any load imbalances. We improved the performance of this algorithm by a factor of 15 for moderate inputs by using RBC communicators. Finally, we discuss different approaches to bring nonblocking (local) communicator creation of lightweight (range-based) communicators into MPI.
Michael Axtmann, Armin Wiebigke, Peter Sanders 0001
IPDPS3
2018 Communication-Free Massively Distributed Graph Generation
Daniel Funke, Sebastian Lamm, Peter Sanders 0001, Christian Schulz 0003, Darren Strash, Moritz von Looz
IPDPS3
2018 Communication Efficient Checking of Big Data Operations
abstract
We propose fast probabilistic algorithms with low (i.e., sublinear in the input size) communication volume to check the correctness of operations in Big Data processing frameworks and distributed databases. Our checkers cover many of the commonly used operations, including sum, average, median, and minimum aggregation, as well as sorting, union, merge, and zip. An experimental evaluation of our implementation in Thrill (Bingmann et al., 2016) confirms the low overhead and high failure detection rate predicted by theoretical analysis.
Lorenz Hübschle-Schneider, Peter Sanders 0001
IPDPS2
2018 Real-Time Traffic Assignment Using Fast Queries in Customizable Contraction Hierarchies
abstract
Given an urban road network and a set of origin-destination (OD) pairs, the traffic assignment problem asks for the traffic flow on each road segment. A common solution employs a feasible-direction method, where the direction-finding step requires many shortest-path computations. In this paper, we significantly accelerate the computation of flow patterns, enabling interactive transportation and urban planning applications. We achieve this by revisiting and carefully engineering known speedup techniques for shortest paths, and combining them with customizable contraction hierarchies. In particular, our accelerated elimination tree search is more than an order of magnitude faster for local queries than the original algorithm, and our centralized search speeds up batched point-to-point shortest paths by a factor of up to 6. These optimizations are independent of traffic assignment and can be generally used for (batched) point-to-point queries. In contrast to prior work, our evaluation uses real-world data for all parts of the problem. On a metropolitan area encompassing more than 2.7 million inhabitants, we reduce the flow-pattern computation for a typical two-hour morning peak from 76.5 to 10.5 seconds on one core, and 4.3 seconds on four cores. This represents a speedup of 18 over the state of the art, and three orders of magnitude over the Dijkstra-based baseline.
Valentin Buchhold, Peter Sanders 0001, Dorothea Wagner
SEA2
2018 Network Flow-Based Refinement for Multilevel Hypergraph Partitioning
Tobias Heuer, Peter Sanders 0001, Sebastian Schlag
SEA2
2018 Efficient Parallel Random Sampling - Vectorized, Cache-Efficient, and Online
abstract
We consider the problem of sampling n numbers from the range { 1,… , N } without replacement on modern architectures. The main result is a simple divide-and-conquer scheme that makes sequential algorithms more cache efficient and leads to a parallel algorithm running in expected time O ( n / p +log p ) on p processors, i.e., scales to massively parallel machines even for moderate values of n . The amount of communication between the processors is very small (at most O (log p )) and independent of the sample size. We also discuss modifications needed for load balancing, online sampling, sampling with replacement, Bernoulli sampling, and vectorization on SIMD units or GPUs.
Peter Sanders 0001, Sebastian Lamm, Lorenz Hübschle-Schneider, Emanuel Schrade, Carsten Dachsbacher
ACM Trans. Math. Softw.1
2017 Engineering a Distributed Full-Text Index
abstract
We present a distributed full-text index for big data applications in a distributed environment. Our index can answer different types of pattern matching queries (existential, counting and enumeration). We perform experiments on inputs up to 100 GiB using up to 512 processors, and compare our index with the distributed suffix array by Arroyuelo et al. [Parall. Comput. 40(9): 471–495, 2014]. The result is that our index answers counting queries up to 5:5 times faster than the distributed suffix array, while using about the same space. We also provide a succinct variant of our index that uses only one third of the memory compared with our non-succinct variant, at the expense of only 20% slower query times.
Johannes Fischer 0001, Florian Kurpicz, Peter Sanders 0001
ALENEX3
2017 Engineering a direct k-way Hypergraph Partitioning Algorithm
abstract
We develop a fast and high quality multilevel algorithm that directly partitions hypergraphs into k balanced blocks – without the detour over recursive bipartitioning. In particular, our algorithm efficiently implements the powerful FM local search heuristics for the complicated k-way case. This is important for objective functions which depend on the number of blocks connected by a hyperedge. We also remove several further bottlenecks in processing large hyperedges, develop a faster contraction algorithm, and a new adaptive stopping rule for local search. To further reduce the size of hyperedges, we develop a pin-sparsifier based on the min-hashing technique that clusters vertices with similar neighborhood. Extensive experiments indicate that our KaHyPar-partitioner compares favorably with the best previous systems. KaHyPar is faster than hMetis and computes better solutions. KaHyPar's results are considerably better than the (faster) PaToH partitioner.
Yaroslav Akhremtsev, Tobias Heuer, Peter Sanders 0001, Sebastian Schlag
ALENEX3
2017 Robust Massively Parallel Sorting
abstract
We investigate distributed memory parallel sorting algorithms that scale to the largest available machines and are robust with respect to input size, duplicate keys, and distribution of the input elements. The main outcome is that four sorting algorithms cover the entire range of possible input sizes. For three algorithms we devise new low overhead mechanisms to make them robust with respect to duplicate keys and skewed input distributions. One of these, designed for medium sized inputs, is a new variant of quicksort with fast high-quality pivot selection. At the same time asymptotic analysis provides performance guarantees and guides the selection and configuration of the algorithms. We validate these hypotheses using extensive experiments on 7 algorithms, 10 input distributions, up to 262 144 cores, and varying input sizes over 9 orders of magnitude. For “difficult” input distributions, our algorithms are the only ones that work at all. For all but the largest input sizes, we are the first to perform experiments on such large machines at all and our algorithms significantly outperform the ones one would conventionally have considered.
Michael Axtmann, Peter Sanders 0001
ALENEX2
2017 Parallel d-D Delaunay Triangulations in Shared and Distributed Memory
abstract
Computing the Delaunay triangulation (DT) of a given point set in ℝD is one of the fundamental operations in computational geometry. In this paper we present a novel divide-and-conquer (D&C) algorithm that lends itself equally well to shared and distributed memory parallelism. While previous D&C algorithms generally suffer from a complex – often sequential – merge or divide step, we reduce the merging of two partial triangulations to re-triangulating a small subset of their vertices using the same parallel algorithm and combining the three triangulations via parallel hash table lookups. In experiments we achieve a reasonable speedup on shared memory machines and compare favorably to CGAL's three-dimensional parallel DT implementation on some inputs. In the distributed memory setting we show that our approach scales to 2048 processing elements, which allows us to compute 3-D DTs for inputs with billions of points.
Daniel Funke, Peter Sanders 0001
ALENEX2
2017 In-Place Parallel Super Scalar Samplesort (IPSSSSo)
abstract
Suffix sorting is arguably the most fundamental building block in string algorithmics, like regular sorting in the broader field of algorithms. It is thus not surprising that the literature is full of algorithms for suffix sorting, in particular focusing on their practicality. However, the advances on practical suffix sorting stalled with the emergence of the DivSufSort algorithm more than 10 years ago, which, up to date, has remained the fastest suffix sorter. This article shows how properties of Lyndon words can be exploited algorithmically to accelerate suffix sorting again. Our new algorithm is 6-19% faster than DivSufSort on real-world texts, and up to three times as fast on artificial repetitive texts. It can also be parallelized, where similar speedups can be observed. Thus, we make the first advances in practical suffix sorting after more than a decade of standstill.
Michael Axtmann, Sascha Witt, Daniel Ferizovic, Peter Sanders 0001
ESA4
2017 Dynamic Space Efficient Hashing
Tobias Maier, Peter Sanders 0001
ESA2
2017 Distributed evolutionary k-way node separators
abstract
Computing high quality node separators in large graphs is necessary for a variety of applications, ranging from divide-and-conquer algorithms to VLSI design. In this work, we present a novel distributed evolutionary algorithm tackling the k-way node separator problem. A key component of our contribution includes new k-way local search algorithms based on maximum flows. We combine our local search with a multilevel approach to compute an initial population for our evolutionary algorithm, and further show how to modify the coarsening stage of our multilevel algorithm to create effective combine and mutation operations. Lastly, we combine these techniques with a scalable communication protocol, producing a system that is able to compute high quality solutions in a short amount of time. Our experiments against competing algorithms show that our advanced evolutionary algorithm computes the best result on 94% of the chosen benchmark instances.
Peter Sanders 0001, Christian Schulz 0003, Darren Strash, Robert Williger
GECCO1
2017 Engineering Parallel String Sorting
Timo Bingmann, Andreas Eberle, Peter Sanders 0001
Algorithmica3
2017 Parallel Graph Partitioning for Complex Networks
Henning Meyerhenke, Peter Sanders 0001, Christian Schulz 0003
IEEE Trans. Parallel Distributed Syst.2
2016 Finding Near-Optimal Independent Sets at Scale
Sebastian Lamm, Peter Sanders 0001, Christian Schulz 0003, Darren Strash, Renato F. Werneck
ALENEX2
2016 k-way Hypergraph Partitioning via n-Level Recursive Bisection
abstract
We develop a multilevel algorithm for hypergraph partitioning that contracts the vertices one at a time. Using several caching and lazy-evaluation techniques during coarsening and refinement, we reduce the running time by up to two-orders of magnitude compared to a naive n-level algorithm that would be adequate for ordinary graph partitioning. The overall performance is even better than the widely used hMetis hypergraph partitioner that uses a classical multilevel algorithm with few levels. Aided by a portfolio-based approach to initial partitioning and adaptive budgeting of imbalance within recursive bipartitioning, we achieve very high quality. We assembled a large benchmark set with 310 hypergraphs stemming from application areas such VLSI, SAT solving, social networks, and scientific computing. Experiments indicate that our algorithm is the method of choice for a wide range of hypergraph partitioning tasks. The algorithm presented in this work forms the basis of our hypergraph partitioning framework KaHyPar (Karlsruhe Hypergraph Partitioning).
Sebastian Schlag, Vitali Henne, Tobias Heuer, Henning Meyerhenke, Peter Sanders 0001, Christian Schulz 0003
ALENEX5
2016 Thrill: High-performance algorithmic distributed batch data processing with C++
abstract
We present the design and a first performance evaluation of Thrill - a prototype of a general purpose big data processing framework with a convenient data-flow style programming interface. Thrill is somewhat similar to Apache Spark and Apache Flink with at least two main differences. First, Thrill is based on C++ which enables performance advantages due to direct native code compilation, a more cache-friendly memory layout, and explicit memory management. In particular, Thrill uses template meta-programming to compile chains of subsequent local operations into a single binary routine without intermediate buffering and with minimal indirections. Second, Thrill uses arrays rather than multisets as its primary data structure which enables additional operations like sorting, prefix sums, window scans, or combining corresponding fields of several arrays (zipping). We compare Thrill with Apache Spark and Apache Flink using five kernels from the HiBench suite. Thrill is consistently faster and often several times faster than the other frameworks. At the same time, the source codes have a similar level of simplicity and abstraction.
Timo Bingmann, Michael Axtmann, Emanuel Jöbstl, Sebastian Lamm, Huyen Chau Nguyen, Alexander Noe, Sebastian Schlag, Matthias Stumpp, Tobias Sturm, Peter Sanders 0001
IEEE BigData10
2016 Fast Parallel Operations on Search Trees
abstract
Using (a, b)-trees as an example, we show how to perform a parallel split with logarithmic latency and parallel join, bulk updates, intersection, union (or merge), and (symmetric) set difference with logarithmic latency and with information theoretically optimal work. We present both asymptotically optimal solutions and simplified versions that perform well in practice - they are several times faster than previous implementations.
Yaroslav Akhremtsev, Peter Sanders 0001
HiPC2
2016 Communication Efficient Algorithms for Top-k Selection Problems
abstract
We present scalable parallel algorithms with sublinear per-processor communication volume and low latency for several fundamental problems related to finding the most relevant elements in a set, for various notions of relevance: We begin with the classical selection problem with unsorted input. We present generalizations with sorted inputs, dynamic content (bulk-parallel priority queues), and multiple criteria. Then we move on to finding frequent objects and top-k sum aggregation.
Lorenz Hübschle-Schneider, Peter Sanders 0001
IPDPS2
2016 Concurrent hash tables: fast and general?(!)
abstract
Concurrent hash tables are one of the most important concurrent data structures with numerous applications. Since hash table accesses can dominate the execution time of the overall application, we need implementations that achieve good speedup. Unfortunately, currently available concurrent hashing libraries turn out to be far away from this requirement in particular when contention on some elements occurs.
Tobias Maier, Peter Sanders 0001, Roman Dementiev
PPoPP2
2016 Accelerating Local Search for the Maximum Independent Set Problem
Jakob Dahlum, Sebastian Lamm, Peter Sanders 0001, Christian Schulz 0003, Darren Strash, Renato F. Werneck
SEA3
2016 Advanced Multilevel Node Separator Algorithms
Peter Sanders 0001, Christian Schulz 0003
SEA1
2016 Scalable generation of scale-free graphs
Peter Sanders 0001, Christian Schulz 0003
Inf. Process. Lett.1
2015 (Semi-)External Algorithms for Graph Partitioning and Clustering
abstract
In this paper, we develop semi-external and external memory algorithms for graph partitioning and clustering problems. Graph partitioning and clustering are key tools for processing and analyzing large complex networks. We address both problems in the (semi-)external model by adapting the size-constrained label propagation technique. Our (semi-)external size-constrained label propagation algorithm can be used to compute graph clusterings and is a prerequisite for the (semi-)external graph partitioning algorithm. The algorithm is then used for both the coarsening and the refinement phase of a multilevel algorithm to compute graph partitions. Our algorithm is able to partition and cluster huge complex networks with billions of edges on cheap commodity machines. Experiments demonstrate that the semi-external graph partitioning algorithm is scalable and can compute high quality partitions in time that is comparable to the running time of an efficient internal memory implementation. A parallelization of the algorithm in the semi-external model further reduces running time.
Yaroslav Akhremtsev, Peter Sanders 0001, Christian Schulz 0003
ALENEX2
2015 Incorporating road networks into territory design
abstract
Given a set of basic areas, the territory design problem asks to create a predefined number of territories, each containing at least one basic area, such that an objective function is optimized. Desired properties of territories often include a reasonable balance, compact form, contiguity and small average journey times, which are usually encoded in the objective function or formulated as constraints. We address the territory design problem by developing graph theoretic models that also consider the underlying road network. The derived graph models enable us to tackle the territory design problem by modifying graph partitioning algorithms so that the objective of the planning problem is taken into account. In addition, we present a modification of a location-allocation heuristic based on mixed integer programming. We test and compare the algorithms on several real world instances.
Nitin Ahuja, Matthias Bender 0002, Peter Sanders 0001, Christian Schulz 0003
SIGSPATIAL/GIS3
2015 Locality Aware DAG-Scheduling for LU-Decomposition
abstract
Modern computers have deepening memory hierarchies with multiple levels of (partially shared) caches and non-uniform memory access (NUMA). This makes it increasingly difficult and important to schedule computations in such a way that expensive memory accesses are avoided.In this paper we are choosing LU-decomposition for a case study since its use in the famous LINPACK benchmark means that highly tuned codes are already available. Our approach is to perform the very same computations as a leading implementation (PLASMA) but to schedule them in a more locality aware way. In particular, we better take into account when independent subtasks share the same input data and we explicitly address NUMA-effects coordinating memory layout and task scheduling. These measures lead to up to 36 % performance improvement compared to PLASMA.
Tobias Maier, Peter Sanders 0001, Jochen Speck
IPDPS2
2015 Parallel Graph Partitioning for Complex Networks
abstract
Processing large complex networks like social networks or web graphs has recently attracted considerable interest. To do this in parallel, we need to partition them into pieces of about equal size. Unfortunately, previous parallel graph practitioners originally developed for more regular mesh-like networks do not work well for these networks. This paper addresses this problem by parallelizing and adapting the label propagation technique originally developed for graph clustering. By introducing size constraints, label propagation becomes applicable for both the coarsening and the refinement phase of multilevel graph partitioning. We obtain very high quality by applying a highly parallel evolutionary algorithm to the coarsest graph. The resulting system is both more scalable and achieves higher quality than state-of-the-art systems like ParMetis or PT-Scotch. For large complex networks the performance differences are very big. As an example, our algorithm partitions a web graph with 3.3G edges in 16 seconds using 512 cores of a high-performance cluster while producing a high quality partition -- none of the competing systems can handle this graph on our system.
Henning Meyerhenke, Peter Sanders 0001, Christian Schulz 0003
IPDPS2
2015 HordeSat: A Massively Parallel Portfolio SAT Solver
Tomás Balyo, Peter Sanders 0001, Carsten Sinz
SAT2
2015 Cache-Efficient Aggregation: Hashing Is Sorting
abstract
For decades researchers have studied the duality of hashing and sorting for the implementation of the relational operators, especially for efficient aggregation. Depending on the underlying hardware and software architecture, the specifically implemented algorithms, and the data sets used in the experiments, different authors came to different conclusions about which is the better approach. In this paper we argue that in terms of cache efficiency, the two paradigms are actually the same. We support our claim by showing that the complexity of hashing is the same as the complexity of sorting in the external memory model. Furthermore we make the similarity of the two approaches obvious by designing an algorithmic framework that allows to switch seamlessly between hashing and sorting during execution. The fact that we mix hashing and sorting routines in the same algorithmic framework allows us to leverage the advantages of both approaches and makes their similarity obvious. On a more practical note, we also show how to achieve very low constant factors by tuning both the hashing and the sorting routines to modern hardware. Since we observe a complementary dependency of the constant factors of the two routines to the locality of the input, we exploit our framework to switch to the faster routine where appropriate. The result is a novel relational aggregation algorithm that is cache-efficient---independently and without prior knowledge of input skew and output cardinality---, highly parallelizable on modern multi-core systems, and operating at a speed close to the memory bandwidth, thus outperforming the state-of-the-art by up to 3.7x.
Ingo Müller 0002, Peter Sanders 0001, Arnaud Lacurie, Wolfgang Lehner, Franz Färber
SIGMOD Conference2
2015 Practical Massively Parallel Sorting
abstract
Previous parallel sorting algorithms do not scale to the largest available machines, since they either have prohibitive communication volume or prohibitive critical path length. We describe algorithms that are a viable compromise and overcome this gap both in theory and practice. The algorithms are multi-level generalizations of the known algorithms sample sort and multiway mergesort. In particular, our sample sort variant turns out to be very scalable both in theory and practice where it scales up to 215 MPI processes with outstanding performance in particular for medium sized inputs. Some tools we develop may be of independent interest -- a simple, practical, and flexible sorting algorithm for very small inputs, a near linear time ptimal algorithm for solving a constrained bin packing problem, and an algorithm for data delivery, that guarantees a small number of message startups on each processor.
Michael Axtmann, Timo Bingmann, Peter Sanders 0001, Christian Schulz 0003
SPAA3
2015 Brief Announcement: MultiQueues: Simple Relaxed Concurrent Priority Queues
abstract
We present a simple, concurrent data structure that approximates the behavior of a priority queue and that gives very good performance guarantees. We also discuss models for the semantics of relaxed priority queues and introduce a technique for "waitfree locking" that allows to convert sequential data structures to relaxed concurrent data structures.
Hamza Rihani, Peter Sanders 0001, Roman Dementiev
SPAA2
2015 Faster Exact Search Using Document Clustering
Jonathan Dimond, Peter Sanders 0001
SPIRE2
2015 Parallel Algorithms Reconsidered (Invited Talk)
abstract
Parallel algorithms have been a subject of intensive algorithmic research in the 1980s. This research almost died out in the mid 1990s. In this paper we argue that it is high time to reconsider this subject since a lot of things have changed. First and foremost, parallel processing has moved from a niche application to something mandatory for any performance critical computer applications. We will also point out that even very fundamental results can still be obtained. We give examples and also formulate some open problems.
Peter Sanders 0001
STACS1
2015 A Bulk-Parallel Priority Queue in External Memory with STXXL
Timo Bingmann, Thomas Keh, Peter Sanders 0001
SEA3
2015 Graph Partitioning for Independent Sets
Sebastian Lamm, Peter Sanders 0001, Christian Schulz 0003
SEA2
2014 PReaCH: A Fast Lightweight Reachability Index Using Pruning and Contraction Hierarchies
Florian Merz 0003, Peter Sanders 0001
ESA2
2014 Retrieval and Perfect Hashing Using Fingerprinting
Ingo Müller 0002, Peter Sanders 0001, Robert Schulze
SEA2
2014 Parallel Bi-objective Shortest Paths Using Weight-Balanced B-trees with Bulk Updates
Stephan Erb, Moritz Kobitzsch, Peter Sanders 0001
SEA3
2014 Partitioning Complex Networks via Size-Constrained Clustering
Henning Meyerhenke, Peter Sanders 0001, Christian Schulz 0003
SEA2
2013 Communication efficient algorithms for fundamental big data problems
abstract
Big Data applications often store or obtain their data distributed over many computers connected by a network. Since the network is usually slower than the local memory of the machines, it is crucial to process the data in such a way that not too much communication takes place. Indeed, only communication volume sublinear in the input size may be affordable. We believe that this direction of research deserves more intensive study. We give examples for several fundamental algorithmic problems where nontrivial algorithms with sublinear communication volume are possible. Our main technical contribution are several related results on distributed Bloom filter replacements, duplicate detection, and data base join. As an example of a very different family of techniques, we discuss linear programming in low dimensions.
Peter Sanders 0001, Sebastian Schlag, Ingo Müller 0002
IEEE BigData1
2013 Fast OLAP query execution in main memory on large data in a cluster
abstract
Main memory column-stores have proven to be efficient for processing analytical queries. Still, there has been little work in the context of clusters. Using only a single machine poses several restrictions: Processing power and data volume are bounded to the number of cores and main memory fitting on one tightly coupled system. To enable the processing of larger data sets, switching to a cluster becomes necessary. In this work, we explore techniques for efficient execution of analytical SQL queries on large amounts of data in a parallel database cluster while making maximal use of the available hardware. This includes precompiled query plans for efficient CPU utilization, full parallelization on single nodes and across the cluster, and efficient inter-node communication. We implement all features in a prototype for running a subset of TPC-H benchmark queries. We evaluate our implementation in a 128 node cluster running TPC-H queries with 30000 gigabyte of uncompressed data. Currently, there are no official cluster results for more than 10000 gigabyte of data, where we achieve up to one to two orders of magnitudes better performance than the current record holder.
Martin Weidner, Jonathan Dees, Peter Sanders 0001
IEEE BigData3
2013 Parallel String Sample Sort
Timo Bingmann, Peter Sanders 0001
ESA2
2013 Efficient Parallel and External Matching
Marcel Birn, Vitaly Osipov, Peter Sanders 0001, Christian Schulz 0003, Nodari Sitchinava
Euro-Par3
2013 Efficient many-core query execution in main memory column-stores
abstract
We use the full query set of the TPC-H Benchmark as a case study for the efficient implementation of decision support queries on main memory column-store databases. Instead of splitting a query into separate independent operators, we consider the query as a whole and translate the execution plan into a single function performing the query. This allows highly efficient CPU utilization, minimal materialization, and execution in a single pass over the data for most queries. The single pass is performed in parallel and scales near-linearly with the number of cores. The resulting query plans for most of the 22 queries are remarkably simple and are suited for automatic generation and fast compilation. Using a data-parallel, NUMA-aware many-core implementation with block summaries, inverted index data structures, and efficient aggregation algorithms, we achieve one to two orders of magnitude better performance than the current record holders of the TPC-H Benchmark.
Jonathan Dees, Peter Sanders 0001
ICDE2
2013 Malleable Sorting
abstract
Malleable jobs can adapt to varying degrees of available parallelism. This is an interesting approach to more flexible usage of parallel resources. For example, malleable jobs can be scheduled optimally and efficiently where more restricted forms of parallel jobs are NP-hard to handle. However, little work has been done on how to make fundamental computations malleable. We study how this can be done for sorting. Our algorithm is an adaptive version of Multiway Merge Sort and outperforms a state-of-the art implementation in the multi core STL when the number of available cores fluctuates.
Patrick Flick, Peter Sanders 0001, Jochen Speck
IPDPS2
2013 Parallel Label-Setting Multi-objective Shortest Path Search
abstract
We present a parallel algorithm for finding all Pareto optimal paths from a specified source in a graph. The algorithm is label-setting, i.e., it only performs work on distance labels that are optimal. The main result is that the added complexity when going from one to multiple objectives is completely parallelizable. The algorithm is based on a multiobjective generalization of a priority queue. Such a Pareto queue can be efficiently implemented for two dimensions. Surprisingly, the parallel biobjective approach yields an algorithm performing asymptotically less work than the previous sequential algorithms. We also discuss generalizations for d ≥ 3 objective functions and for single target search.
Peter Sanders 0001, Lawrence Mandow
IPDPS1
2013 Engineering Algorithms for Large Data Sets
Peter Sanders 0001
SOFSEM1
2013 Work-efficient matrix inversion in polylogarithmic time
abstract
We present an algorithm for matrix inversion that combines the practical requirement of an optimal number of arithmetic operations and the theoretical goal of a polylogarithmic critical path length. The algorithm reduces inversion to matrix multiplication. It uses Strassen's recursion scheme but on the critical path, it breaks the recursion early switching to an asymptotically inefficient yet fast use of Newton's method. We also show that the algorithm is numerically stable. Overall, we get a candidate for a massively parallel algorithm that scales to exascale systems even on relatively small inputs. Preliminary experiments on multicore machines give the surprising result that even on such moderately parallel machines the algorithm outperforms Intel's Math Kernel Library and that Strassen's algorithm seems to be numerically more stable than one might expect.
Peter Sanders 0001, Jochen Speck, Raoul Steffen
SPAA1
2013 On (Dynamic) Range Minimum Queries in External Memory
Lars Arge, Johannes Fischer 0001, Peter Sanders 0001, Nodari Sitchinava
WADS3
2013 Transit Node Routing Reconsidered
Julian Arz, Dennis Luxen, Peter Sanders 0001
SEA3
2013 Think Locally, Act Globally: Highly Balanced Graph Partitioning
Peter Sanders 0001, Christian Schulz 0003
SEA1
2012 Distributed Evolutionary Graph Partitioning
abstract
We present a novel distributed evolutionary algorithm, KaFFPaE, to solve the Graph Partitioning Problem, which makes use of KaFFPa (Karlsruhe Fast Flow Partitioner). The use of our multilevel graph partitioner KaFFPa provides new effective crossover and mutation operators. By combining these with a scalable communication protocol we obtain a system that is able to improve the best known partitioning results for many inputs in a very short amount of time. For example, in Walshaw's well known benchmark tables we are able to improve or recompute 76% of entries for the tables with 1%, 3% and 5% imbalance.
Peter Sanders 0001, Christian Schulz 0003
ALENEX1
2012 Time-Dependent Route Planning with Generalized Objective Functions
Gernot Veit Batz, Peter Sanders 0001
ESA2
2012 Optimized Hybrid Parallel Lattice Boltzmann Fluid Flow Simulations on Complex Geometries
Jonas Fietz, Mathias J. Krause, Christian Schulz 0003, Peter Sanders 0001, Vincent Heuveline
Euro-Par4
2012 Energy Efficient Frequency Scaling and Scheduling for Malleable Tasks
Peter Sanders 0001, Jochen Speck
Euro-Par1
2012 Engineering Graph Partitioning Algorithms
Vitaly Osipov, Peter Sanders 0001, Christian Schulz 0003
SEA2
2012 Advanced Coarsening Schemes for Graph Partitioning
Ilya Safro, Peter Sanders 0001, Christian Schulz 0003
SEA2
2011 Engineering Multilevel Graph Partitioning Algorithms
Peter Sanders 0001, Christian Schulz 0003
ESA1
2011 Engineering a Multi-core Radix Sort
Jan Wassenberg, Peter Sanders 0001
Euro-Par (2)2
2011 Engineering efficient error-correcting geocoding
abstract
We study the problem of resolving a perhaps misspelled address of a location into geographic coordinates of latitude and longitude. Our solution does not require any prefixed rule set and is able to recover even heavily misspelled and fragmentary queries within a few milliseconds.
Christian Jung 0003, Daniel Karch, Sebastian Knopp, Dennis Luxen, Peter Sanders 0001
GIS5
2011 Algorithm Engineering for Scalable Parallel External Sorting
abstract
The talk describes algorithm engineering (AE) as a methodology for algorithmic research where design, analysis, implementation and experimental evaluation of algorithms form a feedback cycle driving the development of efficient algorithms. Additional important components of the methodology include realistic models, algorithm libraries, and collections of realistic benchmark instances. We use one main example throughout this talk: sorting huge data sets using many multi-core processors and disks. The described system broke records for the GraySort and MinuteSort sorting benchmarks and helped with the record for the Joule Sort benchmark.
Peter Sanders 0001
IPDPS1
2011 Efficient Parallel Scheduling of Malleable Tasks
abstract
We give an O(n + min{n, m} log m) work algorithm for scheduling n tasks with flexible amount of parallelism on to processors, provided the speedup functions of the tasks are concave. We give efficient parallelizations of the algorithm that run in polylogarifhmic time. Previous algorithms were sequential and required quadratic work. This is in some sense a best-possible result since the problem is NP-hard for more general speedup functions.
Peter Sanders 0001, Jochen Speck
IPDPS1
2011 Hierarchy Decomposition for Faster User Equilibria on Road Networks
Dennis Luxen, Peter Sanders 0001
SEA2
2011 Energy-Efficient Paths in Radio Networks
René Beier, Stefan Funke, Domagoj Matijevic, Peter Sanders 0001
Algorithmica4
2011 Towards optimal range medians
Gerth Stølting Brodal, Beat Gfeller, Allan Grønlund Jørgensen, Peter Sanders 0001
Theor. Comput. Sci.4
2010 Simple and Fast Nearest Neighbor Search
abstract
We present a simple randomized data structure for two-dimensional point sets that allows fast nearest neighbor queries in many cases. An implementation outperforms several previous implementations for commonly used benchmarks.
Marcel Birn, Manuel Holtgrewe, Peter Sanders 0001, Johannes Singler
ALENEX3
2010 Route Planning with Flexible Objective Functions
abstract
We present the first fast route planning algorithm that answers shortest paths queries for a customizable linear combination; of two different metrics, e. g. travel time and energy cost, on large scale road networks. The precomputation receives as input a directed graph, two edge weight functions t(e) and c(e), and a discrete interval [L, U]. The resulting flexible query algorithm finds for a parameter p ∊ [L, U] an exact shortest path for the edge weight t(e)+p·c(e). This allows for different tradeoffs between the two edge weight functions at query time. We apply precomputation based on node construction, which adds all necessary shortcuts for any parameter choice efficiently. To improve the node ordering, we developed the new concept of gradual parameter interval splitting. Additionally, we improve performance by combining node contraction and a goal-directed technique in our flexible scenario.
Robert Geisberger, Moritz Kobitzsch, Peter Sanders 0001
ALENEX3
2010 Algorithm Engineering - An Attempt at a Definition Using Sorting as an Example
abstract
The talk describes algorithm engineering (AE) as a methodology for algorithmic research where design, analysis, implementation and experimental evaluation of form a feedback cycle driving the development of efficient algorithm. Additional important components of the methodology include realistic models, algorithm libraries, and collections of realistic benchmark instances. Examples are given for the fundamental problem of sorting with particular emphasis on huge data sets, advanced hardware, and energy efficiency.
Peter Sanders 0001
ALENEX1
2010 Fast Detour Computation for Ride Sharing
abstract
Ride sharing becomes more and more popular not least because internet services help matching offers and request. However, current systems use a rather simple-minded functionality allowing to search for the origin and destination city, sometimes enriched with radial search around the cities. We show that theses services can be substantially improved using innovative route planning algorithms. More concretely, we generalize previous static algorithms for many-to-many routing to a dynamic setting and develop an additional pruning strategy. With these measures it becomes possible to match each request to $n$ offers using $2n+1$ exact travel time computations in a large road network in a fraction of a microsecond per offer. For requests spread over Germany according to population density, we are able to reduce the number of failing entries substantially. We are able to find a reasonable match for more than 60% of the failing entries left by contemporary matching strategies. Additionally, we halve the average waste of resources in the matches found compared to radial search.
Robert Geisberger, Dennis Luxen, Sabine Neubauer, Peter Sanders 0001, Lars Völker
ATMOS4
2010 Engineering Time-Dependent Many-to-Many Shortest Paths Computation
abstract
Computing distance tables is important for many logistics problems like the vehicle routing problem (VRP). While shortest distances from all source nodes in S to all target nodes in T are time-independent, travel times are not. We present the first efficient algorithms to compute time-dependent travel time tables in large time-dependent road networks. Our algorithms are based on time-dependent contraction hierarchies (TCH), currently the fastest time-dependent speed-up technique. The computation of a table is inherently in Theta(|S|*|T|), and therefore inefficient for large tables. We provide one particular algorithm using only Theta(|S|+|T|) time and space, being able to answer queries two orders of magnitude faster than the basic TCH implementation. If small errors are acceptable, approximate versions of our algorithms are further orders of magnitude faster.
Robert Geisberger, Peter Sanders 0001
ATMOS2
2010 n-Level Graph Partitioning
Vitaly Osipov, Peter Sanders 0001
ESA (1)2
2010 Scalable distributed-memory external sorting
abstract
We engineer algorithms for sorting huge data sets on massively parallel machines. The algorithms are based on the multiway merging paradigm. We first outline an algorithm whose I/O requirement is close to a lower bound. Thus, in contrast to naive implementations of multiway merging and all other approaches known to us, the algorithm works with just two passes over the data even for the largest conceivable inputs. A second algorithm reduces communication overhead and uses more conventional specifications of the result at the cost of slightly increased I/O requirements. An implementation wins the well known sorting benchmark in several categories and by a large margin over its competitors.
Mirko Rahn, Peter Sanders 0001, Johannes Singler
ICDE2
2010 Engineering a scalable high quality graph partitioner
abstract
We describe an approach to parallel graph partitioning that scales to hundreds of processors and produces a high solution quality. For example, for many instances from Walshaw's benchmark collection we improve the best known partitioning. We use the well known framework of multi-level graph partitioning. All components are implemented by scalable parallel algorithms. Quality improvements compared to previous systems are due to better prioritization of edges to be contracted, better approximation algorithms for identifying matchings, better local search heuristics, and perhaps most notably, a parallelization of the FM local search algorithm that works more locally than previous approaches.
Manuel Holtgrewe, Peter Sanders 0001, Christian Schulz 0003
IPDPS2
2010 GPU sample sort
abstract
In this paper, we present the design of a sample sort algorithm for manycore GPUs. Despite being one of the most efficient comparison-based sorting algorithms for distributed memory architectures its performance on GPUs was previously unknown. For uniformly distributed keys our sample sort is at least 25% and on average 68% faster than the best comparison-based sorting algorithm, GPU Thrust merge sort, and on average more than 2 times faster than GPU quicksort. Moreover, for 64-bit integer keys it is at least 63% and on average 2 times faster than the highly optimized GPU Thrust radix sort that directly manipulates the binary representation of keys. Our implementation is robust to different distributions and entropy levels of keys and scales almost linearly with the input size. These results indicate that multi-way techniques in general and sample sort in particular achieve substantially better performance than two-way merge sort and quicksort.
Nikolaj Leischner, Vitaly Osipov, Peter Sanders 0001
IPDPS3
2010 Algorithm engineering for scalable parallel external sorting
abstract
The talk describes algorithm engineering (AE) as a methodology for algorithmic research where design, analysis, implementation and experimental evaluation of algorithms form a feedback cycle driving the development of efficient algorithm. Additional important components of the methodology include realistic models, algorithm libraries, and collections of realistic benchmark instances. We use one main example throughout this paper: sorting huge data sets using many multi-core processors and disks. The described system is the current record holder for the GraySort and MinuteSort sorting benchmarks.
Peter Sanders 0001
IPDPS1
2010 Improved Fast Similarity Search in Dictionaries
Daniel Karch, Dennis Luxen, Peter Sanders 0001
SPIRE3
2010 Time-Dependent Contraction Hierarchies and Approximation
Gernot Veit Batz, Robert Geisberger, Sabine Neubauer, Peter Sanders 0001
SEA4
2010 Distributed Time-Dependent Contraction Hierarchies
Tim Kieritz, Dennis Luxen, Peter Sanders 0001, Christian Vetter
SEA3
2010 Engineering basic algorithms of an in-memory text search engine
abstract
Inverted index data structures are the key to fast text search engines. We first investigate one of the predominant operation on inverted indexes, which asks for intersecting two sorted lists of document IDs of different lengths. We explore compression and performance of different inverted list data structures. In particular, we present Lookup , a new data structure that allows intersection in expected time linear in the smaller list. Based on this result, we present the algorithmic core of a full text data base that allows fast Boolean queries, phrase queries, and document reporting using less space than the input text. The system uses a carefully choreographed combination of classical data compression techniques and inverted-index-based search data structures. Our experiments show that inverted indexes are preferable over purely suffix-array-based techniques for in-memory (English) text search engines. A similar system is now running in practice in each core of the distributed data base engine TREX of SAP.
Frederik Transier, Peter Sanders 0001
ACM Trans. Inf. Syst.2
2009 Time-Dependent Contraction Hierarchies
abstract
Contraction hierarchies are a simple hierarchical routing technique that has proved extremely efficient for static road networks. We explain how to generalize them to networks with time-dependent edge weights. This is the first hierarchical speedup technique for time-dependent routing that allows bidirectional query algorithms. For large realistic networks with considerable time-dependence (Germany, weekdays) our method outperforms previous techniques with respect to query time using comparable or lower preprocessing time.
Gernot Veit Batz, Daniel Delling, Peter Sanders 0001, Christian Vetter
ALENEX3
2009 The Filter-Kruskal Minimum Spanning Tree Algorithm
abstract
We present Filter-Kruskal -a simple modification of Kruskal's algorithm that avoids sorting edges that are "obviously" not in the MST.For arbitrary graphs with random edge weights Filter-Kruskal runs in time O m + n log n log m n , i.e. in linear time for not too sparse graphs.Experiments indicate that the algorithm has very good practical performance over the entire range of edge densities.An equally simple parallelization seems to be the currently best practical algorithm on multicore machines.
Vitaly Osipov, Peter Sanders 0001, Johannes Singler
ALENEX2
2009 An Efficient Parallel Algorithm for Graph-Based Image Segmentation
Jan Wassenberg, Wolfgang Middelmann, Peter Sanders 0001
CAIP3
2009 Towards Optimal Range Medians
Beat Gfeller, Peter Sanders 0001
ICALP (1)2
2009 Two-tree algorithms for full bandwidth broadcast, reduction and scan
Peter Sanders 0001, Jochen Speck, Jesper Larsson Träff
Parallel Comput.1
2008 Better Approximation of Betweenness Centrality
abstract
Estimating the importance or centrality of the nodes in large networks has recently attracted increased interest. Betweenness is one of the most important centrality indices, which basically counts the number of shortest paths going through a node. Betweenness has been used in diverse applications, e.g., social network analysis or route planning. Since exact computation is prohibitive for large networks, approximation algorithms are important. In this paper, we propose a framework for unbiased approximation of betweenness that generalizes a previous approach by Brandes. Our best new schemes yield significantly better approximation than before for many real world inputs. In particular, we also get good approximations for the betweenness of unimportant nodes.
Robert Geisberger, Peter Sanders 0001, Dominik Schultes
ALENEX2
2008 Compressed Inverted Indexes for In-Memory Search Engines
abstract
We present the algorithmic core of a full text data base that allows fast Boolean queries, phrase queries, and document reporting using less space than the input text. The system uses a carefully choreographed combination of classical data compression techniques and inverted index based search data structures. It outperforms suffix array based techniques for all the above operations for real world (natural language) texts.
Frederik Transier, Peter Sanders 0001
ALENEX2
2008 Semi-external LTL Model Checking
Stefan Edelkamp, Peter Sanders 0001, Pavel Simecek
CAV2
2008 Single-Pass List Partitioning
abstract
Parallel algorithms divide computation among several threads. In many cases, the input must also be divided. Consider an input consisting of a linear sequence of elements whose length is unknown a priori. We can evenly divide it naively by either traversing it twice (first determine length, then divide) or by using linear additional memory to hold an array of pointers to the elements. Instead, we propose an algorithm that divides a linear sequence into p parts of similar length traversing the sequence only once, and using sub-linear additional space. The experiments show that our list partitioning algorithm is effective and fast in practice.
Leonor Frias, Johannes Singler, Peter Sanders 0001
CISIS3
2008 Mobile Route Planning
Peter Sanders 0001, Dominik Schultes, Christian Vetter
ESA1
2008 Out of the Box Phrase Indexing
Frederik Transier, Peter Sanders 0001
SPIRE2
2008 STXXL: standard template library for XXL data sets
abstract
Abstract We present the software library STXXLthat is an implementation of the C++ standard template library (STL) for processing huge data sets that can fit only on hard disks. It supports parallel disks, overlapping between disk I/O and computation and it is the first I/O‐efficient algorithm library that supports the pipelining technique that can save more than half of the I/Os. STXXLhas been applied both in academic and industrial environments for a range of problems including text processing, graph algorithms, computational geometry, Gaussian elimination, visualization, and analysis of microscopic images, differential cryptographic analysis, etc. The performance of STXXLand its applications are evaluated on synthetic and real‐world inputs. We present the design of the library, how its performance features are supported, and demonstrate how the library integrates with STL. Copyright © 2007 John Wiley & Sons, Ltd.
Roman Dementiev, Lutz Kettner, Peter Sanders 0001
Softw. Pract. Exp.3
2008 An asymptotic approximation scheme for multigraph edge coloring
abstract
The edge coloring problem considers the assignment of colors from a minimum number of colors to edges of a graph such that no two edges with the same color are incident to the same node. We give polynomial time algorithms for approximate edge coloring of multigraphs, that is, parallel edges are allowed. The best previous algorithms achieve a fixed constant approximation factor plus a small additive offset. One of our algorithms achieves solution quality opt + √9opt/2 and has execution time polynomial in the number of nodes and the logarithm of the maximum edge multiplicity.
Peter Sanders 0001, David Steurer
ACM Trans. Algorithms1
2007 In Transit to Constant Time Shortest-Path Queries in Road Networks
abstract
When you drive to somewhere 'far away', you will leave your current location via one of only a few 'important' traffic junctions.Starting from this informal observation, we develop an algorithmic approach-transit node routingthat allows us to reduce quickest-path queries in road networks to a small number of table lookups.We present two implementations of this idea, one based on a simple grid data structure and one based on highway hierarchies.For the road map of the United States, our best query times improve over the best previously published figures by two orders of magnitude.Our results exhibit various trade-offs between average query time (5 µs to 63 µs), preprocessing time (59 min to 1200 min), and storage overhead (21 bytes/node to 244 bytes/node).
Hannah Bast, Stefan Funke, Domagoj Matijevic, Peter Sanders 0001, Dominik Schultes
ALENEX4
2007 Computing Many-to-Many Shortest Paths Using Highway Hierarchies
abstract
We present a fast algorithm for computing all shortest paths between source nodes s ∊ S and target nodes t ∊ T. This problem is important as an initial step for many operations research problems (e.g., the vehicle routing problem), which require the distances between S and T as input. Our approach is based on highway hierarchies, which are also used for the currently fastest speedup techniques for shortest path queries in road networks. We show how to use highway hierarchies so that for example, a 10 000 × 10 000 distance table in the European road network can be computed in about one minute. These results are based on a simple basic idea, several refinements, and careful engineering of the approach. We also explain how the approach can be parallelized and how the computation can be restricted to computing only the k closest connections.
Sebastian Knopp, Peter Sanders 0001, Dominik Schultes, Frank Schulz 0001, Dorothea Wagner
ALENEX2
2007 Intersection in Integer Inverted Indices
abstract
Inverted index data structures are the key to fast search engines. The predominant operation on inverted indices asks for intersecting two sorted lists of document IDs which might have vastly varying lengths. We compare previous theoretical approaches, methods used in practice, and one new algorithm which exploits that the intersection uses small integer keys. We also take different data compression techniques into account. The new algorithm is very fast, simple, has good space efficiency, and is the only algorithm that performs well over the entire spectrum of relative list length ratios.
Peter Sanders 0001, Frederik Transier
ALENEX1
2007 MCSTL: The Multi-core Standard Template Library
Johannes Singler, Peter Sanders 0001, Felix Putze
Euro-Par2
2007 MCSTL: the multi-core standard template library
abstract
No abstract available.
Felix Putze, Peter Sanders 0001, Johannes Singler
PPoPP2
2007 The random graph threshold for k-orientiability and a fast algorithm for optimal multiple-choice allocation
Julie Anne Cain, Peter Sanders 0001, Nicholas C. Wormald
SODA2
2007 Scalable parallel suffix array construction
Fabian Kulla, Peter Sanders 0001
Parallel Comput.2
2006 How Branch Mispredictions Affect Quicksort
Kanela Kaligosi, Peter Sanders 0001
ESA2
2006 Engineering Highway Hierarchies
Peter Sanders 0001, Dominik Schultes
ESA1
2006 Linear work suffix array construction
abstract
Suffix trees and suffix arrays are widely used and largely interchangeable index structures on strings and sequences. Practitioners prefer suffix arrays due to their simplicity and space efficiency while theoreticians use suffix trees due to linear-time construction algorithms and more explicit structure. We narrow this gap between theory and practice with a simple linear-time construction algorithm for suffix arrays. The simplicity is demonstrated with a C++ implementation of 50 effective lines of code. The algorithm is called DC3, which stems from the central underlying concept of difference cover . This view leads to a generalized algorithm, DC, that allows a space-efficient implementation and, moreover, supports the choice of a space--time tradeoff. For any v ∈ [1, √n ], it runs in O( vn ) time using O( n / √v ) space in addition to the input string and the suffix array. We also present variants of the algorithm for several parallel and hierarchical memory models of computation. The algorithms for BSP and EREW-PRAM models are asymptotically faster than all previous suffix tree or array construction algorithms.
Juha Kärkkäinen, Peter Sanders 0001, Stefan Burkhardt
J. ACM2
2006 Foreword
Peter Sanders 0001, Aravind Srinivasan, Berthold Vöcking
Theory Comput. Syst.1
2005 : Standard Template Library for XXL Data Sets
Roman Dementiev, Lutz Kettner, Peter Sanders 0001
ESA3
2005 Highway Hierarchies Hasten Exact Shortest Path Queries
Peter Sanders 0001, Dominik Schultes
ESA1
2005 Towards Optimal Multiple Selection
Kanela Kaligosi, Kurt Mehlhorn, J. Ian Munro, Peter Sanders 0001
ICALP4
2005 An asymptotic approximation scheme for multigraph edge coloring
Peter Sanders 0001, David Steurer
SODA1
2005 Space Efficient Hash Tables with Worst Case Constant Access Time
Dimitris Fotakis 0001, Rasmus Pagh, Peter Sanders 0001, Paul G. Spirakis
Theory Comput. Syst.3
2005 Duality Between Prefetching and Queued Writing with Parallel Disks
David A. Hutchinson, Peter Sanders 0001, Jeffrey Scott Vitter
SIAM J. Comput.2
2005 Polynomial time algorithms for multicast network code construction
abstract
The famous max-flow min-cut theorem states that a source node s can send information through a network (V, E) to a sink node t at a rate determined by the min-cut separating s and t. Recently, it has been shown that this rate can also be achieved for multicasting to several sinks provided that the intermediate nodes are allowed to re-encode the information they receive. We demonstrate examples of networks where the achievable rates obtained by coding at intermediate nodes are arbitrarily larger than if coding is not allowed. We give deterministic polynomial time algorithms and even faster randomized algorithms for designing linear codes for directed acyclic graphs with edges of unit capacity. We extend these algorithms to integer capacities and to codes that are tolerant to edge failures.
Sidharth Jaggi, Peter Sanders 0001, Philip A. Chou, Michelle Effros, Sebastian Egner, Kamal Jain, Ludo Tolhuizen
IEEE Trans. Inf. Theory2
2004 Super Scalar Sample Sort
Peter Sanders 0001, Sebastian Winkel
ESA1
2004 Online Scheduling with Bounded Migration
abstract
Consider the classical online scheduling problem where jobs that arrive one by one are assigned to identical parallel machines with the objective of minimizing the makespan. We generalize this problem by allowing the current assignment to be changed whenever a new job arrives, subject to the constraint that the total size of moved jobs is bounded by β times the size of thearriving job. Our main result is a linear time ‘online approximation scheme’, that is, a family of online algorithms with competitive ratio 1+ ε and constant migration factor β ( ε ), for any fixed ε > 0. This result is of particular importance if considered in the context of sensitivity analysis: While a newly arriving job may force a complete change of the entire structure of an optimal schedule, only very limited ‘local’ changes suffice to preserve near-optimal solutions. We believe that this concept will find wide application in its own right. We also present simple deterministic online algorithms with migration factors β =2 and β =4/3, respectively. Their competitive ratio 3/2 beats the lower bound on the performance of any online algorithm in the classical setting without migration. We also present improved algorithms and similar results for closely related problems. In particular, there is a short discussion of corresponding results for the objective to maximize the minimum load of a machine. The latter problem has an application for configuring storage servers that was the original motivation for this work. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Peter Sanders 0001, Naveen Sivadasan, Martin Skutella
ICALP1
2004 Algorithms for Scalable Storage Servers
Peter Sanders 0001
SOFSEM1
2004 A simpler linear time 2/3-epsilon approximation for maximum weight matching
Seth Pettie, Peter Sanders 0001
Inf. Process. Lett.2
2003 Approximating Energy Efficient Paths in Wireless Multi-hop Networks
Stefan Funke, Domagoj Matijevic, Peter Sanders 0001
ESA3
2003 A Practical Minimum Spanning Tree Algorithm Using the Cycle Property
Irit Katriel, Peter Sanders 0001, Jesper Larsson Träff
ESA2
2003 Simple Linear Work Suffix Array Construction
Juha Kärkkäinen, Peter Sanders 0001
ICALP2
2003 Scheduling and Traffic Allocation for Tasks with Bounded Splittability
Piotr Krysta, Peter Sanders 0001, Berthold Vöcking
MFCS2
2003 Asynchronous parallel disk sorting
abstract
We develop an algorithm for parallel disk sorting, whose I/O cost approaches the lower bound and that guarantees almost perfect overlap between I/O and computation. Previous algorithms have either suboptimal I/O volume or cannot guarantee that I/O and computations can always be overlapped. We give an efficient implementation that can (at least) compete with the best practical implementations but gives additional performance guarantees. For the experiments we have configured a state of the art machine that can sustain full bandwidth I/O with eight disks and is very cost effective.
Roman Dementiev, Peter Sanders 0001
SPAA2
2003 Polynomial time algorithms for network information flow
abstract
The famous max-flow min-cut theorem states that a source node s can send information through a network (V,E) to a sink node t at a data rate determined by the min-cut separating s and t. Recently it has been shown that this rate can also be achieved for multicasting to several sinks provided that the intermediate nodes are allowed to reencode the information they receive. In contrast, we present graphs where without coding the rate must be a factor Ω(log|V|) smaller. However, so far no fast algorithms for constructing appropriate coding schemes were known. Our main result are polynomial time algorithms for constructing coding schemes for multicasting at the maximal data rate.
Peter Sanders 0001, Sebastian Egner, Ludo Tolhuizen
SPAA1
2003 Space Efficient Hash Tables with Worst Case Constant Access Time
Dimitris Fotakis 0001, Rasmus Pagh, Peter Sanders 0001, Paul G. Spirakis
STACS3
2003 Scanning Multiple Sequences Via Cache Memory
Kurt Mehlhorn, Peter Sanders 0001
Algorithmica2
2003 Fast Concurrent Access to Parallel Disks
Peter Sanders 0001, Sebastian Egner, Jan H. M. Korst
Algorithmica1
2003 A bandwidth latency tradeoff for broadcast and reduction
Peter Sanders 0001, Jop F. Sibeyn
Inf. Process. Lett.1
2003 Asynchronous Scheduling of Redundant Disk Arrays
abstract
Allocation of data to a parallel disk using redundant storage and random placement of blocks can be exploited to achieve low access delays. New algorithms are proposed which improve the previously known shortest queue algorithm by systematically exploiting the fact that scheduling decisions can be deferred until a block access is actually started on a disk. These algorithms are also generalized for coding schemes with low redundancy. Using extensive simulations, practically important quantities are measured which have so far eluded an analytical treatment: The delay distribution when a stream of requests approaches the limit of the system capacity, the system efficiency for parallel disk applications with bounded prefetching buffers, and the combination of both for mixed traffic. A further step toward practice is taken by outlining the system design for a.: automatically load-balanced parallel hard-disk array. Additional algorithmic measures are proposed for a that allow variable sized blocks, seek time reduction, fault tolerance, inhomogeneous systems, and flexible priorization schemes.
Peter Sanders 0001
IEEE Trans. Computers1
2002 The Hierarchical Factor Algorithm for All-to-All Communication (Research Note)
Peter Sanders 0001, Jesper Larsson Träff
Euro-Par1
2002 Energy Optimal Routing in Radio Networks Using Geometric Data Structures
René Beier, Peter Sanders 0001, Naveen Sivadasan
ICALP2
2002 Randomized Receiver Initiated Load-balancing Algorithms for Tree-shaped Computations
abstract
This paper considers generic load-balancing algorithms which efficiently parallelize a large class of applications based on traversing implicitly defined trees with irregular shape. First, a previous model is generalized yielding tree-shaped computations which cover the cost for communication and problem splitting, a measure of granularity and an easy to quantify parameter which limits irregularity. Then the random polling load-balancing algorithm is analyzed yielding upper bounds which match lower bounds for a large class of possible algorithms and machines. These bounds even hold for a fully asynchronous communication model which is important for practically efficient implementations. Then, with poll-and-shuffle, an asymptotically even more efficient algorithm is introduced. By using predominantly local communications, it increases the usable communication bandwidth on hypercubic networks and meshes by a logarithmic factor. These analytic results are complemented by practical refinements and implementation results which successfully apply a portable and reusable library on machines with up to 1024 processors.
Peter Sanders 0001
Comput. J.1
2002 Towards optimal locality in mesh-indexings
Rolf Niedermeier, Klaus Reinhardt, Peter Sanders 0001
Discret. Appl. Math.3
2002 Cellular Automata: Energy Consumption and Physical Feasibility
Peter Sanders 0001, Roland Vollmar, Thomas Worsch
Fundam. Informaticae1
2002 Reconciling simplicity and realism in parallel disk models
Peter Sanders 0001
Parallel Comput.1
2001 Duality between Prefetching and Queued Writing with Parallel Disks
abstract
Parallel disks promise to be a cost effective means for achieving high bandwidth in applications involving massive data sets, but algorithms for parallel disks can be difficult to devise. To combat this problem, we define a useful and natural duality between writing to parallel disks and the seemingly more difficult problem of prefetching. We first explore this duality for applications involving read-once accesses using parallel disks. We get a simple linear time algorithm for computing optimal prefetch schedules and analyze the efficiency of the resulting schedules for randomly placed data and for arbitrary interleaved accesses to striped sequences. Duality also provides an optimal schedule for prefetching plus caching, where blocks can be accessed multiple times. Another application of this duality gives us the first parallel disk sorting algorithms that are provably optimal up to lower-order terms. One of these algorithms is a simple and practical variant of multiway mergesort, addressing a question that had been open for some time.
David A. Hutchinson, Peter Sanders 0001, Jeffrey Scott Vitter
ESA2
2001 Reconciling simplicity and realism in parallel disk models
Peter Sanders 0001
SODA1
2001 The power of duality for prefetching and sorting with parallel disks
abstract
No abstract available.
David A. Hutchinson, Peter Sanders 0001, Jeffrey Scott Vitter
SPAA2
2000 How Helpers Hasten h-Relations
Peter Sanders 0001, Roberto Solis-Oba
ESA1
2000 Parallel Shortest Path for Arbitrary Graphs
Ulrich Meyer 0001, Peter Sanders 0001
Euro-Par2
2000 A Bandwidth Latency Tradeoff for Broadcast and Reduction
Peter Sanders 0001, Jop F. Sibeyn
Euro-Par1
2000 Fast concurrent access to parallel disks
Peter Sanders 0001, Sebastian Egner, Jan H. M. Korst
SODA1
2000 Asynchronous scheduling of redundant disk arrays
Peter Sanders 0001
SPAA1
1999 Fast Priority Queues for Cached Memory
abstract
The cache hierarchy prevalent in todays high performance processors has to be taken into account in order to design algorithms that perform well in practice. This paper advocates the adaption of external memory algorithms to this purpose. This idea and the practical issues involved are exemplified by engineering a fast priority queue suited to external memory and cached memory that is based on k-way merging. It improves previous external memory algorithms by constant factors crucial for transferring it to cached memory. Running in the cache hierarchy of a workstation the algorithm is at least two times faster than an optimized implementation of binary heaps and 4-ary heaps for large inputs.
Peter Sanders 0001
ALENEX1
1999 Accessing Multiple Sequences Through Set Associative Caches
Peter Sanders 0001
ICALP1
1999 Asynchronous Random Polling Dynamic Load Balancing
Peter Sanders 0001
ISAAC1
1999 A case study in scalability: An ADI method for the two-dimensional time-dependent Dirac equation
U. W. Rathe, Peter Sanders 0001, P. L. Knight
Parallel Comput.2
1999 Analysis of nearest neighbor load balancing algorithms for random loads
Peter Sanders 0001
Parallel Comput.1
1998 Delta-Stepping: A Parallel Single Source Shortest Path Algorithm
Ulrich Meyer 0001, Peter Sanders 0001
ESA2
1998 Parallel Crew Scheduling in PAROS
Panayiotis Alefragis, Christos Goumopoulos, Efthymios Housos, Peter Sanders 0001, Tuomo Takkula, Dag Wedelin
Euro-Par4
1998 A Parallelization of Dijkstra's Shortest Path Algorithm
Andreas Crauser, Kurt Mehlhorn, Ulrich Meyer 0001, Peter Sanders 0001
MFCS4
1998 Random Permutations on Distributed, External and Hierarchical Memory
Peter Sanders 0001
Inf. Process. Lett.1
1998 Randomized Priority Queues for Fast Parallel Access
Peter Sanders 0001
J. Parallel Distributed Comput.1
1997 Feasible Models of Computation: Three-Dimensionality and Energy Consumption
Peter Sanders 0001, Roland Vollmar, Thomas Worsch
Euro-Par1
1997 Towards Optimal Locality in Mesh-Indexings
Rolf Niedermeier, Klaus Reinhardt, Peter Sanders 0001
FCT3