Ребятки, кто на PyCon сегодня, подходите пообщаться
noGIL: погружение в будущее CPython 3.14
noGIL: погружение в будущее CPython 3.14
pycon.ru
Пётр Андреев. noGIL: погружение в будущее CPython 3.14
Ревизируем процессы, потоки и C-реализацию GIL в CPython. Обсудим free-threading в Python 3.14: отложенный Reference Counting, новый GC, immortal-объекты, mimalloc — и не только.
🐳1
Эксперементировали ли вы с free threading CPython?
Anonymous Poll
10%
Я не на PyCon
79%
Нет
9%
Запустил пару раз (без benchmarks)
2%
Да, активно
🐳1
noGIL: погружение в будущее CPython 3.14
— презентация с PyCon 2025
Основные проблемы с GIL и их решения (слайды 7-21, 45-57):
GIL как "бутылочное горлышко":
GIL ограничивает использование многоядерных процессоров для CPU-bound задач, замедляет предобработку данных для GPU, масштабирование ML-алгоритмов (особенно Reinforcement Learning), и усложняет отладку и логирование при использовании процессов вместо потоков. Обход GIL через процессы (multiprocessing) приводит к дополнительным накладным расходам на межпроцессное взаимодействие (IPC) и сериализацию данных (pickle), что дорого (слайды 7-13).
Удаление GIL:
Несовместимость с существующими расширениями и проблемы с потокобезопасностью внутренних структур памяти CPython (race condition) затрудняют полное удаление GIL (слайды 15-16).
Free-threading (без GIL):
Для обеспечения потокобезопасности без GIL предлагаются механизмы, такие как атомарные операции и критические секции. Атомарные операции гарантируют завершение, а критические секции (Py_BEGIN_CRITICAL_SECTION и Py_END_CRITICAL_SECTION) обеспечивают потокобезопасность без явной блокировки, но могут снижать производительность, так как другие потоки вынуждены ждать (слайды 47-57).
Оптимизации управления памятью:
Введение Biased Reference Counting (BRC) и Deferred Reference Counting (DRC) для ускорения подсчета ссылок без GIL. BRC позволяет потоку-владельцу изменять счетчик ссылок неатомарно, а другие потоки делают это атомарно. DRC — отложенные обновления счетчиков ссылок. Это позволяет улучшить производительность за счет уменьшения дорогостоящих атомарных операций (слайды 59-63).
Новый сборщик мусора (GC):
В новой версии CPython без GIL GC будет использовать механизм "Stop-the-world" для вычисления реального количества ссылок на объекты, учитывая отложенные изменения, и не будет поколений. Также планируется замена pymalloc на mimalloc для потокобезопасности и лучшей производительности (слайды 64-70).
Поднимай: PY.UP
— презентация с PyCon 2025
Основные проблемы с GIL и их решения (слайды 7-21, 45-57):
GIL как "бутылочное горлышко":
GIL ограничивает использование многоядерных процессоров для CPU-bound задач, замедляет предобработку данных для GPU, масштабирование ML-алгоритмов (особенно Reinforcement Learning), и усложняет отладку и логирование при использовании процессов вместо потоков. Обход GIL через процессы (multiprocessing) приводит к дополнительным накладным расходам на межпроцессное взаимодействие (IPC) и сериализацию данных (pickle), что дорого (слайды 7-13).
Удаление GIL:
Несовместимость с существующими расширениями и проблемы с потокобезопасностью внутренних структур памяти CPython (race condition) затрудняют полное удаление GIL (слайды 15-16).
Free-threading (без GIL):
Для обеспечения потокобезопасности без GIL предлагаются механизмы, такие как атомарные операции и критические секции. Атомарные операции гарантируют завершение, а критические секции (Py_BEGIN_CRITICAL_SECTION и Py_END_CRITICAL_SECTION) обеспечивают потокобезопасность без явной блокировки, но могут снижать производительность, так как другие потоки вынуждены ждать (слайды 47-57).
Оптимизации управления памятью:
Введение Biased Reference Counting (BRC) и Deferred Reference Counting (DRC) для ускорения подсчета ссылок без GIL. BRC позволяет потоку-владельцу изменять счетчик ссылок неатомарно, а другие потоки делают это атомарно. DRC — отложенные обновления счетчиков ссылок. Это позволяет улучшить производительность за счет уменьшения дорогостоящих атомарных операций (слайды 59-63).
Новый сборщик мусора (GC):
В новой версии CPython без GIL GC будет использовать механизм "Stop-the-world" для вычисления реального количества ссылок на объекты, учитывая отложенные изменения, и не будет поколений. Также планируется замена pymalloc на mimalloc для потокобезопасности и лучшей производительности (слайды 64-70).
Поднимай: PY.UP
Google Docs
[share] noGIL: погружение в будущее CPython 3.14
noGIL: погружение в будущее CPython 3.14 Пётр Андреев МФТИ: advanced Python tech-проекты фин.сектор Июль 2025
🔥4🐳2
О прошедшем PyCon написали обзор на Tproger
В нём можно увидеть беглый взгляд по некоторым докладам. Весьма информативно для общего представления и фиксации куда мы движемся.
В обзоре описание и моего доклада: есть неточности. Тем не менее, советую заглянуть, если вы хотите увидеть куда «оно» движется. Для полной картины смотрите исходники, начните с моей презы и видео, которое появится здесь.
Благодарю оргов за PyCon, было здорово
@PY.UP
В нём можно увидеть беглый взгляд по некоторым докладам. Весьма информативно для общего представления и фиксации куда мы движемся.
В обзоре описание и моего доклада: есть неточности. Тем не менее, советую заглянуть, если вы хотите увидеть куда «оно» движется. Для полной картины смотрите исходники, начните с моей презы и видео, которое появится здесь.
Благодарю оргов за PyCon, было здорово
@PY.UP
🔥2🐳2
В попытках сделать промо для своего курса на Физтехе по CPython Internals
Попробовал несколько подходов
Один из них более креативный
Нужны свежие идеи сцен и реплик в комментариях
Кстати, в CPython скорее скоро завезут green threads
В чём их отличие от free-threading реализации распишу позже
@PY.UP
Попробовал несколько подходов
Один из них более креативный
Нужны свежие идеи сцен и реплик в комментариях
Кстати, в CPython скорее скоро завезут green threads
В чём их отличие от free-threading реализации распишу позже
@PY.UP
👍5🐳1
Ну-ка, ну-ка / Python: The Documentary Film
— интервью с ключевыми людьми экосистемы
— поворотные моменты в развитии и сложности сообщества
— как формировались ценности, роль PSF и почему культура Python важнее «фич»
— а здесь Q&A по фильму на EuroPython
@PY.UP
— интервью с ключевыми людьми экосистемы
— поворотные моменты в развитии и сложности сообщества
— как формировались ценности, роль PSF и почему культура Python важнее «фич»
— а здесь Q&A по фильму на EuroPython
@PY.UP
🔥4🐳2
Всем привет
Виде с моим выступлением на PyCon2025 опубликовано
noGIL: погружение в будущее CPython3.14
Updates:
1. Пригласили на сл.конференции c докладом: CPython Under Load: NoGIL, GreenThreads, AsyncIO vs. Other Langs: deep-dive in core and benchmarks
— 25.09 PyCon Гана (Африка) — думаю отказаться, тк организаторы слишком поздно сообщили об этом мне
— 17.10 PyCon Финляндии — посольство не выдаёт визу, ищу обходные пути
— 06.12 PyCon Индонезия — еду
3. Начал сочинять музыку о CPython:
— уже есть весьма и весьма хорошие фидбеки на черновик, который послушал узкий кругу разных людей
— планирую выпустить альбом к end-2025 / mid-2026
— совершенно не шарю как делается выпуск альбома, если кто шарит, то не помешали ли бы советы или контакты таких людей
@PY.UP
Виде с моим выступлением на PyCon2025 опубликовано
noGIL: погружение в будущее CPython3.14
Updates:
1. Пригласили на сл.конференции c докладом: CPython Under Load: NoGIL, GreenThreads, AsyncIO vs. Other Langs: deep-dive in core and benchmarks
— 25.09 PyCon Гана (Африка) — думаю отказаться, тк организаторы слишком поздно сообщили об этом мне
— 17.10 PyCon Финляндии — посольство не выдаёт визу, ищу обходные пути
— 06.12 PyCon Индонезия — еду
3. Начал сочинять музыку о CPython:
— уже есть весьма и весьма хорошие фидбеки на черновик, который послушал узкий кругу разных людей
— планирую выпустить альбом к end-2025 / mid-2026
— совершенно не шарю как делается выпуск альбома, если кто шарит, то не помешали ли бы советы или контакты таких людей
@PY.UP
YouTube
noGIL: погружение в будущее CPython 3.14. Пётр Андреев, МФТИ
noGIL: погружение в будущее CPython 3.14
Пётр Андреев
Лектор, МФТИ
Ревизируем процессы, потоки и C-реализацию GIL в CPython.
Обсудим free-threading в Python 3.14: отложенный Reference Counting, новый GC, immortal-объекты, mimalloc — и не только.
Заглянем…
Пётр Андреев
Лектор, МФТИ
Ревизируем процессы, потоки и C-реализацию GIL в CPython.
Обсудим free-threading в Python 3.14: отложенный Reference Counting, новый GC, immortal-объекты, mimalloc — и не только.
Заглянем…
🔥6🐳1
Ребятки, всем привет
Это было топово — конфа в НН. Всем рекомендую ездить по конфам и оставаться на пре-/пост-пати дискуссии, столько нового узнаёте: сильных людей и глубокие мысли — стоящие разговоры!
Отдельно хочу поблагодарить
Васю Рябова, Мишу Ефимова, Серёжу Мирянова
— сильные доклады, глубокие дискуссии, титаны 🔥
Оч.рад был видеть среди спикеров Давида Джалаева!
Отдельные респект Никите Соболеву и оргам — высокий уровень конфы и атмосферы!
Здесь преза.
В презе есть видео, которые отсутствовали в pdf на выступлении — добавляет понимания.
В этот Пн вечером буду выступать на MoscowPython: Дотянуться до кремния. HighLoad Python: SIMD, GPU
Записи выступлений по докладу:
— Нижний Новгород
— MoscowPython
Если есть вопросы по теме доклада, то пишите их в комменты или приходите задать в Пн.
Будем понимать, как сыпучий песок превращается в исполнение
print(1+1) — и как вычисляется
UPD: короткая визуализация производства
@PY.UP
Это было топово — конфа в НН. Всем рекомендую ездить по конфам и оставаться на пре-/пост-пати дискуссии, столько нового узнаёте: сильных людей и глубокие мысли — стоящие разговоры!
Отдельно хочу поблагодарить
Васю Рябова, Мишу Ефимова, Серёжу Мирянова
— сильные доклады, глубокие дискуссии, титаны 🔥
Оч.рад был видеть среди спикеров Давида Джалаева!
Отдельные респект Никите Соболеву и оргам — высокий уровень конфы и атмосферы!
Здесь преза.
В презе есть видео, которые отсутствовали в pdf на выступлении — добавляет понимания.
В этот Пн вечером буду выступать на MoscowPython: Дотянуться до кремния. HighLoad Python: SIMD, GPU
Записи выступлений по докладу:
— Нижний Новгород
— MoscowPython
Если есть вопросы по теме доклада, то пишите их в комменты или приходите задать в Пн.
Будем понимать, как сыпучий песок превращается в исполнение
print(1+1) — и как вычисляется
UPD: короткая визуализация производства
@PY.UP
🔥12🐳1
Ниже пост от организаторов конференции с моими правками
Записи с нашей бесплатной конфы в Нижнем подъехали!
Во-первых, хочу еще раз повторить слова благодарности всем: организаторам и волонтерам, спикерам, участникам. Отдельно хочу отметить тех, кто поддержал конфу анонсами. Приехало и пришло очень много людей: 1100+ регистраций, почти 600 человек на площадке. Вы все крутые!
Во-вторых, в программе случились две замены. Ждем ребят, кто не смог приехать, на будущих мероприятиях.
Постарался найти баланс между хардкорнейшими докладами, спикерами-новичками (они обязательно должны быть на любой конференции, по моему мнению, я когда-то был таким спикером-новичком) и легкими погружениями в технологии.
Конкуренция за звание "лучшего" доклада – высочаящая. Выбирать будем не по каким-то там голосованиям, которые ни на что не влияют, а по просмотрам на ютюбе. Поддержите спикеров и меня просмотрами :)
Выкладываю записи сразу, а не через полгода.
Доклады в порядке выступлений:
- Чего вы не знали о строках в Python? / Василий Рябов
- ИИ-агенты в каждый дом / Алексей Порядин
- Генератор байткода и байткод генератора / Михаил Ефимов
- Внутреннее устройство сборки мусора в CPython 3.14+ / Сергей Мирянов
- Проектирование — это когда чувствуешь, а не какие-то там циферки / Николай Хитров
- Дотянуться до кремния. HighLoad Python: SIMD, GPU / Пётр Андреев
- Continuous profiling / Давид Джалаев
- Vim — это метаредактирование / Илья Ильиных
При поддержке:
- https://it52.info
- https://itgorky.ru
- Находки в опенсорсе
@PY.UP
Записи с нашей бесплатной конфы в Нижнем подъехали!
Во-первых, хочу еще раз повторить слова благодарности всем: организаторам и волонтерам, спикерам, участникам. Отдельно хочу отметить тех, кто поддержал конфу анонсами. Приехало и пришло очень много людей: 1100+ регистраций, почти 600 человек на площадке. Вы все крутые!
Во-вторых, в программе случились две замены. Ждем ребят, кто не смог приехать, на будущих мероприятиях.
Постарался найти баланс между хардкорнейшими докладами, спикерами-новичками (они обязательно должны быть на любой конференции, по моему мнению, я когда-то был таким спикером-новичком) и легкими погружениями в технологии.
Конкуренция за звание "лучшего" доклада – высочаящая. Выбирать будем не по каким-то там голосованиям, которые ни на что не влияют, а по просмотрам на ютюбе. Поддержите спикеров и меня просмотрами :)
Выкладываю записи сразу, а не через полгода.
Доклады в порядке выступлений:
- Чего вы не знали о строках в Python? / Василий Рябов
- ИИ-агенты в каждый дом / Алексей Порядин
- Генератор байткода и байткод генератора / Михаил Ефимов
- Внутреннее устройство сборки мусора в CPython 3.14+ / Сергей Мирянов
- Проектирование — это когда чувствуешь, а не какие-то там циферки / Николай Хитров
- Дотянуться до кремния. HighLoad Python: SIMD, GPU / Пётр Андреев
- Continuous profiling / Давид Джалаев
- Vim — это метаредактирование / Илья Ильиных
При поддержке:
- https://it52.info
- https://itgorky.ru
- Находки в опенсорсе
@PY.UP
🔥5🐳1
Всем привет
Кому не сложно, можете забустить канал?
https://t.iss.one/boost/py_up
Я опубликую сторис с наброском музыки о CPython
Нужен n-й уровень канала для публикации наброска
Кому не сложно, можете забустить канал?
https://t.iss.one/boost/py_up
Я опубликую сторис с наброском музыки о CPython
Нужен n-й уровень канала для публикации наброска
Telegram
PY.UP
Boost this channel to help it unlock additional features.
👍7🐳1
Ребятки, спасибо за буст поддержку!
Поднялись весьма высоко :)
В сторис музыкальный отрывок — черновик о CPython.
Финальную версию планирую делать более дерзкой в стиле funk + hip-hop.
А сейчас тёплый-душевный groove для Пятницы — самое то🌞 🍀 👀
Сопровождаю атмосферным видео рядом.
Поднялись весьма высоко :)
В сторис музыкальный отрывок — черновик о CPython.
Финальную версию планирую делать более дерзкой в стиле funk + hip-hop.
А сейчас тёплый-душевный groove для Пятницы — самое то
Сопровождаю атмосферным видео рядом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3🐳1
#Q:CPython-warm-up 'где хранится значение инта ?'
И что думаете про вывод :)
Ночная разминка перед сегодняшним утром
Ваши соображения в комментарии
Заходи -> PY.UP
И что думаете про вывод :)
Ночная разминка перед сегодняшним утром
Ваши соображения в комментарии
Заходи -> PY.UP
🔥2🐳1😨1
Когда на онлайн конференции ты задал вопрос и попытался поддержать немолодого спикера, когда он не смог ответить на твой вопрос, но Копи-Паст попал не туда 🥲
Видели бы вы лицо ведущего :) озвучивешго этот вопрос в спешке
Эх, это ощущение шейминга
p.s.: перечитываю и продолжаю смеяться, над ошибками тоже
Видели бы вы лицо ведущего :) озвучивешго этот вопрос в спешке
Эх, это ощущение шейминга
p.s.: перечитываю и продолжаю смеяться, над ошибками тоже
😁7🐳2
И видишь Мишу с коммитами :)
@mikhail_efimov
Сегодня моим студентам рассшаривал за Git/GitHub
А тут Миша )
@mikhail_efimov
Сегодня моим студентам рассшаривал за Git/GitHub
А тут Миша )
🐳2😎1
Со своими я провожу батлы, где мы бодаемся на прогерские темы.
Где есть Quiz'ы и баталии в группах из 3 человек.
Баталии — fast дебаты, где 2 противоположные позиции борются друг с другом в отведённое время на атаку/защиту.
В конце раунда выявляется победитель. Всё происходит по правилам, дабы избежать бойни.
Хочу проверить спрос, на сколько такое востребовано в массах.
Есть 2 варианта:
1. очное мероприятие в МСК / Долгопрудном
2. online event
В опросе можно проголосовать за несколько вариантов:
Где есть Quiz'ы и баталии в группах из 3 человек.
Баталии — fast дебаты, где 2 противоположные позиции борются друг с другом в отведённое время на атаку/защиту.
В конце раунда выявляется победитель. Всё происходит по правилам, дабы избежать бойни.
Хочу проверить спрос, на сколько такое востребовано в массах.
Есть 2 варианта:
1. очное мероприятие в МСК / Долгопрудном
2. online event
В опросе можно проголосовать за несколько вариантов:
Вы пришли бы на прогерскую бойню? )
Anonymous Poll
22%
Нет
22%
Да, как участник
53%
Да, как зритель
24%
Да, в Москве
7%
Да, в Долгопрудном
47%
Да, онлайн