Чему вы научитесь
- Вы получите комплексное понимание многопроцессного программирования — от основ до архитектурных решений.
- Вы изучите стратегию выбора инструментов. Научитесь проводить анализ задачи и выбирать оптимальное решение для её реализации: Process, Pool, ProcessPoolExecutor или их комбинацию. Вы поймете фундаментальные различия и области применения модулей multiprocessing, concurrent.futures и threading в реальных проектах.
- Вы глубоко погрузитесь в процессы и межпроцессное взаимодействие. Освоите полный контроль над созданием, запуском и жизненным циклом процессов. Вы изучите все аспекты межпроцессного взаимодействия: от базовых механизмов с Value, Array и Queue до продвинутых тем, таких как работа с разделяемой памятью через ctypes и struct, а также организация сетевого взаимодействия между удалёнными процессами.
- Вы научитесь обеспечивать надежность и эффективность. Поймете и научитесь применять механизмы синхронизации, такие как Lock, Semaphore, Event и Barrier, для написания безопасного и предсказуемого кода. Вы освоите стратегии отладки и обработки исключений в параллельном коде. Вы научитесь оптимизировать потребление ресурсов, избегать утечек памяти и эффективно управлять числом процессов.
- Вы освоите логирование для многопроцессных приложений. Познакомитесь с библиотекой logging, после чего научитесь решать специфические проблемы логирования в параллельных программах. Вы поймете проблемы конкурентного доступа к файлам и особенности наследования логгеров в дочерних процессах. Вы реализуете надёжное и эффективное решение для записи логов из всех процессов в один общий файл с помощью обработчиков QueueHandler и QueueListener.
- Практика — ключ к успешному обучению! Вы закрепите каждую тему на практических задачах и домашних работах. Итогом курса станет реализация финального проекта по созданию системы для агрегации финансовых данных через API, где вы комплексно примените все изученные техники.
О курсе
Все о многопроцессном программировании на Python в теории и на практике от А до Я. Создание и управление процессами, работа с пулом процессов, межпроцессное взаимодействие. Курс полностью раскрывает тему процессной многозадачности. Победитель 🏆 Stepik Awards 2024 в номинации "Лучший платный курс".
Для кого этот курс
Курс будет полезен:
- любопытным учащимся, которые уже прошли базовые курсы по Python и хотят двигаться дальше;
- людям, знакомым с теорией многопроцессного программирования, но желающим закрепить её на практических задачах;
- студентам, прошедшим похожие курсы по этой теме, но оставшимся недовольными полным отсутствием заданий для закрепления материала. А, как известно, теория без практики быстро вылетает из головы;
- разработчикам, которым необходимо повысить производительность своих решений за счет распараллеливания вычислительных задач;
- специалистам в области машинного обучения. Многопроцессность позволяет повысить эффективность обучения и нередко используется в специализированных фреймворках. Например, в PyTorch используется модуль torch.multiprocessing.
Начальные требования
Теория и практические задачи курса написаны с расчетом того, что учащиеся знают базовый синтаксис языка python и прошли первую часть курса многозадачности в python, посвященную многопоточному программированию. Тогда курс будет пройти проще. Но если Вы не знакомы с многопоточным программированием - в некоторых уроках придется немного погуглить самостоятельно и, возможно, задать уточняющий вопрос в комментариях.
Преподаватели курса
Как проходит обучение
Обучение включает в себя:
- Теорию в виде текста, а также ссылки на материал для дополнительного самостоятельного изучения. Учащийся сам решает "как глубоко ему копать".
- Домашние задания для самостоятельной работы. Ведь самое лучшее усвоение знаний происходит при самостоятельной исследовательской работе.
- Практические уроки в виде задач с автоматической проверкой кода-решения и различных опросников и угадаек.
- Поддержку преподавателя, некоторые сложные задачи решаются авторским рецензированием.
- Итоговый учебный проект позволяющий применить новые полученные знания в условиях работы с реальными сервисами на реальных данных.
Сертификат
Успешно завершив курс, вы получите сертификат от платформы Stepik. Уже 111 учеников получили сертификат.
Что вы получите
- Вы получаете возможность закрепить полученную теорию применения библиотек multiprocessing, concurrent.futures, ctypes, struct, array на практических учебных задачах, набить руку.
- Курс даст и укрепит необходимую базу и подготовит Вас к дальнейшему профессиональному созданию сложных многозадачных решений с использованием многопроцессности.