В мире программирования наступила знаковая эпоха: в основную ветку 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 года.