Курс читал @eugenyk
Лекция 1:
- Введение в курс параллельного программирования
- Каким бывает параллелизм
- Межпоточное и межпроцессорное взаимодействие
- Закон Амдала
Лекция 2:
- Способы создания потока, их сравнение
- Завершение работы потока
- Механизм завершения потока в libc и Java
- Работа с примитивами синхронизации
- Классификация примитивов синхронизации: начало
Лекция 3:
- Kernel space и user space
- Класификация примитивов синхронизации: продолжение
Лекция 4:
- Классификация ошибок параллельного программирования
Лекция 5:
- Виды синхронизации
- Thread-local storage
Лекция 6:
- Поиск ошибки в многопоточном приложении
- Приближенное устройство современного процессора
- Коротко о volatile
Лекция 7:
- Барьеры памяти и модели памяти
- Проблема ABA
- Линеаризуемость
- Очередь Майкла-Скотта
Лекция 8:
- Lock-free и wait-free алгоритм снятия снэпшота
Лекция 9:
- Kernel-space RCU
- User-space RCU
- Flat combining
- Архитектура thread pool в Java
Лекция 10:
- Профилировка приложений
- LD preload
- Профилировка приложений: продолжение
Лекция 11:
- OpenMP
- TBB, аллокаторы, parallel pipeline
- Консенсус
Лекция 12:
- Асинхронный ввод-вывод
- Асинхронные серверы
Лекция 13:
- Транзакционная память
- MPI
Лекция 14:
- Организация параллельных вычислений
- Шаблон double-check
- JIT-оптимизации
OpenCL --- лекция 1:
- Обзор технологии
- Архитектура видеокарты
- Простые алгоритмы и паттерны
OpenCL --- лекция 2:
- Операция scan
- Битоническая сортировка
- Оптимизации
- Страница курса
- Статья о Flat combining
- Пост об устройстве профилировщиков
- Публикации на тему lock-free структур данных от разработчика libcds