SoftCraft
разноликое программирование

Top.Mail.Ru

Архитектура параллельных вычислительных систем. Многопоточность


Начальная страница курса

Содержание лекции


  1. Определения
  2. Библиотека POSIX Threads
  3. Печать символов с использованием потоков (C-стиль)
  4. sum(a[i]^2) – непосредственный возврат результата
  5. sum(a[i]^2) – возврат результата через аргумент
  6. Обертка из классов над pthread
  7. Многопоточность в C++
  8. sum(a[i]^2) – C++: использование
  9. Модели многопоточных приложений
  10. Механизмы синхронизации. Мьютексы
  11. Механизмы синхронизации. Семафоры
  12. Задача о кольцевом буфере
  13. Условные переменные
  14. Блокировки чтения-записи
  15. Читатели-писатели с общим одномерным массивом
  16. Барьеры
  17. Open Multi-Processing (OpenMP)
  18. OpenMP. Простейшая программа
  19. OpenMP. Применение критических секций
  20. OpenMP. Использование свертки и распараллеливания циклов


Видеозапись лекций и семинаров


Примеры использования pthread

  1. Pthread. Простое многопоточное приложение

  2. Pthread. Прямое использование для нахождения суммы квадратов элементов массива

  3. Pthread. Использование указателя на аргумент для возврата результата вычислений суммы квадратов элементов массива

  4. Pthread. Простейшая обертка из классов над библиотекой потоков

  5. Thread. Использование стандартной библиотеки C++ для вычисления суммы квадратов элементов массива

  6. Phread. Перемножение матриц. Начальная постановка задачи

  7. Phread + Мьютексы. Перемножение матриц. Добавление мьютексов для синхронизации очереди вывода данных

  8. Phread + Семафоры. Задача о кольцевом буфере. Использование семафоров для синхронизации потоков

  9. Phread + Условные переменные. Задача о кольцевом буфере. Использование условных переменных для синхронизации потоков

  10. Phread + Блокировки. Читатели-писатели с общим одномерным массивом. Использование блокировок

  11. Phread + Барьеры. Использование барьеров для синхронизации данных


Примеры использования OpenMP

  1. OpenMP. Многопоточный вывод "Hello World"

  2. OpenMP. Использование критической секции. Шаг 1

  3. OpenMP. Использование критической секции. Шаг 2

  4. https://youtu.be/K9tmIeqNclI

    OpenMP. Использование критической секции. Шаг 3

  5. OpenMP. Вычисление интеграла с использованием редукции


Используемые источники информации

  1. Уильямс Энтони. C++. Практика многопоточного программирования. — СПб.: Питер, 2020. — 640 с.
  2. Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. - М.: Издательский дом "Вильямс", 2003.
  3. Википедия. Многопоточность
  4. Википедия. Поток выполнения
  5. Википедия. Процесс (информатика)
  6. Википедия. POSIX Threads

Начальная страница курса