МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Ярославский государственный университет им. П.Г. Демидова
Факультет информатики и вычислительной техники
УТВЕРЖДАЮ
Проректор по развитию образования
_Е.В. Сапир
"_"2012 г.
Рабочая программа дисциплины послевузовского профессионального образования (аспирантура) Современные парадигмы программирования по специальности научных работников 05.13.18 Математическое моделирование, численные методы и комплексы программ Ярославль 2012 1. Цели освоения дисциплины.
Целями освоения дисциплины «Современные парадигмы программирования» в соответствии с общими целями основной профессиональной образовательной программы послевузовского профессионального образования (аспирантура) (далее - образовательная программа послевузовского профессионального образования) являются:
1) знакомство с современными технологиями высокопроизводительных вычислений 2) получение знаний об эффективно реализуемых параллельных алгоритмах 3) умение оценить применимость и эффективность различных параллельных технологий и алгоритмов для решения ресурсоемких вычислительных задач 2. Место дисциплины в структуре образовательной программы послевузовского профессионального образования Данная дисциплина относится к разделу обязательные дисциплины (подраздел дисциплины по выбору аспиранта) образовательной составляющей образовательной программы послевузовского профессионального образования по специальности научных работников 05.13.18 Математическое моделирование, численные методы и комплексы программ Для ее успешного изучения необходимы знания и умения, приобретенные в результате освоения предшествующих дисциплин по программам специалитета или бакалавриата – магистратуры: «информатика», «языки программирования».
Знания и умения, приобретенные аспирантами в результате изучения дисциплины, будут использоваться при изучении курсов численных методов, математического моделирования.
3. Требования к результатам освоения содержания дисциплины «Современные парадигмы программирования»
В результате освоения дисциплины обучающийся должен:
1) знать: основные типы технологий параллельных вычислений, область их применимости; базовые паралельные алгоритмы, особенности их реализации для высокопроизводительных вычислений 2) уметь: адаптировать типовые алгоритмы для решения конкретных задач, реализовывать параллельные алгоритмы с помощью технологий как с общей, так и распределенной памятью 3) владеть: базовыми средствами разработки программного обеспечения для параллельных вычислительных систем 4. Структура и содержание дисциплины.
Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 часов.
Курс Раздел Виды учебной работы, Формы текущего Неделя Дисциплины включая самостоятельную ра- контроля успеваемости боту обучающихся, и трудоем- (по неделям) кость (в часах) Форма промежуточной Форма обуч.: очная/заочная аттестации Сам. работа Лабораторных Практических Контроль сам.
Лекций программировании Обзор технологий параллельных вычислений. Архитектуры с общей и распределенной памятью. Простейшие параллельные алгоритмы типа «разделяй и властвуй» Модели согласованности памяти. Границы эффективного параллелизма. Идеально параллелизуемые задачи Oсновы OpenMP. Директивы препроцессора и необходимые функции. Синхронизация в OpenMP. Модели согласованности памяти, реализация в OpenMP. Декомпозиция области и численное решение уравнения теплопроводности.
Основы MPI. Работа с университетским кластером. Пересылка и распределение данных в MPI. Операции точка-точка и коллективные операции. Параллельные реализации простейших матричных алгоритмов. Топологии, группы и коммуникаторы в MPI. Сеточные вычисления, решение уравнения логия NVIDIA CUDA, архитектура GPU. Иерархия памяти CUDA, глобальная память, параллельное решение СЛАУ. Эффуктивное использование shared-памяти. Параллельная редукция. Текстурная память, цифровая обработка сигналов, нерегулярный парарллелизм. Трассировка лучей на CUDA. Оптимизация программ на CUDA.
5. Образовательные технологии:
лекции, лабораторные работы.
6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы обучающихся Во время освоения дисциплины обучающиеся выполняют программистские работы.
В качестве средств текущего контроля используются 3 лабораторные работы.
Промежуточная аттестация (зачет) дает возможность выявить уровень профессиональной подготовки аспиранта по данной дисциплине.
Реализовать а. последовательно б. параллельно при помощи технологии OpenMP и декомпозиции области итеративное решение разностной аппроксимации уравнения теплопроводности, вывести результаты решения на фиксированном интервале времени в файл, сравнить результаты выполнения обеих версий на многоядерном процессоре и измерить полученное ускорение параллельной версии.
Реализовать метод Якоби решения уравнения Лапласа для параллельного выполнения на системе с распределенной памятью. Сравнить скорость выполнения программы с одной и той же размерностью сетки на 20 и 40 ядрах.
Реализовать на CUDA фильтр для графического изображения: произвести свертку с использованием библиотечных функций FFT.
1. Механизмы синхронизации в OpenMP 2. Измерить время передачи сообщения длиной в 1 Мегабайт между разными узлами в доступной системе с распределенной памятью 3. Измерить разницу в скорости доступа к shared- и глобальной памяти на GPU 7. Учебно-методическое и информационное обеспечение дисциплины «Современные парадигмы программирования»
а) основная литература:
1. Г.Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования: Пер. с англ. — М.: Издательский дом «Вильямс», 2003.
2. Д.С. Глызин, Д.С. Кащенко. Параллельное и функциональное программирование.
Методические указания. Яросл. гос. ун-т им. П.Г. Демидова. — Ярославль: ЯрГУ, б) дополнительная литература:
1. Д. Кнут, Искусство программирования, том 1. Основные алгоритмы: Пер. с англ. — М.: Издательский дом «Вильямс», 2008.
2. В.В. Воеводин, Вл.В. Воеводин. Параллельные вычисления. С.-Петербург, "БХВПетербург", 2002.
3. А.С. Антонов. Параллельное программирование с использованием технологии OpenMP: учеб. пособие — М.: Изд-во МГУ, 2009.
4. Корнеев В.Д. Параллельное программирование в MPI. — Москва-Ижевск: Институт компьютерных исследований, 2003.
5. Д. Уоткинс, Основы матричных вычислений. Пер. с англ. — М.: БИНОМ. Лаборатория знаний, 2006.
в) программное обеспечение и Интернет-ресурсы:
1. OpenMP Architecture Review Board: http://www.openmp.org 2. PARALLEL.RU http://parallel.ru 3. NVIDIA developer zone http://developer.nvidia.com/object/gpucomputing.html 8. Материально-техническое обеспечение дисциплины: учебные аудитории для проведения лекционных занятий, компьютерные классы с компьютерами на многоядерных процессорах и доступом к университетскому вычислительному кластеру.
Программа составлена в соответствии с федеральными государственными требованиями к структуре основной профессиональной образовательной программы послевузовского профессионального образования (аспирантура) (приказ Минобрнауки от 16.03.2011 г. № 1365) с учетом рекомендаций, изложенных в письме Минобрнауки от 22.06.2011 г. № ИБ – 733/12.
Программа одобрена на заседании кафедры компьютерных сетей 10.10.2012 (протокол № 2) Заведующий кафедрой Глызин С.Д., доктор физ.-мат. наук, профессор