Skip to main navigation Skip to search Skip to main content

Engineering external memory LCP array construction: Parallel, in-place and large alphabet

  • University of Helsinki

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

6 Scopus citations

Abstract

The suffix array augmented with the LCP array is perhaps the most important data structure in modern string processing. There has been a lot of recent research activity on constructing these arrays in external memory. In this paper, we engineer the two fastest LCP array construction algorithms (ESA 2016) and improve them in three ways. First, we speed up the algorithms by up to a factor of two through parallelism. Just 8 threads is sufficient for making the algorithms essentially I/O bound. Second, we reduce the disk space usage of the algorithms making them in-place: The input (text and suffix array) is treated as read-only and the working disk space never exceeds the size of the final output (the LCP array). Third, we add support for large alphabets. All previous implementations assume the byte alphabet.

Original languageEnglish
Title of host publication16th Symposium on Experimental Algorithms, SEA 2017
EditorsSimon J. Puglisi, Solon P. Pissis, Rajeev Raman, Costas S. Iliopoulos
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
ISBN (Electronic)9783959770361
DOIs
StatePublished - Aug 1 2017
Event16th Symposium on Experimental Algorithms, SEA 2017 - London, United Kingdom
Duration: Jun 21 2017Jun 23 2017

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume75
ISSN (Print)1868-8969

Conference

Conference16th Symposium on Experimental Algorithms, SEA 2017
Country/TerritoryUnited Kingdom
CityLondon
Period06/21/1706/23/17

Keywords

  • External memory algorithms
  • LCP array
  • Suffix array

Fingerprint

Dive into the research topics of 'Engineering external memory LCP array construction: Parallel, in-place and large alphabet'. Together they form a unique fingerprint.

Cite this