Опубликована: 05.04.2011 | Уровень: для всех | Стоимость: 990.00 руб. | Длительность: 14 дней
Данный учебный курс ориентирован на изучение и практическое применение современных высокоуровневых средств параллельного программирования для многоядерных процессоров - библиотеки Microsoft Parallel FX и языка программирования MC#. Использование таких средств, с промышленной точки зрения, резко повышает производительность и продуктивность работы программистов и позволяет привлечь к регулярному параллельному программированию значительно большее число программистов, а с образовательной точки зрения, дает возможность их успешно изучать и осваивать студентам вузов, начиная со 2-го курса.
Основная концепция предлагаемого учебного курса заключается в переходе к изучению высокоуровневых средств программирования в качестве основных инструментов параллельного программирования. Рассматриваются два таких средства, базирующиеся на языке С#: Microsoft Parallel Extensions for .NET (библиотеки TPL и PLINQ); язык программирования MC# (www.mcsharp.net). В качестве практических заданий на параллелизацию будут использоваться хорошо известные задачи, такие как сортировка, задачи линейной алгебры, метод статистических испытаний Монте-Карло, рендеринг изображений на основе трассировки лучей, поиск в Интернет, алгоритм Смита-Уотермена сравнения биологических последовательностей и др.Также, в качестве заданий, студентам будут предлагаться задачи конкурса Intel Threading Challenge.
Цель: Освоить и научить практически применять высокоуровневые средства параллельного программирования – библиотеку Microsoft Parallel Extensions to the .NET Framework и язык программирования MC#.

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
28 минут
Введение в библиотеку Microsoft Parallel Extensions to the .Net Framework
В этой лекции рассматриваются основные понятия и определения библиотеки Microsoft Parallel Extensions, а также рассмотрены вопросы производительности при ее использовании.
Оглавление
    -
    Лекция 2
    17 минут
    Конструкция Parallel.For
    В этой лекции рассматривается реализация базовых элементов библиотеки Parallel.For и Parallel.Foreach.
    Оглавление
      -
      Лекция 3
      12 минут
      Планирование исполнения процессов
      В лекции рассматриваются вопросы планирования исполнения задач применительно к многопроцессорным вычислительным системам.
      Оглавление
        -
        Лекция 4
        15 минут
        Конструкция Parallel.Invoke
        В лекции рассматривается еще один способ распараллеливания процессов - Parallel.Invoke, а также описаны проблемы при реализации параллельной обработки бинарных деревьев.
        Оглавление
          -
          Тест 1
          36 минут
          -
          Лекция 5
          34 минуты
          Программирование с использованием Task Parallel Library (TPL)
          В этой лекции рассматривается один из уровней библиотеки PFX - программирование на уровне задач (TPL). Во второй части лекции показана практическая реализация параллелизма в рекурсивных функциях.
          Оглавление
            -
            Лекция 6
            46 минут
            Класс System.Threading.Tasks.Future и координирующие структуры данных
            В лекции описано использование высокоуровневых примитивов синхронизации процессов, а также рассмотрена асинхронная модель программирования с использованием объектов класса Future<T>.
            Оглавление
              -
              Лекция 7
              29 минут
              Введение в PLINQ
              В лекции рассматривается параллельный интегрированный язык запросов и его отличия от его классической реализации.
              Оглавление
                -
                Лекция 8
                21 минута
                Обработка исключений при использовании PFX
                В лекции рассматриваются вопросы обработки исключительных ситуаций связанных с выполнением в параллельных приложениях.
                Оглавление
                  -
                  Лекция 9
                  30 минут
                  Примеры программирования с использованием библиотеки PFX
                  В данной лекции будет представлен ряд примеров программирования с использованием механизма задач и некоторых конструкций из библиотеки PFX, связанных с ними.
                  Оглавление
                    -
                    Тест 2
                    36 минут
                    -
                    Лекция 10
                    44 минуты
                    Оценка производительности памяти с помощью теста Random Access
                    В лекции описан тест производительности памяти и приведена его реализация для многоядерных систем с помощью библиотеки PFX, а также рассмотрена задача параллельного рендеринга изображений.
                    Оглавление
                      -
                      Лекция 11
                      28 минут
                      Решето Эратосфена для нахождения простых чисел
                      В этой лекции рассмотрена теория и реализация алгоритма Эратосфена при нахождения простых чисел в контексте параллельного программирования.
                      Оглавление
                        -
                        Лекция 12
                        20 минут
                        Параллельный алгоритм дискретного преобразования Фурье
                        В этой лекции рассмотрена теория и реализация алгоритма дискретного преобразования Фурье в контексте параллельного программирования.
                        Оглавление
                          -
                          Лекция 13
                          1 час 10 минут
                          Высокоуровневый язык параллельного программирования MC#
                          В этой лекции рассматриваются основные понятия и определения высокоуровневого языка параллельного программирования MC#, показаны примеры использования специфических конструкций языка на ряде параллельных и распределенных программ.
                          Оглавление
                            -
                            Тест 3
                            36 минут
                            -
                            5 часов
                            -