Параллельное программирование для многоядерных процессоров

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Данный учебный курс ориентирован на изучение и практическое применение современных высокоуровневых средств параллельного программирования для многоядерных процессоров - библиотеки Microsoft Parallel FX и языка программирования MC#. Использование таких средств, с промышленной точки зрения, резко повышает производительность и продуктивность работы программистов и позволяет привлечь к регулярному параллельному программированию значительно большее число программистов, а с образовательной точки зрения, дает возможность их успешно изучать и осваивать студентам вузов, начиная со 2-го курса.Основная концепция предлагаемого учебного курса заключается в переходе к изучению высокоуровневых средств программирования в качестве основных инструментов параллельного программирования. Рассматриваются два таких средства, базирующиеся на языке С#: Microsoft Parallel Extensions for .NET (библиотеки TPL и PLINQ); язык программирования MC# (www.mcsharp.net). В качестве практических заданий на параллелизацию будут использоваться хорошо известные задачи, такие как сортировка, задачи линейной алгебры, метод статистических испытаний Монте-Карло, рендеринг изображений на основе трассировки лучей, поиск в Интернет, алгоритм Смита-Уотермена сравнения биологических последовательностей и др.Также, в качестве заданий, студентам будут предлагаться задачи конкурса Intel Threading Challenge.Курс создан при финансовой поддержке компании Microsoft Содержание Курс лекций 1 Введение в библиотеку Microsoft Parallel Extensions to the .Net Framework ........................ 31.1 Лучший способ использования Parallel Extensions .......................................................31. 2 Как начать программировать с использованием Parallel Extensions .............................. 41.3 TPL (Task Parallel Library) .................................................................................................. 41.4 PLINQ (Parallel Language-Integrated Query) ...................................................................... 51. 5 Координирующие структуры данных ............................................................................... 52 Конструкция Parallel.For ............................................................................................................ 73 Планирование исполнения процессов .................................................................................... 103.1 Work stealing ....................................................................................................................... 114 Конструкция Parallel.Invoke .................................................................................................... 135 Программирование с использованием Task Parallel Library (TPL) .................................... 166 Класс System.Threading.Tasks.Futureи координирующие структуры данных ............ 206.1 Класс System.Threading.Tasks.Future........................................................................ 206.2 Координирующие структуры данных ............................................................................. 217 Введение в PLINQ .................................................................................................................... 267.1 Использование PLINQ ...................................................................................................... 268 Обработка исключений при использовании PFX .................................................................. 299 Примеры программирования с использованием библиотеки PFX ...................................... 319.1 Реализация конструкций ContinueWhenAll и ContinueWhenAny ................................. 319.2 Асинхронное выполнение последовательности задач ................................................... 329.3 Ожидание завершения множества задач ......................................................................... 339.4 Реализация конструкции ParallelWhileNotEmpty ........................................................... 3410 Оценка производительности памяти с помощью теста Random Access ........................... 3710.1 Определение теста RandomAccess ................................................................................. 3710.2 Реализация с использованием PFX ................................................................................ 3811 Решето Эратосфена для нахождения простых чисел .......................................................... 4211.1 Параллельный алгоритм поиска простых чисел на основе решета Эратосфена ....... 4211.2 Реализация с использованием PFX ................................................................................ 4412 Параллельная алгоритм дискретного преобразования Фурье ........................................... 5013 Высокоуровневый язык параллельного программирования MC# ..................................... 57 Материалы для семинарских занятийСеминарское занятие №1 .................................................................................................................31 Наиболее распространенные причины низкой производительности параллельных программ .......................................................................................................................................32. Как начать программировать с использованием Parallel Extensions ....................................6Семинарское занятие № 2 ................................................................................................................71 Вариант Parallel.For с локальными состояниями ....................................................................7Семинарское занятие № 3 ................................................................................................................91 Пользовательские расширения Parallel.For .............................................................................92 Изучение и анализ примеров ..................................................................................................10Семинарское занятие № 4 ..............................................................................................................111 Рекурсия и параллелизм (часть 1) ..........................................................................................11Семинарское занятие № 5 ..............................................................................................................14Рекурсия и параллелизм (часть 2) .............................................................................................14Семинарское занятие № 6 ..............................................................................................................221 Асинхронная модель программирования и класс Future..............................................22 Семинарское занятие № 7 ......................................291 Параллельные шаблоны агрегирования в PLINQ .............................................29 Семинарское занятие № 8 .........................................341 Модификация concurrent-структур данных во время перечисления их элементов ...........342 Сохранение порядка возвращаемых значений при параллельных вычислениях ..............35 Семинарское занятие № 9 ..38 Рекурсия и параллелизм (часть )....38 Семинарское занятие № 10 .42 Параллельный рендеринг изображений 42

Author(s): Ю. Сердюк, А. Петров
Publisher: ИПС РАН, ИНТУИТ
Year: 2009

Language: Russian
Commentary: 1146140913(add ocr)
Pages: 73