Опубликована: 29.03.2013 | Уровень: для всех | Стоимость: 3000.00 руб. | Длительность: 14 дней
Курс предназначен для практического введения в параллельное программирование (ПП) и знакомства с основными возможностями ПП на платформе .NET 4.0
Курс включает общие теоретические сведения по дисциплине параллельное программирование в объеме необходимом для реализации эффективных параллельных приложений. Большая часть материала посвящена практическому знакомству с возможностями библиотеки TPL (Task Parallel Library). Все разделы иллюстрируются практическими примерами. Все конструкции и средства TPL закрепляются выполнением лабораторных работ.

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
26 минут
-
Лекция 2
26 минут
Проблемы разработки параллельных приложений
Основными этапами разработки параллельных приложений являются: декомпозиция, выявление информационных зависимостей между подзадачами, масштабирование подзадач и балансировка нагрузки для каждого процессора.
-
Тест 1
18 минут
-
Лекция 3
40 минут
-
Тест 2
18 минут
-
Самостоятельная работа 1
10 минут
-
Лекция 4
41 минута
Средства синхронизации
Критическая секция. Конструкция Lock. Атомарные операторы. Класс Interlocked Семафоры. Semaphore и SemaphoreSlim Классы Monitor и Mutex Сообщения ManualResetEvent, AutoResetEvent Классы SpinLock и SpinWait
-
Самостоятельная работа 2
12 минут
-
Лекция 5
13 минут
-
Тест 3
24 минуты
-
Самостоятельная работа 3
12 минут
Синхронизация доступа к одноэлементному буферу
Применение потокобезопасных структур данных в приложении
-
Лекция 6
20 минут
Работа с задачами
Основные возможности TPL: асинхронные задачи, императивный параллелизм, декларативный параллелизм Работа с задачами. Вложенные задачи. Задачи-продолжения. Обработка исключений в задачах. Механизм отмены задач
-
Тест 4
18 минут
-
Самостоятельная работа 4
13 минут
-
Лекция 7
22 минуты
Шаблоны параллелизма Parallel
Параллельные циклы Parallel.For, Parallel.ForEach Дополнительные возможности циклов: досрочный выход из цикла, пакетная обработка диапазонов, реализация агрегированных вычислений. Методы Parallel.Invoke для реализации алгоритмов Эразделяй-и-властвуй".
-
Тест 5
18 минут
-
Самостоятельная работа 5
5 минут
-
Лекция 8
28 минут
Технология PLINQ
Параллелизм PLINQ-запросов. Анализ оптимальности. Вынужденный параллелизм. Упорядочивание элементов в PLINQ-запросах Разделение данных при выполнении PLINQ-запросов: разделение по диапазону, блочное разделение, хеш-секционирование. Буферизация выполнения PLINQ-запросов. Агрегированные вычисления с помощью PLINQ-запросов.
-
Тест 6
18 минут
-
Самостоятельная работа 6
9 минут
-
Лекция 9
21 минута
Планировщик задач
Организация планировщика: глобальная очередь задач, локальные очереди рабочих потоков. Стратегии планировщика: WorkStealing, Inlined threading, Inject threads Опции задач: LongRunning, PreferFairness.
-
Лекция 10
28 минут
Типовые модели параллельных приложений
Шаблон MapReduce. Реализация с помощью PLINQ-запросов. Шаблон Scan/Fold. Реализация с помощью Parallel.For. Распараллеливание рекурсивных алгоритмов.
-
Тест 7
21 минута
-
5 часов
-