Abstract
GPGPU programming requires adjusting existing algorithms and often inventing new ones in order to achieve maximum performance. Solutions already created for supercomputers in nineties are not applicable since SIMD GPU devices are in many aspects different than vector supercomputers. This paper presents a new implementation of B + -tree index for GPU processors. It may be used in cases when processing parallelism and order of elements are equally important in computation. The solution is based on data representation optimal for GPU processing and an efficient parallel tree creation algorithm. We also deeply compare GPU B + -tree and other solutions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
NVIDIA Corporation, NVIDIA CUDA C programming guide version 4.0 (2011)
NVIDIA Corporation, CUDA C best practices guide (2011)
Kaczmarski, K.: Experimental b+-tree for gpu. In: ADBIS 2011, vol. (2), pp. 232–241 (2011)
Bingmann, T.: STX B+ Tree C++ Template Classes v 0.8.3 (2008), idlebox.net/2007/stx-btree
Hoberock, J., Bell, N.: Thrust CUDA Library v.1.3.0 (2011), code.google.com/p/thrust
Fix, J., Wilkes, A., Skadron, K.: Accelerating braided b+ tree searches on a gpu with cuda. In: Proceedings of the 2nd Workshop on Applications for Multi and Many Core Processors: Analysis, Implementation, and Performance, A4MMC (2011)
Kim, S.-W., Won, H.-S.: Batch-construction of b+-trees. In: Proc. of the 2001 ACM Symposium on Applied Computing, SAC 2001. ACM, USA (2001)
Kim, C., Chhugani, J., Satish, N., Sedlar, E., Nguyen, A.D., Kaldewey, T., Lee, V.W., Brandt, S.A., Dubey, P.: FAST: fast architecture sensitive tree search on modern cpus and gpus. In: Proc. of the 2010 Int. Conf. on Management of Data, SIGMOD 2010, pp. 339–350. ACM, New York (2010)
Rao, J., Ross, K.A.: Cache conscious indexing for decision-support in main memory. In: Proc. of the 25th Int. Conf. on Very Large Data Bases, VLDB 1999, San Francisco, CA, USA, pp. 78–89. Morgan Kaufmann Publishers Inc. (1999)
Rao, J., Ross, K.: Making b+-trees cache conscious in main memory. ACM SIGMOD Record (January 2000)
Cederman, D., Tsigas, P.: Gpu-quicksort: A practical quicksort algorithm for graphics processors. ACM Journal of Experimental Algorithmics 14 (2009)
Harris, M., Owens, J.D., Sengupta, S.: CUDA Data Parallel Primitives Library (2008), code.google.com/p/cudpp
Knuth, D.E.: The Art of Computer Programming, Vol. III: Sorting and Searching. Addison-Wesley (1973)
Comer, D.: The ubiquitous b-tree. ACM Comput. Surv. 11(2) (1979)
Bayer, R., McCreight, E.M.: Organization and maintenance of large ordered indices. Acta Inf. 1, 173–189 (1972)
NVIDIA Corporation, CUDA C Toolkit and SDK v.3.2 (January 2011), developer.nvidia.com/object/cuda_3_2_downloads.html
Zhang, J., You, S., Gruenwald, L.: Indexing large-scale raster geospatial data using massively parallel gpgpu computing. In: Proc. of the 18th SIGSPATIAL Int. Conf. on Adv. in Geographic Inform. Systems, GIS 2010. ACM, USA (2010)
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
Kaczmarski, K. (2012). B + -Tree Optimized for GPGPU. In: Meersman, R., et al. On the Move to Meaningful Internet Systems: OTM 2012. OTM 2012. Lecture Notes in Computer Science, vol 7566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33615-7_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-33615-7_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33614-0
Online ISBN: 978-3-642-33615-7
eBook Packages: Computer ScienceComputer Science (R0)