Параллельное программирование. Вопросы к экзамену

  1. Параллельное программное и аппаратное обеспечение. Классификация Флинна.
  2. Ускорение и эффективность. Закон Амдала. Масштабируемость параллельных программ.
  3. Технология MPI. Компиляция и запуск программ MPI. Коммуникаторы. Отправка и получение сообщений.
  4. Коллективная коммуникация в MPI. Производные типы данных MPI.
  5. Анализ быстродействия MPI-программ. Замер времени. Ускорение и эффективность. Масштабируемость.
  6. Технология OpenMP. Параллельные и последовательные области. Директивы parallel, single, master.
  7. Технология OpenMP. Параллельные циклы. Параллельные секции. Директива workshare. Задачи (tasks).
  8. Синхронизация в OpenMP. Барьер. Директива ordered. Критические секции. Директива atomic. Замки. Директива flush.
  9. Параллельная сортировка "пузырьком". Параллельная сортировка чет-нечет.
  10. Параллельная сортировка слиянием (merge sort).
  11. Параллельная битонная сортировка (bitonic sort).
  12. Распределенные файловые системы.
  13. Парадигма MapReduce. Группировка по ключу. Комбайнеры. Разрешение отказов узлов.
  14. Алгоритмы, использующие MapReduce. Умножение матрицы на вектор с использованием MapReduce.
  15. Умножение матриц в MapReduce: одношаговый и двухшаговый алгоритмы.
  16. Операции реляционной алгебры в MapReduce: выбор, проекция, объединение, пересечение, разность, естественное соединение.
  17. Операции реляционной алгебры в MapReduce: группировка и агрегирование.
  18. Ограничения и недостатки MapReduce. Расширения MapReduce.
  19. Apache Spark. RDD. Преобразования и действия (transformations and actions). Кэширование.

parallel