Python 3.13: многопоточность без ограничений GIL теперь реальность

Python 3.13: многопоточность без ограничений GIL теперь реальность

Python рвется к новым вершинам производительности для работы с ИИ.

image

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

Теория струн? У нас целый оркестр научных фактов!

От классики до авангарда — наука во всех жанрах

Настройтесь на нашу волну — подпишитесь