Поговорим про multiprocessing - способ реального распараллеливания задач на ядра компьютера. Multiprocessing позволяет решать любые задачи (IO-bound или CPU-bound)
Ускорение не идеально и возможно только до определенного предела, смотрим закон Амдала.
Создает несколько процессов, у каждого из которых своя память и свой GIL, каждый выполняет свою задачу, взаимодействие между ними требует pickle
API принципиально похоже на многопоточность, выгодно использовать Pool, а для взаимодействия между процессами Queue и Pipe
Плюсы:
реальная параллельность любых задач
не умирает из-за одного(!)
процессы не зависят друг от друга(у каждого процесса своя память и GIL)
Минусы:
- потребление ресурсов (памяти, процессора, времени)
- необходимость сериализации в pickle
- проблемы синхронизации (взаимодействие между процессами)
Читать:
#module-multiprocessing
Фаулер М. “Asyncio и конкурентное программирование на Python“
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #multiprocessing
3,232 views
3427
1237
3 months ago 00:42:52 3
Андреади Н.Г. - Искусственный интеллект в химии и материаловедении - Занятие 16. Семинар
7 months ago 00:27:49 3.3K
Multiprocessing используем все ядра
7 months ago 00:08:43 1
095. Multiprocessing Python Pipe. Используем трубы для общения между процессами