Опубликована: 05.04.2011 | Уровень: для всех | Стоимость: 3000.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 минут
-
Лекция 7
29 минут
Введение в PLINQ
В лекции рассматривается параллельный интегрированный язык запросов и его отличия от его классической реализации.
-
Лекция 8
21 минута
-
Лекция 9
30 минут
Примеры программирования с использованием библиотеки PFX
В данной лекции будет представлен ряд примеров программирования с использованием механизма задач и некоторых конструкций из библиотеки PFX, связанных с ними.
-
Тест 2
36 минут
-
Лекция 10
44 минуты
Оценка производительности памяти с помощью теста Random Access
В лекции описан тест производительности памяти и приведена его реализация для многоядерных систем с помощью библиотеки PFX, а также рассмотрена задача параллельного рендеринга изображений.
-
Лекция 11
28 минут
Решето Эратосфена для нахождения простых чисел
В этой лекции рассмотрена теория и реализация алгоритма Эратосфена при нахождения простых чисел в контексте параллельного программирования.
-
Лекция 12
20 минут
Параллельный алгоритм дискретного преобразования Фурье
В этой лекции рассмотрена теория и реализация алгоритма дискретного преобразования Фурье в контексте параллельного программирования.
-
Лекция 13
1 час 10 минут
Высокоуровневый язык параллельного программирования MC#
В этой лекции рассматриваются основные понятия и определения высокоуровневого языка параллельного программирования MC#, показаны примеры использования специфических конструкций языка на ряде параллельных и распределенных программ.
-
Тест 3
36 минут
-
5 часов
-