неділю, 20 травня 2012 р.

Видеолекции курса Параллельное программирование

Видеолекции курса Параллельное программирование.

Лектор: Евгений Калишенко.


Лекция 1. Введение.

  1. Мотивация к применению параллельных вычислений
  2. Закон Амдала
  3. Обзор технологий || программирования: posix threads, Java threads, boost threads, OpenMP, Intel TBB, Java.util.concurrent
  4. Общий взгляд на высокопроизводительные системы начиная от расширений SSE, через многоядерность к узлам кластеров


Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Лекция 2. Параллелизм.

  1. Отличия процессов и потоков
  2. Необходимость синхронизации: гонки данных
  3. Приоритеты потоков
  4. Примитивы синхронизации POSIX: мьютексы, условные переменные


Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Лекция 3. Основы программирования потоков.

  1. Boost-потоки
  2. Корректное завершение потоков: cancellation points, InterruptedException
  3. Сравнение синтаксиса: POSIX, Boost, Java
  4. Реализация примитивов синхронизации: алгоритмы Петерсона и Лампорта

Посмотреть видео на сайте Лекториума


Дополнительные материалы
Скачать: Использовались материалы Романа Елизарова


Лекция 4. Синхронизация.

  1. Корректный захват и освобождение примитивов через замки (locks)
  2. Атомики, Read/Write мьютексы: когда нужно использовать, а когда излишне
  3. Ограничения на реализацию потокобезопасных контейнеров
  4. Альтернативный подход: Software transactional memory

Посмотреть видео на сайте Лекториума


Дополнительные материалы
Скачать: Использовались материалы Романа Елизарова


Лекция 5. Виды синхронизации.

  1. Разные виды мьютексов
  2. CAS-операции: реализация AtomicInteger, futex
  3. Виды алгоритмов реализации потокобезопасных контейнеров

Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Лекция 6. Поиск ошибок и анализ производительности. OpenMP.

  1. Средства профилирования и поиска ошибок: valgrind
  2. Сложные ошибки синхронизации: fork в || приложениях, публикация стековых данных, ABA
  3. Стандарт OpenMP

Посмотреть видео на сайте Лекториума


Дополнительные материалы
Скачать: Презентация (использовались материалы Сергея Киреева, ИВМиМГ СО РАН)


Лекция 7. Intel TBB и java.util.concurrent.

  1. Обзор Intel TBB: алгоритмы, аллокаторы, деревья задач, планирование
  2. TLS (Thread Local Storage)
  3. Обзор Java.util.concurrent: пулы потоков

Посмотреть видео на сайте Лекториума


Дополнительные материалы
Скачать: Презентация (использовались официальные материалы Intel)


Лекция 8. Кластеры и стандарт MPI.

  1. Виды архитектур: монолитные, клиент-сервер, трёхзвенные
  2. Классификация кластеров
  3. Обзор стандарта MPI: средства запуска приложений, обмена сообщения, редукции по данным

Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Лекция 9. Параллельные реализации алгоритмов.

  1. Принципы || программирования в задачах
  2. Сети Петри
  3. Библиотеки || реализаций: Parallel boost graph, parallel STL
  4. Основные ошибки 1 домашнего задания

Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Лекция 10. Оптимизация в компиляторах.

  1. Простые оптимизации: подстановка констант, inline, удаление проверок, объединение смежных доступов к памяти, регистровая аллокация
  2. Оптимизации циклов: расщепление, развёртывание, вынос инварианта, размыкание
  3. Многопоточные оптимизации: адаптивные блокировки, исключение блокировок, слияние блокировок
  4. Другие: частотный анализ, анализ внешних эффектов, SSA

Посмотреть видео на сайте Лекториума




Лекция 11. Вычисления на GPU.

  1. Вычислительные устройства: CPU, MIC, GPU
  2. Стандарты: Brook+, CUDA, OpenCL
  3. Миграция вычислений

Посмотреть видео на сайте Лекториума


Дополнительные материалы

Скачать: Презентация


Дополнительные материалы:
Сайт курса.
Видеолекции курса Параллельное программирование (2014).
Видеолекции курса Архитектура ЭВМ и основы ОС (2013).
Курс Параллельное программирование в ЗНУ. Лектор: Бувайло Дмитрий Павлович.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments