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

План занятий

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