Министерство образования и науки Российской Федерации
Министерство образования и науки Российской Федерации
Южно-Уральский государственный университет
Механико-математический факультет
Кафедра системного программирования
УТВЕРЖДАЮ
Декан мех.-мат. факультета
____________ А.Д. Дрозин
11.11.2004
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Многопроцессорные вычислительные системы
и параллельное программирование
для студентов, обучающихся по программе магистерской подготовки
010500.68.11 (510211) "Системное программирование"
направления 010500.68 (510200) "Прикладная математика и информатика"
Челябинск-2004
Курс посвящен введению в проблематику многопроцессорных вычислительных систем и параллельного программирования. Рассматриваются вопросы оценки производительности и классификации многопроцессорных вычислительных систем, а также параллельное программирование на базе моделей PVM и MPI.
Роль и значение высокопроизводительных вычислений в современном мире. Две парадигмы программирования и две модели программирования: последовательная и параллельная. Параллелизм данных, параллелизм задач.
Понятие архитектуры компьютера. Классическая архитектура фон Неймана. Таксономия Флинна: многопроцессорные вычислительные системы классов SISD, MISD, SIMD, MIMD. Структурно-функциональная таксономия: многопроцессорные вычислительные системы классов SMP, MPP, ccNUMA, кластерные вычислительные системы. Оценка производительности многопроцессорных вычислительных систем: пиковая производительность тест Linpack и реальная производительность. Обзор многопроцессорных вычислительных систем, входящих в первую десятку списка TOP500. Российские многопроцессорные вычислительные системы: семейство МВС, семейство СКИФ, вычислительный кластер ЮУрГУ.
Трудоемкость распараллеливания и векторизации. Способы векторизации и распараллеливания программ. Применение различных языков программирования (C и FORTRAN). Векторные ЭВМ и векторные программы. Параллельные ЭВМ и параллельные программы. Некоторые параллельные алгоритмы вычислительной алгебры. Некоторые параллельные статистические алгоритмы.
Понятие параллельной виртуальной машины (PVM). PVM-программа. PVM-консоль. Пользовательский интерфейс PVM. Управление процессами. Сбор информации состоянии процессов. Динамическое изменение конфигурации виртуальной машины. Основные опции. Передача сообщений: буферизация данных, упаковка данных, отправка и прием данных, распаковка данных. Запуск и настройка PVM. Компиляция выполнение и отладка программ с использованием PVM.
Особенности программирования с использованием MPI. Структура MPI-программы. Сообщения, их передача и прием. Коллективный обмен данными. Виды коллективного обмена, барьеры, широковещательная рассылка данных. Коммуникаторы и топологии. Компиляция, выполнение и отладка MPI-программ.
№ п/п |
Тема |
Лекц. (час.) |
Практ. (час.) |
1. |
Введение в многопроцессорные вычислительные системы |
2 |
|
2. |
Архитектура многопроцессорных вычислительных систем |
6 |
5 |
3. |
Методы и алгоритмы программирования параллельных вычислений |
6 |
14 |
4. |
Параллельное программирование с использованием PVM |
8 |
14 |
5. |
Параллельное программирование с использованием MPI |
8 |
14 |
|
ИТОГО |
30 |
47 |
1. .Лацис А.О. Как построить и использовать суперкомпьютер. -М.: Бестселлер, 2003.
2. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. -СПб.: Петербург, 2002.
3. Корнеев В.В. Параллельные вычислительные системы. - М. «Нолидж», 1999.
4. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. -СПб: BHV, 2002.
5. Воеводин Вл.В., Капитонова А.П. Методы описания и классификации архитектур вычислительных систем. -М.: Изд-во МГУ, 1994.
6. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. -М.: Вильямс, 2003.