Параллельное программирование.
Вопросы к экзамену
- Параллельное программное и аппаратное обеспечение. Классификация Флинна.
- Ускорение и эффективность. Закон Амдала. Масштабируемость параллельных программ.
- Технология MPI. Компиляция и запуск программ MPI. Коммуникаторы. Отправка и получение сообщений.
- Коллективная коммуникация в MPI. Производные типы данных MPI.
- Анализ быстродействия MPI-программ. Замер времени. Ускорение и эффективность. Масштабируемость.
- Технология OpenMP. Параллельные и последовательные области. Директивы parallel, single, master.
- Технология OpenMP. Параллельные циклы. Параллельные секции. Директива workshare. Задачи (tasks).
- Синхронизация в OpenMP. Барьер. Директива ordered. Критические секции. Директива atomic. Замки. Директива flush.
- Параллельная сортировка "пузырьком". Параллельная сортировка чет-нечет.
- Параллельная сортировка слиянием (merge sort).
- Параллельная битонная сортировка (bitonic sort).
- Распределенные файловые системы.
- Парадигма MapReduce. Группировка по ключу. Комбайнеры. Разрешение отказов узлов.
- Алгоритмы, использующие MapReduce. Умножение матрицы на вектор с использованием MapReduce.
- Умножение матриц в MapReduce: одношаговый и двухшаговый алгоритмы.
- Операции реляционной алгебры в MapReduce: выбор, проекция, объединение, пересечение, разность, естественное соединение.
- Операции реляционной алгебры в MapReduce: группировка и агрегирование.
- Ограничения и недостатки MapReduce. Расширения MapReduce.
- Apache Spark. RDD. Преобразования и действия (transformations and actions). Кэширование.
parallel