Закреплена за кафедрой | Кафедра дифференциальных уравнений |
---|---|
Направление подготовки | 01.03.02. Прикладная математика и информатика |
Профиль | Математическое и компьютерное моделирование в природных и индустриальных системах |
Форма обучения | Очная |
Общая трудоемкость | 4 ЗЕТ |
Учебный план | 01_03_02_Прикладная математика и информатика_МКМПиИС-2022 |
|
|
Распределение часов по семестрам
Курс (семестр) | 4 (8) | Итого | ||
---|---|---|---|---|
Недель | 12 | |||
Вид занятий | УП | РПД | УП | РПД |
Лекции | 24 | 24 | 24 | 24 |
Практические | 32 | 32 | 32 | 32 |
Сам. работа | 88 | 88 | 88 | 88 |
Итого | 144 | 144 | 144 | 144 |
Визирование РПД для исполнения в очередном учебном году
Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2023-2024 учебном году на заседании
кафедры
Кафедра дифференциальных уравнений
Протокол от 29.06.2022 г. № 11
Заведующий кафедрой Папин Александр Алексеевич
1.1. | Формирование у студентов практических навыков разработки параллельных программ и многопоточных приложений с использования средств операционных систем Windows и объектно-ориентированного языка программирования С++; Получение практических навыков создания параллельных процессов и работы с ними; Получение практических навыков программной реализации многопоточных приложений; Получение практических навыков программной реализации методов синхронизации параллельных процессов и потоков; Получение практических навыков построения и использования сетей Петри. |
---|
Цикл (раздел) ООП: Б1.В.01 |
ПК-3 | Способен разрабатывать и применять математические методы, системное и прикладное программное обеспечение, автоматизированные систем вычислительных комплексов, сервисы, операционные системы и распределенные базы данных для решения задач производственно-технологический деятельности |
В результате освоения дисциплины обучающийся должен | |
3.1. | Знать: |
---|---|
3.1.1. | Принципы построения архитектуры программного обеспечения (ПО) и виды архитектуры программного обеспечения |
3.2. | Уметь: |
3.2.1. | Разрабатывать многопоточные приложения |
3.3. | Иметь навыки и (или) опыт деятельности (владеть): |
3.3.1. | Навыками параллельного программирования |
Код занятия | Наименование разделов и тем | Вид занятия | Семестр | Часов | Компетенции | Литература |
---|---|---|---|---|---|---|
Раздел 1. Многопроцессорные вычислительные системы | ||||||
1.1. | Тема 1 Системы параллельной обработки данных и архитектура процессоров Виды вычислительных систем. Системы параллельной обработки данных. Конвейер и матрица. Классификация Флинна. Пути повышения производительности: законы Мура, Гроша, Амдала и гипотеза Минского. Архитектуры с сокращенным набором команд, со сверхдлинным командным словом. Векторные архитектуры. Многопроцессорные синхронные вычислительные системы. Конвейерные системы. Матричные системы. Систолические системы. | Лекции | 8 | 3 | ПК-3 | Л2.3, Л1.1, Л1.2, Л2.2 |
1.2. | Тема 2 Параллельное выполнение процессов Понятие процесса. Создание параллельных процессов и работы с ними в операционной системе Windows средствами языка программирования С++. Использование объектов синхронизации для обмена данными между процессами. | Лекции | 8 | 3 | ПК-3 | Л2.1, Л1.1, Л1.2 |
1.3. | Тема Программирование параллельных вычислительных процессов Программная реализация создания и работы двух параллельных процессов. Синхронизация работы параллельных процессов с помощью средств операционной системы Windows. | Практические | 8 | 9 | ПК-3 | Л1.4, Л2.2 |
1.4. | Подготовка к практическим занятиям | Сам. работа | 8 | 6 | ПК-3 | Л2.1, Л1.2, Л2.2 |
1.5. | Изучение теоретических разделов дисциплины | Сам. работа | 8 | 8 | ПК-3 | Л2.3, Л1.2 |
1.6. | Выполнение, оформление и подготовка к защите лабораторной работы 1 | Сам. работа | 8 | 8 | ПК-3 | Л2.1, Л1.2 |
Раздел 2. Разработка многопоточных приложений | ||||||
2.1. | Тема 3 Загрузка и выполнение параллельных потоков Понятие потока. Средства языка программирования С++ для создания потоков и работы с ними. Создание многопоточных программ и применение семафоров в операционной системе Windows. | Лекции | 8 | 2 | ПК-3 | Л1.1, Л1.2 |
2.2. | Тема 4 Разработка многопоточных программ Распараллеливание рекурсивных подпрограмм. Преобразование рекурсивных подпрограмм в многопоточные приложения. Многопоточный метод сдваивания. | Лекции | 8 | 2 | ПК-3 | Л2.1, Л1.1, Л1.2, Л1.3 |
2.3. | Тема Методы распараллеливания рекурсивных подпрограмм Программная реализация создания параллельных потоков и работы с ними. Разработка параллельных программ с помощью многопоточного метода сдваивания и многопоточного метода перебора с возвратом. | Практические | 8 | 6 | ПК-3 | Л1.1, Л2.2 |
2.4. | Подготовка к практическим занятиям | Сам. работа | 8 | 6 | ПК-3 | Л2.3, Л1.2, Л1.4 |
2.5. | Изучение теоретических разделов дисциплины | Сам. работа | 8 | 8 | ПК-3 | Л1.4, Л2.2 |
2.6. | Выполнение, оформление и подготовка к защите лабораторной работы 2 | Сам. работа | 8 | 8 | ПК-3 | Л2.3, Л1.4 |
Раздел 3. Классические задачи синхронизации | ||||||
3.1. | Тема 5 Семафоры и события Проблема взаимного исключения. Постановки классических задач синхронизации и методы их решения. Понятие семафора. Понятие события. Алгоритм Деккера для решения задач синхронизации. Алгоритм Петерсона для решения задач синхронизации. Применение семафоров для решения задачи сериализации. Разработка многопоточных приложений с использованием событий. | Лекции | 8 | 8 | ПК-3 | Л2.1, Л1.1, Л1.2, Л1.4, Л1.3, Л2.2 |
3.2. | Тема Решения проблемы сериализации с помощью семафоров Разработка многопоточного приложения , в котором синхронизация работы потоков осуществляется с помощью семафоров. | Практические | 8 | 12 | ПК-3 | Л2.3, Л1.1, Л1.2 |
3.3. | Подготовка к практическим занятиям | Сам. работа | 8 | 6 | ПК-3 | Л1.3, Л2.2 |
3.4. | Изучение теоретических разделов дисциплины | Сам. работа | 8 | 6 | ПК-3 | Л2.1, Л1.2 |
3.5. | Выполнение, оформление и подготовка к защите лабораторной работы 3 | Сам. работа | 8 | 10 | ПК-3 | Л1.4 |
Раздел 4. Моделирование параллельных вычислений | ||||||
4.1. | Тема 6 Сети Петри и их применение. Волновые системы Определение и примеры сетей Петри. Асинхронные системы переходов. Расслоенные критические секции. Задача о читателях и писателях. Задача о производителе и потребителе. Задача о философах и ситуация отталкивания. Использование сетей Петри и волновых систем для моделирования работы параллельных программ. Построение параллельных программ с помощью сетей Петри. Разработка класса канала на основе решения задачи о производителе и потребителе. | Лекции | 8 | 6 | ПК-3 | Л1.1, Л1.2, Л1.4, Л1.3 |
4.2. | Тема Построение и программирование волновых систем с помощью сетей Петри Моделирование волновых систем с помощью сетей Петри. Программирование волновых систем. Использование классаканала, построенного на основе решения задачи о производителе и потребителе. | Практические | 8 | 5 | ПК-3 | Л1.1, Л1.4 |
4.3. | Подготовка к практическим занятиям | Сам. работа | 8 | 6 | ПК-3 | Л2.1, Л1.1 |
4.4. | Изучение теоретических разделов дисциплины | Сам. работа | 8 | 6 | ПК-3 | Л2.3, Л2.1, Л1.3 |
4.5. | Выполнение, оформление и подготовка к защите лабораторной работы 4 | Сам. работа | 8 | 10 | ПК-3 | Л1.2, Л2.2 |
5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины |
Лабораторная работа 1
«Программирование параллельных вычислительных процессов» Задание. Разработать программу, запускающую параллельно работающие процессы. Первый процесс выводит графические объекты согласно варианту (прямоугольники) в левое окно, а второй выводит графические объекты согласно варианту (треугольники) в правое окно. Варианты заданий приведены в таблице 7. Пояснение. Область вывода состоит из двух окон: верхнего и нижнего в нечетных вариантах или левого и правого в четных вариантах. Каждый процесс выводит в свое окно фигуры заданного вида, у которых случайно изменяются цвет, размеры и положение. Например, в варианте 15, процессы выводят геометрические фигуры в верхнее и нижнее окна, поскольку 15 – нечетное число. Первый процесс выводит в верхнее окно закрашенные круги. Второй процесс выводит в нижнее окно отрезки, у которых изменяются координаты концов. Таблица 7 – Варианты заданий Прямоугольник Окружность Отрезок Закрашенный круг Закрашенный прямоугольник Прямоугольник - 1 3 5 7 Окружность 2 - 9 11 13 Отрезок 4 6 - 15 17 Закрашенный круг 8 10 12 - 19 Закрашенный прямоугольник 14 16 18 20 - Эллипс 21 22 23 24 25 Лабораторная работа 2 «Методы распараллеливания рекурсивных подпрограмм» Задание . Разработать программу, решающую данную задачу с помощью рекурсивной функции. Преобразовать эту функцию и главную программу в многопоточную программу. Потоковые функции выполняются со случайной задержкой. Лабораторная работа 3 «Решения проблемы сериализации с помощью семафоров» Задание. Разработать многопоточную программу для вычисления заданного логического выражения, состоящего из поразрядных операций, арифметического выражения или приближенного значения интеграла. Недостающие данные можно вводить с помощью генератора случайных чисел. Программа должна запускать n потоков. Параллельные вычисления в потоках производятся с небольшими случайными задержками. Проверить результат вычисления с помощью подпрограммы, состоящей из одного цикла. Лабораторная работа 4 «Построение и программирование волновых систем с помощью сетей Петри» Задание. Разработать программу, которая, согласно варианту, загружает потоки, реализующие волновую систему. Привести сеть Петри этой волновой системы. |
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.) |
Не предусматривается. |
5.3. Фонд оценочных средств для проведения промежуточной аттестации |
Защита лабораторных работ. |
Приложения |
Приложение 1.
ФОС МПВ.doc
|
6.1. Рекомендуемая литература | ||||
6.1.1. Основная литература | ||||
Авторы | Заглавие | Издательство, год | Эл. адрес | |
Л1.1 | Богачев, К. Ю. | Основы параллельного программирования : учебное пособие: учебное пособие | Лаборатория знаний, 2020 | https://znanium.com/catalog/ php? |
Л1.2 | Борзунов, С. В. | Практикум по параллельному программированию: Учебное пособие | БХВ-Петербург, 2017 | https://znanium.com/catalog/ php? |
Л1.3 | Колдаев, В. Д | Основы алгоритмизации и программирования: Учебное пособие | ИД ФОРУМ: ИНФРА–М, 2015 | www.znanium.com |
Л1.4 | Воеводин, В. В | Параллельные вычисления: Учебное пособие | БХВ-Петербург, 2015 | https://znanium.com/catalog/ php? |
6.1.2. Дополнительная литература | ||||
Авторы | Заглавие | Издательство, год | Эл. адрес | |
Л2.1 | Кэйт Грегори, Эйд Миллер | C++ AMP: построение массивно параллельных программ с помощью Microsoft Visual C++: Учебное пособие | Издательство "ДМК Пресс", 2013 | e.lanbook.com |
Л2.2 | Батчер, П | Семь моделей конкуренции и параллелизма за семь недель: Учебное пособие | Раскрываем тайны потоков, 2015 | |
Л2.3 | Гома Х. | UML. Проектирование систем реального времени, параллельных и распределенных приложений: Учебное пособие | М.: ДМК Пресс, 2007 | e.lanbook.com |
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет" | ||||
6.3. Перечень программного обеспечения | ||||
Microsoft Imagine Premium; OpenOffice; Visual Studio Community 2017.Microsoft Office 2010 (Office 2010 Professional, № 4065231 от 08.12.2010), (бессрочно); Microsoft Windows 7 (Windows 7 Professional, № 61834699 от 22.04.2013), (бессрочно); Chrome (http://www.chromium.org/chromium-os/licenses), (бессрочно); 7-Zip (http://www.7-zip.org/license.txt), (бессрочно); AcrobatReader (http://wwwimages.adobe.com/content/dam/Adobe/en/legal/servicetou/Acrobat_com_Additional_TOU-en_US-20140618_1200.pdf), (бессрочно); ASTRA LINUX SPECIAL EDITION (https://astralinux.ru/products/astra-linux-special-edition/), (бессрочно); LibreOffice (https://ru.libreoffice.org/), (бессрочно); Веб-браузер Chromium (https://www.chromium.org/Home/), (бессрочно); Антивирус Касперский (https://www.kaspersky.ru/), (до 23 июня 2024); Архиватор Ark (https://apps.kde.org/ark/), (бессрочно); Okular (https://okular.kde.org/ru/download/), (бессрочно); Редактор изображений Gimp (https://www.gimp.org/), (бессрочно) | ||||
6.4. Перечень информационных справочных систем | ||||
Информационно-аналитический центр по параллельному программированию http://www.parallel.ru ; Национальный открытый университет ИНТУИТ http://www.intuit.ru. |
Аудитория | Назначение | Оборудование |
---|---|---|
107Л | лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации | Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица |
203Л | лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации | Учебная мебель на 14 посадочных мест; компьютеры: марка ASUS модель i5-6500 - 14 единиц |
Учебная аудитория | для проведения занятий всех видов (дисциплинарной, междисциплинарной и модульной подготовки), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проекта (работы), проведения практики | Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска, мультимедийное оборудование стационарное или переносное) |
1. Для успешного освоения содержания дисциплины необходимо посещать лекции, принимать активное участие в работе на практическом занятии, а также выполнять задания, предлагаемые преподавателем для самостоятельного изучения. 2. Лекция. -На лекцию приходите не опаздывая, так как это неэтично. - На лекционных занятиях необходимо конспектировать изучаемый материал. - Для систематизации лекционного материала, который будет полезен при подготовке к итоговому контролю знаний, записывайте на каждой лекции тему, вопросы для изучения, рекомендуемую литературу. - В каждом вопросе выделяйте главное, обязательно запишите ключевые моменты (определение, факты, законы, правила и т.д.), подчеркните их. - Если по содержанию материала возникают вопросы, не нужно выкрикивать, запишите их и задайте по окончании лекции или на семинарском занятии. - Перед следующей лекцией обязательно прочитайте предыдущую, чтобы актуализировать знания и осознанно приступить к освоению нового содержания. 3.Практическое занятие – это форма работы, где студенты максимально активно участвуют в обсуждении темы. - Для подготовки к практическому занятию необходимо взять план занятия (у преподавателя). - Самостоятельную подготовку к занятию необходимо начинать с изучения понятийного аппарата темы. Рекомендуем использовать справочную литературу, учебники. - Важно запомнить, что любой источник должен нести достоверную информацию, особенно это относится к Internet-ресурсам. При использовании Internet - ресурсов в процессе подготовки не нужно их автоматически «скачивать», они должны быть проанализированы. Не нужно «скачивать» готовые рефераты, так как их однообразие преподаватель сразу выявляет, кроме того, они могут быть сомнительного качества. - В процессе изучения темы анализируйте несколько источников. Используйте научные специальные журналы. - Полезным будет работа с электронными учебниками и учебными пособиями в Internet-библиотеках. Зарегистрируйтесь в них: университетская библиотека Онлайн (http://www.biblioclub.ru/) и электронно-библиотечная система «Лань» (http://e.lanbook.com/). - При возникновении трудностей в процессе подготовки взаимодействуйте с преподавателем, консультируйтесь по самостоятельному изучению темы. 4. Самостоятельная работа. - При изучении дисциплины не все вопросы рассматриваются на лекциях и практических занятиях, часть вопросов рекомендуется преподавателем для самостоятельного изучения. - Поиск ответов на вопросы и выполнение заданий для самостоятельной работы позволит вам расширить и углубить свои знания по курсу, применить теоретические знания в решении задач практического содержания, закрепить изученное ранее. - Эти задания следует выполнять не «наскоком», а постепенно, планомерно, следуя порядку изучения тем курса. - При возникновении вопросов обратитесь к преподавателю в день консультаций на кафедру. - Выполнив их, проанализируйте качество их выполнения. Это поможет вам развивать умения самоконтроля и оценочные компетенции. 5. Итоговый контроль. - Для подготовки к зачету/экзамену возьмите перечень примерных вопросов у преподавателя. - В списке вопросов выделите те, которые были рассмотрены на лекции, практических занятиях. Обратитесь к своим записям, выделите существенное. Для более детального изучения изучите рекомендуемую литературу. - Если в списке вопросов есть те, которые не рассматривались на лекции, на практическом занятии, изучите их самостоятельно. Если есть сомнения, задайте вопросы на консультации перед экзаменом. - Продумайте свой ответ на экзамене, его логику. Помните, что ваш ответ украсит ссылка на источник литературы, иллюстрация практики применения теоретического знания, а также уверенность и наличие авторской аргументированной позиции как будущего субъекта профессиональной деятельности. |