Skip to main content

Scal: A Benchmarking Suite for Concurrent Data Structures

  • Conference paper
  • First Online:
Networked Systems (NETYS 2015)

Part of the book series: Lecture Notes in Computer Science ((LNCCN,volume 9466))

Included in the following conference series:

Abstract

Concurrent data structures such as concurrent queues, stacks, and pools are widely used for concurrent programming of shared-memory multiprocessor and multicore machines. The key challenge is to develop data structures that are not only fast on a given machine but whose performance scales, ideally linearly, with the number of threads, cores, and processors on even bigger machines. Part of that challenge is to provide a common ground for systematically evaluating the performance and scalability of new concurrent data structures and comparing the results with the performance and scalability of existing solutions. For this purpose, we have developed Scal which is an open-source benchmarking framework that provides (1) software infrastructure for executing concurrent data structure algorithms, (2) workloads for benchmarking their performance and scalability, and (3) implementations of a large set of concurrent data structures. We discuss the Scal infrastructure, workloads, and implementations, and encourage further use and development of Scal in the design and implementation of ever faster concurrent data structures.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The Scal homepage is at http://scal.cs.uni-salzburg.at, the Scal code is publicly available at http://github.com/cksystemsgroup/scal.

  2. 2.

    This is standard bump pointer allocation.

References

  1. Afek, Y., Korland, G., Yanovsky, E.: Quasi-linearizability: relaxed consistency for improved concurrency. In: Lu, C., Masuzawa, T., Mosbah, M. (eds.) OPODIS 2010. LNCS, vol. 6490, pp. 395–410. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  2. Attiya, H., Guerraoui, R., Hendler, D., Kuznetsov, P., Michael, M.M., Vechev, M.: Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated. In: Proceedings of Principles of Programming Languages (POPL), pp. 487–498. ACM (2011)

    Google Scholar 

  3. Dodds, M., Haas, A., Kirsch, C.M.: A scalable, correct time-stamped stack. In: Proceedings of Symposium on Principles of Programming Languages (POPL), pp. 233–246. ACM (2015)

    Google Scholar 

  4. Fatourou, P., Kallimanis, N.D.: A highly-efficient wait-free universal construction. In: Proceedings of Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 325–334. ACM (2011)

    Google Scholar 

  5. Gramoli, V.: More than you ever wanted to know about synchronization: synchrobench, measuring the impact of the synchronization on concurrent algorithms. In: Proceedings of Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 1–10. ACM (2015)

    Google Scholar 

  6. Haas, A.: Fast Concurrent Data Structures Through Timestamping. Ph.D. thesis, University of Salzburg, Salzburg, Austria (2015)

    Google Scholar 

  7. Haas, A., Henzinger, T.A., Holzer, A., Kirsch, C.M., Lippautz, M., Payer, H., Sezgin, A., Sokolova, A., Veith, H.: Local linearizability. CoRR, abs/1502.07118 (2015)

    Google Scholar 

  8. Haas, A., Henzinger, T.A., Kirsch, C.M., Lippautz, M., Payer, H., Sezgin, A., Sokolova, A.: Distributed queues in shared memory–multicore performance and scalability through quantitative relaxation. In: Proceedings of International Conference on Computing Frontiers (CF). ACM (2013)

    Google Scholar 

  9. Haas, A., Kirsch, C.M., Lippautz, M., Payer, H.: How FIFO is your concurrent FIFO queue? In: Proceedings of Workshop on Relaxing Synchronization for Multicore and Manycore Scalability (RACES), pp. 1–8. ACM (2012)

    Google Scholar 

  10. Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: Proceedings of Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 355–364. ACM (2010)

    Google Scholar 

  11. Hendler, D., Shavit, N., Yerushalmi, L.: A scalable lock-free stack algorithm. In: Proceedings of Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 206–215. ACM (2004)

    Google Scholar 

  12. Henzinger, T.A., Kirsch, C.M., Payer, H., Sezgin, A., Sokolova, A.: Quantitative relaxation of concurrent data structures. In: Proceedings of Symposium on Principles of Programming Languages (POPL), pp. 317–328. ACM (2013)

    Google Scholar 

  13. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco (2008)

    Google Scholar 

  14. Herlihy, M., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)

    Article  Google Scholar 

  15. Kirsch, C.M., Lippautz, M., Payer, H.: Fast and scalable, lock-free k-FIFO queues. In: Malyshkin, V. (ed.) PaCT 2013. LNCS, vol. 7979, pp. 208–223. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  16. Kirsch, C.M., Payer, H., Röck, H., Sokolova, A.: Performance, scalability, and semantics of concurrent FIFO queues. In: Xiang, Y., Stojmenovic, I., Apduhan, B.O., Wang, G., Nakano, K., Zomaya, A. (eds.) ICA3PP 2012, Part I. LNCS, vol. 7439, pp. 273–287. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  17. Knuth, D.E.: The Art of Computer Programming. Fundamental Algorithms, vol. 1, 3rd edn. Addison Wesley, Redwood City (1997)

    MATH  Google Scholar 

  18. Kogan, A., Petrank, E.: A methodology for creating fast wait-free data structures. In: Proceedings of Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 141–150. ACM (2012)

    Google Scholar 

  19. Michael, M.M.: ABA prevention using single-word instructions. Technical report RC 23089, IBM Research Center (2004)

    Google Scholar 

  20. Michael, M.M.: Hazard pointers: safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15(6), 491–504 (2004)

    Article  Google Scholar 

  21. Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of Symposium on Principles of Distributed Computing (PODC), pp. 267–275. ACM (1996)

    Google Scholar 

  22. Michael, M.M., Vechev, M.T., Saraswat, V.A.: Idempotent work stealing. In: Proceedings of Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 45–54. ACM (2009)

    Google Scholar 

  23. Morrison, A., Afek, Y.: Fast concurrent queues for x86 processors. In: Proceedings of Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 103–112. ACM (2013)

    Google Scholar 

  24. Nguyen, H.H., Rinard, M.: Detecting and eliminating memory leaks using cyclic memory allocation. In: Proceedings of International Symposium on Memory Management (ISMM), pp. 15–30. ACM (2007)

    Google Scholar 

  25. Shavit, N.: Data structures in the multicore age. Commun. ACM 54(3), 76–84 (2011)

    Article  Google Scholar 

  26. Treiber, R.K.: Systems programming: Coping with parallelism. Technical report RJ-5118, IBM Research Center (1986)

    Google Scholar 

Download references

Acknowledgements

This work has been supported by a Google PhD Fellowship and the National Research Network RiSE on Rigorous Systems Engineering (Austrian Science Fund (FWF): S11404-N23 and S11411-N23).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christoph M. Kirsch .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Haas, A., Hütter, T., Kirsch, C.M., Lippautz, M., Preishuber, M., Sokolova, A. (2015). Scal: A Benchmarking Suite for Concurrent Data Structures. In: Bouajjani, A., Fauconnier, H. (eds) Networked Systems . NETYS 2015. Lecture Notes in Computer Science(), vol 9466. Springer, Cham. https://doi.org/10.1007/978-3-319-26850-7_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-26850-7_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-26849-1

  • Online ISBN: 978-3-319-26850-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics