Multiprocessing: используем все ядра

  Рет қаралды 3,569

Python Russian

Python Russian

Күн бұрын

Поговорим про multiprocessing - способ реального распараллеливания задач на ядра компьютера. Multiprocessing позволяет решать любые задачи (IO-bound или CPU-bound)
Ускорение не идеально и возможно только до определенного предела, смотрим закон Амдала.
Создает несколько процессов, у каждого из которых своя память и свой GIL, каждый выполняет свою задачу, взаимодействие между ними требует pickle
API принципиально похоже на многопоточность, выгодно использовать Pool, а для взаимодействия между процессами Queue и Pipe
Плюсы:
реальная параллельность любых задач
не умирает из-за одного(!)
процессы не зависят друг от друга(у каждого процесса своя память и GIL)
Минусы:
потребление ресурсов (памяти, процессора, времени)
необходимость сериализации в pickle
проблемы синхронизации (взаимодействие между процессами)
Читать:
docs.python.or...
Фаулер М. "Asyncio и конкурентное программирование на Python"
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти boosty.to/pyth...
✔️Юмани 410011506612886
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
Смотри там где удобно🤩
✔️ python_...
✔️ rutube.ru/chan...
✔️ dzen.ru/python...
✔️ / pythonrussian
✔️ t.me/python_ru...
#Python #PythonRussian #multiprocessing

