Параллельные и распределенные вычисления
Общий курс
Составители: доктор физ.-мат. наук, профессор Андрианов С. Н.Содержание дисциплины
ЧАСТЬ 1. Основные типы архитектур вычислительных машин и систем
- Раздел 1. Введение.
- Эволюция развития вычислительных высокопроизводительных систем. Классическая Фон-Неймановская архитектура. Математическая и технологическая реализация.
- Раздел 2. Классификация вычислительных систем.
- Суперскалярные, векторные вычислительные системы. Конвейерные и матричные системы. Архитектура памяти. Системы команд для параллельных вычислений. Классификация современных вычислительных систем (по Флинну). Вычислительные и программные аспекты.
- Раздел 3. Современные тенденции развития высокопроизводительных вычислительных систем.
- Определение высокопроизводительных систем. Эволюция развития вычислительных высокопроизводительных систем. Современные реализации. Примеры. Методы повышения быстродействия памяти: иерархия памяти; пространственная и временная локальность, кэш-память и стратегии ее использования; расслоение памяти. Методы повышения быстродействия процессора: конвейер команд, предсказание переходов, компьютеры с несколькими АЛУ, изменение порядка исполнения команд, переименование регистров, переключение контекста, скалярные и суперскалярные компьютеры. мультискалярные компьютеры.
- Раздел 4. Суперкомпьютеры.
- Векторные и матричные компьютеры, многопроцессорные компьютеры и многомашинные комплексы, векторизация и распараллеливание алгоритмов, машины потоков команд и машины потоков данных, транспьютеры, нейрокомпьютеры.
- Раздел 5. Распределенные вычисления.
- Понятие распределенных вычислений. Метакомпьютинг. Вычислительные сети. Принципы организации. Сетевые протоколы. Сеть INTERNET. Протокол TCP/IP. IP адресация. Потоковые и нейронные системы. Grid-технологии.
- Раздел 6. Альтернативные вычислительные системы.
- Оптические вычислительные системы. Квантово-механические вычисления. Естественный параллелизм квантово-механических и оптических систем.
ЧАСТЬ 2. Программное и математическое обеспечение высокопроизводительных вычислений
- Раздел 7. Программное обеспечение высокопроизводительных вычислений.
- Роль программного обеспечения в высокопроизводительных вычислениях Операционные системы поддержки параллельных и распределенных вычислений: UNIX (Linux) и Windows. Краткая характеристика основных языков высокопроизводительных вычислений: C, C++, High Performance Fortran (HPF).
- Раздел 8. Основные принципы параллельных вычислений.
- Программное обеспечение параллельных вычислений. Две модели программирования: последовательная и параллельная. Параллелизм данных и задач. Вычислительные кластеры. Трудозатраты на распараллеливание или векторизацию программы. Методы векторизации и распараллеливания программ. Применение разных языков программирования. Взаимодействие трех частей программ - параллельной, последовательной и обменом данными. Синхронизация процессов. Параллельные библиотеки.
- Раздел 9. Современные методы распараллеливания вычислений.
- Инженерные и научные задачи. Алгоритмы для высокопроизводительных вычислений. Использование векторных операций и функций HPF. Что такое PVM и MPI? Использование PVM и MPI в численных расчетах в кластерных системах. Fortran, C, C++ реализации. Библиотеки процедур. Отладка и прохождение программ на PVM и MPI: терминология и обозначения. Общие процедуры. Прием-передача сообщений между отдельными процессами. Объединение запросов на взаимодействие. Коллективные взаимодействия процессов и их синхронизация. Работа с группами процессов. Примеры MPI-программ. Параллельные библиотеки универсальных и специальных методов решения научных задач.
- Раздел 10. Современные методы распределения вычислений.
- Программное обеспечение распределенных вычислений. Распределенные приложения, базы данных. Использование технологий COM (DCOM), COM+, .NET, а также CORBA технологий при построении эффективных информационных систем. Корпоративные вычислительные и информационные системы.
- Раздел 11. Специализированные и универсальные программные продукты.
- Пакеты численного моделирования. Краткая спецификация и характеристика современных программных продуктов универсального предназначения. Специализированные пакеты и их применение. Пакеты для научных и технических расчетов. Пакеты MATLAB, MATCAD: краткая характеристика и классификация. Пакеты символьного моделирования. Специализированные и универсальные пакеты: характеристика и классификация. Краткое описание пакетов MATHEMATICA, MAPLE. Возможности распараллеливания символьных вычислений. Краткая характеристика параллелизма в пакетах компьютерной алгебры MATHEMATICA (Parallel Computing Toolkit for MATHEMATICA 4.0), MAPLE.
- Раздел 12. Grid-технологии.
- Раздел 13. Высокопроизводительные вычисления в научных исследованиях.
- Математическое и компьютерное моделирование. Основные принципы и современные тенденции. Методы и средства современных компьютерных технологий. Современные методы математического моделирования в естествознании. Классификация основных проблем при моделировании сложных систем. Иерархия моделей. Вычислительный эксперимент. Параллельные и распределенные вычисления при моделировании физических систем. Основные типы задач и классификация математических методов.
- Раздел 14. Гипермедиа-технологии и виртуальная реальность.
- Роль гипермедиа технологий в научных, образовательных и технологических задачах. Электронные (цифровые) библиотеки; концепции построения, наполнения контентом, технологии доступа. Обучающие и информационные системы. Основные принципы построения систем дистанционного обучения. Концепция распределенного университета.
- Раздел 15. Системы визуализации.
- Роль 2D- и 3D-графики в современных научных и технологических задачах. Отличие вычислительных экспериментов от натурных. Принципы построения 2D и 3D-графики. Визуализационные пакеты.
- Раздел 16. Параллельные и распределенные СУБД.
- Разработка новых и адаптация существующих СУБД для суперЭВМ массивной параллельной, кластерной и гибридной архитектур.
Основная литература
- Воеводин В.В. Математические основы параллельных вычислений. - М.: Изд-во МГУ, 1991.
- Воеводин В.В. Математические модели и методы в параллельных процессах. - М.: Наука, 1986.
- Воеводин В.В. Параллельные структуры алгоритмов и программ. - М.: ОВМ АН СССР, 1987.
- Векторизация программ: теория, методы, реализация Пер. с англ. и нем. Под ред. Г.Д.Чинина. - М. Мир, 1991.
- Корнеев В.В. Параллельные вычислительные системы. Нолидж, 1999.
- Павловский Ю.Н. Проблема декомпозиции в математическом моделировании. М. Фазис. 1998.
- Программирование на параллельных вычислительных системах под ред. Р.Бэбба, - М. Мир, 1991.
- Системы параллельной обработки. Под ред. Д.Ивенс, М: Мир, 1985.
- СуперЭВМ. Аппаратная и программная организация. Под. Ред. С. Фернбаха М.: Радио связь, 1989.
- Тербер К.Дж. Архитектура высокопроизводительных вычислительных систем.- М: Наука, 1985.
- Хокни, Л. Джесхоуп Параллельные ЭВМ: Архитектура, программирование и алгоритмы. М.: Радио и связь, 1986.
Дополнительная литература
- Р.П. Федоренко. Введение в вычислительную физику. - М. Изд. МФТИ, 1994.
- V. Hackbusch , U. Trottenberg. Multigrid Methods. Lecture Notes in Math. 960, Springer Verlag, Berlin. 1982.
- Описание и постановку современных задач, требующих использование суперЭВМ, можно прочитать на сайте www.parallel.ru.
- Описание и постановку идеологии квантовых вычислений можно прочитать на сайте центра квантовых вычислений (Оксфорд, Великобритания) http://www.qubit.org.
- Информация, размещенная на сайте МГУ www.parallel.ru и других сайтах, на которые сайте МГУ есть многочисленные ссылки. Эта информация носит как учебный, так и научный характер. В частности, лекции Воеводина В.В. полностью приспособлены для дистанционного обучения.
- Peter Pacheco. Parallel Programming With MPI (Доступно содержание и примеры, см. сайт МГУ www.parallel.ru).
- High Performance Cluster Computing. Под ред. Rajkumar Buyya (Monash University, Австралия). Prentice Hall, 1999. (Книга в двух томах, посвященная кластерным вычислениям: том 1 - аппаратные архитектуры, том 2 - программные технологии и приложения).
- William Gropp, Ewing Lusk, and Anthony Skjellum. Using MPI (Книга доступна, см. сайт МГУ www.parallel.ru).