Abstract
Current processors include instruction set extensions especially designed for improving the performance of media, imaging, and 3D workloads. These instructions are rarely considered when implementing practical solutions for algorithms and compressed data structures, mostly because they are not directly generated by the compiler. In this paper, we proclaim their benefits and encourage their use, as they are an unused asset included in almost all general-purpose computers. As a proof of concept, we perform an experimental evaluation by straightforwardly including some of these complex instructions in basic string algorithms used for indexing and search, obtaining significant speedups. This opens a new interesting line of research: designing new algorithms and data structures by taking into account the existence of these sets of instructions, in order to achieve significant speedups at no extra cost.
Keywords
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.
This work was supported by the Spanish MICINN, Plan E funds, under Grant TIN2009-14475-C04-01 (third author) and TIN2009-14560-C03-02, CDTI CEN-20091048, and Xunta de Galicia grants 2010/17 and 10SIN028E (first, second and fourth authors).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Intel SSE4 Programming Reference, Reference Number: D91561-003 (July 2007)
Ben-Kiki, O., Bille, P., Breslauer, D., Gasieniec, L., Grossi, R., Weiman, O.: Optimal packed string matching. In: Procs. FSTTCS, pp. 423–432 (2011)
Boyer, R.S., Moore, J.S.: A fast string searching algorithm. Communications of the ACM (CACM) 20(10), 762–772 (1977)
Brisaboa, N.R., Fariña, A., Ladra, S., Navarro, G.: Reorganizing compressed text. In: Procs. SIGIR, pp. 139–146 (2008)
Claude, F., Navarro, G.: Fast and compact web graph representations. ACM TWEB 4, 16:1–16:31 (2010)
González., R., Grabowski., S., Mäkinen., V., Navarro, G.: Practical implementation of rank and select queries. In: Procs. WEA, pp. 27–38 (2005)
Grossi, R., Gupta, A., Vitter, J.S.: High-order entropy-compressed text indexes. In: Procs. SODA, pp. 841–850 (2003)
Horspool, R.N.: Practical fast searching in strings. Software: Practice and Experience (SPE) 10(6), 501–506 (1980)
Jacobson, G.: Succinct static data structures. PhD thesis, Carnegie Mellon University (1989)
Manber, U., Wu, S.: Glimpse: a tool to search through entire file systems. In: Procs. of USENIX Winter Technical Conf., p. 4 (1994)
Munro, I.: Tables. In: Chandru, V., Vinay, V. (eds.) FSTTCS 1996. LNCS, vol. 1180, pp. 37–42. Springer, Heidelberg (1996)
Navarro, G., Mäkinen, V.: Compressed full-text indexes. ACM Computing Surveys 39(1), article 2 (2007)
Navarro, G., Moura, E., Neubert, M., Ziviani, N., Baeza-Yates, R.: Adding compression to block addressing inverted indexes. Inf. Retr. 3(1), 49–77 (2000)
Raman, R., Raman, V., Rao, S.: Succinct indexable dictionaries with applications to encoding k-ary trees and multisets. In: Procs. SODA, pp. 233–242 (2002)
Ramanathan, R.M.: Extending the world’s most popular processor architecture. Technical report, Intel Corporation (2006)
Sadakane, K.: Compressed suffix trees with full functionality. Theor. Comp. Sys. 41, 589–607 (2007)
Schlegel, B., Willhalm, T., Lehner, W.: Fast sorted-set intersection using simd instructions. In: Procs. of ADMS (2011)
Shi, G., Li, M., Lipasti, M.: Accelerating search and recognition workloads with sse 4.2 string and text processing instructions. In: Procs. ISPASS, pp. 145–153 (2011)
Stepanov, A., Gangolli, A., Rose, D., Ernst, R., Oberoi, P.: Simd-based decoding of posting lists. In: Procs. CIKM, pp. 317–326. ACM, New York (2011)
Välimäki, N., Mäkinen, V., Gerlach, W., Dixit, K.: Engineering a compressed suffix tree implementation. ACM JEA 14, 2:4.2–2:4.23 (2010)
Wang, L., Huang, M., Narayana, V.K., El-Ghazawi, T.: Scaling scientific applications on clusters of hybrid multicore/gpu nodes. In: Procs. of ACM CF, pp. 6:1–6:10. ACM Press (2011)
Woods, L.: Fast data analytics with fpgas. In: Procs. of ICDE Workshops, pp. 296–299. IEEE Press (2011)
Zhou, J., Ross, K.A.: Implementing database operations using simd instructions. In: Procs. of SIGMOD, pp. 145–156 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ladra, S., Pedreira, O., Duato, J., Brisaboa, N.R. (2012). Exploiting SIMD Instructions in Current Processors to Improve Classical String Algorithms. In: Morzy, T., Härder, T., Wrembel, R. (eds) Advances in Databases and Information Systems. ADBIS 2012. Lecture Notes in Computer Science, vol 7503. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33074-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-33074-2_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33073-5
Online ISBN: 978-3-642-33074-2
eBook Packages: Computer ScienceComputer Science (R0)