Skip to main content
Log in

Fast induced sorting suffixes on a multicore machine

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Sorting the suffixes of an input string is a fundamental task in many applications such as data compression, genome alignment, and full-text search. The induced sorting (IS) method has been successfully applied to design a number of state-of-the-art suffix sorting algorithms. In particular, the SAIS algorithm designed by the IS method is not only linear in time but also fast in practice. However, the parallelization of SAIS remains a challenge due to that the IS process in the algorithm is inherently sequential and the performance bottleneck of the whole algorithm. This article presents our attempt for designing a parallel variant of SAIS on a multicore machine which is considered as a shared memory parallel model, called pSAIS. By a combined use of multithreading and pipelining, the inducing process is accelerated by fully utilizing the machine’s parallel computing power. An experimental study is conducted for performance evaluation of pSAIS with the other existing parallel suffix sorting algorithms, on a set of realistic inputs with varying sizes and alphabets. The experiment results show that our program for pSAIS has a high degree of parallelism and achieves the best average time and space performance among all the parallel algorithms in comparison. While pSAIS is designed for quickly building big suffix arrays in a multicore machine, our study may give some hints for extending the induced sorting method to GPU for constructing small suffix arrays even faster.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

Notes

  1. Both programs were downloaded from http://code.google.com/p/ge-nong/.

References

  1. Arabnia HR, Oliver MA (1986) Fast operations on raster images with SIMD machine architectures. Comput Graph Forum 5(3):179–188

    Article  Google Scholar 

  2. Burrows M, Wheeler DJ (1994) A block-sorting lossless data compression algorithm. SRC Res Rep 124:1–24

    Google Scholar 

  3. Ferragina P, Navarro G (2005) Pizza&Chili Corpus, compressed indexes and their testbeds. http://pizzachili.dcc.uchile.cl

  4. Fischer J (2011) Inducing the LCP-array. In: Proceedings of the 12th International Symposium on Algorithms and Data Structures. Springer, pp 374–385

  5. Intel Corporation (2017) Intel TBB, a widely used C++ template library for task parallelism. https://www.threadingbuildingblocks.org

  6. Kärkkäinen J, Kempa D, Puglisi SJ, Zhukova B (2017) Engineering external memory induced suffix sorting. In: Proceedings of the 19th Workshop on Algorithm Engineering and Experiments. SIAM, pp 98–108

  7. Labeit J, Shun J, Blelloch GE (2017) Parallel lightweight wavelet tree, suffix array and FM-index construction. J Discrete Algorithms 43(1):2–17

    Article  MathSciNet  MATH  Google Scholar 

  8. Liu WJ, Nong G, Chan WH, Wu Y (2016) Improving a lightweight LZ77 computation algorithm for running faster. Softw Pract Exp 46(9):1201–1217

    Article  Google Scholar 

  9. Manber U, Myers G (1993) Suffix arrays: a new method for on-line string searches. SIAM J Comput 22(5):935–948

    Article  MathSciNet  MATH  Google Scholar 

  10. Michailidis PD, Margaritis KG (2016) Scientific computations on multi-core systems using different programming frameworks. Appl Numer Math 104:62–80

    Article  MathSciNet  MATH  Google Scholar 

  11. Mori Y (2010) sais-lite-2.4.1, an optimized implementation of the induced sorting algorithm. https://sites.google.com/site/yuta256/sais/

  12. Mori Y (2015) Libdivsufsort, a software library that implements a lightweight suffix array construction algorithm. https://github.com/y-256/libdivsufsort

  13. Nawaz MS, Lali MI, Saleem S, Ali H (2014) Comparison of multi-core parallel programming models for divide and conquer algorithms. NED University Journal of Research, pp 1–8

  14. Nong G (2013) Practical linear-time O(1)-workspace suffix sorting for constant alphabets. ACM Trans Inf Syst 31(3):15:1–15:15

    Article  MathSciNet  Google Scholar 

  15. Nong G, Zhang S, Chan WH (2011) Two efficient algorithms for linear time suffix array construction. IEEE Trans Comput 60(10):1471–1484

    Article  MathSciNet  MATH  Google Scholar 

  16. Puglisi SJ, Smyth WF, Turpin AH (2007) A taxonomy of suffix array construction algorithms. ACM Comput Surv 39(2):4:1–4:31

    Article  Google Scholar 

  17. Sanchez LM, Fernandez J, Sotomayor R, Escolar S, Garcia JD (2013) A comparative study and evaluation of parallel programming models for shared-memory parallel architectures. New Gener Comput 31(3):139–161

    Article  Google Scholar 

  18. Shrestha AMS, Frith MC, Horton P (2014) A bioinformatician’s guide to the forefront of suffix array construction algorithms. Brief Bioinform 15(2):138–154

    Article  Google Scholar 

  19. Shun J, Blelloch GE (2014) A simple parallel cartesian tree algorithm and its application to parallel suffix tree construction. ACM Trans Parallel Comput 1(1):8:1–8:20

    Article  Google Scholar 

  20. Shun J, Blelloch GE, Fineman JT, Gibbons PB, Kyrola A, Simhadri HV, Tangwongsan K (2012) Brief announcement: the problem based benchmark suite. In: Proceedings of the Twenty-fourth Annual ACM Symposium on Parallelism in Algorithms and Architectures, ACM, pp 68–70

  21. Valafar H, Arabnia HR, Williams G (2004) Distributed global optimization and its development on the multiring network. Neural Parallel Sci Comput 12(4):465–490

    MathSciNet  MATH  Google Scholar 

  22. Wang L, Baxter S, Owens JD (2016) Fast parallel skew and prefix-doubling suffix array construction on the GPU. Concurr Comput Pract Exp 28(12):3466–3484

    Article  Google Scholar 

  23. Wani MA, Arabnia HR (2003) Parallel edge-region-based segmentation algorithm targeted at reconfigurable multiring network. J Supercomput 25(1):43–62

    Article  MATH  Google Scholar 

Download references

Acknowledgements

The work of B. Lao was supported by the Guangzhou Science and Technology Program Grant No. 201707010165. The work of G. Nong was supported by the Guangdong Science and Technology Program Grant No. 2017A050506025. The work of W. H. Chan was supported by the General Research Fund (Grant No. 18300215) from the Research Grant Council of the University Grants Committee of Hong Kong SAR.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ge Nong.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lao, B., Nong, G., Chan, W.H. et al. Fast induced sorting suffixes on a multicore machine. J Supercomput 74, 3468–3485 (2018). https://doi.org/10.1007/s11227-018-2395-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-018-2395-5

Keywords

Navigation