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

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

Поговорим про multiprocessing - способ реального распараллеливания задач на ядра компьютера. Multiprocessing позволяет решать любые задачи (IO-bound или CPU-bound)

Ускорение не идеально и возможно только до определенного предела, смотрим закон Амдала.

Создает несколько процессов, у каждого из которых своя память и свой GIL, каждый выполняет свою задачу, взаимодействие между ними требует pickle
API принципиально похоже на многопоточность, выгодно использовать Pool, а для взаимодействия между процессами Queue и Pipe

Плюсы:
реальная параллельность любых задач
не умирает из-за одного(!)
процессы не зависят друг от друга(у каждого процесса своя память и GIL)
Минусы:
потребление ресурсов (памяти, процессора, времени)
необходимость сериализации в pickle
проблемы синхронизации (взаимодействие между процессами)

Читать:
https://docs.python.org/3/library/mul...

Фаулер М. "Asyncio и конкурентное программирование на Python"

Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти https://boosty.to/python_russian/donate
✔️Юмани 410011506612886

Будь первым везде и всегда, включай уведомления о новых выпусках 🔔

Смотри там где удобно🤩
✔️ https://vk.com/python_russian
✔️ https://rutube.ru/channel/24346352/
✔️ https://dzen.ru/python_russian

✔️    / pythonrussian  
✔️ https://t.me/python_russian

#Python #PythonRussian #multiprocessing

Комментарии

Информация по комментариям в разработке