Abstract
There is an imminent demand to understand the relationship between correctness and performance to deliver highly scalable multiprocessor programs. The motivation for this relationship is that relaxed correctness conditions provide performance benefits by reducing contention on data structure hot spots. Previous approaches propose metrics for characterizing relaxed correctness conditions that measure the number of method calls or state transitions to be shifted to arrive at a legal sequential history. The reason the existing metrics cannot measure the performance effects of a correctness condition is that they ignore delays in method calls since delayed responses from method calls yield correct behavior in even the strictest correctness conditions. We observe that method call delays can be captured by measuring the disorder in method call ordering using a metric from information theory known as entropy. We propose entropy as the first metric for multiprocessor programs that evaluates the trade-offs between correctness and performance. We measure entropy for a variety of concurrent stacks, queues, and sets from the Synchrobench micro-benchmark suite and correlate entropy, correctness, and performance. Our main insight is that lower entropy corresponds to better performance for strict correctness conditions and higher entropy corresponds to better performance for relaxed correctness conditions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
CAS accepts a memory location, expected value, and new value as parameters. If the dereferenced value of the memory location is equivalent to the expected value, then the memory location value is updated to the new value and true is returned. Otherwise, no change is made and false is returned.
References
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). https://doi.org/10.1007/978-3-642-17653-1_29
Bender, J., Lesani, M., Palsberg, J.: Declarative fence insertion. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 367–385. ACM (2015)
Bianchi, A., Caivano, D., Lanubile, F., Visaggio, G.: Evaluating software degradation through entropy. In: Proceedings Seventh International Software Metrics Symposium, pp. 210–219. IEEE (2001)
Boehm, H.J., Adve, S.V.: Foundations of the c++ concurrency memory model. In: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 68–78. ACM (2008)
Canfora, G., Cerulo, L., Di Penta, M., Pacilio, F.: An exploratory study of factors influencing change entropy. In: 2010 IEEE 18th International Conference on Program Comprehension, pp. 134–143. IEEE (2010)
Chockler, H., Farchi, E., Godlin, B., Novikov, S.: Cross-entropy based testing. In: Formal Methods in Computer Aided Design (FMCAD 2007), pp. 101–108. IEEE (2007)
Chockler, H., Farchi, E., Godlin, B., Novikov, S.: Cross-entropy-based replay of concurrent programs. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 201–215. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00593-0_14
Cook, V., Peterson, C., Painter, Z., Dechev, D.: Quantifiability: concurrent correctness from first principles. arXiv preprint arXiv:1905.06421 (2019)
Fatourou, P., Kallimanis, N.D.: Revisiting the combining synchronization technique. In: Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 257–266. ACM (2012)
Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: Proceedings of the Twenty-Third Annual ACM Symposium on Principles of Distributed Computing, pp. 50–59 (2004)
Fraser, K.: Practical lock-freedom. Technical report, University of Cambridge, Computer Laboratory (2004)
Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning. MIT Press, Cambridge (2016). http://www.deeplearningbook.org
Gramoli, V.: More than you ever wanted to know about synchronization: synchrobench, measuring the impact of the synchronization on concurrent algorithms. In: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2015), pp. 1–10. ACM (2015)
Haas, A., et al.: Distributed queues in shared memory: multicore performance and scalability through quantitative relaxation. In: Proceedings of the ACM International Conference on Computing Frontiers, pp. 1–9 (2013)
Hassan, A.E.: Predicting faults using the complexity of code changes. In: Proceedings of the 31st International Conference on Software Engineering, pp. 78–88. IEEE Computer Society (2009)
Hassan, A.E., Holt, R.C.: The chaos of software development. In: Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings, pp. 84–94. IEEE (2003)
Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer, W.N., Shavit, N.: A lazy concurrent list-based set algorithm. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds.) OPODIS 2005. LNCS, vol. 3974, pp. 3–16. Springer, Heidelberg (2006). https://doi.org/10.1007/11795490_3
Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: Proceedings of the Twenty-Second Annual ACM Symposium on Parallelism in Algorithms and Architectures, pp. 355–364. ACM (2010)
Hendler, D., Shavit, N., Yerushalmi, L.: A scalable lock-free stack algorithm. In: Proceedings of the Sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures, pp. 206–215. ACM (2004)
Henzinger, T.A., Kirsch, C.M., Payer, H., Sezgin, A., Sokolova, A.: Quantitative relaxation of concurrent data structures. In: Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of programming languages (POPL 2013), pp. 317–328. ACM (2013)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington (2012)
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. (TOPLAS) 12(3), 463–492 (1990)
Kapur, J.N., Kesavan, H.K.: Entropy optimization principles and their applications. In: Singh, V.P., Fiorentino, M. (eds.) Entropy and Energy Dissipation in Water Resources. Water Science and Technology Library, vol. 9, pp. 3–20. Springer, Dordrecht (1992). https://doi.org/10.1007/978-94-011-2430-0_1
Kirsch, Christoph M., Lippautz, Michael, Payer, Hannes: Fast and scalable, lock-free k-FIFO queues. In: Malyshkin, Victor (ed.) PaCT 2013. LNCS, vol. 7979, pp. 208–223. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39958-9_18
Knuth, D.E.: The Art of Computer Programming: Volume 3: Sorting and Searching. Addison-Wesley Professional, Boston (1998)
Kumar, U., Kumar, V., Kapur, J.N.: Normalized measures of entropy. Int. J. Gener. Syst. 12(1), 55–69 (1986)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess program. IEEE Trans. Comput. 28(9), 690–691 (1979)
Michael, M.M., Scott, M.L.: Simple, fast, and practical Non-Blocking and blocking concurrent queue algorithms. Tech. Rep. 600, 267–275 (1995)
Morrison, A., Afek, Y.: Fast concurrent queues for x86 processors. ACM SIGPLAN Not. 48(8), 103–112 (2013). https://doi.org/10.1145/2517327.2442527
Ou, P., Demsky, B.: 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 2017), January 2017
Rubinstein, R.Y.: Optimization of computer simulation models with rare events. Eur. J. Oper. Res. 99(1), 89–112 (1997)
Rubinstein, R.Y., Kroese, D.P.: The Cross-entropy Method: A Unified Approach to Combinatorial Optimization, Monte-Carlo Simulation and Machine Learning. Springer, Heidelberg (2013)
Shannon, C.E.: A mathematical theory of communication. Bell Syst. Tech. J. 27(3), 379–423 (1948)
Singh, V., Chaturvedi, K.: Entropy based bug prediction using support vector regression. In: 2012 12th International Conference on Intelligent Systems Design and Applications (ISDA), pp. 746–751. IEEE (2012)
Treiber, R.K.: Systems programming: coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, April 1986. San Jose, CA (1986)
Wimmer, M., Gruber, J., Träff, J.L., Tsigas, P.: The lock-free k-LSM relaxed priority queue. In: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2015), vol. 50, no. 8, pp. 277–278 (2015)
Yang, C., Mellor-Crummey, J.: A wait-free queue as fast as fetch-and-add. In: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming - PPoPP 2016, pp. 1–13. ACM Press, New York (2016)
Zhang, D., Dechev, D.: A lock-free priority queue design based on multi-dimensional linked lists. IEEE Trans. Parallel Distrib. Syst. 27(3), 613–626 (2015)
Zunino, L., Zanin, M., Tabak, B.M., Pérez, D.G., Rosso, O.A.: Forbidden patterns, permutation entropy and stock market inefficiency. Physica A 388(14), 2854–2864 (2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Cook, V., Peterson, C., Painter, Z., Dechev, D. (2020). Entropy Measurement of Concurrent Disorder. In: Gribaudo, M., Jansen, D.N., Remke, A. (eds) Quantitative Evaluation of Systems. QEST 2020. Lecture Notes in Computer Science(), vol 12289. Springer, Cham. https://doi.org/10.1007/978-3-030-59854-9_18
Download citation
DOI: https://doi.org/10.1007/978-3-030-59854-9_18
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-59853-2
Online ISBN: 978-3-030-59854-9
eBook Packages: Computer ScienceComputer Science (R0)