Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет прикладной математики и кибернетики МИЭМ Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02 «Прикладная математика и информатика» подготовки магистра для магистерской программы «Математические методы естествознания и компьютерные технологии» Автор программы: И.В. Морозов, к. ф.-м. н., доцент, [email protected] Одобрена на заседании кафедры прикладной математики « 4 » марта 2014 г. Зав. кафедрой Карасев М. В. Рекомендована секцией УМС [Введите название секции УМС] «___»____________ 20 г Председатель [Введите И.О. Фамилия] Утверждена УС факультета [Введите название факультета] «___»_____________20 г. Ученый секретарь [Введите И.О. Фамилия] ________________________ [подпись] Москва, 2014 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра 1 Область применения и нормативные ссылки Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 01.04.02 «Прикладная математика и информатики», обучающихся по магистерской программе «Математические методы естествознания и компьютерные технологии» и изучающих дисциплину «Суперкомпьютерное моделирование». Программа разработана в соответствии с: Образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования «Государственный университет – Высшая школа экономики», в отношении которого установлена категория «Национальный исследовательский университет»; Образовательной программой «Математические методы естествознания и компьютерные технологии» для направления 01.04.02 «Прикладная математика и информатика» подготовки магистра; Рабочим учебным планом университета по направлению 01.04.02 «Прикладная математика и информатика» подготовки магистра по программе «Математические методы естествознания и компьютерные технологии», утвержденным в 2014г. 2 Цели освоения дисциплины Целями освоения дисциплины «Суперкомпьютерное моделирование» является ознакомление студентов с архитектурой и принципами работы современных суперкомпьютеров и Гридсистем, технологиями параллельного программирования для систем с общей и распределенной памятью, особенностями использования суперкомпьютеров для решения различных задач математического моделирования в естественных науках. В результате выполнения заданий по курсу студенты приобретают навыки: работы на суперкомпьютерных вычислительных системах в качестве пользователя; создания параллельных программ для многоядерных процессоров (систем с общей памятью); создания параллельных программ для суперкомпьютерных кластеров (систем с распределенной памятью); отладки параллельных программ; распараллеливания существующих последовательных программ с помощью специализированных компиляторов и/или библиотек; получение навыков по применению методов дисциплины в задачах компьютерного моделирования и обработки данных. 3 Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: знать области применения современных суперкомпьютеров; знать архитектуру и основные характеристики суперкомпьютерных систем; знать основные принципы работы графических и других векторных ускорителей; уметь создавать новые параллельные программы и адаптировать существующие программы для работы на параллельных архитектурах; приобрести навыки отладки параллельных программ; Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра знать принципы построения грид-сетей и систем облачных вычислений; иметь навыки работы с программным обеспечением суперкомпьютерных кластеров; В результате освоения дисциплины студент осваивает следующие компетенции: Формы и методы обучения, способствующие формированию и развитию компетенции Лекции, самостоятельная работа Код по ФГОС/ НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Способен рефлексировать (оценивать и перерабатывать) освоенные научные методы и способы деятельности. Способен анализировать, верифицировать, оценивать полноту информации в ходе профессиональной деятельности, при необходимости восполнять и синтезировать недостающую информацию СК-М1 Демонстрирует знание областей применения, архитектуры и принципов работы суперкомпьютеров, а также методов параллельного программирования Применяет полученные знания для создания параллельных программ и выполнения их на многопроцессорных серверах и суперкомпьютерных кластерах Способен анализировать и воспроизводить смысл междисциплинарных текстов с использованием языка и аппарата прикладной математики ИКМ2.1пм и Использует знания о вычислиЛекции, практические занятельных методах и теории графов тия и самостоятельная рабодля создания оптимальных пата раллельных алгоритмов в задачах математического моделирования Способен строить и решать математические модели в соответствии с направлением подготовки и специализацией ИКМ7.2пм и Использует знания о параллельных методах для создания и отладки параллельных программ Лекции, практические занятия и самостоятельная работа Способен понимать и применять в исследовательской и прикладной деятельности современный математический аппарат ИКМ7.3пм и Создает, дорабатывает и/или использует параллельные программы для решения задач математического моделирования, интерпретирует полученные данные Практические занятия, выполнение домашних работ Компетенция 4 СК-М6 Практические занятия, выполнение домашних работ Место дисциплины в структуре образовательной программы Настоящая дисциплина относится к базовым по данному направлению обучения. Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: навыками работы с компьютером в качестве пользователя; знанием и практическими навыками разработки программ на алгоритмических языках C или Fortran; знаниями основ математического анализа; навыками решения типовых задач курса «Вычислительная математика». Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин: Моделирование наноустройств; Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра 5 Интегрированные компьютерные системы математических расчетов; Многомасштабное моделирование. Тематический план учебной дисциплины Аудиторные часы № 1 2 3 6 Архитектура и принципы работы суперкомпьютеров Параллельное программирование для систем с общей памятью Параллельное программирование для систем с распределенной памятью Всего 180 Лекции 30 Семинары Практические занятия 30 Самостоятельная работа 120 Формы контроля знаний студентов Тип кон- Форма троля контроля Текущий Домашнее задание Экзамен Итоговый 6.1 Всего часов Название раздела Экзамен 1 год 3 4 4-10 неделя Х Х Параметры Домашнее задание состоит из четырех практических заданий по созданию программы моделирования, использующих использующей технологии параллельного программирования для систем с общей или распределенной памятью. Задание выдается на 4-й неделе, его выполнение задания контролируется на семинарах на протяжении всего семестра. Выполненное задание в письменном виде должно включать в себя тексты программ и полученные с ее помощью результаты в виде таблиц и графиков. Устная защита проходит на семинаре с демонстрацией работы программы на компьютере и обоснованием полученных результатов. Письменная работа по разделам «Архитектура и принципы работы суперкомпьютеров», «Параллельное программирование для систем с общей памятью» и «Параллельное программирование для систем с распределенной памятью» включает в себя набор из 4-6 кратких вопросов по теоретическому материалу. Устный экзамен на 120 минут. Включает от 3 до 5 вопросов по всем темам курса различного уровня сложности. Критерии оценки знаний, навыков Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра 7 Содержание дисциплины Содержание дисциплины разбито на разделы, каждый включает в себя 4 темы по которым проводится одна или две лекции и один или два практических занятия. 1. Раздел 1. Архитектура и принципы работы суперкомпьютеров. Тема 1. Обзор высокопроизводительных систем в России и за рубежом. Обсуждение последних редакций рейтингов Top-500 и Top-50. Качественный переход от последовательных к массивно-параллельным архитектурам и алгоритмам. Технологические ограничения повышения быстродействия компьютеров, путь к экзафлопсной производительности. Проблемы энергопотребления и надежности суперкомпьютеров. Тема 2. Классификация вычислительных систем. Параллелизм по задачам и по данным. Системы с общей и распределенной памятью. Тема 3. Ускорение векторных операций, графические ускорители (GPU). Структура внутренней памяти GPU и избежание задержек, связанных с обращением к памяти. Средства разработки программ для GPU, технологии CUDA и OpenCL. Тема 4. Грид-технологии и распределенные вычисления в Интернет (метакомпьютинг). Облачные вычисления (Cloud computing). Виртуализация ресурсов, безопасность и аутентификация в Грид, диспетчеризация задач и ресурсов. Литература по разделу: 1. Гергель В.П. Теория и практика параллельных вычислений. Учебное пособие. М: Бином, 2007. 2. Суперкомпьютерные технологии в науке, образовании и промышленности / Под ред.: В.А. Садовничего, академика Г.И. Савина, Вл.В. Воеводина. М.: МГУ, 2009. 3. Forster I., Kesselman C. (eds). The Grid: Blueprint for a new computing infrastructure. San Francisco: Morgan Kaufman, 1999. 4. И. Д. Котляров. Сети Грид // Прикладная информатика №1 (13) 2008. 5. Устинов В.А., Клементьев И.П. Введение в облачные вычисления. М.: Интуит, 2011. 6. Сайт Лаборатории параллельных информационных технологий НИВЦ МГУ http://parallel.ru 7. Интернет-портал по Грид технологиям http://www.gridclub.ru 8. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессоров. М.: ДМК Пресс, 2011. 9. Боресков А. В., Харламов А. А. Основы работы с технологией CUDA. М.: ДМК Пресс, 2012. 10. А. В. Боресков и др. Предисл.: В. А. Садовничий. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб. пособие. М.: МГУ, 2012. 2. Раздел 2. Параллельное программирование для систем с общей памятью. Тема 1. Внутренний параллелизм современных процессоров, скалярная и суперскалярная архитекутры, конвейер команд. Многоядерные процессоры. Модели взаимодействия с памятью UMA и NUMA. Перспективы наращивания числа ядер, проблема когерентности кэша. Тема 2. Особенности создания параллельных программ для систем с общей памятью. Поддержка параллелизма на уровне операционной системы. Процессы (process) и потоки (threads). Создание многопоточных программ с использованием базовых средств операционных систем Windows (Win32 API) и Linux (POSIX Threads). Тема 3. Проблемы недостаточной синхронизация потоков. Детерминированность результатов работы программы. Локальные и общие переменные потоков, безопасный доступ к общим переменным. Побочные эффекты, реентерабельность процедур. Объекты синхронизации потоков: взаимное исключение, семафор, событие. Избыточная синхронизации потоков, тупики. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра Тема 4. Распараллеливание программ с использованием технологии OpenMP. Использование высокоуровневых библиотек и параллельных языков программирования. Автоматическое распараллеливанием программ. Отладка параллельных программ. Литература по разделу: 1. Карпов В.Е., Коньков К.А. Основы операционных систем. М.: Интуит, 2004. 2. Федотов И.Е. Модели параллельного программирования. М.: Солон-Пресс, 2012. 3. Butenhof D.R. Programming with POSIX Threads. Addison-Wesley, 1997. 4. Левин М.П. Параллельное программирование с использованием OpenMP. М: Интуит, 2012. 5. Антонов А.С. Параллельное программирование с использованием технологии OpenMP. М.: МГУ, 2009 6. Официальная документация и учебные пособия по OpenMP: http://www.openmp.org, http://www.llnl.gov/computing/tutorials/openMP 3. Раздел 3. Параллельное программирование для систем с распределенной памятью. Тема 1. Программное обеспечение суперкомпьютерного кластера. Кластеры типа Beowulf. Использование системы управления очередями задач PBS, SLURM, ИПМ РАН. Тема 2. Технология MPI. Классификация функций MPI и основные понятия. Компиляция и запуск программ. Функции двухточечного обмена сообщениями. Функции коллективного обмена сообщениями. Тема 3. Односторонняя и двухсторонняя модели обмена сообщениями. Дополнительные возможности стандарта MPI-2. Тема 4. Теоретические основы параллельных алгоритмов. Понятия загруженности, производительности и ускорения. Информационная зависимость операций, графы исполнения, минимальные графы. Эффективность распараллеливания типичных алгоритмов компьютерного моделирования. Литература по разделу: 1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. М.: БХВ-СанктПетербург, 2004. 2. Антонов А.С. Александр Антонов: Технологии параллельного программирования MPI и OpenMP. Учебное пособие. М.: МГУ, 2013 3. Корнеев В.Д. Параллельное программирование в MPI. Новосибирск: Изд-во ИВМиМГ СО РАН, 2002. 4. Шпаковский Г. И., Верхотуров А. Е., Серикова Н. В. Руководство по работе на вычислительном кластере. Учебное пособие. Минск.: БГУ, 2004. 5. Богачёв К.Ю. Основы параллельного программирования, М: Бином, 2003. 6. D.H.M. Spector. Building Linux Clusters. O'Reilly Media, 2000. 7. Официальная документация и учебные пособия по MPI: http://www.mcs.anl.gov/mpi, http://www.lam-mpi.org 8 Порядок формирования оценок по дисциплине Преподаватель оценивает работу студентов на практических занятиях (Оауд), основываясь на результатах выполнения ими четырех основных и одного из трех дополнительных практических заданий на выбор. Успешное выполнение одного задания оценивается в два балла. Домашняя работа студентов состоит в создании и программной реализации параллельного алгоритма по индивидуальному заданию, которое каждый из студентов получается в середине семестра. При защите задания на практическом занятии студент должен представить текст программы, продемонстрировать ее работоспособность и предъявить полученные с ее помощью результаты в виде таблиц и графиков. При этом студент должен ответить на вопросы препода- Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра вателя о назначении тех или иных блоков кода в тексте программы и объяснить смысл полученных результатов. Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная = 0,5 * Оауд + 0,5 * Одом.работа Итоговая оценка промежуточной аттестации (Опромежуточная) учитывает результаты студента по текущему контролю (Онакопленная) и результаты промежуточного письменного экзамена, оценка за который выставляет как доля правильных ответов на вопросы, умноженная на 10 (Опром.экз.): Опромежуточная = 0,6 * Онакопленная + 0,4 * Опром.экз. Способ округления оценки промежуточной аттестации: в пользу студента. Итоговая оценка К по 10-балльной шкале формируется как взвешенная сумма: Оитоговая = 0,5 * Онакопленная + 0,5 * Оитог.экз. Способ округления накопленной оценки и итогового контроля в форме экзамена: в пользу студента. На экзамене студент может получить дополнительный вопрос (дополнительную практическую задачу, решить к пересдаче домашнее задание), ответ на который оценивается в 1 балл. 9 Учебно-методическое и информационное обеспечение дисциплины 9.1 Базовый учебник Гергель В.П. Теория и практика параллельных вычислений. Учебное пособие. М: Бином, 2007. Электронная версия доступна на сайте http://www.intuit.ru/studies/courses/1156/190/info 9.2 Основная литература 1. Антонов А.С. Александр Антонов: Технологии параллельного программирования MPI и OpenMP. Учебное пособие. М.: МГУ, 2013 2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. М.: БХВ-СанктПетербург, 2004. 3. Карпов В.Е., Коньков К.А. Основы операционных систем. М.: Интуит, 2004. 9.3 Дополнительная литература 1. Суперкомпьютерные технологии в науке, образовании и промышленности / Под ред.: В.А. Садовничего, академика Г.И. Савина, Вл.В. Воеводина. М.: МГУ, 2009. 2. Forster I., Kesselman C. (eds). The Grid: Blueprint for a new computing infrastructure. San Francisco: Morgan Kaufman, 1999. 3. И. Д. Котляров. Сети Грид // Прикладная информатика №1 (13) 2008. 4. Устинов В.А., Клементьев И.П. Введение в облачные вычисления. М.: Интуит, 2011. 5. Сайт Лаборатории параллельных информационных технологий НИВЦ МГУ http://parallel.ru 6. Интернет-портал по Грид технологиям http://www.gridclub.ru 7. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессоров. М.: ДМК Пресс, 2011. 8. Боресков А. В., Харламов А. А. Основы работы с технологией CUDA. М.: ДМК Пресс, 2012. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Суперкомпьютерное моделирование» для направления 01.04.02«Прикладная математика и информатика» подготовки магистра 9. А. В. Боресков и др. Предисл.: В. А. Садовничий. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб. пособие. М.: МГУ, 2012. 4. Федотов И.Е. Модели параллельного программирования. М.: Солон-Пресс, 2012. 5. Butenhof D.R. Programming with POSIX Threads. Addison-Wesley, 1997. 6. Левин М.П. Параллельное программирование с использованием OpenMP. М: Интуит, 2012. 7. Антонов А.С. Параллельное программирование с использованием технологии OpenMP. М.: МГУ, 2009 8. Официальная документация и учебные пособия по OpenMP: http://www.openmp.org, http://www.llnl.gov/computing/tutorials/openMP 8. Корнеев В.Д. Параллельное программирование в MPI. Новосибирск: Изд-во ИВМиМГ СО РАН, 2002. 9. Шпаковский Г. И., Верхотуров А. Е., Серикова Н. В. Руководство по работе на вычислительном кластере. Учебное пособие. Минск.: БГУ, 2004. 10. Богачёв К.Ю. Основы параллельного программирования, М: Бином, 2003. 11. D.H.M. Spector. Building Linux Clusters. O'Reilly Media, 2000. 12. Официальная документация и учебные пособия по MPI: http://www.mcs.anl.gov/mpi, http://www.lam-mpi.org