Your AI powered learning assistant

2024-06-01 Параллельные и высокопроизводительные вычисления, лекция, весна 2024

Приближается к завершению курса Поскольку курс подходит к концу, остается только сегодняшняя сессия и еще одна. Заключительный экзамен запланирован на период с 10 по 14 июня, при этом места для записи доступны в основном вечером.

Исторический контекст используемых технологий Обсуждаемые технологии являются одновременно древними и актуальными по сей день. Они предлагают более высокий уровень абстракции, чем обычные инструменты многопоточного программирования.

Введение в библиотеку TBB Библиотека TBB (Threading Building Blocks) от Intel поддерживает параллельное программирование в соответствии с высокими стандартами качества, подходящими для коммерческого использования. Она активно разрабатывается с начала 2000-х годов и включает в себя различные функции, такие как примитивы синхронизации, шаблоны, параллельные структуры данных и т.д.

Объяснена концепция "кражи работы" в пулах потоков "Кража работы" позволяет незанятым потокам забирать задачи у занятых в рамках пула потоков без прямого контроля над созданием потоков или управлением ими со стороны пользователей; это обеспечивает эффективное распределение задач по всем потокам, автоматически создаваемым при запуске программы.

Детальный параллелизм в программировании В программировании гранулярный параллелизм предполагает назначение конкретных задач специализированным работникам, что сродни работе на сборочной линии. Такой подход повышает качество и сокращает время выполнения за счет использования специализации. Однако при этом возникают накладные расходы на координацию и оптимизацию задач.

"Данные против функциональной декомпозиции" "Функциональная декомпозиция" более сложна, чем "декомпозиция данных", и требует тщательного рассмотрения необходимых операций. Подходы, основанные на данных, часто доминируют из-за своей простоты, но функциональные методы могут дать лучшие результаты при определенных условиях.

Платформы параллельной обработки данных "Шаблоны параллельного программирования" (parallel programming templates) помогают структурировать задачи в управляемые блоки, такие как данные или функциональная декомпозиция. Эти фреймворки необходимы для оптимизации систем реального времени, таких как системы видеонаблюдения, которые эффективно обрабатывают непрерывные потоки данных.