Данный курс не претендует на полное описание всего материала в рамках данной предметной области. Его цель — познакомить людей, котрые не являются профессиональными программистами, с основами параллельного программирования и современными вычислительными архитектурами. Данный курс призван дать толчек тем, кто работает на стыке биологии/генетики и информатики, с тем, чтобы они могли заново посмотреть на свои программы, алгоритмы и увидеть возможности использования мощных вычислительных ресурсов для решения своих задач.
Слайды лекций
- Введение. Параллельные программы как расширение последовательных. (Слайды в pdf — eng) (Слайды в pdf — rus) (Текст в pdf)
- Знакомство с OpenMP (Слайды в pdf — eng) (Слайды в pdf — rus) (Текст в pdf)
- Введение в POSIX Threads (Слайды в pdf — eng) (Слайды в pdf — rus) (Примечания в pdf)
- Введение в MPI (Слайды в pdf — rus) (Текст в pdf)
- Отладка MPI программ (Слайды в pdf — rus) (Примечания в pdf)
- Введение в CUDA (Слайды в pdf — rus) (Текст в pdf)
- Профилирование приложений (Слайды в pdf — rus) (Примечания в pdf)
- Оптимизация программ (Слайды в pdf — eng) (Слайды в pdf — rus) (Текст в pdf)
Задания
- OpenMP
- Подсчет частоты встречаемости символов в строках
- Фильтрация изображений
- POSIX Threads
- Подсчет частоты встречаемости символов в строках
- Фильтрация изображений
- MPI
- Пересылка данных в топологии кольцо
- Балансировка нагрузки в модели Master-Slave
- Конструирование и передача собственных типов данных
- Фильтрация изображений
- Перемножение матрицы на вектор
- CUDA
- Поэлементное перемножение двух массивов
- Фильтрация изображений (глобальная память)
- Фильтрация изображений (разделяемая память)
- Фильтрация изображений (текстуры)
- Подсчет частоты встречаемости символов в строках
- Фильтрация изображений на нескольких GPU