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.
Similar content being viewed by others
References
Abdulla P, Aronis S, Jonsson B, Sagonas K (2014) Optimal dynamic partial order reduction. SIGPLAN Not 49(1):373–384
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
Afek Y, Korland G, Yanovsky E (2010) Quasi-linearizability: relaxed consistency for improved concurrency. In: Principles of distributed systems. Springer, Berlin, pp 395–410
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
Alistarh D, Kopinsky J, Li J, Shavit N (2015) The SprayList: a scalable relaxed priority queue. SIGPLAN Not 50(8):11–20
Arora I, Gupta A (2012) Cloud databases: a paradigm shift in databases. Int J Comput Sci Issues (IJCSI) 9(4):77
Aspnes J, Herlihy M, Shavit N (1994) Counting networks. J ACM (JACM) 41(5):1020–1048
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
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
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
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
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)
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
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
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
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
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
Filipović I, O’Hearn P, Rinetzky N, Yang H (2010) Abstraction for concurrent objects. Theor Comput Sci 411(51–52):4379–4398
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
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
Gibbons PB, Korach E (1997) Testing shared memories. SIAM J Comput 26(4):1208–1244
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
Grasedyck L (2010) Polynomial approximation in hierarchical Tucker format by vector-tensorization. Institute für Geometrie und Praktische Mathematik, Bericht
Guttag JV, Horowitz E, Musser DR (1978) Abstract data types and software validation. Commun ACM 21(12):1048–1064
Haas A (2015) Fast concurrent data structures through timestamping. PhD thesis, University of Salzburg, Salzburg, Austria
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
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
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
Herlihy M, Shavit N (2012) The art of multiprocessor programming. Morgan Kaufmann, Revised Reprint. ISBN: 0123973375
Herlihy MP, Wing JM (1990) Linearizability: a correctness condition for concurrent objects. ACM Trans Program Lang Syst (TOPLAS) 12(3):463–492
Hoare CAR (1978) Proof of correctness of data representations. In: Programming methodology. Springer, pp 269–281
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
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
Lamport L (1979) How to make a multiprocessor computer that correctly executes multiprocess program. IEEE Trans Comput 28(9):690–691
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
Lynch NA (1983) Multilevel atomicity-a new correctness criterion for database concurrency control. ACM Trans Database Syst (TODS) 8(4):484–502
Nanevski A, Banerjee A, Delbianco GA, Fábregas I (2019) Specifying concurrent programs in separation logic: morphisms and simulations. arXiv preprint. arXiv:1904.07136
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
Papadimitriou CH (1979) The serializability of concurrent database updates. J ACM (JACM) 26(4):631–653
Papadiniitriou CH (1970) Serializability of concurrent updates. J ACM 26(4):631–653
Paznikov A, Anenkov A (2019) Implementation and analysis of distributed relaxed concurrent queues in remote memory access model. Procedia Comput Sci 150:654–662
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
Phipps ET, Kolda TG (2019) Software for sparse tensor decomposition on emerging computing architectures. SIAM J Sci Comput 41(3):C269–C290
Schuldt H, Alonso G, Beeri C, Schek HJ (2002) Atomicity and isolation for transactional processes. ACM Trans Database Syst (TODS) 27(1):63–116
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
Tabakov AV, Paznikov AA (2019) Using relaxed concurrent data structures for contention minimization in multithreaded MPI programs. J Phys Conf Ser 1399:033037
Tsafrir D, Etsion Y, Feitelson DG (2005) Modeling user runtime estimates. In: Workshop on job scheduling strategies for parallel processing. Springer, pp 1–35
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
Wright CP, Spillane R, Sivathanu G, Zadok E (2007) Extending acid semantics to the file system. ACM Trans Storage (TOS) 3(2):4-es
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
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
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
Funding
This work was funded by NSF grant 1740095.
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-022-01092-3