Prospects for Improving the Performance of Parallel Computing using Python Subinterpreter Technology

Main Article Content

Abstract

This article discusses the impact of global interpreter blocking on the performance of multithreaded applications in Python. The concept of subinterpreters is described as one of the solutions that allows bypassing the limitations of the GIL and ensuring effective parallel code execution. A comparative analysis of subinterpretors with traditional methods of parallel computing, such as the use of processes and threads, is carried out. The experimental results show that subinterpreters significantly increase performance under conditions of high computing loads. In addition, the article explores the use of subinterpreters in web development. The advantages of using this approach for query processing and resource management in modern web applications are considered, which can significantly improve their scalability and responsiveness. The novelty of this work lies in the in-depth analysis of subinterpreters in the context of specific use cases, which has previously not received sufficient coverage in the scientific literature. The results of the work emphasize the need for further study of subinterpreters as an alternative approach in Python, which is of interest to developers and researchers in the field of high-performance computing.

Article Details

References

1. Официальная документация Python. URL: https://www.python.org/
2. Фаулер, М. Asyncio и конкурентное программирование на Python. М.: ДМК Пресс, 2023. 398 с.
3. Beazley D. Understanding the python GIL // PyCON Python Conference. At-lanta, Georgia, 2010.
4. PEP 684 – A Per-Interpreter GIL. URL: https://peps.python.org/pep-0684/
5. Brownlee J. Python Multiprocessing Jump-Start: Develop Parallel Programs, Side-Step the GIL, and Use All CPU Cores (Python Concurrency Jump-Start Series). 2022. 144с.
6. Roghult A. Benchmarking Python Interpreters: Measuring Performance of CPython, Cpython, Jython and PyPy: Degree project in computer science and engineering. Sweden, 2016.
7. PEP 554 – Multiple Interpreters in the Stdlib. URL: https://peps.python.org/pep-0554/
8. PEP 703 – Making the Global Interpreter Lock Optional in CPython. URL: https://peps.python.org/pep-0703/
9. PEP 683 – Immortal Objects, Using a Fixed Refcount. URL: https://peps.python.org/pep-0683/
10. Савостин П.А., Ефремова Н.Э. Практическое применение асинхронного программирования на языке Python при помощи пакета asyncio // Программные системы и вычислительные методы. 2018. №2. С. 11-16.
11. Pickle — Python object serialization. URL: https://docs.python.org/3/library/pickle.html
12. Grinberg M. Flask Web Development: Developing Web Applications with Python. O’Reilly Media, 2014. 258 с.
13. Gardner J. The Web Server Gateway Interface (WSGI) / In: The Definitive Guide to Pylons. Apress, 2009. 513 с.
14. Locust - A modern load testing framework. URL: https://locust.io/