Министерство образования и науки Российской Федерации Московский физико-технический институт (государственный университет) УТВЕРЖДАЮ Проректор по учебной работе Ю. А. Самарский «___» 2005 г. ПРОГРАММА по курсу: МЕТОДЫ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ по направлению: 511600 факультеты: ФУПМ, ФАКИ кафедра: ИНФОРМАТИКИ курс: 5 курсовая работа: 9,10 семестр семестр: 9,10 дифф. зачет: 10 семестр лекции: 34 часов экзамен: 9 семестр практические занятия: 66 часа ВСЕГО ЧАСОВ: 178 Программу составили к.ф.-м.н., доцент Карпов В.Е. ст. преподаватель Богатов А.В. Программа обсуждена на заседании кафедры информатики 14 января 2005 г. Заведующий кафедрой, профессор И.Б. Петров 1. Введение в параллельные и распределенные системы. Достоинства многопроцессорных систем. Достоинства распределенных систем. Виды операционных систем (ОС мультипроцессорных ЭВМ, сетевые ОС, распределенные ОС). Принципы построения (прозрачность, гибкость, надежность, эффективность, масштабируемость). 2. Архитектура ЭВМ для высокопроизводительных вычислений. SISD компьютеры. MISD компьютеры. MIMD компьютеры. Основные концепции архитектуры высокопроизводительных вычислительных систем. Конвейер. Суперскалярные процессоры. Векторная обработка данных. Процессоры для параллельных компьютеров. Оперативная память. Чередуемая память. Разделяемая память. Распределенная память. Связь между элементами параллельных вычислительных систем. Кластеры рабочих станций. Архитектура вычислительной системы HP/Convex Exemplar SPP1600 3. Операционные системы многопроцессорных ЭВМ. Процессы и нити. Системы совместно протекающих взаимодействующих процессов. Процессы и критические секции. Программные средства порождения процессов. Синхронизация процессов и совместное использование ресурсов. Реализация взаимного исключения. Синхронизирующие примитивы. Синхронизация процессов посредством семафоров. Условные критические интервалы. Мониторы. Замечание по использованию систем синхронизации. Тупики и защита от них. Планирование использования процессоров. 4. Коммуникации в распределенных системах. Семиуровневая модель OSI/ISO. Модель передачи сообщений MPI. Модель передачи данных PVM. 5. Две парадигмы программирования. Две модели программирования: последовательная и параллельная. Две парадигмы параллельного программирования: параллелизм данных и параллелизм задач. 6. Издержки и выигрыш при реализации параллельных и векторных вычислений. Трудовые затраты на распараллеливание или векторизацию программы. Способы векторизации и распараллеливания программ. Применение разных 2 языков программирования. Различие и сходство между распараллеливанием и векторизацией программ. Сходство алгоритмов — параллелизм данных. Различие алгоритмов — параллелизм действий. 7. Векторные ЭВМ и векторные программы. Предельное быстродействие векторных программ. Две части программ - скалярная и векторная. Дополнительные затраты на организацию векторных вычислений во время работы программы. Ограниченное число векторных регистров. Ограничения на используемые операторы в векторизуемых циклах. Использование векторных операций и функций ФОРТРАНа-90. 8. Параллельные ЭВМ и параллельные программы. Три части программы — параллельная, последовательная и обмен данными. Синхронизация процессов, равномерность загрузки процессов. Средства распараллеливания в трансляторах и параллельные библиотеки. 9. Стандарты интерфейса передачи сообщений MPI и PVM. Базовые понятия. Управление группой. Процедуры парных межпроцессных обменов. Коллективные взаимодействия процессов. Средства поддержки MPI и PVM библиотек. Примеры программирования. Управление ресурсами параллельной системы. 10. Классы задач, которые можно эффективно векторизовать и распараллелить. Обработка одномерных и двумерных массивов. Вычисления в узлах сеток и решеток. Инженерные и научные задачи. Алгоритмы для высокопроизводительных вычислений. 11. Параллельное программирование для МРР систем. Развитие параллельного программирования. Организация эффективных параллельных вычислений. Масштабирование и переносимость: проблемы перехода от последовательных программ к параллельным. Решение системы линейных уравнений методом Гаусса без выбора ведущего элемента. Проблемы организации параллельных вычислений. Параллельные и распределенные базы данных. Мотивация создания параллельных и распределенных баз данных. Реляционные базы данных. Виды параллельной обработки в базах данных: 3 параллельное выполнение операций и построение параллельных баз данных. 12. Кластеры и массово параллельные системы различных производителей. Положение на рынке параллельных систем. Основные производители параллельных систем. Современные микропроцессоры. Требования к вычислительным компонентам информационных систем. Архитектурные особенности. Программное обеспечение. Операционные системы. СУБД. Самые высокопроизводительные суперкомпьютеры. Задачи для практикума. Задача 1. Поиск аффинных трансформаций, описывающих движение отдельных областей изображения. Задача 2. Считалочка. Задача 3. Перечисление сегментов. Задача 4. Определение поля смещений для областей, составляющих объект в кадре. Задача 5. Распараллеливание решения жестких систем обыкновенных дифференциальных уравнений с помощью метода Розенброка. СПИСОК ЛИТЕРАТУРЫ 1. В. В. Воеводин, Вл. В. Воеводин. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002. — 608 с. 2. H. Jordan, G. Alaghband. Fundamentals of Parallel Processing. — Pearson Education, Inc., 2003. — 536 p. 3. Selim G. Aki. The Design and Analysis of Parallel Algorithms. — Prentice-Hall, Inc., 1989. — 401 p. 4. Claudia Leopold. Parallel and Distributed Computing. — John Wiley & Sons, Inc., 2001. — 260 p. 4