Лекция 28: Стандартная модель выполнения C++ (МФТИ, 2025–2026)
Лекции для магистрантов МФТИ по современному C++ на английском языке. Кафедра микропроцессорных технологий. Заключительная лекция курса C++ для магистрантов посвящена std::execution, новой модели выполнения, появившейся в C++26. Мы начнем с уже знакомых механизмов: параллельных алгоритмов в стандартной библиотеке, ручного запуска потоков и std::async. На примере параллельного редукции мы увидим, почему эти инструменты быстро становятся недостаточными, когда нам нужно не просто запустить несколько потоков, а структурированно описать и скомпоновать вычисления. После этого мы перейдем к отправителям/получателям: что означают планировщик, отправитель, получатель и состояние операции, как работают адаптеры и как вычисление может перемещаться между различными ресурсами выполнения. Мы свяжем эту тему с миром GPGPU через пакетные вычисления, рассмотрим рекурсивное асинхронное создание задач с областями выполнения и обсудим различные способы завершения вычислений. В заключение мы поговорим о связи между std::execution и сопрограммами, об отмене задач через окружение и еще раз соберем воедино всю картину: как C++26 предлагает описывать асинхронное и параллельное выполнение без ручного управления потоками на каждом шаге. 00:00 Введение. Параллельные алгоритмы в стандартной библиотеке. 03:30 Написание собственного параллельного reduce. 10:05 std::async и его тонкости. Измерения. 16:50 Унифицированная абстракция выполнения. Основы std::execution в C++26. 26:59 Концепция отправителя и адаптеры. 35:00 Монодическая природа вычислений и let_value. 40:16 Адаптер bulk: снова в мир GPGPU. 46:05 Параллельное reduce с std::execution. 49:40 Области выполнения: динамическое создание задач. Параллельная сортировка. 54:41 Каналы в отправителе. Поведение upon_error и upon_stopped. Сигнатуры завершения. 01:02:19 Проверка сигнатур завершения: упражнение по метапрограммированию и рефлексии. 01:06:50 Связь между отправителями и сопрограммами: execution::task. 01:14:40 Многопоточная подписка и отмена задач. 01:18:47 Основные понятия, ссылки и заключение. Лектор: Константин Владимиров. Дата лекции: 29 апреля 2026 г. Помощники в съемке: Анастасия Черникова, Владислав Белов. Предыдущая лекция: https://www.youtube.com/watch?v=Ebj21eXDRDY Следующей лекции нет, это последняя. Слайды ко всем лекциям: https://sourceforge.net/projects/cpp-lects-rus/files/cpp-postgraduate-2025-26 Примеры кода ко всем лекциям: https://github.com/tilir/cpp-masters Ошибки: Пока пусто.
Название:
Лекция 28: Стандартная модель выполнения C++ (МФТИ, 2025–2026)
Категория:
Разное