Федеральное государственное бюджетное образовательное
учреждение высшего образования 
Московский государственный университет имени М.В. Ломоносова
Факультет вычислительной математики и кибернетики

УТВЕРЖДАЮ
декан факультета вычислительной математики и кибернетики
______________/И.А. Соколов /
«___» ________________20___г.

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Наименование дисциплины:
Суперкомпьютеры и параллельная обработка данных
Уровень высшего образования:
бакалавриат
Направление подготовки / специальность:
01.03.02 «Прикладная математика и информатика» (3++)
Направленность (профиль):
Математические методы обработки информации и принятия решений
Форма обучения:
очная

Москва 2023

Рабочая программа дисциплины (модуля) разработана в соответствии с самостоятельно установленным МГУ образовательным стандартом (ОС МГУ) для реализуемых основных профессиональных образовательных программ высшего образования по направлению подготовки 01.03.02, 01.04.02 "Прикладная математика и информатика" программы бакалавриата  Утвержден приказом МГУ от 30 августа 2019 года № 1041 (в редакции приказов МГУ от 11 сентября 2019 года № 1109, от 10 июня 2021 года № 609, от 7 октября 2021 года № 1048, от 21 декабря 2021 года № 1404, от 2 ноября 2022 года № 1299)

1. Дисциплина относится к базовой части ОПОП ВО.

2. Входные требования для освоения дисциплины (модуля): учащиеся должны владеть знаниями по алгоритмам и алгоритмическим языкам в объеме, соответствующем программе первого года обучения, численным методам в объеме, соответствующем программе второго года обучения, основных образовательных программ бакалавриата по укрупненным группам направлений и специальностей 01.00.00 «Математика и механика», 02.00.00 «Компьютерные и информационные науки».

3. Результаты обучения по дисциплине (модулю), соотнесенные с требуемыми компетенциями выпускников.

Компетенции выпускников, частично формируемые при реализации дисциплины (модуля):

•	ОПК-3.Б Способность решать задачи в области прикладной математики и информатики с использованием современных информационных технологий, учитывая основные требования информационной безопасности
•	ОПК-4.Б Способность применять в профессиональной деятельности современные средства разработки программного обеспечения и методы параллельной обработки данных, реализовывать отдельные этапы разработки системного и прикладного программного обеспечения, систем обработки и анализа данных, сетевых технологий

Планируемые результаты обучения по дисциплине (модулю):

Знать:
1.	базовые принципы параллельной обработки данных;
2.	основные классы параллельных вычислительных систем, особенности их архитектуры;
3.	технологии программирования;
4.	методы оценки производительности;
5.	иметь представление о вычислительно сложных задачах из разных областей;
6.	проблему отображения программ и алгоритмов на архитектуру параллельных компьютеров;
7.	основы построения параллельных методов решения задач.

Уметь:
1.	решать задачи на параллельных вычислительных системах;
2.	определять параллельную структуру программ и алгоритмов;
3.	оценивать параллельную сложность алгоритмов и эффективность методов решения задач.
Владеть:
1.	навыками работы с технологиями параллельного программирования;
2.	навыками определения, описания и исследования информационной структуры программ и алгоритмов.
4. Формат обучения: лекции проводятся с использованием компьютерных презентаций и презентационного оборудования, при проведении зачёта применяется коллективный банк тестов по параллельным вычислениям и суперкомпьютерным технологиям СИГМА:
http://sigma.parallel.ru.

5. Объем дисциплины (модуля) составляет 2 з.е., в том числе 36 академических часов, отведенных на контактную работу обучающихся с преподавателем, 36 академических часов на самостоятельную работу обучающихся. 

6. Содержание дисциплины (модуля), структурированное по темам (разделам) с указанием отведенного на них количества академических часов и виды учебных занятий.
Наименование и краткое содержание разделов и тем дисциплины (модуля),

Форма промежуточной аттестации по дисциплине (модулю)	Всего
(часы)	В том числе	
		Контактная работа 
(работа во взаимодействии с преподавателем)
Виды контактной работы, часы	Самостоятельная работа обучающегося,
 часы 
	
		Занятия лекционного типа*	Занятия семинарского типа*	Всего		
1.	Введение в предмет.	8	6	0	6	2	
2.	Основные показатели эффективности и масштабируемости параллельных программ	6	4	0	4	2	
3.	Архитектура параллельных вычислительных систем.	12	8	0	8	4	
4.	Методы оценки производительности параллельных вычислительных систем	4	2	0	2	2	
5.	Технологии параллельного программирования. 	12	8	0	8	4	
6.	Компоненты и системное программное обеспечение программное обеспечение суперкомпьютеров	6	4	0	4	2	
7.	Введение в теорию анализа структуры программ и алгоритмов	6	4	0	4	2	
Промежуточная аттестация: зачет в виде тестирования	4	0	0	0	4	
Промежуточная аттестация: устный зачет	14	0	0	0	14	
Итого	72	36	0	36	36	

