528
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«Нижегородский государственный архитектурно-строительный университет»
Платов А.Ю.
ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
Учебно-методическое пособие по подготовке к лекционным и практическим занятиям
(включая рекомендации по организации самостоятельной работы)
для обучающихся по дисциплине «Параллельное программирование»
по направлению подготовки 09.03.04 Программная инженерия профиль Разработка программно-информационных систем
Нижний Новгород
2018
УДК 004.9
Платов А.Ю. / Параллельное программирование [Электронный ресурс]: учеб.-метод. пос. / А.Ю. Платов; Нижегор. гос. архитектур. - строит. ун-т – Н. Новгород: ННГАСУ, 2018. – 13 с.– 1 электрон. опт. диск (CD-RW).
В настоящем учебно-методическом пособии по дисциплине «Параллельное программирование» даются конкретные рекомендации учащимся для освоения как основного, так и дополнительного материала дисциплины и тем самым способствующие достижению целей, обозначенных в учебной программе дисциплины. Цель учебно-методического пособия — это помощь в усвоении лекций, в подготовке к практическим занятиям.
Учебно-методическое пособие предназначено для обучающихся в ННГАСУ по дисциплине «Параллельное программирование» по направлению подготовки 09.03.04 Программная инженерия, профиль Разработка программно-информационных систем.
Учебно-методическое пособие ориентировано на обучение в соответствии с календарным учебным графиком и учебным планом по основной профессиональной образовательной программе направления 09.03.04 Программная инженерия, профиль Разработка программноинформационных систем, утверждённым решением учёного совета ННГАСУ от 02.03.2018 г. (протокол № 3).
© |
А.Ю. Платов, 2018 |
© |
ННГАСУ, 2018 |
2
Оглавление
1. |
Общие положения .......................................................................................................................... |
4 |
|
|
1.1 |
Цели изучения дисциплины и результаты обучения ........................................................... |
4 |
|
1.2 |
Содержание дисциплины........................................................................................................ |
4 |
2. |
Методические указания по подготовке к лекциям...................................................................... |
6 |
|
|
2.1 |
Общие рекомендации по работе на лекциях......................................................................... |
6 |
|
2.2 |
Общие рекомендации при работе с конспектом лекций ..................................................... |
6 |
|
2.3 |
Общие рекомендации по изучению материала лекций ....................................................... |
6 |
|
2.4 |
Контрольные вопросы............................................................................................................. |
7 |
3. |
Методические указания по подготовке к практическим занятиям ........................................... |
9 |
|
|
3.1 |
Общие рекомендации по подготовке к практическим занятиям........................................ |
9 |
|
3.2 |
Примеры задач для практических занятий ........................................................................... |
9 |
4. |
Методические указания по организации самостоятельной работы........................................ |
10 |
|
|
4.1 |
Общие рекомендации для самостоятельной работы.......................................................... |
10 |
|
4.2 |
Темы для самостоятельного изучения................................................................................. |
12 |
|
4.3 |
Учебно-методическое обеспечение самостоятельной работы.......................................... |
12 |
|
4.4 |
Задания для самостоятельной работы ................................................................................. |
12 |
3
1. Общие положения
1.1 Цели изучения дисциплины и результаты обучения
Основной целью освоения учебной дисциплины «Параллельное программирование» является изучение методов параллельного программирования для написания эффективных программ на языках С и Fortran:
В процессе освоения дисциплины студент должен Знать:
−основные принципы, приемы и технологии параллельного программирование;
−владением навыками использования операционных систем, сетевых технологий, средств разработки программного интерфейса, применения языков и методов формальных спецификаций, систем управления базами данных.
Уметь: |
|
|
− |
использовать методы параллельного программирования; |
|
− |
отлаживать параллельные программы. |
|
Владеть: |
|
|
− |
навыком составления простых паралелльных программ с матричными операциями |
; |
−навыком написания программ с управлением процессами и задачами (нитями).
Данная дисциплина позволит студентам не только систематизировать полученные теоретические знания, укрепить исследовательские навыки, но и даст возможность ориентироваться в новом предметном поле программной инженерии.
1.2 Содержание дисциплины
Материал дисциплины сгруппирован по следующим разделам:
1. Общие понятия
Архитектура процессоров. Средства повышения производительности оперативной памяти. Процессы, ресурсы, программы. Виды взаимодействия процессов.
2. Системные средства управления процессами
Стандарты системы UNIX. Средства управления процессами UNIX. Синхронизация и взаимодействие процессов.
3. Потоковая модель вычислительных процессов.
Управление задачами. Синхронизация и взаимодействие задач.
4. Интерфейс MPI.
4
Устройство MPI-программы. Коммуникаторы и обмен сообщениями. Ввод-вывод в MPIпрограмме. Примеры решения задач.
5. Другие средства создания параллельных программ.
Стандарт OpenMPI. Программирование для кластерных систем. Написание параллельных программ на языке Fortran.
5
2. Методические указания по подготовке к лекциям
2.1 Общие рекомендации по работе на лекциях
Лекция является главным звеном дидактического цикла обучения. Ее цель — формирование основы для последующего усвоения учебного материала. В ходе лекции преподаватель в устной форме, а также с помощью презентаций передает обучаемым знания по основным, фундаментальным вопросам изучаемой дисциплины.
Назначение лекции состоит в том, чтобы доходчиво изложить основные положения изучаемой дисциплины, ориентировать на наиболее важные вопросы учебной дисциплины и оказать помощь в овладении необходимых знаний и применения их на практике.
Личное общение на лекции преподавателя со студентами предоставляет большие возможности для реализации образовательных и воспитательных целей.
При подготовке к лекционным занятиям студенты должны ознакомиться с презентаций, предлагаемой преподавателем, отметить непонятные термины и положения, подготовить вопросы с целью уточнения правильности понимания. Рекомендуется приходить на лекцию подготовленным, так как в этом случае лекция может быть проведена в интерактивном режиме, что способствует повышению эффективности лекционных занятий.
2.2Общие рекомендации при работе с конспектом лекций
Входе лекционных занятий необходимо вести конспектирование учебного материала. Конспект помогает внимательно слушать, лучше запоминать в процессе осмысленного записывания, обеспечивает наличие опорных материалов при подготовке к семинару, зачету, экзамену.
Полезно оставить в рабочих конспектах поля, на которых делать пометки из рекомендованной литературы, дополняющие материал прослушанной лекции, а также подчеркивающие особую важность тех или иных теоретических положений.
В случае неясности по тем или иным вопросам необходимо задавать преподавателю уточняющие вопросы. Следует ясно понимать, что отсутствие вопросов без обсуждения означает в большинстве случаев неусвоенность материала дисциплины.
2.3 Общие рекомендации по изучению материала лекций
Раздел 1: «Общие понятия» – 1 лекциф.
Цель: дать основы понимания терминологии предметной области.
Содержание: Архитектура процессоров. Средства повышения производительности оперативной памяти. Процессы, ресурсы, программы. Виды взаимодействия процессов. Задачи на изучение возможности распараллеливания.
Раздел 2: «Системные средства управления процессами» 2 лекции.
6
Цель: изучить средства управления процессами.
Содержание: Стандарты системы UNIX. Средства управления процессами UNIX. Синхронизация и взаимодействие процессов. Написание программ по управлению процессами.
Раздел 3: «Потоковая модель вычислительных процессов.». – 2 лекции.
Цель: изучить основы управления потоками.
Содержание: Управление задачами. Синхронизация и взаимодействие задач. Написание программ по управлению потоками.
Раздел 4: «Интерфейс MPI.». – 2 лекции.
Цель: изучить основы работы с интерфейсом MPI.
Содержание: Устройство MPI-программы. Коммуникаторы и обмен сообщениями. Вводвывод в MPI-программе. Примеры решения задач. Написание программ с использованием MPI.
Раздел 5: «Другие средства создания параллельных программ». — 1 лекция.
Цель: изучить прочие средства параллельного программирования.
Содержание: OpenMPI. Программирование для кластерных систем. Написание параллельных программ на языке Fortran. Программирование на языке FORTRAN.
2.4Контрольные вопросы
1.Вычислить интеграл на языке FORTRAN
2.Вычислить интеграл с помощью распараллеливания процессов.
3.Вычислить интеграл с помощью распараллеливания задач.
4.Вычислить интеграл с помощью MPI.
5.Вычислить произведение матриц на языке FORTRAN
6.Вычислить произведение матриц с помощью распараллеливания процессов.
7.Вычислить произведение матриц с помощью распараллеливания задач.
8.Вычислить произведение матриц с помощью MPI.
9.Вычислить умножение матрицы на вектор на языке FORTRAN
10.Вычислить умножение матрицы на вектор c помощью распараллеливания процессов
11.Вычислить умножение матрицы на вектор с помощью распараллеливания задач.
12.Вычислить умножение матрицы на вектор с помощью MPI.
13.Решение задачи Дирихле для уравнения Пуассона на языке FORTRAN
14.Решение задачи Дирихле для уравнения Пуассона с распараллеливанием задач.
15.Решение задачи Дирихле для уравнения Пуассона c помощью распараллеливания процессов
16.Решение задачи Дирихле для уравнения Пуассона с помощью MPI.
17.Реализация алгоритма Гаусса для СЛАУ на языке FORTRAN
18.Реализация алгоритма Гаусса для СЛАУ с распараллеливанием задач.
19.Реализация алгоритма Гаусса для СЛАУ c помощью распараллеливания процессов
20.Реализация алгоритма Гаусса для СЛАУ с помощью MPI.
21.Моделирование движения частиц под воздействием гравитации на языке FORTRAN
22.Моделирование движения частиц под воздействием гравитации с распараллеливанием задач.
23.Моделирование движения частиц под воздействием гравитации c помощью распараллеливания процессов
7
24.Моделирование движения частиц под воздействием гравитации с помощью MPI.
25.Обход графа на языке FORTRAN
26.Обход графа с распараллеливанием задач.
27.Обход графа c помощью распараллеливания процессов
28.Обход графа с помощью MPI.
8
3. Методические указания по подготовке к практическим занятиям
3.1Общие рекомендации по подготовке к практическим занятиям
Входе подготовки к практическим занятиям необходимо изучать основную литературу, знакомиться с дополнительной литературой, а также с новыми публикациями в периодических изданиях: журналах, газетах и т.д. При этом необходимо учесть рекомендации преподавателя и требования учебной программы.
Всоответствии с этими рекомендациями и подготовкой полезно дорабатывать свои конспекты лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой. Целесообразно также подготовить тезисы для возможного выступлений по всем учебным вопросам, выносимым на практическое занятие.
При подготовке к занятиям можно также подготовить краткие конспекты по вопросам темы. Очень эффективным приемом является составление схем и презентаций.
Готовясь к докладу или реферативному сообщению, желательно обращаться за методической помощью к преподавателю. Составить план-конспект своего выступления. Продумать примеры с целью обеспечения тесной связи изучаемой теории с реальной жизнью. Своевременное и качественное выполнение самостоятельной работы базируется на соблюдении настоящих рекомендаций и изучении рекомендованной литературы. Студент может дополнить список использованной литературы современными источниками, не представленными в списке рекомендованной литературы, и в дальнейшем использовать собственные подготовленные учебные материалы при написании курсовых и дипломных работ.
3.2 Примеры задач для практических занятий
Пример № 1 Вычислить интеграл с помощью распараллеливания процессов.
Пример № 2 Вычислить интеграл с помощью распараллеливания задач.
Пример № 3
Вычислить интеграл с помощью MPI.
9
4. Методические указания по организации самостоятельной работы
4.1 Общие рекомендации для самостоятельной работы
Самостоятельная работа студентов является основным способом овладения учебным материалом в свободное от обязательных учебных занятий время.
Целями самостоятельной работы студентов являются:
-систематизация и закрепление полученных теоретических знаний и практических умений студентов;
-углубление и расширение теоретических знаний;
-формирование умений использовать нормативную, правовую, справочную документацию и специальную литературу;
-развитие познавательных способностей и активности студентов:
-формирования самостоятельности мышления, способностей к саморазвитию, самосовершенствованию и самореализации.
Запланированная в учебном плане самостоятельная работа студента рассматривается как связанная либо с конкретной темой изучаемой дисциплины, либо с подготовкой к курсовой, дипломной работе, а также к защите ВКР. В данном разделе рассматривается только самостоятельная работа первого вида.
Самостоятельная работа выполняется в два этапа: планирование и реализация.
Планирование самостоятельной работы включает:
-уяснение задания на самостоятельную работу;
-подбор рекомендованной литературы;
-составление плана работы, в котором определяются основные пункты предстоящей подго-
товки.
Составление плана дисциплинирует и повышает организованность в работе.
На втором этапе реализуется составленный план. Реализация включает в себя:
-изучение рекомендованной литературы;
-составление плана (конспекта) по изучаемому материалу (вопросу);
-взаимное обсуждение материала.
Необходимо помнить, что на лекции обычно рассматривается не весь материал. Оставшаяся восполняется в процессе самостоятельной работы. В связи с этим работа с рекомендованной литературой обязательна.
Работа с литературой и иными источниками информации включает в себя две группы приемов: техническую, имеющую библиографическую направленность, и содержательную. Первая группа – уяснение потребностей в литературе; получение литературы; просмотр литературы на уровне общей, первичной оценки; анализ надежности публикаций как источника информации, их относимости и степени полезности. Вторая – подробное изучение и извлечение необходимой ин-
10