Архитектура многопроцессорных вычислительных систем

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК
КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Аксенов М. В.
АРХИТЕКТУРА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Учебно-методический комплекс.
Рабочая программа для студентов направления
02.04.03 Математическое обеспечение и администрирование информационных систем.
Магистерская программа «Высокопроизводительные вычислительные системы»
(очная форма обучения)
Тюменский государственный университет
2015
АКСЕНОВ М. В. АРХИТЕКТУРА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ
СИСТЕМ. Учебно-методический комплекс. Рабочая программа для студентов направления
02.04.03 Математическое обеспечение и администрирование информационных систем,
магистерская программа «Высокопроизводительные вычислительные системы» (очная
форма обучения). Тюмень, 2014, 12 стр.
Рабочая программа составлена в соответствии с требованиями ФГОС ВО с учетом
рекомендаций и ПрОП ВО по направлению подготовки.
Рабочая программа дисциплины опубликована на сайте ТюмГУ: Архитектура
многопроцессорных
систем
[электронный
ресурс]
/
Режим
доступа:
http://www.umk3plus.utmn.ru, свободный.
Рекомендовано к изданию кафедрой программного обеспечения. Утверждено директором
Института математики и компьютерных наук.
ОТВЕТСТВЕННЫЙ РЕДАКТОР: Захарова И.Г., д.п.н., профессор.
© Тюменский государственный университет, 2015.
© Аксенов М. В., 2015.
2
1.
1.1.
Пояснительная записка
Цели и задачи дисциплины (модуля)
Дисциплина «Архитектура многопроцессорных вычислительных систем» дает
базовое представление о работе современного многопроцессорного аппаратного обеспечения
и знакомит с техниками разработки эффективных распределенных программных комлексов.
Цели дисциплины:
-
формирование
общего
представления
об
архитектуре
современных
многоядерных процессоров;
-
сформировать знания о различных подходах к организации параллельных и
распределенных программ.
1.2.Место дисциплины в структуре образовательной программы
Дисциплина «Архитектура многопроцессорных вычислительных систем» относится к
вариативной части Б1 федерального государственного образовательного стандарта высшего
образования направления 02.04.03 Математическое обеспечение и администрирование
информационных
систем,
магистерской
программы
«Высокопроизводительные
вычислительные системы» В соответствии с учебным планом образовательной программы
изучение данной дисциплины предусмотрено во 2 семестре и логически взаимосвязано с
параллельно изучающимися дисциплинами. Дисциплина «Архитектура многопроцессорных
вычислительных систем» опирается на материалы таких дисциплин как «Алгоритмы и
технологии
разработки
программирования»,
параллельных
«Администрирование
программ»,
«Современные
распределенных
систем»,
технологии
расширяя
представления об архитектуре, аппаратном и программном обеспечении многопроцессорных
вычислительных систем, а также их разработке и эксплуатации.
№
п/
п
1
2
3
Таблица 1.
Разделы дисциплины и междисциплинарные связи с обеспечиваемыми
(последующими) дисциплинами
Наименование обеспечиваемых
Темы дисциплины необходимые
(последующих) дисциплин
для изучения обеспечиваемых
(последующих) дисциплин
1
2
3
4
5
6
Производственная практика
+
+
+
+
Научно-исследовательская работа
+
+
+
+
+
+
Распределенные хранилища данных
+
+
+
+
+
+
3
1.3. Компетенции обучающегося, формируемые в результате освоения данной
образовательной программы.
В
результате
вычислительных
изучения
систем»
по
дисциплины
«Архитектура
направлению
02.04.03
многопроцессорных
«Высокопроизводительные
вычислительные системы» с квалификацией (степенью) «магистр» в соответствии с целями
основной образовательной программы и задачами профессиональной деятельности,
указанными в ФГОС ВО, выпускник должен обладать следующими компетенциями:
Профессиональные компетенции

владение архитектурой, алгоритмами функционирования систем реального времени и
методами проектирования их программного обеспечения (ОПК-7);