7. Фонд оценочных средств (ФОС) для оценивания результатов обучения по дисциплине (модулю)

7.1. Типовые контрольные задания или иные материалы для проведения текущего контроля успеваемости.

Зачёт в виде тестирования проводится с использованием Коллективного банка тестов по параллельным вычислениям и суперкомпьютерным технологиям СИГМА (http://sigma.parallel.ru).

В тест входит 33 вопроса, на прохождение теста даётся 60 минут. Вопросы к электронному тестированию имеют следующий вид:

В конвейерном устройстве есть 4 ступени, срабатывающих за один такт каждая. За сколько тактов это устройство обработает 5 пар аргументов?
Варианты ответов:
•	1
•	3
•	5
•	7
•	8
•	9
•	15
•	Верного ответа нет.

Вопросы к устному зачёту.

1.	Виды параллельной обработки данных, их особенности.
2.	Вычислительно сложные задач. Примеры оценки вычислительной сложности реальных задач..
3.	Микроэлектроника и архитектура: оценка вклада в увеличение производительности компьютеров.
4.	Архитектура и параметры суперкомпьютерных систем – лидеров списка Top500 (примеры).
5.	Список Top500: принципы формирования, структура, параметры.
6.	Иерархия памяти, локальность вычислений, локальность использования данных.
7.	Закон Амдала, его следствия, суперлинейное ускорение.
8.	Показатели качества параллельных программ: ускорение, эффективность реализации, эффективность распараллеливания, масштабируемость.
9.	Сильная масштабируемость, масштабируемость вширь, слабая масштабируемость. Функция изоэффективности.
10.	Этапы решения задач на параллельных вычислительных системах.
11.	Классификация Флинна архитектур вычислительных систем.
12.	 Компьютеры с общей и распредёленной памятью. Две задачи параллельных вычислений.
13.	 UMA, NUMA и ccNUMA архитектуры. Компьютеры Cm*, BBN Butterfly.
14.	 Общая структура ccNUMA компьютера на примере Hewlett-Packard Superdome.
15.	 Причины уменьшения производительности компьютеров с общей памятью.
16.	 Коммуникационные топологии. Длина критического пути, связность, сложность.
17.	 Общая структура компьютеров семейства CRAY XT: вычислительные узлы, процессорные элементы, коммуникационная сеть. 
18.	 Общая структура компьютеров семейства CRAY XT: аппаратная поддержка синхронизации параллельных процессов. 
19.	 Вычислительные кластеры: узлы, коммуникационная сеть (латентность, пропускная способность), способы построения.
20.	 Архитектура суперкомпьютеров СКИФ МГУ «Чебышев», «Ломоносов» и «Ломоносов-2».
21.	 Топология коммуникационной сети «толстое дерево» (fat tree) на примере реализации в суперкомпьютерах СКИФ МГУ «Чебышёв» или «Ломоносов».
22.	 Причины уменьшения производительности компьютеров с распределённой памятью.
23.	 Соотношение между понятиями: функциональное устройство, команда (операция), компьютер и их характеристиками: скалярный, векторный, конвейерный.
24.	 Векторизация программ, необходимые условия векторизации, препятствия для векторизации.
25.	 Общая структура векторно-конвейерного компьютера на примере CRAY C90. Параллелизм в архитектуре компьютера CRAY C90.
26.	 Суперкомпьютеры NEC SX-Aurora TSUBASA.
27.	 Элементы векторной обработки в современных компьютерах. Наборы инструкций MMX,SSE,AVX,AVX2,AVX-512, AltiVec, ARM SVE.
28.	 Причины уменьшения производительности векторно-конвейерных компьютеров.
29.	 Метакомпьютер и метакомпьютинг. Отличительные свойства распределенных вычислительных сред.
30.	 Параллелизм на уровне машинных команд. Суперскалярность, VLIW, EPIC.
31.	 Производительность вычислительных систем, методы оценки и измерения.
32.	 Технологии параллельного программирования: способы и подходы создания параллельных программ.
33.	 MPI: параллельная программа, сообщение, понятия групп и коммуникаторов.
34.	 MPI: синхронное взаимодействие процессов, виды операторов Send (Bsend, Ssend, Rsend). Тупиковые ситуации.
35.	 MPI: асинхронное взаимодействие процессов.
36.	 MPI: коллективные операции.
37.	 MPI: пересылка разнотипных данных, пересылка упакованных данных.
38.	 OpenMP: параллельная программа, нити, конструкции для организации параллельных и последовательных секций.
39.	 OpenMP: основные конструкции для распределения работы между нитями.
40.	 OpenMP: основные конструкции для синхронизации нитей и работы с общими и локальными данными.
41.	 Аппаратные компоненты суперкомпьютера, ключевые сервисы, их назначение.
42.	 Способы управления ПО на суперкомпьютере, варианты загрузки.
43.	 Графовые модели программ, их взаимосвязь.
44.	 Понятия информационной зависимости и информационной независимости. Примеры использования.
45.	 Граф алгоритма. Критический путь графа алгоритма.
46.	 Эквивалентные преобразования программ. Преобразования циклов (перестановка, распределение, расщепление).
47.	 Виды параллелизма: конечный, массовый, координатный, скошенный.
48.	 Ярусно-параллельная форма графа алгоритма, высота, ширина. Каноническая ЯПФ.
49.	 Зависимость степени параллелизма от формы записи алгоритма (на примере реализации метода Гаусса).

Билет для устного зачета содержит 2 вопроса, например:

1.	Виды параллельной обработки данных, их особенности.
2.	Суперкомпьютеры NEC SX-Aurora TSUBASA.

ШКАЛА И КРИТЕРИИ ОЦЕНИВАНИЯ результатов обучения (РО) по дисциплине (модулю)  
	
Оценка
РО и
соответствующие виды оценочных средств 	2	3	4	5	
Знания
Зачет	Отсутствие знаний	Фрагментарные знания	Общие, но не структурированные знания	Сформированные систематические знания	
Умения
Зачет	Отсутствие умений	В целом успешное, но не систематическое умение	В целом успешное, но содержащее отдельные пробелы умение (допускает неточности непринципи-ального характера)	Успешное и систематическое умение	
Навыки 
(владения, опыт деятельности)
Зачет 	Отсутствие навыков (владений, опыта)	Наличие отдельных навыков (наличие фрагментарного опыта)	В целом, сформированные навыки (владения), но используемые не в активной форме	Сформированные навыки (владения), применяемые при решении задач	
Соответствие результатов обучения и компетенций, в развитии которых участвует дисциплина (модуль)
	
Результаты обучения	Компетенция, с частичным формированием которой связано достижение результата обучения	
Знать:
1.	технологии программирования;
2.	методы оценки производительности;
3.	иметь представление о вычислительно сложных задачах из разных областей;
4.	проблему отображения программ и алгоритмов на архитектуру параллельных компьютеров.

Уметь:
1.	решать задачи на параллельных вычислительных системах.

Владеть:
1.	навыками работы с технологиями параллельного программирования.	

ОПК-3.Б	
Знать:
1.	базовые принципы параллельной обработки данных;
2.	основные классы параллельных вычислительных систем, особенности их архитектуры;
3.	основы построения параллельных методов решения задач.
Уметь:
1.	определять параллельную структуру программ и алгоритмов;
2.	оценивать параллельную сложность алгоритмов и эффективность методов решения задач.

Владеть:
1.	навыками определения, описания и исследования информационной структуры программ и алгоритмов.

ОПК-4.Б	

8. Ресурсное обеспечение:

Основная литература:

1.	Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 608 с.
2.	Антонов А.С. Технологии параллельного программирования MPI и OpenMP: Учеб. пособие. Предисл.: В.А.Садовничий. - М.: Издательство Московского университета, 2012.-344 с.-(Серия «Суперкомпьютерное образование»).
3.	Вл.В.Воеводин, С.А.Жуматий. Вычислительное дело и кластерные системы.-М.: Изд-во МГУ, 2007.-150с. (http://parallel.ru/info/parallel/cluster/)

Дополнительная литература:

1.	А.С.Антонов. Параллельное программирование с использованием технологии MPI.-М.: Изд-во МГУ, 2004.-71с. (http://parallel.ru/info/parallel/)
2.	Антонов А.С. Параллельное программирование с использованием технологии OpenMP: Учебное пособие.-М.: Изд-во МГУ, 2009. - 77 с. (http://parallel.ru/info/parallel/)

Информационные справочные системы:

Материалы информационно-аналитического центра Parallel.ru

Открытая энциклопедия свойств алгоритмов AlgoWiki (https://algowiki-project.org)

Коллективный банк тестов по параллельным вычислениям и суперкомпьютерным технологиям СИГМА
http://sigma.parallel.ru

Материально-техническкое обеспечение:  аудитория с презентационным оборудованием.

9. Язык преподавания - русский.

10. Преподаватели:
профессор факультета ВМК МГУ, член-корр. РАН, зав.кафедрой Суперкомпьютеров и квантовой информатики Вл.В. Воеводин,
вед.н.с. А.С. Антонов, вед.н.с. С.А. Жуматий

11. Авторы программы: 
профессор факультета ВМК МГУ, член-корр. РАН, зав.кафедрой Суперкомпьютеров и квантовой информатики Вл.В. Воеводин, вед.н.с. А.С. Антонов