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

Общая информация
ЛекторЕ. Л. Калишенко
Семестрвесна 2014
Дата начала16.02.2014
Количество пар13
Язык курсарусский
Анонсы
Объявление для печати
Встреча на сайте T&Phttp://theoryandpractice.ru/courses/16873-parallelnoe-programmirovanie
Анонс habrahabr.ruhttp://habrahabr.ru/events/4222/
Аннотация

В курсе будет рассказано про

  • многопоточное программирование на примере
    • С++: POSIX threads, Boost, OpenMP, Intel TBB и
    • Java: threads, java.util.concurrent, Fork/Join framewok
  • теорию параллельных вычислений: алгоритмы консенсуса, атомарные регистры, lock-free и wait-free алгоритмы, шаблоны || программирования
  • вычислительные кластеры (на примере MPI)
  • другие способы повышения производительности (транзакционная память, асинхронный ввод/вывод...)

google-проект курса с репозиторием и wiki: http://code.google.com/p/hpcource
Домашние задания: http://code.google.com/p/hpcource/wiki/Tasks_CS_Center

Лекции Подсказка: слайды, видеозапись и другие материалы лекции доступны со страницы лекции, попасть на которую можно, нажав на её название.

1. Введение
(16.02.2014 - 13:00 - 14:35)

  • Тенденции развития вычислительных систем
  • Классификация параллельных систем (SIMD, MISD..., SMP, MPP)
  • Современные высокопроизводительные системы: начиная от расширений SSE, через многоядерность к узлам кластеров
  • План курса
https://www.youtube.com/watch?v=jog9chgDbYM
2. Корректная работа с потоками
(02.03.2014 - 13:00 - 14:35)

  • Механизм запуска потока
  • Корректное завершение потоков
  • Сравнение различных потоков (POSIX, boost, java)
  • Обработка исключений
https://www.youtube.com/watch?v=XgQ3BYfprkk
3. Примитивы синхронизации
(09.03.2014 - 13:00 - 14:35)

  • Необходимость синхронизации: гонки данных
  • Реализация примитивов синхронизации: алгоритмы Петерсона и Лампорта
  • Виды мьютексов: рекурсивные/нерекурсивные, читатели/писатели...
  • Корректные захват/освобождение примитивов
  • CAS-операции и атомики
http://www.youtube.com/embed/VUiX_QaHXys
4. Примитивы синхронизации - 2
(09.03.2014 - 15:35 - 17:10)

  • Condition variables: использование wait/notify
  • Алгоритмы синхронизации: грубая, тонкая
http://www.youtube.com/embed/KfcQJzusTps
5. Алгоритмы синхронизации
(16.03.2014 - 15:35 - 17:10)

  • Алгоритмы синхронизации: оптимистичная, неблокирующая
  • Классы алгоритмов: lock-free, wait-free
  • Пулы потоков
http://www.youtube.com/embed/JuntSTqmro8
6. Ошибки || программирования
(23.03.2014 - 15:35 - 17:10)

  • Гонки данных (Data Race)
  • Взаимная блокировка (Deadlock)
  • Блокировки при fork многопоточных программ
  • Инверсия приоритетов
http://www.youtube.com/embed/TD8W2lwfLzA
7. Атомарные снимки регистров
(06.04.2014 - 13:00 - 14:35)

  • SWMR-регистры
  • Lock-free snapshot
  • Wait-free snapshot
http://www.youtube.com/embed/zzniwBy0Hlc
8. OpenMP и Intel TBB
(06.04.2014 - 15:35 - 17:10)

  • Обзор OpenMP: параллельные секции, области видимости переменных, ограничения
  • Обзор Intel TBB: алгоритмы, аллокаторы, деревья задач, планирование
http://www.youtube.com/embed/YjwoQt4HX2Q
9. Шаблоны || программирования
(13.04.2014 - 15:35 - 17:10)

  • Структурные шаблоны
    1. Декомпозиция по задачам
    2. Геометрическая декомпозиция
    3. Recursive Data
    4. Pipeline
  • Некоторые программные структуры
    1. Parallel loops
    2. Boss/Worker
  • Разное
    1. Double check
    2. Local Serializer
http://www.youtube.com/embed/2jj1iO1mfUk
10. Кластерные вычисления
(20.04.2014 - 13:00 - 14:35)

  • История и назначение стандарта
  • Обмен сообщениями
    1. С блокировкой
    2. Без блокировки
    3. Отложенные запросы на взаимодействие
    4. Тупиковые ситуации (deadlock)
  • Взаимодействие процессов
    1. Группы и коммуникаторы
    2. Операции коллективного взаимодействия процессов
    3. Редукция
    4. Виртуальные топологии
  • Средства анализа производительности
http://www.youtube.com/embed/nA6u0RK991o
11. Map/Reduce - теория и практика
(27.04.2014 - 13:00 - 14:35)

  • Идея Map/Reduce
  • Hadoop
    1. Обзор архитектуры
    2. Примеры задач
    3. Детали реализации
    4. Популярные расширения
  • Другие реализации M/R: достоинства и недостатки
    1. Проблемы Hadoop
    2. Spark
    3. Disco
  • Дополнительно
    1. Что не надо использовать для построения M/R приложений
    2. Отказоустойчивость M/R приложений
http://www.youtube.com/embed/u6iqW2Q3dwo
12. Консенсус. Сети Петри
(11.05.2014 - 11:15 - 12:50)

  • Консенсус
    1. Консенсусное число RMW-регистров
    2. Универсальность CAS-операций
  • Верификация || программ (сети Петри)
http://www.youtube.com/embed/K3iL1jOu5FU
13. Транзакционная память. Асинхронный ввод/вывод
(11.05.2014 - 13:00 - 14:35)

  • Транзакционая память
    1. Software transactional memory
    2. Hardware transactional memory
    3. Пример на протоколе MESI
    4. Немного о барьерах (store/load)
  • Асинхронный ввод/вывод
    1. Блокирующий/неблокирующий
    2. Синхронный (реактор)/асинхронный (проактор)
http://www.youtube.com/embed/X1slqbb4V10
Ваша оценка: Пусто Средняя: 4.8 (25 votes)
Share |
Евгений Калишенко
Евгений Калишенко и студенты