Автор: Константин Туральчук
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Вам нравится? Нравится 43 студентам
Уровень:
Для всех
Длительность:
7:41:00
Студентов:
2195
Выпускников:
621
Курс предназначен для практического введения в параллельное программирование (ПП) и знакомства с основными возможностями ПП на платформе .NET 4.0
Курс включает общие теоретические сведения по дисциплине параллельное программирование в объеме необходимом для реализации эффективных параллельных приложений. Большая часть материала посвящена практическому знакомству с возможностями библиотеки TPL (Task Parallel Library). Все разделы иллюстрируются практическими примерами. Все конструкции и средства TPL закрепляются выполнением лабораторных работ.
Теги: c#, объектно-ориентированное программирование, разработка приложений, распараллеливание, системы программирования
Дополнительные курсы
- Параллельное программирование
- Теория и практика параллельных вычислений
- Параллельное программирование с использованием OpenMP
- Параллельное программирование с использованием технологии MPI
- Введение в методы параллельного программирования
- Основы параллельного программирования с использованием MPI
- Основы распараллеливания программ
- Основы параллельного программирования с использованием Visual Studio 2010
План занятий
Занятие
Заголовок <<
Дата изучения
Лекция 1
26 минут
Введение в параллельные вычисления
Архитектура ВС. Классификация вычислительных систем.
Пути достижения параллелизма.
Параллелизм на уровне команд, потоков, приложений.
Анализ эффективности параллельных вычислений. Закон Амдала.
Оглавление
-
Лекция 2
26 минут
Проблемы разработки параллельных приложений
Основными этапами разработки параллельных приложений являются: декомпозиция, выявление информационных зависимостей между подзадачами, масштабирование подзадач и балансировка нагрузки для каждого процессора.
Оглавление
-
Лекция 3
40 минут
Работа с потоками
Создание потоков, ожидания завершения потоков.
Пул потоков ThreadPool.
Оглавление
-
Самостоятельная работа 1
10 минут
Знакомство с многопоточной обработкой
Работа с потоками.
Оглавление
-
Лекция 4
41 минута
Средства синхронизации
Критическая секция. Конструкция Lock.
Атомарные операторы. Класс Interlocked
Семафоры. Semaphore и SemaphoreSlim
Классы Monitor и Mutex
Сообщения ManualResetEvent, AutoResetEvent
Классы SpinLock и SpinWait
Оглавление
-
Самостоятельная работа 2
12 минут
Поиск простых чисел
Применение средств синхронизации для организации взаимодействия потоков.
Оглавление
-
Лекция 5
13 минут
Конкурентные коллекции
Потокобезопасные коллекции пространства имен System.Collections.Concurrent
Оглавление
-
Самостоятельная работа 3
12 минут
Синхронизация доступа к одноэлементному буферу
Применение потокобезопасных структур данных в приложении
Оглавление
-
Лекция 6
20 минут
Работа с задачами
Основные возможности TPL: асинхронные задачи, императивный параллелизм, декларативный параллелизм
Работа с задачами. Вложенные задачи. Задачи-продолжения. Обработка исключений в задачах. Механизм отмены задач
Оглавление
-
Самостоятельная работа 4
13 минут
Синхронизация приоритетного доступа к многоэлементному буферу
Реализация параллельных вычислений с помощью задач.
Оглавление
-
Лекция 7
22 минуты
Шаблоны параллелизма Parallel
Параллельные циклы Parallel.For, Parallel.ForEach
Дополнительные возможности циклов: досрочный выход из цикла, пакетная обработка диапазонов, реализация агрегированных вычислений. Методы Parallel.Invoke для реализации алгоритмов Эразделяй-и-властвуй".
Оглавление
-
Самостоятельная работа 5
5 минут
Клеточная модель "Игра Жизнь" Дж.Конвея
Применение шаблонов Paralle.For, Parallel.Invoke.
Оглавление
-
Лекция 8
28 минут
Технология PLINQ
Параллелизм PLINQ-запросов. Анализ оптимальности. Вынужденный параллелизм.
Упорядочивание элементов в PLINQ-запросах
Разделение данных при выполнении PLINQ-запросов: разделение по диапазону, блочное разделение, хеш-секционирование.
Буферизация выполнения PLINQ-запросов.
Агрегированные вычисления с помощью PLINQ-запросов.
Оглавление
-
Самостоятельная работа 6
9 минут
Знакомство с "Визуализатором параллелизма" в Visual Studio 12
Реализация PLINQ-запросов.
Оглавление
-
Лекция 9
21 минута
Планировщик задач
Организация планировщика: глобальная очередь задач, локальные очереди рабочих потоков.
Стратегии планировщика: WorkStealing, Inlined threading, Inject threads
Опции задач: LongRunning, PreferFairness.
Оглавление
-
Лекция 10
28 минут
Типовые модели параллельных приложений
Шаблон MapReduce. Реализация с помощью PLINQ-запросов.
Шаблон Scan/Fold. Реализация с помощью Parallel.For.
Распараллеливание рекурсивных алгоритмов.
Оглавление
-