Опубликован план избавления CPython от глобальной блокировки интерпретатора
Автор
Сообщение
news_bot ®
Стаж: 6 лет 11 месяцев
Сообщений: 27286
Руководящий совет проекта Python объявил о намерении утвердить предложение по расширению языка Python PEP-0703, в котором определяется добавление режима сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock). В качестве вероятного срока реализации PEP-0703 упоминается выпуск Python 3.13, намеченный на осень следующего года.
Во внедряемом PEP-0703 определено оставление по умолчанию GIL, но добавление сборочной опции "--without-gil" для его отключения. Новый режим позволит решить проблему с распараллеливанием операций на многоядерных системах, вызванную тем, что глобальная блокировка не допускает параллельное обращение к разделяемым объектам из разных потоков. В долгосрочной перспективе (через 5 лет) интерпретатор планируется перевести по умолчанию на сборку только в режиме без глобальной блокировки, одновременно прекратив поддержку сборки с GIL.
На первом этапе отключение GIL по умолчанию нецелесообразно в связи с накладными расходами, связанными с изменениями в сборщике мусора, системе управления памятью и примитивах для организации блокировок. Например, из-за использования подсчёта ссылок для изоляции потоков наблюдается снижение производительности однопоточных сценариев (в тестовом наборе pyperformance на 10%). При этом отключение GIL может потребоваться в научных вычислениях, для которых отсутствие распараллеливания является более серьёзной проблемой, чем линейная скорость выполнения кода.
Отмечается, что работа по уходу от GIL будет проведена с большой осторожностью, чтобы не повторить провала, случившегося при продвижении Python 3 - сборка без GIL должна будет обязательно сохранить обратную совместимость со старыми версиями Python, а все изменения в стороннем коде, необходимые для работы в сборках без GIL, должны работать и в сборках с GIL. Изменять нумерацию выпусков на Python 4 для сборок без GIL не планируется, так как в них будет сохранена совместимость на уровне ABI.
До полного перехода на сборки без GIL планируется добиться всесторонней поддержки данных сборок со стороны сообщества, а также предоставить дополнительные C API и Python API для обеспечения безопасной многопоточности в существующем коде. Уход от GIL будет проведён в три этапа: добавление в CPython в 3.13 (возможно в 3.14) экспериментальной опции для сборки без GIL, поддерживаемой основной командой разработчиков; перевод опции сборки без GIL в разряд пригодных для рабочих внедрений и одобрение поставки сборок без GIL по желанию дистрибутивов; переход на сборку без GIL по умолчанию и удаление кода для поддержки GIL. Прогнозируется, что переход на третью стадию может произойти как минимум через 5 лет.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://discuss.python.org/t/a...)
- OpenNews: Выпуск Cython 3.0 и Nuitka 1.7, компиляторов для языка Python
- OpenNews: Опубликован Codon, компилятор для языка Python
- OpenNews: Выпуск языка программирования Python 3.11
- OpenNews: Уязвимость в Python, позволяющая вызвать системные команды из изолированных скриптов
- OpenNews: Стратегия параллельного поддержания веток Python 2 и Python 3 оказалась ошибочной
Похожие новости:
- Выпуск Cython 3.0 и Nuitka 1.7, компиляторов для языка Python
- Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0
- Выпуск Nuitka 1.6, компилятора для языка Python
- Обход ограничений SELinux, связанных с загрузкой модулей ядра
- Опубликован secimport 0.8 для sandbox-изоляции отдельных Python-модулей
- PyPI из-за вредоносной активности приостановил регистрацию новых пользователей и проектов
- GitHub без предупреждения перевёл репозиторий ipmitool в режим только для чтения
- В CPython появится возможность отключения глобальной блокировки интерпретатора
- Выпуск Nuitka 1.3, компилятора для языка Python
- Выпуск Nuitka 1.2, компилятора для языка Python
Теги для поиска: #_python, #_lock
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 05:44
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 11 месяцев |
|
Руководящий совет проекта Python объявил о намерении утвердить предложение по расширению языка Python PEP-0703, в котором определяется добавление режима сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock). В качестве вероятного срока реализации PEP-0703 упоминается выпуск Python 3.13, намеченный на осень следующего года. Во внедряемом PEP-0703 определено оставление по умолчанию GIL, но добавление сборочной опции "--without-gil" для его отключения. Новый режим позволит решить проблему с распараллеливанием операций на многоядерных системах, вызванную тем, что глобальная блокировка не допускает параллельное обращение к разделяемым объектам из разных потоков. В долгосрочной перспективе (через 5 лет) интерпретатор планируется перевести по умолчанию на сборку только в режиме без глобальной блокировки, одновременно прекратив поддержку сборки с GIL. На первом этапе отключение GIL по умолчанию нецелесообразно в связи с накладными расходами, связанными с изменениями в сборщике мусора, системе управления памятью и примитивах для организации блокировок. Например, из-за использования подсчёта ссылок для изоляции потоков наблюдается снижение производительности однопоточных сценариев (в тестовом наборе pyperformance на 10%). При этом отключение GIL может потребоваться в научных вычислениях, для которых отсутствие распараллеливания является более серьёзной проблемой, чем линейная скорость выполнения кода. Отмечается, что работа по уходу от GIL будет проведена с большой осторожностью, чтобы не повторить провала, случившегося при продвижении Python 3 - сборка без GIL должна будет обязательно сохранить обратную совместимость со старыми версиями Python, а все изменения в стороннем коде, необходимые для работы в сборках без GIL, должны работать и в сборках с GIL. Изменять нумерацию выпусков на Python 4 для сборок без GIL не планируется, так как в них будет сохранена совместимость на уровне ABI. До полного перехода на сборки без GIL планируется добиться всесторонней поддержки данных сборок со стороны сообщества, а также предоставить дополнительные C API и Python API для обеспечения безопасной многопоточности в существующем коде. Уход от GIL будет проведён в три этапа: добавление в CPython в 3.13 (возможно в 3.14) экспериментальной опции для сборки без GIL, поддерживаемой основной командой разработчиков; перевод опции сборки без GIL в разряд пригодных для рабочих внедрений и одобрение поставки сборок без GIL по желанию дистрибутивов; переход на сборку без GIL по умолчанию и удаление кода для поддержки GIL. Прогнозируется, что переход на третью стадию может произойти как минимум через 5 лет. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 05:44
Часовой пояс: UTC + 5