Пікірлер: 26
@PythonRussian
@PythonRussian 7 ай бұрын
кто не подписан на канал, тот использует только одно ядро =)
@userEasyGame
@userEasyGame 2 ай бұрын
Как у
@ЕгорСветличный-щ8ф
@ЕгорСветличный-щ8ф 5 ай бұрын
Огромное вам спасибо за ваш труд! Вы очень классный преподаватель и питонист, слежу за каналом уже давно. Прекрасно даёте первичную информацию и знакомите с различными инструментами. Отдельная благодарность за рекомендации крутейших книг и материалов, помогающих сформировать вектор дальнейшего обучения. Единственный минус - редко выходят ролики, но вас можно понять. Ещё раз спасибо, благодаря вашей деятельности по уши влюбился в Python!
@PythonRussian
@PythonRussian 5 ай бұрын
спасибо, значит не зря стараюсь, приятно. По выходу роликов к сожалению ничего сделать не могу -дом, семья, работа. Вот на пенсии видимо наснимаю от души, а пока только по мере сил и времени
@DrillingEnglish
@DrillingEnglish 7 ай бұрын
Спасибо за ваш труд! 👍
@user-buser_eto_ja
@user-buser_eto_ja 6 ай бұрын
Отличнейшая подача! Спасибо!
@MioGesa-md2ul
@MioGesa-md2ul 7 ай бұрын
Коммент для благодарности вам и увеличение вовлеченности на канал 🎉
@stevem4806
@stevem4806 3 ай бұрын
Спасибо!
@stic5819
@stic5819 5 ай бұрын
Здравствуйте, у вас отличные видео! Не думали ли разбавить канал смежными технологиями для работы питонистом: Celery, RabbitMQ, БД (NoSQL (Redis), SQL (PostgreSQL)), Архитектурные видео, системы логирования, devops базу, rest ful (типа про сети рассказать), такое вот?
@PythonRussian
@PythonRussian 5 ай бұрын
я стараюсь снимать на максимально широкий круг питонистов, если уходить в специфическую тему, то многим станет не нужно\не интересно. Но кстати можно подумать про бд/хттп это обычно везде нужно
@stic5819
@stic5819 5 ай бұрын
@@PythonRussian Такого качественного контента немного)) кажется, что может случится обратная ситуация с потоком людей, хотя вам виднее
@stvJnK
@stvJnK 7 ай бұрын
Отличный материал, а что скажите насчёт aiomultiprocessing ?
@PythonRussian
@PythonRussian 7 ай бұрын
честно скажу -не использовал, подозреваю что может в отдельном процессе что-то выполнить а в лупе асинкио дождаться этого. Наверное в каких то ситуациях это может пригодиться, но я бы сначала в асинкио просто посмотрел нет ли такой возможности? Там же есть выполнить в отдельном потоке, возможно и для процесса есть.
@neydygdrg1836
@neydygdrg1836 6 ай бұрын
Я так понимаю, что в книге Фаулера не только про asyncio, но и про потоки и мультипроцесы? Хотелось бы видос про виртуальное окружения venv, там вроде немного, но полезно
@PythonRussian
@PythonRussian 6 ай бұрын
да, он все темы рассматривает по конкурентности. Про венв - хорошая идея, запланирую
@antonvorobiev9507
@antonvorobiev9507 Ай бұрын
Скажите, могу ли я подучить консультацию по мультипрлцессингу? Разумеется не бесплатно) Мучаюсь над одной задачей - никак не могу справиться. Спасибо!
@PythonRussian
@PythonRussian Ай бұрын
боюсь что нет, на консультации нет времени
@DmitryRomantsov
@DmitryRomantsov 7 ай бұрын
Не-не, нас не проведешь! Мы поставим python 4 и все будет легко и просто!
@fr1ezz522
@fr1ezz522 2 ай бұрын
Могу ли я создать несколько процессов и в каждом процессе несколько потоков, то есть миксовать process и thread?
@PythonRussian
@PythonRussian 2 ай бұрын
да, вполне, только не запутайтесь
@Миха-ь8х
@Миха-ь8х 7 ай бұрын
Привет. У меня проблема. Работают несколько процессов. Завершение через нажатие кнопки - процесс который поймал нажатие передаёт 'stop' в общую queue и завершается, остальные процессы ищут этот стоп в очереди и завершаются также. Это работает стабильно если не дольше примерно часа-двух. Но если например через 6 часов или сутки - то процесс который поймал нажатие клавиши завершается, а остальные просто перестают выполнять работу и зависают пока принудительно их не завершить. Есть идеи в чем дело?)
@PythonRussian
@PythonRussian 7 ай бұрын
смотри, при работе с конкурентностью, особенно с процессами надо густо все смазать логированием, прямо каждый шаг, это нужно чтобы по логам понять что и где произошло, на каком моменте отпало. Еще посмотри на таймауты, на очередь (это очередь из процессинга?), что там все ок, нет ли по коду вечных циклов. Кстати навел на мысль, сниму видео про логирование.
@warmybo
@warmybo 7 ай бұрын
а потоки не тоже самое? потоки GIL обходят?
@PythonRussian
@PythonRussian 7 ай бұрын
посмотри пожалуйста мое видео про потоки, они могут обойти ГИЛ, но только для IO задач, в видео про потоки я как раз показывал разницу, когда на вычислительных задачах время не только не уменьшалось, но увеличивалось. Так что это не одно и то же на данный момент(!), когда отключат ГИЛ, возможно процессы и не понадобятся.
@warmybo
@warmybo 7 ай бұрын
@@PythonRussian спасибо большое)
@ciklomat
@ciklomat 7 ай бұрын
Видео из серии я не зануда, зануда это не я.
WHY IS THE HEAP SO SLOW?
17:53
Core Dumped
Рет қаралды 264 М.
Конкурентность и параллельность
40:31
Python Russian
Рет қаралды 7 М.
Triple kill😹
00:18
GG Animation
Рет қаралды 17 МЛН
2 MAGIC SECRETS @denismagicshow @roman_magic
00:32
MasomkaMagic
Рет қаралды 28 МЛН
龟兔赛跑:好可爱的小乌龟#short #angel #clown
01:00
Super Beauty team
Рет қаралды 120 МЛН
Рекурсия в Python
52:13
Python Russian
Рет қаралды 4,9 М.
Список и кортеж
37:46
Python Russian
Рет қаралды 5 М.
Основы Asyncio
53:25
Python Russian
Рет қаралды 23 М.
Логирование: оставь print позади
38:01
Python Russian
Рет қаралды 25 М.
Паттерн Singleton (Одиночка) в Python
36:55
Python Russian
Рет қаралды 12 М.
Доступ к свойствам объекта. Property и slots
42:54
Основы многопоточности в Python
58:46
Python Russian
Рет қаралды 8 М.
Triple kill😹
00:18
GG Animation
Рет қаралды 17 МЛН