владение навыками использования современных системных программных средств:
операционных систем, операционных и сетевых оболочек, сервисных программ (ОПК8).
1.4. Перечень планируемых результатов обучения по дисциплине:
В результате освоения дисциплины обучающийся должен:
Знать: основные концепции архитектуры современных многоядерных процессоров.
Различные методологии построения параллельных, распределенных и отказоустойчивых
программ. Различие между системами «мягкого» и «жесткого» реального времени.
Уметь: использовать знания о современной методологии построения параллельных
программ. Выбрать
подходящий инструментарий для разработки параллельных
программ, разработать архитектуру распределенного, отказоустойчивого приложения.
Владеть: инструментами разработки параллельных программ, основными принципами
дизайна распределенных отказоусточивых систем.
2. Структура и трудоемкость дисциплины.
Семестр 2. Форма промежуточной аттестации - зачет. Общая трудоемкость
дисциплины составляет
2
зачетные единицы,
72
академических часа, из них
часов, выделенных на контактную работу с преподавателем,
69,9
2.1 часа, выделенных на
самостоятельную работу.
Таблица 2.
Вид учебной работы
Контактная работа:
Всего часов
69,9
Семестры
1
69,9
4
Аудиторные занятия (всего)
В том числе:
Лекции
Практические занятия (ПЗ)
Семинары (С)
Лабораторные занятия (ЛЗ)
Иные виды работ:
Самостоятельная работа (всего):
Общая трудоемкость
зач. ед.
час
Вид промежуточной аттестации
(зачет, экзамен)
68
34
34
68
34
34
1,9
2,1
2
72
1,9
2,1
2
72
Зачёт
3. Тематический план
Таблица 3.
2
1.1.
1.2.
Архитектура
многопроцессорных
систем.
Способы организации
параллельных программ.
Всего*
Язык программирования
Erlang. Основные
концепции.
Последовательное
2.2. программирование в
Erlang.
Параллельное
2.3. программирование в
Erlang.
Open Telecom Platform.
Построение
2.4 распределенных и
отказоустойчивых
приложений.
Всего*
ИТОГО ЗА 1 СЕМЕСТР*
2.1.
3
4
1
2
5
Самостоятельная
работа*
1
Семинарские
(практические)
занятия*
Лабораторные
занятия*
Тема
Лекции *
№
недели семестра
Виды учебной работы и
самостоятельная
работа, в час.
Итого
часов
по
теме
Из них в
интерак
тивной
форме, в
часах
9
6
7
8
2
2
2
6
2
2
2
6
4
4
4
12
3
2
2
4
4-9
12
12
24
10-14
10
10
20
15-17
6
6
12
30
34
30
34
0
4
60
72
5
*- с учётом иных видов работ.
5. Содержание дисциплины.
Модуль 1.
Тема 1.1. Архитектура многопроцессорных систем.
Архитектура
вычислительных
систем.
Классификация
архитектур.
Понятие
архитектуры высокопроизводительной системы, классификация архитектур, основанная на
рассмотрении числа потоков инструкций и потоков данных. SMP и MPP-архитектуры.
Гибридная
архитектура
(NUMA).
Организация
когерентности
многоуровневой
иерархической памяти. Симметричная многопроцессорная, массивно-параллельная и
гибридная архитектуры вычислительных систем.
Тема 1.2. Способы организации параллельных программ.
Потоки и процессы современных операционных систем. Зеленые потоки. Модель акторов,
Communating Sequential Proccesses. Software Transactional Memory. Специализированные
языки и платформы для построения параллельных программ. Функции с побочными
эффектами, разделяемое состояние и изменяемые данные как основные препятствия к
созданию автоматически масштабируемых программ.
Модуль 2.
Тема 2.1. Язык программирования Erlang. Основные концепции.
Проблематика, которая привела к созданию Erlang. Основные идеи языка – легковесные
процессы, модель акторов, неизменяемые данные. Запуск оболочки Erlang. Простая
арифметика. Атомы, кортежи, списки, строки, сопоставление с образцом.
Тема 2.2 Последовательное программирование в Erlang.
Модули и функции, обработка списков. Рекурсия, как основной инструмент для работы.
Оптимизация рекурсивных вызовов. List comprehensions. Встроенные функции, охранные
выражения. Условные операторы case и if. Аккумуляторы. Записи и хэш-таблицы. Обработка
ошибок в последовательных программах. Концепция ”let it crash”. Бинарные строки и
битовый синтаксис. Динамическая загрузка кода.
Тема 2.3 Параллельное программирование в Erlang.
Модель
акторов
как
модель
окружающего
мира.
Примитивы
параллельного
программирования. Введение в клиент-серверную архитектуру. Легковесные процессы.
6
Различные техники отправки и приема сообщений. Обработка ошибок в параллельных
программах. Создание связанных процессов. Распределенное программирование: две модели
распределение. Стандартная библиотека для распределенных систем.
Тема 2.4 Open Telecom Platform. Построение распределенных и отказоустойчивых
приложений.
Основные концепции OTP: приложения, серверы, конечные автоматы. Шаблоны OTP в
реальных приложениях. Сравнение кода с использованием OTP и без него. Простой RPCсервер. Принципы дизайна распределенных и отказоустойчивых приложений.
6. Планы семинарских занятий.
Не планируются
7. Темы лабораторных работ (Лабораторный практикум).
1. Введение в функциональное программирование. Вычисление факториала,
последовательности Фибоначчи, обращение списка.
2. Работа со списками. Работа с агрегирующими функциями. List comprehensions.
Разработка
3.
простого
клиент-серверного
приложения
для
резервирования
телефонных частот.
4. Разработка сетевого сервиса для обмена сообщениями.
8. Примерная тематика курсовых работ.
Не планируются
9. Учебно-методическое обеспечение и планирование
студентов.
самостоятельной работы
Таблица 4.
№
Модули и темы
Виды СРС
обязательные
дополнительные
Неделя
семестра
Объем
часов
1
2
2
2
Модуль 1
1.1
1.2
Архитектура
многопроцессорных
систем.
Способы организации
параллельных
программ.
Проработка
лекций, работа
с литературой,
решение задач.
Всего по модулю 1*:
ИТОГО за 1 семестр*:
ИТОГО*:
2
2
4
* - с учётом иных видов работ
10.Фонд оценочных средств для проведения промежуточной аттестации по итогам
освоения дисциплины.
7
+
+
+
+
+
+
Итоговая
государственная
аттестация
+
Преддипломная
практика
Открытые технологии
разработки
программного
обеспечения
Семестр A
Разработка мобильных
приложений
Научноисследовательская
работа
Циклы, дисциплины (модули) учебного плана ОП
Индекс компетенции
Научноисследовательская
работа
Архитектура
многопроцессорных
вычислительных систем
ОПК-7
ОПК-8
Администрирование
распределенных систем
10.1 Перечень компетенций с указанием этапов их формирования в процессе освоения образовательной программы (выдержка из
матрицы компетенций):
Б.1. Дисциплины (модули)
Семестр B
Семестр C
+
+
+
8
ОПК-8
ОПК-7
Код
компетен
ции
10.2 Описание показателей и критериев оценивания компетенций на различных этапах их формирования, описание шкал оценивания:
Таблица 5.
Карта критериев оценивания компетенций
Виды занятий (лекции, семинар
ские, практические, лабораторные)
Оценочные средства (тесты, творческие работы, проекты и др.)
Знает: основные термины, методологию и особенности
архитектуры, алгоритмов функционирования систем реального
времени.
Лекции, практические занятия.
Практические задания, опрос.
Умеет: выбрать подходящий инструментарий и архитектуру для
постоения распределенных, отказоустойчивых систем и систем
реального времени.
Практические занятия
Практические задания, контрольная работа
Владеет: основными концепциями построения параллельных
приложений и соответствующим инструментарием.
Знает: перечень и особенности основных программных средств,
предназначенных для построения программных комплексов,
использующих возможности современных многопроцессорных
систем.
Лекции, практические занятия.
Практические задания, зачет
Лекции, практические занятия.
Практические задания, опрос.
Умеет: выбрать подходящие операционные системы, сетевые
оболочки и инструменты для разработки программных комплексов,
использующих возможности современных многопроцессорных
систем.
Практические занятия.
Практические задания, контрольная работа.
Владеет: основными концепциями современных операционных
систем и программных оболочек для построения программных
комплексов, использующих возможности современных
многопроцессорных систем.
Лекции, практические занятия.
Практические задания, зачет.
9
10.3 Типовые контрольные задания или иные материалы, необходимые для оценки
знаний, умений, навыков и (или) опыта деятельности, характеризующей этапы
формирования компетенций в процессе освоения образовательной программы.
Контрольная работа 1:
1. Реализовать программу, которая осуществляет параллельный обход статического вебсайта и сохраняет все найденные изображения на диск.
2. Разбор DOM необходимо осуществлять при помощи специализированных парсеров
(таких как mochiweb_html) и прочих. Разбор при помощи регулярных выражений
запрещен.
Контрольная работа 2:
1. Разработать простую сетевую игру (например крестики-нолики) с комнатами. Для
каждой отдельной игры необходимо создавать отдельный процесс.
2. Протестировать игру в распределенной среде. Описать пути создания
отказоустойчивой серверной части (общее хранилище состояния, балансировка
нагрузки и т.п.).
Вопросы к зачету:
1. Архитектура современных многоядерных процессоров.
2. Многозадачность в операционных системах. Модели многозадачности.
3. Software Transactional Memory. Основные положения и применимость в разработке
параллельных программ.
4. Communicating Sequential Processes. Основные положения и применимость в
разработке параллельных программ.
5. Модель акторов. Основные положения и применимость в разработке параллельных
программ.
6. Erlang, типы данных, работа с бинарными данными.
7. Erlang, работа со списками.
8. Erlang, построение параллельных приложений.
9. Erlang, построение распределенных приложений.
10. OTP, поведения gen_app, gen_server.
11. OTP, поведение gen_fsm.
11. Образовательные технологии.
10
Сочетание традиционных образовательных технологий в форме лекций, практических
работ и проведение контрольных мероприятий (контрольных работ, промежуточного
тестирования, экзамена).
аудиторные занятия:
лекционные
и
практические
занятия;
на
практических
занятиях
контроль
осуществляется при сдаче набора заданий. В течение семестра студенты выполняют задачи,
указанные преподавателем к каждому занятию;
активные и интерактивные формы: моделирование и анализ результатов при
выполнении самостоятельных работ;
внеаудиторные занятия:
выполнение дополнительных заданий разного типа и уровня сложности, подготовка к
аудиторным занятиям, изучение отдельных тем и вопросов учебной дисциплины в
соответствии
с
учебно-тематическим планом, составлении
конспектов.
Подготовка
индивидуальных заданий: выполнение самостоятельных и контрольных работ, подготовка ко
всем видам контрольных испытаний: текущему контролю успеваемости и промежуточной
аттестации; индивидуальные консультации.
12. Учебно-методическое и информационное обеспечение дисциплины.
12.1 Основная литература:
1. Олифер, В. Г. Компьютерные сети: принципы, технологии, протоколы : учеб.
пособие для студентов вузов, обуч. по напр. "Информатика и вычислительная
техника", по спец. "Вычислительные машины, комплексы, системы и сети"/ В. Г.
Олифер, Н. А. Олифер. - 4-е изд.. - Санкт-Петербург: Питер, 2012. - 944 с.
2. Олифер, В. Г. Сетевые операционные системы/ В. Г. Олифер, Н. А. Олифер. - 2-е
изд.. - Санкт-Петербург: Питер, 2008. - 669 с.
12.3 Интернет-ресурсы:
1. Томпсон С. Программирование в Erlang [Электронный ресурс] : / Томпсон С.,
Чезарини Ф. — Электрон. дан. — М. : ДМК Пресс, 2012. — 487 с. — Режим
доступа:
http://e.lanbook.com/books/element.php?pl1_id=4150
(дата
обращения:
01.05.2015).
2. Основы высокопроизводительных вычислений : учебное пособие / К.Е. Афанасьев,
С.В. Стуколов, В.В. Малышенко и др. - Кемерово : Кемеровский государственный
университет, 2012. - Т. 2. Технологии параллельного программирования. - 412 с. 11
ISBN
978-5-8353-1246-7
;
То
же
[Электронный
ресурс].
-
URL:
http://biblioclub.ru/index.php?page=book&id=232204 (дата обращения: 01.05.2015).
13. Перечень информационных технологий, используемых при осуществлении
образовательного процесса по дисциплине (модулю), включая перечень программного
обеспечения и информационных справочных систем (при необходимости).
Erlang programming guide (erlang.org), программная оболочка Erlang, версии не ниже
17.
14. Технические средства и материально-техническое обеспечение дисциплины
(модуля).
При освоении дисциплины для проведения лекционных занятий нужны учебные
аудитории,
оснащённые
мультимедийным
оборудованием,
для
проведения
практических занятий необходимы компьютерные классы.
1. Методические указания для обучающихся по освоению дисциплины (модуля).
Для успешного сдачи зачёта студенты должны посещать лекции и практические
занятия, выполнять домашние задания, выполнить все контрольные работы.
Для более эффективного освоения и усвоения материала рекомендуется ознакомиться
с теоретическим материалом по той или иной теме до проведения практического занятия.
Работу с теоретическим материалом по теме с использованием учебника или конспекта
лекций можно проводить по следующей схеме:
- название темы;
- цели и задачи изучения темы;
- основные вопросы темы;
- характеристика основных понятий и определений, необходимых для усвоения
данной темы;
- краткие выводы, ориентирующие на определенную совокупность сведений,
основных идей, ключевых положений, систему доказательств, которые необходимо усвоить.
Дополнения и изменения к рабочей программе на 201__ / 201__ учебный год
В рабочую программу вносятся следующие изменения:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
Рабочая
программа
пересмотрена
и
одобрена
на
заседании
кафедры
______________________________________ «__» _______________201 г.
Заведующий кафедрой ___________________/___________________/
Подпись
Ф.И.О.
12
Download