On Parallel Sorting of Data Streams

Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 186)


Since the development of applications for parallel architectures is complicated and error-prone, many frameworks were created to simplify this task. One promising approach which is applicable especially for the development of parallel databases is expressing algorithms as stream programs, i.e. inputs and outputs of procedures are data streams and these procedures are connected so that they form an oriented graph. In this paper, we introduce highly scalable sorting algorithm which is suitable for streaming systems. We achieve this mainly by introducing multiway merge algorithm which is able to merge multiple independent sorted streams in parallel.


Data Stream Input Stream Sorting Algorithm Graphic Hardware Execution Plan 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bednárek, D., Dokulil, J., Yaghob, J., Zavoral, F.: Using Methods of Parallel Semi-structured Data Processing for Semantic Web. In: Third International Conference on Advances in Semantic Processing, SEMAPRO 2009, pp. 44–49. IEEE (2009)Google Scholar
  2. 2.
    Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P.: Brook for GPUs: Stream Computing on Graphics Hardware. ACM Transactions on Graphics 23, 777–786 (2004)CrossRefGoogle Scholar
  3. 3.
    Čermak, M., Falt, Z., Dokulil, J., Zavoral, F.: Sparql query processing using bobox framework. In: The Fifth International Conference on Advances in Semantic Processing, SEMAPRO 2011, pp. 104–109 (2011)Google Scholar
  4. 4.
    Chamberlain, R., Galloway, G., Franklin, M.: Sorting as a streaming application executing on chip multiprocessors. Dept. of Computer Science and Engineering, Washington University, Tech. Rep. WUCSE-2010-21 (2010)Google Scholar
  5. 5.
    Chhugani, J., Nguyen, A., Lee, V., Macy, W., Hagog, M., Chen, Y., Baransi, A., Kumar, S., Dubey, P.: Efficient implementation of sorting on multi-core SIMD CPU architecture. Proceedings of the VLDB Endowment 1(2), 1313–1324 (2008)Google Scholar
  6. 6.
    Cole, R.: Parallel merge sort. In: 27th Annual Symposium on Foundations of Computer Science, pp. 511–516. IEEE (1988)Google Scholar
  7. 7.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd edn. The MIT Press (2009)Google Scholar
  8. 8.
    Falt, Z., Bednárek, D., Čermak, M., Zavoral, F.: On Parallel Evaluation of SPARQL Queries. In: The Fourth International Conference on Advances in Databases, Knowledge, and Data Applications, DBKDA 2012, pp. 97–102 (2012)Google Scholar
  9. 9.
    Falt, Z., Yaghob, J.: Task scheduling in data stream processing. In: Proceedings of the Dateso 2011 Workshop, pp. 85–96. Citeseer (2011)Google Scholar
  10. 10.
    Franklin, M., Tyson, E., Buckley, J., Crowley, P., Maschmeyer, J.: Auto-pipe and the X language: A pipeline design tool and description language. In: 20th International Parallel and Distributed Processing Symposium, IPDPS 2006, pp. 1–10. IEEE (2006)Google Scholar
  11. 11.
    Gordon, M.I., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In: Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS-XII, pp. 151–162. ACM, New York (2006)CrossRefGoogle Scholar
  12. 12.
    Graefe, G.: Implementing sorting in database systems. ACM Comput. Surv. 38(3) (2006),, doi:10.1145/1132960.1132964
  13. 13.
    Hao, S., Du, Z., Bader, D., Ye, Y.: A partition-merge based cache-conscious parallel sorting algorithm for cmp with shared cache. In: International Conference on Parallel Processing, ICPP 2009, pp. 396–403. IEEE (2009)Google Scholar
  14. 14.
    Kapasi, U.J., Dally, W.J., Rixner, S., Owens, J.D., Khailany, B.: Programmable stream processors. IEEE Computer 36, 282–288 (2003)CrossRefGoogle Scholar
  15. 15.
    Mark, W.R., Steven, R., Kurt, G., Mark, A., Kilgard, J.: Cg: A system for programming graphics hardware in a c-like language. ACM Transactions on Graphics 22, 896–907 (2003)CrossRefGoogle Scholar
  16. 16.
    Merrill, D., Grimshaw, A.: Revisiting sorting for GPGPU stream architectures. In: Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques, pp. 545–546. ACM (2010)Google Scholar
  17. 17.
    Satish, N., Harris, M., Garland, M.: Designing efficient sorting algorithms for manycore GPUs. In: IEEE International Symposium on Parallel & Distributed Processing, IPDPS 2009, pp. 1–10. IEEE (2009)Google Scholar
  18. 18.
    Satish, N., Kim, C., Chhugani, J., Nguyen, A., Lee, V., Kim, D., Dubey, P.: Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort. In: Proceedings of the 2010 International Conference on Management of Data, pp. 351–362. ACM (2010)Google Scholar
  19. 19.
    Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: A language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 179–196. Springer, Heidelberg (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  1. 1.Department of Software EngineeringCharles University in PraguePragueCzech Republic
  2. 2.Department of Theoretical Computer Science and Mathematical LogicCharles University in PraguePragueCzech Republic

Personalised recommendations