Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет прикладной математики и кибернетики МИЭМ Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра для магистерской программы «Математические методы естествознания и компьютерные технологии» Автор программы: И.В. Морозов, к. ф.-м. н., доцент, morozov@ihed.ras.ru Одобрена на заседании кафедры прикладной математики « 4 » февраля 2013 г. Зав. кафедрой Карасев М. В. Рекомендована секцией УМС [Введите название секции УМС] «___»____________ 20 г Председатель [Введите И.О. Фамилия] Утверждена УС факультета [Введите название факультета] «___»_____________20 г. Ученый секретарь [Введите И.О. Фамилия] ________________________ [подпись] Москва, 2013 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра 1 Область применения и нормативные ссылки Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400.68 «Прикладная математика и информатики», обучающихся по магистерской программе «Математические методы естествознания и компьютерные технологии», изучающих дисциплину «Высокопроизводительные вычисления на суперкомпьютерах». Программа разработана в соответствии с: Образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования «Государственный университет – Высшая школа экономики», в отношении которого установлена категория «Национальный исследовательский университет»; Образовательной программой «Математические методы естествознания и компьютерные технологии» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра; Рабочим учебным планом университета по направлению 010400.68 «Прикладная математика и информатика» подготовки магистра по программе «Математические методы естествознания и компьютерные технологии», утвержденным в 2013г. 2 Цели освоения дисциплины Целями освоения дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» является ознакомление студентов с архитектурой и принципами работы современных суперкомпьютеров и Грид-систем, технологиями параллельного программирования для систем с общей и распределенной памятью, особенностями использования суперкомпьютеров для решения различных задач математического моделирования в естественных науках. В результате выполнения заданий по курсу студенты приобретают навыки: работы на суперкомпьютерных вычислительных системах в качестве пользователя; создания параллельных программ для многоядерных процессоров (систем с общей памятью); создания параллельных программ для суперкомпьютерных кластеров (систем с распределенной памятью); отладки параллельных программ; распараллеливания существующих последовательных программ с помощью специализированных компиляторов и/или библиотек; получение навыков по применению методов дисциплины в задачах компьютерного моделирования и обработки данных. 3 Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: знать области применения современных суперкомпьютеров; знать архитектуру и основные характеристики суперкомпьютерных систем; знать основные принципы работы графических и других векторных ускорителей; уметь создавать новые параллельные программы и адаптировать существующие программы для работы на параллельных архитектурах; приобрести навыки отладки параллельных программ; знать принципы построения грид-сетей и систем облачных вычислений; иметь навыки работы с программным обеспечением суперкомпьютерных кластеров; Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра В результате освоения дисциплины студент осваивает следующие компетенции: Формы и методы обучения, способствующие формированию и развитию компетенции Лекции, самостоятельная работа Код по ФГОС/ НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Способен рефлексировать (оценивать и перерабатывать) освоенные научные методы и способы деятельности. Способен анализировать, верифицировать, оценивать полноту информации в ходе профессиональной деятельности, при необходимости восполнять и синтезировать недостающую информацию СК-М1 Демонстрирует знание областей применения, архитектуры и принципов работы суперкомпьютеров, а также методов параллельного программирования Применяет полученные знания для создания параллельных программ и выполнения их на многопроцессорных серверах и суперкомпьютерных кластерах Способен анализировать и воспроизводить смысл междисциплинарных текстов с использованием языка и аппарата прикладной математики ИКМ2.1пм и Использует знания о вычислиЛекции, практические занятельных методах и теории графов тия и самостоятельная рабодля создания оптимальных пата раллельных алгоритмов в задачах математического моделирования Способен строить и решать математические модели в соответствии с направлением подготовки и специализацией ИКМ7.2пм и Использует знания о параллельных методах для создания и отладки параллельных программ Лекции, практические занятия и самостоятельная работа Способен понимать и применять в исследовательской и прикладной деятельности современный математический аппарат ИКМ7.3пм и Создает, дорабатывает и/или использует параллельные программы для решения задач математического моделирования, интерпретирует полученные данные Практические занятия, выполнение домашних работ Компетенция 4 СК-М6 Практические занятия, выполнение домашних работ Место дисциплины в структуре образовательной программы Настоящая дисциплина относится к дисциплинам по выбору по данному направлению обучения. Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: навыками работы с компьютером в качестве пользователя; знанием и практическими навыками разработки программ на алгоритмических языках C или Fortran; знаниями основ математического анализа; навыками решения типовых задач курса «Вычислительная математика». Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин: Моделирование наноустройств; Интегрированные компьютерные системы математических расчетов; Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра 5 Многомасштабное моделирование. Тематический план учебной дисциплины № 1 2 3 6 Всего часов Название раздела Архитектура и принципы работы суперкомпьютеров Параллельное программирование для систем с общей памятью Параллельное программирование для систем с распределенной памятью Всего 54 Аудиторные часы ПрактиЛекСемические ции нары занятия 12 8 Самостоятельная работа 34 72 12 18 42 72 12 18 42 198 32 48 118 Формы контроля знаний студентов Тип контроля Текущий (неделя) Форма контроля Домашнее задание Зачет Итоговый Экзамен 1 год 3 4 4-10 неделя 5-9 неделя Х Параметры Домашнее задание состоит из четырех практических заданий по созданию программ моделирования, использующих технологии параллельного программирования для систем с общей и распределенной памятью. Задание выдается на 4-й неделе, его выполнение задания контролируется на семинарах на протяжении всего семестра. Выполненное задание в письменном виде должно включать в себя тексты программ и полученные с ее помощью результаты в виде таблиц и графиков. Устная защита проходит на семинаре с демонстрацией работы программы на компьютере и обоснованием полученных результатов. Письменная контрольная работа по разделам «Архитектура и принципы работы суперкомпьютеров», «Параллельное программирование для систем с общей памятью» и «Параллельное программирование для систем с распределенной памятью» выполняется на семинаре и включает в себя набор из 4-6 кратких вопросов по теоретическому материалу. Устный экзамен на 120 минут. Включает от 3 до 5 вопросов по всем темам курса различного уровня сложности. Критерии оценки знаний, навыков Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале. Оценка за контрольную работу, домашнее задание и экзамен рассчитывается как доля успешно решенных студентом задач от общего числа задач, умноженная на 10. 6.1 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра 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. Проблемы недостаточной синхронизация потоков. Детерминированность результатов работы программы. Локальные и общие переменные потоков, безопасный доступ к общим переменным. Побочные эффекты, реентерабельность процедур. Объекты синхронизации потоков: взаимное исключение, семафор, событие. Избыточная синхронизации потоков, тупики. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра Тема 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 Итоговая оценка К по 10-балльной шкале формируется как взвешенная сумма: K = 0,3D+0,3Z+0,4E 10-балльных оценок за домашнее задание D, зачёт Z и экзамен E с округлением до целого числа баллов. Оценка округляется вверх. Перевод в 5-балльную шкалу осуществляется по правилу: 0 ≤ К ≤ 3 - неудовлетворительно, Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра 4 ≤ К ≤ 5 - удовлетворительно, 6 ≤ К ≤ 7 - хорошо, 8 ≤ К ≤10 -отлично. При итоговой оценке за зачет ниже 4 баллов, итоговая оценка за весь курс равняется оценке за зачет. 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. 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. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Высокопроизводительные вычисления на суперкомпьютерах» для направления 010400.68 «Прикладная математика и информатика» подготовки магистра 12. Официальная документация и учебные пособия по MPI: http://www.mcs.anl.gov/mpi, http://www.lam-mpi.org