Information

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

План занятий

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