Перспективы роста производительности параллельных вычислений с помощью технологии субинтерпретаторов в Python

Main Article Content

Роман Дмитриевич Синицын

Аннотация

Рассмотрена проблема влияния глобальной блокировки интерпретатора на производительность многопоточных приложений в Python. Описана концепция субинтерпретаторов как одного из решений, позволяющих обходить ограничения GIL и обеспечивать эффективное параллельное выполнение кода. Проведен сравнительный анализ субинтерпретаторов с традиционными методами параллельных вычислений, такими как использование процессов и потоков. Результаты экспериментов показали, что субинтерпретаторы значительно повышают производительность в условиях высоких вычислительных нагрузок. Кроме того, исследованы возможности применения субинтерпретаторов в веб-разработках. Отмечены преимущества использования названного подхода для обработки запросов и управления ресурсами в современных веб-приложениях, что может значительно улучшить их масштабируемость и отклик. Новизна проведенного исследования заключается в глубоком анализе субинтерпретаторов в контексте конкретных сценариев использования, что ранее не получило достаточного освещения в научной литературе. Результаты работы подчеркивают необходимость дальнейшего изучения субинтерпретаторов как альтернативного подхода в Python и интерес к этому разработчиков и исследователей в области высокопроизводительных вычислений.

Article Details

Библиографические ссылки

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/