Skip to main content
Log in

Quantifiability: a concurrent correctness condition modeled in vector space

  • Special Issue Article
  • Published:
Computing Aims and scope Submit manuscript

Abstract

Architectural imperatives due to the slowing of Moore’s Law, the broad acceptance of relaxed semantics and the O(n!) worst case verification complexity of generating sequential histories motivate a new approach to concurrent correctness. Desiderata for a new correctness condition are that it be independent of sequential histories, compositional, flexible as to timing, modular as to semantics and free of inherent locking or waiting. We propose Quantifiability, a novel correctness condition that models a system in vector space to launch a new mathematical analysis of concurrency. The vector space model is suitable for a wide range of concurrent systems and their associated data structures. This paper formally defines quantifiability and demonstrates that quantifiability is compositional and non-blocking and that it implies observational refinement. Analysis is facilitated with linear algebra, better supported and of much more efficient time complexity than traditional combinatorial methods.

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

Similar content being viewed by others

References

  1. Abdulla P, Aronis S, Jonsson B, Sagonas K (2014) Optimal dynamic partial order reduction. SIGPLAN Not 49(1):373–384

    Article  MATH  Google Scholar 

  2. Abdulla PA, Atig MF, Jonsson B, Lång M, Ngo TP, Sagonas K (2019) Optimal stateless model checking for reads-from equivalence under sequential consistency. Proc ACM Program Lang 3(OOPSLA):1–29

    Article  Google Scholar 

  3. Afek Y, Korland G, Yanovsky E (2010) Quasi-linearizability: relaxed consistency for improved concurrency. In: Principles of distributed systems. Springer, Berlin, pp 395–410

  4. Alistarh D, Brown T, Kopinsky J, Nadiradze G (2018) Relaxed schedulers can efficiently parallelize iterative algorithms. In: Proceedings of the 2018 ACM symposium on principles of distributed computing, pp 377–386

  5. Alistarh D, Kopinsky J, Li J, Shavit N (2015) The SprayList: a scalable relaxed priority queue. SIGPLAN Not 50(8):11–20

    Article  Google Scholar 

  6. Arora I, Gupta A (2012) Cloud databases: a paradigm shift in databases. Int J Comput Sci Issues (IJCSI) 9(4):77

    Google Scholar 

  7. Aspnes J, Herlihy M, Shavit N (1994) Counting networks. J ACM (JACM) 41(5):1020–1048

    Article  MathSciNet  MATH  Google Scholar 

  8. Bhiri S, Perrin O, Godart C (2005) Ensuring required failure atomicity of composite web services. In: Proceedings of the 14th international conference on World Wide Web, pp 138–147

  9. Boehm HJ, Demsky B (2014) Outlawing ghosts: avoiding out-of-thin-air results. In: Proceedings of the workshop on memory systems performance and correctness, pp 1–6

  10. Bouajjani A, Emmi M, Enea C, Hamza J (2015) Tractable refinement checking for concurrent objects. In: Proceedings of the 42nd annual ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’15), vol 50, no 1, pp 651–662

  11. Burckhardt S, Dern C, Musuvathi M, Tan R (2010) Line-up: a complete and automatic linearizability checker. In: Proceedings of the 31st ACM SIGPLAN conference on programming language design and implementation (PLDI’10), vol 45, no 6, pp 330–340

  12. Cook V, Peterson C, Painter Z, Dechev D (2020) Entropy measurement of concurrent disorder. In: Proceedings of the 17th international conference on quantitative evaluation of systems (QEST 2020)

  13. Cook V, Peterson C, Painter Z, Dechev D(2021) Design and implementation of highly scalable quantifiable data structures. In: International conference on parallel computing technologies. Springer, pp 371–385

  14. Cook V, Peterson C, Painter Z, Dechev D (2021) Quantifiability: correctness of concurrent programs in vector space. In: 29th Euromicro international conference on parallel, distributed and network-based processing

  15. Dang H, Dinh TTA, Loghin D, Chang EC. Lin Q, Ooi BC (2019) Towards scaling blockchain systems via sharding. In: Proceedings of the 2019 international conference on management of data, pp 123–140

  16. Debals O, De Lathauwer L (2015) Stochastic and deterministic tensorization for blind signal separation. In: International conference on latent variable analysis and signal separation. Springer, pp 3–13

  17. Emmi M, Enea C, Hamza J (2015) Monitoring refinement via symbolic reasoning. In: Proceedings of the 36th ACM SIGPLAN conference on programming language design and implementation (PLDI ’15), vol 50. ACM, pp 260–269

  18. Filipović I, O’Hearn P, Rinetzky N, Yang H (2010) Abstraction for concurrent objects. Theor Comput Sci 411(51–52):4379–4398

    Article  MathSciNet  MATH  Google Scholar 

  19. Flanagan C, Godefroid P (2005) Dynamic partial-order reduction for model checking software. In: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages. vol 40. ACM, pp 110–121

  20. Gaussier E, Glesser D, Reis V, Trystram D (2015) Improving backfilling by using machine learning to predict running times. In: Proceedings of the international conference for high performance computing, networking, storage and analysis, SC’15. IEEE, pp 1–10

  21. Gibbons PB, Korach E (1997) Testing shared memories. SIAM J Comput 26(4):1208–1244

    Article  MathSciNet  MATH  Google Scholar 

  22. Gibbons R (1997) A historical application profiler for use by parallel schedulers. In: Workshop on job scheduling strategies for parallel processing. Springer, pp 58–77

  23. Grasedyck L (2010) Polynomial approximation in hierarchical Tucker format by vector-tensorization. Institute für Geometrie und Praktische Mathematik, Bericht

    Google Scholar 

  24. Guttag JV, Horowitz E, Musser DR (1978) Abstract data types and software validation. Commun ACM 21(12):1048–1064

    Article  MathSciNet  MATH  Google Scholar 

  25. Haas A (2015) Fast concurrent data structures through timestamping. PhD thesis, University of Salzburg, Salzburg, Austria

  26. Haas A, Lippautz M, Henzinger TA, Payer H, Sokolova A, Kirsch CM, Sezgin A (2013) Distributed queues in shared memory: multicore performance and scalability through quantitative relaxation. In: Proceedings of the ACM international conference on computing frontiers, CF ’13. ACM, New York, pp 17:1–17:9

  27. Hendler D, Shavit N, Yerushalmi L (2004) A scalable lock-free stack algorithm. In: Proceedings of the sixteenth annual ACM symposium on parallelism in algorithms and architectures, SPAA ’04. ACM, New York, pp 206–215

  28. Henzinger TA, Kirsch CM, Payer H, Sezgin A, Sokolova A (2013) Quantitative relaxation of concurrent data structures. In: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’13. ACM, New York, pp 317–328

  29. Herlihy M, Shavit N (2012) The art of multiprocessor programming. Morgan Kaufmann, Revised Reprint. ISBN: 0123973375

  30. Herlihy MP, Wing JM (1990) Linearizability: a correctness condition for concurrent objects. ACM Trans Program Lang Syst (TOPLAS) 12(3):463–492

    Article  Google Scholar 

  31. Hoare CAR (1978) Proof of correctness of data representations. In: Programming methodology. Springer, pp 269–281

  32. Kaya O, Uçar B (2015) Scalable sparse tensor decompositions in distributed memory systems. In: Proceedings of the international conference for high performance computing, networking, storage and analysis, SC’15. IEEE, pp 1–11

  33. Kirsch CM, Lippautz M, Payer H (2013) Fast and scalable, lock-free k-FIFO queues. In: International conference on parallel computing technologies. Springer, pp 208–223

  34. Lamport L (1979) How to make a multiprocessor computer that correctly executes multiprocess program. IEEE Trans Comput 28(9):690–691

    Article  MATH  Google Scholar 

  35. Lane, J.R., Nakao, A (2008) Best-effort network layer packet reordering in support of multipath overlay packet dispersion. In: IEEE GLOBECOM 2008-2008 IEEE global telecommunications conference. IEEE, pp 1–6

  36. Lynch NA (1983) Multilevel atomicity-a new correctness criterion for database concurrency control. ACM Trans Database Syst (TODS) 8(4):484–502

    Article  MathSciNet  MATH  Google Scholar 

  37. Nanevski A, Banerjee A, Delbianco GA, Fábregas I (2019) Specifying concurrent programs in separation logic: morphisms and simulations. arXiv preprint. arXiv:1904.07136

  38. Ou P, Demsky B (2017) Checking concurrent data structures under the C/C++ 11 memory model. In: Proceedings of the 22nd ACM SIGPLAN symposium on principles and practice of parallel programming (PPoPP ’17), vol 52. ACM, pp 45–59

  39. Papadimitriou CH (1979) The serializability of concurrent database updates. J ACM (JACM) 26(4):631–653

    Article  MathSciNet  MATH  Google Scholar 

  40. Papadiniitriou CH (1970) Serializability of concurrent updates. J ACM 26(4):631–653

    Google Scholar 

  41. Paznikov A, Anenkov A (2019) Implementation and analysis of distributed relaxed concurrent queues in remote memory access model. Procedia Comput Sci 150:654–662

    Article  Google Scholar 

  42. Peterson C, Cook V, Dechev D (2021) Concurrent correctness in vector space. In: International conference on verification, model checking, and abstract interpretation. Springer, pp 151–173

  43. Phipps ET, Kolda TG (2019) Software for sparse tensor decomposition on emerging computing architectures. SIAM J Sci Comput 41(3):C269–C290

    Article  MathSciNet  MATH  Google Scholar 

  44. Schuldt H, Alonso G, Beeri C, Schek HJ (2002) Atomicity and isolation for transactional processes. ACM Trans Database Syst (TODS) 27(1):63–116

    Article  Google Scholar 

  45. Sergey I, Nanevski A, Banerjee A, Delbianco GA (2016) Hoare-style specifications as correctness conditions for non-linearizable concurrent objects. In: Proceedings of the 2016 ACM SIGPLAN international conference on object-oriented programming, systems, languages, and applications (OOPSLA ’16), vol 51, no 10, pp 92–110

  46. Tabakov AV, Paznikov AA (2019) Using relaxed concurrent data structures for contention minimization in multithreaded MPI programs. J Phys Conf Ser 1399:033037

    Article  Google Scholar 

  47. Tsafrir D, Etsion Y, Feitelson DG (2005) Modeling user runtime estimates. In: Workshop on job scheduling strategies for parallel processing. Springer, pp 1–35

  48. Vechev M, Yahav E, Yorsh G (2009) Experience with model checking linearizability. In: International SPIN workshop on model checking of software. Springer, pp 261–278

  49. Wright CP, Spillane R, Sivathanu G, Zadok E (2007) Extending acid semantics to the file system. ACM Trans Storage (TOS) 3(2):4-es

    Article  Google Scholar 

  50. Zhang D, Dechev D (2016) A lock-free priority queue design based on multi-dimensional linked lists. IEEE Trans Parallel Distrib Syst 27(3):613–626

    Article  Google Scholar 

  51. Zhang L, Chattopadhyay A, Wang C (2015) Round-up: runtime verification of quasi linearizability for concurrent data structures. IEEE Trans Softw Eng 41(12):1202–1216

    Article  Google Scholar 

  52. Zhou Q, Ye F (2019) Apex: automatic precondition execution with isolation and atomicity in internet-of-things. In: Proceedings of the international conference on internet of things design and implementation, pp 25–36

Download references

Funding

This work was funded by NSF grant 1740095.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christina Peterson.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This work was funded by NSF grant 1740095.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Cook, V., Peterson, C., Painter, Z. et al. Quantifiability: a concurrent correctness condition modeled in vector space. Computing 105, 955–978 (2023). https://doi.org/10.1007/s00607-022-01092-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-022-01092-3

Keywords

Mathematics Subject Classification

Navigation