Parallel Wavelet Tree Construction
Julian Shun
- pp 63-72
TLDR
These algorithms improve upon the linear depth of the recent parallel algorithms by Fuentes-Sepulveda et al. and achieve up to 27x speedup over the sequential algorithm on a variety of real-world and artificial inputs.Abstract:
We present parallel algorithms for wavelet tree construction with polylogarithmic depth, improving upon the linear depth of the recent parallel algorithms by Fuentes-Sepulveda et al. We experimentally show that on a 40-core machine with two-way hyper-threading, we outperform the existing parallel algorithms by 1.3--5.6x and achieve up to 27x speedup over the sequential algorithm on a variety of real-world and artificial inputs. Our algorithms show good scalability with increasing thread count, input size and alphabet size. We also discuss extensions to variants of the standard wavelet tree.read more
Citations
More filters
Proceedings ArticleDOI
Log(graph): a near-optimal high-performance graph representation
TL;DR: Log(Graph as mentioned in this paper is a graph representation that combines high compression ratios with very low-overhead decompression to enable cheaper and faster graph processing, which can improve the design of various graph processing engines or libraries on single NUMA nodes.
Proceedings Article
The Cilk++ concurrency platform
TL;DR: This paper overviews the Cilk++ programming environment, which incorporates a compiler, a runtime system, and a race-detection tool, and provides a “hyperobject” library which allows races on nonlocal variables to be mitigated without lock contention or substantial code restructuring.
Journal ArticleDOI
Parallel lightweight wavelet tree, suffix array and FM-index construction
TL;DR: The work and depth of the first parallel wavelet tree algorithm match those of the best existing parallel algorithm while requiring asymptotically less memory and the second algorithm achieves the same asymPTotic bounds for small alphabet sizes.
Journal ArticleDOI
Parallel construction of wavelet trees on multicore architectures
TL;DR: Two algorithms are introduced that reduce the time complexity of a wavelet tree’s construction by taking advantage of nowadays ubiquitous multicore machines and report good speedup for large real datasets.
Proceedings ArticleDOI
Improved Parallel Construction of Wavelet Trees and Rank/Select Structures
TL;DR: In this article, a parallel algorithm for wavelet tree construction with improved work complexity was presented, which has O(n log log n [log σ/√ log n log log N] work and polylogarithmic depth.
References
More filters
A Block-sorting Lossless Data Compression Algorithm
Michael Burrows,David Wheeler +1 more
TL;DR: A block-sorting, lossless data compression algorithm, and the implementation of that algorithm and the performance of the implementation with widely available data compressors running on the same hardware are compared.
Book
An introduction to parallel algorithms
TL;DR: This book provides an introduction to the design and analysis of parallel algorithms, with the emphasis on the application of the PRAM model of parallel computation, with all its variants, to algorithm analysis.
Proceedings ArticleDOI
High-order entropy-compressed text indexes
TL;DR: A novel implementation of compressed suffix arrays exhibiting new tradeoffs between search time and space occupancy for a given text (or sequence) of n symbols over an alphabet σ, where each symbol is encoded by lg|σ| bits.
Dissertation
Compact pat trees
TL;DR: This thesis presents several related new representations for a close relative of the suffix tree, the PAT tree, that retain the functionality of suffix trees while requiring a fraction of the storage used by current methods.
Journal ArticleDOI
Compressed representations of sequences and full-text indexes
TL;DR: The FM-index is the first that removes the alphabet-size dependance from all query times and the compressed representation of integer sequences with a compression boosting technique to design compressed full-text indexes that scale well with the size of the input alphabet Σ.