14.03.2024 | Python 3.13: многопоточность без ограничений GIL теперь реальность |
В мире программирования наступила знаковая эпоха: в основную ветку Python был внедрён код, который обещает улучшить многопоточность и параллелизм в выполнении программ. Добавленный код позволяет отключать Global Interpreter Lock ( GIL ) — ключевой элемент в реализации CPython, стандартной версии языка программирования Python. GIL долгое время считался препятствием на пути к эффективному многопоточному выполнению кода, так как он не позволял нескольким потокам одновременно выполнять инструкции. Особенно остро проблема стояла в вычислительно интенсивных задачах и сфере искусственного интеллекта, где потребность в многопоточности особенно велика. Например, в DeepMind отмечали, что во многих приложениях хотелось бы использовать до 100 потоков на процесс, но из-за GIL возможности были ограничены. Изменения, предложенные в PEP 703 (Python Enhancement Proposal), делают GIL необязательным в CPython и были приняты руководящим советом к реализации в версии 3.13. При этом подчёркивается важность постепенного внедрения изменений с возможностью отката в случае обнаружения серьёзных проблем. Ожидается, что отключение GIL приведёт к появлению ошибок в существующем коде. Например, уже были зафиксированы сбои при полном тестировании с отключенным GIL. Вместе с тем, ведутся работы по поддержке расширений, требующих GIL, что обещает новые возможности для разработчиков без значительной потери производительности. Нововведение встречается с оптимизмом, ведь отключение GIL может значительно повысить эффективность работы с ИИ-моделями и улучшить многопоточное выполнение кода. Релиз Python 3.13 запланирован на 1 октября 2024 года. |
Проверить безопасность сайта