Параллельные вычислительные технологии (ПВТ)
Весенний семестр 2024
17 лекций, 17 практических занятий, зачет
- Telegram: https://t.me/+4IHnCsXICt85NmRi
- Дзен Видео
- Youtube: PCT-Spring-2023
Зачет
Материалы лекций
- Лекция 1. Многопроцессорные вычислительные системы с общей памятью
- Лекция 2. Оптимизация работы с кеш-памятью процессора
- Лекция 3. Оптимизация ветвлений и размещения кода
- Лекция 4. Многопоточное программирование: POSIX Threads
- Лекция 5. Базовые понятия OpenMP. Умножение матрицы на вектор (DGEMV)
- Лекция 6. OpenMP. Численное интегрирование
- Лекция 7. OpenMP. Метод Гаусса
- Лекция 8. OpenMP. Параллельные сеточные вычисления (Heat2D)
- Лекция 9. OpenMP. Гравитационная задача N (NBody)
- Лекция 10. OpenMP. Параллелизм задач (task parallelism)
Практические работы
Лабораторные работы выполняются в операционной системе GNU/Linux на языках программирования C, C++.
Для выполнения и защиты работ установлены крайние сроки. После наступления крайнего срока работа не принимается. Должникам на пересдаче будут выданы новые задания на практику.
- Практическая работа 0. Cбор информации о параметрах системы, графики Download
- Практическая работа 1. Оптимизация доступа к памяти, циклов и ветвлений // 08.03.2024
- Практическая работа 2. Умножение матрицы на вектор (DGEMV) // срок сдачи – 29.03.2024
- Практическая работа 3. Численное интегрирование // срок сдачи – 19.04.2024
- Практическая работа 4. Гравитационная задача N тел (N-Body) // срок сдачи – 17.05.2024
- Практическая работа 5. Параллелизм задач (task parallelism) // срок сдачи – 31.05.2024
Материалы по курсу
Оптимизация кода
- Denis Bakhvalov. Performance Analysis and Tuning on Modern CPUs: Squeeze the last bit of performance from your application, 2020
- Кевин Смит, Ричард Гербер, Арт Бик. Оптимизация ПО. Сборник рецептов, 2010
- Agner Fog // https://www.agner.org/optimize/
Параллельные вычисления
- Эндрюс Г. Основы многопоточного, параллельного и распределенного программирования. - М.: Вильямс, 2003.
- Расс Миллер, Лоренс Боксер. Последовательные и параллельные алгоритмы. - М.: Бином, 2009
Многопоточное программирование
- Уильямс Э. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ. - М.: ДМК Пресс, 2012.
- Шамим Эхтер, Джейсон Робертс. Многоядерное программирование. - СПб.: Питер, 2010.
- Maurice Herlihy, Nir Shavit. The Art of Multiprocessor Programming, Morgan Kaufmann, 2012
OpenMP
- OpenMP // http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf
- Антонов А.С. Технологии параллельного программирования MPI и OpenMP. - М.: МГУ, 2012
Архитектура вычислительных систем
- Хорошевский В.Г. Архитектура вычислительных систем. - М.: МГТУ им. Н. Э. Баумана, 2008.
- Столлингс В. Структурная организация и архитектура компьютерных систем. - М.: Вильямс, 2002
- John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach, 5 ed., Morgan Kaufmann, 2011
- Randal E. Bryant, David R. O’Hallaron. Computer Systems: A Programmer’s Perspective. - Addison-Wesley, 2010