Бакалавриат
2022/2023
Распределенные вычисления (Технологии IoT)
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Когда читается:
4-й курс, 3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Пеплин Федор Сергеевич
Язык:
русский
Кредиты:
4
Контактные часы:
44
Программа дисциплины
Аннотация
Целью освоения дисциплины «Распределённые вычисления» является знакомство с параллельными и распределенными вычислениями, различными классами высокопроизводительных систем, принципами реализации параллельных алгоритмов и используемыми моделями программирования, а также получение навыков практического использования соответствующих технологий и систем при решении прикладных задач.
Цель освоения дисциплины
- Формирование представлений об основных понятиях в области высокопроизводительных вычислений и выработка навыков создания программ для систем с распределенной и общей памятью
Планируемые результаты обучения
- Давать характеристику основным типам параллельных систем
- Различать понятия параллельных, распределенных и одновременных вычислений.
- Оценивать эффективность и ускорение параллельных программ
- Формулировать основные принципы архитектуры систем с общей и распределенной паиятью
- Находить ширину бисекции основных типов интерконнектов
- Разрабатывать программы для систем с общей памятью с использованием библиотек pthreads и OpenMP.
- Применять мьютексы и семафоры для предотвращения состояния гонки вследствие использования общих ресурсов, выявлять ошибки в коде вследствие использования потоконебезопасных функций
- Оценивать влияние кэш-эффектов на производительность параллельных программ
- Разрабатывать программы для MIMD систем с распределенной памятью с использованием библиотеки MPI.
- Обеспечивать барьерную синхронизацию потоков с использованием мьютексов, холостых циклов и семафоров
- Использовать команды для point-to-point и коллективной коммуникации между процессами, а также команды распределения данных (scatter, gather)
- Уменьшать количество отправляемых сообщений с помощью производных типов данных
- Описывать архитектуру и формулировать основные принципы работы GP GPU NVIDIA
- Создавать программы для гетерогенных систем с использованием CUDA и DPC++.
Содержание учебной дисциплины
- Общие сведения о параллельных и распределенных вычислительных системах
- Средства разработки параллельных программ для систем с общей памятью
- Средства разработки программ для систем с распределенной памятью на примере MPI
- Средства разработки гетерогенных систем
Элементы контроля
- Задача N тел
- Умножение матриц
- Параллельные алгоритмы решения СЛАУ
- Параллельные и распределенные вычисления
- Программирование систем с общей памятью
- Программирование систем с распределенной памятью (MPI)
- Гибридные системы
- Итоговый тест
Промежуточная аттестация
- 2022/2023 учебный год 3 модуль0.05 * Параллельные и распределенные вычисления + 0.05 * Гибридные системы + 0.167 * Параллельные алгоритмы решения СЛАУ + 0.166 * Задача N тел + 0.3 * Итоговый тест + 0.167 * Умножение матриц + 0.05 * Программирование систем с общей памятью + 0.05 * Программирование систем с распределенной памятью (MPI)
Список литературы
Рекомендуемая основная литература
- Cloud computing, Ruparelia, N. B., 2016
- Распределенные алгоритмы : интуитивный подход, Фоккинк, У., 2017
- Распределенные системы : принципы и парадигмы, 877 с., Таненбаум, Э., Стеен, М., 2003
- Теория и практика параллельных вычислений : учебное пособие, Гергель, В. П., 2007
Рекомендуемая дополнительная литература
- Data analysis in the cloud : models, techniques and applications, Talia, D., 2016
- Операционные системы. Т.2: Распределенные системы, сети, безопасность, Дейтел, Х. М., 2007
- Распределенные данные : алгоритмы работы современных систем хранения информации, Петров, А., 2022