Введение в параллельное программирование

Данный курс не претендует на полное описание всего материала в рамках данной предметной области. Его цель — познакомить людей, котрые не являются профессиональными программистами, с основами параллельного программирования и современными вычислительными архитектурами. Данный курс призван дать толчек тем, кто работает на стыке биологии/генетики и информатики, с тем, чтобы они могли заново посмотреть на свои программы, алгоритмы и увидеть возможности использования мощных вычислительных ресурсов для решения своих задач.

Слайды лекций

Задания

  • OpenMP
    1. Подсчет частоты встречаемости символов в строках
    2. Фильтрация изображений
  • POSIX Threads
    1. Подсчет частоты встречаемости символов в строках
    2. Фильтрация изображений
  • MPI
    1. Пересылка данных в топологии кольцо
    2. Балансировка нагрузки в модели Master-Slave
    3. Конструирование и передача собственных типов данных
    4. Фильтрация изображений
    5. Перемножение матрицы на вектор
  • CUDA
    1. Поэлементное перемножение двух массивов
    2. Фильтрация изображений (глобальная память)
    3. Фильтрация изображений (разделяемая память)
    4. Фильтрация изображений (текстуры)
    5. Подсчет частоты встречаемости символов в строках
    6. Фильтрация изображений на нескольких GPU