Утверждён на заседании ученого совета ИПТИЭ
«____»__________________20____г.
Протокол № ____________________
Зам. директора по учебной работе
________________________________
Институт прикладных технико-экономических исследований и экспертиз
Базовая кафедра «Физико-математических методов проектирования сложных технических систем ракетно-космической техники»
ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ
«Параллельное программирование»
Направление подготовки: 27.04.04 «Управление в технических системах»
Специализация: «Физико-математические методы и модели в управлении сложными техническими системами ракетно-космической техники»
Квалификация (степень) выпускника: Магистр
Москва-2014
1. Цели и задачи освоения дисциплины
Основными целями освоения дисциплины «Параллельное программирование» являются получение теоретических знаний и практических навыков, необходимых для методологически грамотного анализа проектирования параллельных вычислительных систем, а также основных технологий организации параллельных вычислений на многопроцессорных вычислительных комплексах с распределенной или общей оперативной памятью
Основными задачами курса являются:
- ознакомить с основными направлениями в области организации параллельных вычислений на многопроцессорных вычислительных системах; ознакомить с технологиями параллельного программирования; приобрести навыки параллельного программирования с использованием интерфейса передачи сообщений; ознакомить с технологией параллельного программирования на системах с общей оперативной памятью; приобрести навыки распараллеливания алгоритмов матричной алгебры; подготовить к восприятию новых информационных технологий, связанных с высокопроизводительной обработкой данных в космической отрасли.
2. Место дисциплины в структуре магистерской программы
Дисциплина «Параллельное программирование» для направления подготовки 27.04.04 «Управление в технических системах» является дисциплиной вариативной части (Б.1.В.6.) и базируется на использовании знаний, полученных ими при изучении таких дисциплин как «Математическая логика и теория алгоритмов», «Методы оптимизации», «Вычислительная математика», «Программирование и основы алгоритмизации», «Вычислительные машины, системы и сети».
Для успешного освоения данной дисциплины студент должен иметь представление о современных вычислительных системах, технологиях распределенных систем, знать современные языки программирования, основы высшей математики.
3. Требования к результатам освоения дисциплины:
Процесс изучения дисциплины направлен на формирование следующих компетенций.
Выпускник по направлению подготовки 27.04.04 «Управление в технических системах» с квалификацией (степенью) «магистр» должен обладать следующими компетенциями:
а) общекультурными компетенциями (ОК):
- способностью использовать на практике умения и навыки в организации исследовательских и проектных работ, в управлении коллективом (ОК-2); способностью адаптироваться к изменяющимся условиям, переоценивать накопленный опыт, анализировать свои возможности (ОК-4);
б) общепрофессиональными компетенциями (ОПК):
- способностью понимать основные проблемы в своей предметной области, выбирать методы и средства их решения (ОПК-1); способностью использовать результаты освоения дисциплин программы магистратуры (ОПК-2); способностью самостоятельно приобретать и использовать в практической деятельности новые знания и умения в своей предметной области. (ОПК-4); готовностью оформлять, представлять, докладывать и аргументированно защищать результаты выполненной работы (ОПК-5);
в) профессиональными компетенциями (ПК)
- способностью формулировать цели, задачи научных исследований, выбирать методы и средства решения задач (ПК-1); способностью применять современные теоретические и экспериментальные методы разработки математических моделей исследуемых объектов и процессов, относящихся к профессиональной деятельности по направлению подготовки (ПК-2); способностью к организации и проведению экспериментальных исследований и компьютерного моделирования с применением современных средств и методов (ПК-4); способностью анализировать результаты теоретических и экспериментальных исследований, давать рекомендации по совершенствованию устройств и систем, готовить научные публикации и заявки на изобретения (ПК-5); способностью проводить патентные исследования и определять показатели технического уровня проектируемых систем (ПК-7); способностью выбирать методы и разрабатывать алгоритмы решения задач управления в технических системах (ПК-8); способностью использовать современные технологии обработки информации, современные технические средства управления, вычислительную технику, технологии компьютерных сетей и телекоммуникаций при проектировании систем (ПК-10); способностью организовывать работу коллективов исполнителей (ПК-17);
В результате изучения дисциплины студент должен:
Знать: основные теоретические и практические вопросы, определенные содержанием дисциплины;
технологии параллельного программирования;
предметную область применения полученных знаний и умений.
Уметь: использовать полученные знания в своей практической деятельности;
Владеть: системным мышлением и технологиями параллельного программирования при проектировании сложных систем в области ракетно-космической техники.
4. Объем дисциплины и виды учебной работы
Общая трудоемкость дисциплины составляет 5 зачетных единиц
Вид учебной работы | Всего часов | Семестры | |
1 | 2 | 3 | 4 |
1. | Аудиторные занятия (всего) | 36 | 36 |
В том числе: | - | - | |
1.1. | Лекции | 18 | 18 |
1.2. | Прочие занятия | 18 | 18 |
В том числе: | |||
1.2.1. | Семинары (С) | 18 | 18 |
Практические занятия (ПЗ) | |||
Из них в интерактивной форме (ИФ) | 18 | 18 | |
2. | Самостоятельная работа (всего) | 144 | 144 |
В том числе: | |||
2.1. | Расчетно-графические работы | 30 | 30 |
2.2. | Курсовая работа | 72 | 72 |
Другие виды самостоятельной работы | 24 | 24 | |
Подготовка и прохождение промежуточной аттестации | 18 | 18 | |
3. | Общая трудоемкость (акад. часов) | 180 | 180 |
Общая трудоемкость (зачетных единиц) | 5 | 5 |
5. Содержание дисциплины
5.1. Содержание разделов дисциплины
Раздел 1. Актуальные вопросы параллельных вычислений
Тема 1. Введение в дисциплину
Актуальность внедрения методов параллельного программирования в современных условиях развития информационных технологий. Современные суперкомпьютеры. Совершенствование микроэлектронной элементной базы. Основные этапы развития параллельной обработки. Обзор специализированных средств параллельного программирования. Типы параллельных систем.
Тема 2. Параллелизм как основа высокопроизводительных вычислений
Симметричная мультипроцессорность. Организация симметричной мультипроцессорности. Системы с однородным и неоднородным доступом к памяти. Организация общего доступа к данным. Одновременная многопоточность. Многоядерность. Архитектура многоядерных процессоров.
Раздел 2.Модели и алгоритмы параллельных вычислений
Тема 3.Моделирование и анализ параллельных вычислений
Модель вычислений в виде графа «операции-операнды». Описание схемы параллельного выполнения алгоритма. Показатели эффективности параллельных алгоритмов.
Тема 4. Операции с параллельными вычислениями
Последовательный алгоритм суммирования. Каскадная схема алгоритма суммирования. Модифицированная каскадная схема. Вычисление всех частных сумм.
Тема 5. Оценка максимально достижимого параллелизма
Закон Амдаля. Закон Густавсона – Барсиса. Анализ масштабируемости параллельных вычислений.
Раздел 3. Разработка параллельных методов
Тема 6. Принципы разработки параллельных методов
Постановка задачи разработки. Методы анализа и распределения задач. Граф «подзадачи - информационные зависимости». Граф "потоки - общие данные".
Тема 7 Этапы разработки параллельных алгоритмов
Методика разработки параллельных алгоритмов. Разделение вычислений на независимые части. Выделение информационных зависимостей. Распределение подзадач между вычислительными элементами. Разделение вычислений на независимые части. Масштабирование и распределение подзадач по процессорам.
Раздел 4.Основы параллельного программирования. Средства параллельного программирования
Тема 8. Основы параллельного программирования
Понятия процесса, потока, ресурса. Организация параллельных программ как системы потоков. Взаимодействие и взаимоисключение потоков. Разработка алгоритма взаимоисключения. Алгоритм Деккера. Семафоры. Мониторы. Синхронизация потоков. Барьерная синхронизация. Взаимоблокировка потоков. Минимизация взаимодействия потоков. Оптимизация работы с памятью. Обеспечение однозначности кэш-памяти.
Тема 9 Параллельное программирование с использованием OpenMP
Технология OpenMP. Структура OpenMP. Основные понятия параллельной программы: фрагмент, область, секция. Определение времени выполнения параллельной программы. Управление распределением итераций цикла между потоками. Управление порядком выполнения вычислений. Определение общих и локальных переменных. Совместная обработка локальных переменных (операция редукции). Организация взаимоисключения при использовании общих переменных. Применение переменных семафорного типа (замков).
5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми
(последующими) дисциплинами
№ п/п | Наименование обеспечиваемых (последующих) дисциплин | № № разделов данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин | |
1 | 2 | 3 | 4 |
1. | Компьютерные технологии управления в технических системах | Х | |
2. | Технологии распределённых систем | Х | |
3. | Теоретические основы компьютерного моделирования | Х | |
4. | Современные методы, модели и алгоритмы интеллектуальных систем управления | Х | |
5. | Математическое моделирование в технике | Х | |
6. | Автоматизированное проектирование средств и систем управления | Х | |
7. | Физико-математические методы и модели в управлении сложными техническими системами ракетно-космической техники | Х | |
8. | Математическое моделирование в технике | Х | |
9. | Аэрокосмические системы дистанционного зондирования Земли | Х |
5.3. Разделы дисциплин и виды занятий
№ п/п | Наименование раздела дисциплины | Л | С | ПЗ | Из них в ИФ | СРС | Всего час. |
1. | Раздел 1. Актуальные вопросы параллельных вычислений | 4 | 4 | 10 | 18 | ||
2. | Раздел 2. Модели и алгоритмы параллельных вычислений | 6 | 6 | 30 | 42 | ||
3. | Раздел 3. Разработка параллельных методов | 4 | 4 | 30 | 38 | ||
4. | Раздел 4. Основы параллельного программирования. Средства параллельного программирования | 4 | 4 | 74 | 82 | ||
Итого | 18 | 18 | 18 | 144 | 180 |
5.4. Описание интерактивных занятий
№ п/п | № раздела дисциплины | Тема интерактивного занятия | Вид занятия | Трудо-емкость (час) |
1 | 1 | Анализ этапов развития средств технологий параллельных вычислений | С | 2 |
1 | Мультипроцессоры и мультикомпьютеры в многопроцессорных системах. Классы решаемых задач. | С | 2 | |
2 | 2 | Разработка модели и оценка показателей ускорения и эффективности параллельных вычислений | С | 2 |
2 | Анализ и разработка каскадных схем параллельных вычислений | С | 2 | |
2 | Проведение оценки максимально достижимого параллелизма. | С | 2 | |
3 | Методы анализа и распределений задач. | С | 2 | |
3 | 3 | Разработка схемы параллельных вычислений с использованием методики проектирования и разработки параллельных методов. | С | 2 |
4 | Решение оптимизационных задач параллельного программирования. Понятия процесса, потока, ресурса. Организация параллельных программ как системы потоков. Оптимизация работы с памятью. Обеспечение однозначности кэш-памяти | С | 2 | |
4 | 4 | Анализ и усвоение технологий OpenMP | С | 2 |
6. Лабораторный практикум - не предусмотрен
7. Семинары
№ п/п | № раздела дисцип-лины | Тематика семинаров | Трудо-емкость (час.) |
1. | 1 | Анализ этапов развития средств технологий параллельных вычислений. Анализ современных суперкомпьютеров. Совершенствование микроэлектронной элементной базы. Основные этапы развития параллельной обработки. Обзор специализированных средств параллельного программирования. Типы параллельных систем. | 2 |
2. | 1 | Мультипроцессоры и мультикомпьютеры в многопроцессорных системах. Классы решаемых задач. Симметричная мультипроцессорность. Организация симметричной мультипроцессорности. Системы с однородным и неоднородным доступом к памяти. Организация общего доступа к данным. Одновременная многопоточность. Многоядерность. Архитектура многоядерных процессоров. | 2 |
3. | 2 | Разработка моделей и оценка показателей ускорения и эффективности параллельных вычислений. Модель вычислений в виде графа «операции-операнды». Анализ схемы параллельного выполнения алгоритма. | 2 |
4. | 2 | Анализ и разработка каскадных схем параллельных вычислений. Методы анализа и распределения задач. Граф «подзадачи - информационные зависимости». Граф "потоки - общие данные" | 2 |
5 | 2 | Проведение оценки максимально достижимого параллелизма. Закон Амдаля. Закон Густавсона – Барсиса. Анализ масштабируемости параллельных вычислений. | 2 |
6 | 3 | Методы анализа и распределений задач. Граф «подзадачи - информационные зависимости». Граф "потоки - общие данные". | 2 |
7 | 3 | Разработка схемы параллельных вычислений с использованием методики проектирования и разработки параллельных методов. Разделение вычислений на независимые части. Выделение информационных зависимостей. | 2 |
8 | 4 | Решение оптимизационных задач параллельного программирования. Распределение подзадач между вычислительными элементами. Разделение вычислений на независимые части. Масштабирование и распределение подзадач по процессорам | 2 |
9 | 4 | Анализ и усвоение технологий OpenMP. | 2 |
8. Примерная тематика исследовательских работ
Параллельная виртуальная машина, методы реализации параллельных программ. Вычисление МКЭ-аппроксимаций с помощью параллельных систем. Распараллеливание вычислений минимальных полиномиальных сплайнов. Распараллеливание вычислений экспоненциальной и логарифмической функций. Быстрое преобразование Фурье и его распараллеливание. Актуальные вопросы параллельных технологий в ракетно-космической технике.9. Учебно-методическоеи информационное обеспечение дисциплины:
а) основная литературане более 5 источников
"Параллельное программирование с использованием технологии OpenMP: Учебное пособие".- М.: Изд-во МГУ, 2009 Высокопроизводительные вычисления для многоядерных многопроцессорных систем. Учебное пособие - Нижний Новгород; Изд-во ННГУ им. , 2010 – 421 с. , Промежуточное программное обеспечение параллельных вычислений. Ижевск: Изд-во «Удмуртский университет». 2012. 140 с. Параллельное программирование и аппаратура. – Минск, БГУ, 2012 г., 184 с.б) дополнительная литература
Методы оптимизации. М.: Факториал Пресс, 2002., Воеводин Вл. В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. Воеводин Вл. В., Вычислительное дело и кластерные системы. - М.: Изд-во МГУ, 2007. - 161 с. , Нелинейное программирование и многоэкстремальная оптимизация. - Н. Новгород: Изд-во ННГУ, 2007. Математическое программирование. М.: Физматлит, 2004. ехника оптимизации программ. - СПб.: БХВ-Петербург, 2003. ак построить и использовать суперкомпьютер. М.: Бестселлер, 2003. ,Параллельноепрограммированиемультикомпьютеро в. Новосибирск. Новосибирский государственный технический университет. 2006 – 452 с.10. Материально-техническое обеспечение дисциплины:
Электронные учебные материалы, используемые преподавателями в образовательном процессе, мультимедийные презентации, банк тестовых заданий и др. представлены на порталах Economist и Web-local.
№ п. п. | Фактический адрес учебных кабинетов и объектов | Перечень основного оборудования |
1 | Миклухо-Маклая, 6, ком.19 | 21рабочее место: сист. блок P4 C2D/3160 MHzMB/ 320 GB/DVD±RW/ LCDmonitor 19"+ 1 проектор |
2 | Миклухо-Маклая, 6, ком.21 | 21 рабочее место: сист. блок Celeron /2600 MHz/1280 MB/ 40 GB/DVDROM/ LCDmonitor 17"+ 1 проектор+ Точка доступа WiFi |
3 | Миклухо-Маклая, 6, ком.23 | 21 рабочее место: сист. блок Celeron /2660 MHz/1280 MB/ 40 GB/DVDROM/ LCD monitor 17" + 1 проектор |
4 | Миклухо-Маклая, 6, ком.25 | 21 рабочее место: сист. блок P4 /1700 MHz/1280 MB/ 40 GB/DVDROM/ LCD monitor 17"+ 1 проектор |
5 | Миклухо-Маклая, 6, ком.300 | 15 рабочих мест: сист. блок P4 C2D /2000 MHz/1024 MB/ 160 GB/DVD±RW/ LCDmonitor 17" + 1 проектор |
6 | Миклухо-Маклая, 6, ком.17 | 1 проектор |
7 | Миклухо-Маклая, 6, ком.27 | 1 проектор, Точка доступа WiFi |
8 | Миклухо-Маклая, 6, ком.29 | 1 проектор |
9 | Миклухо-Маклая, 6, ком.101 | 1 проектор |
10 | Миклухо-Маклая, 6, ком.103 | 1 проектор |
11 | Миклухо-Маклая, 6, ком.105 | 1 проектор, Точка доступа WiFi |
12 | Миклухо-Маклая, 6, ком.107 | 1 проектор |
13 | Миклухо-Маклая, 6, КЗ | 1 проектор, Точка доступа WiFi |
14 | Миклухо-Маклая, 6, читальный зал | 1 проектор |
11. Методические рекомендации по организации изучения дисциплины
Реализация курса предусматривает лекции, интерактивные занятия (семинары) с использованием мультимедийного оборудования, подготовку самостоятельных творческих работ и их последующие презентации, тестирование, проведение групповых дискуссий по тематике курса, современные технологии контроля знаний.
Изучая дисциплину, студент должен прослушать курс лекций, пройти предусмотренное рабочей программой количество семинарских занятий, самостоятельно изучить некоторые темы курса и подтвердить свои знания в ходе контрольных мероприятий.
Работа студента на лекции заключается в уяснении основ дисциплины, кратком конспектировании материала, уточнении вопросов, вызывающих затруднения. Конспект лекций является базовым учебным материалом наряду с учебниками, рекомендованными в основном списке литературы.
Преподавание основной части лекционного материала происходит с использованием средств мультимедиа, которые облегчают восприятие и запоминание материала. Презентации доступны для скачивания с сайта РУДН и могут свободно использоваться студентами в учебных целях.
Студент обязан освоить все темы, предусмотренные учебно-тематическим планом дисциплины. Отдельные темы и вопросы обучения выносятся на самостоятельное изучение. Студент изучает рекомендованную литературу и кратко конспектирует материал, а наиболее сложные вопросы, требующие разъяснения, уточняет во время консультаций. Аналогично следует поступать с разделами курса, которые были пропущены в силу различных обстоятельств.
Для углублённого изучения вопроса студент должен ознакомиться с литературой из дополнительного списка и специализированными сайтами в Интернет. Рекомендуется так же общение студентов на форумах профессиональных сообществ.
Студенты самостоятельно изучают учебную, научную и периодическую литературу. Они имеют возможность обсудить прочитанное с преподавателями дисциплины во время плановых консультаций, с другими студентами на семинарах, а также на лекциях, задавая уточняющие вопросы лектору.
Контроль самостоятельной работы магистров осуществляет ведущий преподаватель. В зависимости от методики преподавания могут быть использованы следующие формы текущего контроля: краткий устный или письменный опрос перед началом занятий, письменное домашнее задание, рефераты и пр.
Для контроля успеваемости используется балльно-рейтинговая система:
Максимальное количество баллов – 100.
Количество кредитов – 5
Максимальное количество баллов за выполнение каждого вида работ:
опрос – 10 баллов выполнение ДЗ – 10 баллов работа на занятии – 20 баллов доклад – 10 баллов промежуточная КР – 20 баллов итоговая КР – 30 баллов

