Abstract
The paper proposes a metric that evaluates the overhead introduced into parallel programs by the additional operations that parallelism implicitly imposes. We consider the case of multithreaded parallel programs that follows SPMD (Single Program Multiple Data) model. Java programs were considered for this proposal, but the metric could be easily adapted for any multithreading supporting imperative language. The metric is defined as a combination of several atomic metrics considering various synchronisation mechanisms that could be discovered using the source code analysis. A theoretical validation of this metric is presented, and an empirical evaluation of several use cases. Additionally, we propose an Artificial Intelligence based strategy to refine the evaluation of the metric by obtaining approximation for the weights that are used in combining the considered atomic metrics. The methodology of the approach is statistical using the multiple linear regression, which considers as dependent variable the execution times of different concrete use-cases, and as independent variables the corresponding overhead times introduced by the considered synchronization mechanisms, which are approximated through the atomic metrics. The results indicated a high degree of correlation between the dependent and independent variables. The Root Mean Square Error obtained is 0.155186, thus being very small, the predicted and observed values are very close.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
The complete code could be accessed at the following URL: “shorturl.at/bjlmT”.
References
Amdahl, G.M.: Validity of the single processor approach to achieving large scale computing capabilities. In: AFIPS Computer Conference, pp. 483–485 (1967)
Kitchenham, B., Fenton, N.: Towards a framework for software measurement validation. IEEE Trans. Softw. Eng. 21(12), 929–943 (1995)
Briand, L.C., EK, S.M.: On the application of measurement theory in software engineering. Tech. rep., ISER Technical Report (1995)
Chidamber, S., Kemerer, C.: A metric suite for object- oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)
David, F., Thomas, G., Lawall, J., Muller, G.: Continuously measuring critical section pressure with the free-lunch profiler. SIGPLAN Not. 49(10), 291–307 (2014)
Espinosa, A., Margalef, T., Luque, E.: Automatic performance evaluation of parallel programs. In: Euromicro Workshop on Parallel and Distributed Processing, pp. 43–49 (1998)
Garg, V.K.: Concurrent and Distributed Computing in Java. John Wiley fsSons Inc, USA (2004)
Grama, A., Gupta, A., Karypis, G., Kumar, V.: Introduction to Parallel Computing, Second Edition. Addison-Wesley (2003)
Göetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., Lea, D.: Task execution. Java Concurr. Pract, 113–134. Addison Wesley Professional (2006)
Harris, M.: Optimizing Parallel Reduction in CUDA. https://docs.nvidia.com/cuda/. Accessed 25 Jan 2022
Ji, M., Felten, E.W., Li, K.: Performance measurements for multithreaded programs. In: ACM SIGMETRICS Joint IC on Measurement and Modeling of Computer Systems, pp. 161–170. ACM (1998)
Lederer, J.: Tuning-Parameter calibration. In: Fundamentals of High-Dimensional Statistics. STS, pp. 109–137. Springer, Cham (2022). https://doi.org/10.1007/978-3-030-73792-4_4
Misra, S., Akman, I.: Applicability of Weyuker’s properties on OO metrics: some misunderstandings. Comput. Sci. Inf. Syst. 5(1), 17–23 (2008)
Niculescu., V., Şerban., C., Vescan., A.: Towards an overhead estimation model for multithreaded parallel programs. In: Proceedings of the 17th International Conference on Evaluation of Novel Approaches to Software Engineering - ENASE, pp. 502–509. INSTICC, SciTePress (2022). https://doi.org/10.5220/0011083400003176
Raynal, M.: Concurrent Programming: Algorithms, Principles, and Foundations. Springer-Verlag, Berlin Heidelberg (2013)
Shah, M.D., Guyer, S.Z.: Iceberg: a tool for static analysis of java critical sections. In: ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, pp. 7–12. ACM (2016)
Shah, M.D., Guyer, S.Z.: Iceberg: Dynamic analysis of java synchronized methods for investigating runtime performance variability. In: ISSTA/ECOOP Workshops, pp. 119–124. ACM (2018)
Weyuker, E.: Evaluating software complexity measure. IEEE Trans. Softw. Eng. 14(9), 1357–1365 (1988)
Zuse, H.: On Weyuker’s axioms for software complexity measures. Softw. Qual. J. 1(4), 225–260 (1992)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Niculescu, V., Şerban, C., Vescan, A. (2023). A New Metric for Multithreaded Parallel Programs Overhead Time Prediction. In: Kaindl, H., Mannion, M., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2022. Communications in Computer and Information Science, vol 1829. Springer, Cham. https://doi.org/10.1007/978-3-031-36597-3_15
Download citation
DOI: https://doi.org/10.1007/978-3-031-36597-3_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-36596-6
Online ISBN: 978-3-031-36597-3
eBook Packages: Computer ScienceComputer Science (R0)