A SURVEY OF CONTEMPORARY METHODS FOR PERFORMANCE OPTIMIZATION OF COMPUTER PROGRAMS
Abstract
This article provides a comprehensive analysis of modern approaches to optimizing the performance of computer programs in the context of the increasing complexity of computational tasks and the growing volume of data to be processed. The main hardware and software factors influencing the efficiency of program execution are considered, including the architectural features of central and graphics processors, the organization of multi-level memory systems, support for vectorized computations, and mechanisms for parallel data processing. Special attention is given to the impact of algorithm and data structure selection on the performance of software, taking into account memory locality, cache miss avoidance, and the minimization of data transfer volumes across different levels of the memory hierarchy. Typical challenges related to overhead from thread creation and synchronization, as well as delays caused by branching in code execution, are analyzed. Principles for the effective use of multicore processors and heterogeneous platforms are discussed, highlighting the critical role of optimal task distribution between CPUs and GPUs for achieving high performance. The article emphasizes the necessity of a systematic approach to optimization, involving not only the application of individual techniques but also their comprehensive integration, considering their combined effect on overall performance. The importance of empirical evaluation of optimization results through real execution time measurements, performance profiling, and resource utilization analysis is underscored. General recommendations are formulated for the development of high-performance software systems, aimed at minimizing memory access delays, optimizing conditional branch handling, efficiently utilizing hardware accelerators, and ensuring effective parallelism. The findings presented may be valuable both for practicing software developers working on application performance improvement and for researchers in the field of high-performance computing, contributing to the advancement of new optimization methodologies in the evolving landscape of computational architectures.
Keywords
Full Text:
PDF (Українська)References
Theis T. N., Wong H. S. P. The end of Moore's law: A new beginning for information technology. 2017.
Berger E. Performance Matters [Електронний ресурс]. – 2020. Режим доступу: https://github.com/CppCon/CppCon2020/blob/main/Presentations/performance_matters/performance_matters__emery_berger__cppcon_2020.pdf
Swapnil Phalke, Yogita Vaidya, Shilpa Metkar. Big-O Time Complexity Analysis Of Algorithm. – 2022.
Carruth, C. Efficiency with Algorithms, Performance with Data Structures [Електронний ресурс]. 2014. Режим доступу: https://github.com/CppCon/
CppCon2014/blob/master/Presentations/Efficiency%20with%20Algorithms%2C%20Performance%20with%20Data%20Structures/Efficiency%20with%20Algorithms%2C%20Performance%20with%20Data%20Structures%20-%20Chandler%20Carruth%20-%20CppCon%202014.pdf
Pesterev, A., Zeldovich, N., Morris, R. T. Locating Cache Performance Bottlenecks Using Data Profiling. – 2010.
Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 3rd ed. – 2002.
Chikin, A., Amaral, J. N., Ali, K., Tiotto, E. Toward an Analytical Performance Model to Select between GPU and CPU Executio. – 2019.
Meyers S. Should you be using something instead of what you should use instead? [Електронний ресурс]. – 2015. Режим доступу: https://scottmeyers.blogspot.com/2015/09/should-you-be-using-something-instead.html
Khuong, P.-V., Morin, P. Array Layouts For Comparison-based Searching. – 2017.
Zeng, G. Performance analysis of parallel programming models for C++. –2023.
Mölle,r R. Design of a low-level template SIMD library. – 2016.
Pohl, A., Cosenza, B., Alvarez Mesa, M., Chi, C. C., Juurlink B. An Eva¬luation of Current SIMD Programming Models for C++. – 2020.
References
Theis T. N., Wong H. S. P. The end of Moore's law: A new beginning for information technology. 2017.
Berger E. Performance Matters [Elektronnij resurs]. – 2020. Rezhim dostupu: https://github.com/CppCon/CppCon2020/blob/main/Presentations/
performance_matters/performance_matters__emery_berger__cppcon_2020.pdf
Swapnil Phalke, Yogita Vaidya, Shilpa Metkar. Big-O Time Complexity Analysis Of Algorithm. – 2022.
Carruth, C. Efficiency with Algorithms, Performance with Data Structures [Elektronnij resurs]. 2014. Rezhim dostupu: https://github.com/CppCon/CppCon2014/blob/master/Presentations/Efficiency%20with%20Algorithms%2C%20Performance%20with%20Data%20Structures/Efficiency%20with%20Algorithms%2C%20Performance%20with%20Data%20Structures%20-%20Chandler%20Carruth%20-%20CppCon%202014.pdf
Pesterev, A., Zeldovich, N., Morris, R. T. Locating Cache Performance Bottlenecks Using Data Profiling. – 2010.
Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 3rd ed. – 2002.
Chikin, A., Amaral, J. N., Ali, K., Tiotto, E. Toward an Analytical Performance Model to Select between GPU and CPU Executio. – 2019.
Meyers S. Should you be using something instead of what you should use instead? [Elektronnij resurs]. – 2015. Rezhim dostupu: https://scottmeyers.blogspot.com/2015/09/should-you-be-using-something-instead.html
Khuong, P.-V., Morin, P. Array Layouts For Comparison-based Searching. – 2017.
Zeng, G. Performance analysis of parallel programming models for C++. –2023.
Molle,r R. Design of a low-level template SIMD library. – 2016.
Pohl, A., Cosenza, B., Alvarez Mesa, M., Chi, C. C., Juurlink B. An Eva¬luation of Current SIMD Programming Models for C++. – 2020.
DOI: https://doi.org/10.32620/oikit.2025.104.09
Refbacks
- There are currently no refbacks.