Министерство образования Российской Федерации
Нижегородский государственный университет им. Н.И. Лобачевского

В.П. Гергель, Р.Г. Стронгин

Основы параллельных вычислений
для многопроцессорных вычислительных систем

Учебное пособие

Издание 2-е, дополненное

Издательство Нижегородского госуниверситета
Нижний Новгород
2003

Аннотация

В учебном пособии излагается учебный материал, достаточный для успешного начала работ в области параллельного программирования. Для этого в пособии дается краткая характеристика принципов построения параллельных вычислительных систем, рассматриваются математические модели параллельных алгоритмов и программ для анализа эффективности параллельных вычислений, приводятся примеры конкретных параллельных методов для решения типовых задач вычислительной математики.

По сравнению с первым изданием в пособии значительно расширены материалы по кластерным вычислительным системам, анализу трудоемкости коммуникационных операций, параллельным методам решения типовых задач вычислительной математики. В пособие включены результаты вычислительных экспериментов на кластере Нижегородского университета.

Учебное пособие предназначено для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать параллельные компьютерные системы для решения вычислительно трудоемких задач.



Авторы

Роман Григорьевич Стронгин – ректор Нижегородского государственного Университета им. Н.И.Лобачевского (http://www.unn.ru). На данный момент он также возглавляет кафедру математического обеспечения ЭВМ факультета ВМК. Р.Г. Стронгин является заслуженным учёным Российской Федерации, членом редакционной коллегии журнала "Global Optimization" (1991-1998) и международного теоретического журнала "Математика" (1998-~). Р.Г. Стронгин – главный редактор серии публикаций Нижегородского Университета по математическому моделированию и оптимальному управлению, постоянный член Российской Академии Естественных Наук. Его исследовательские интересы в настоящий момент – теория и практика принятия решений. Р.Г. Стронгин – автор новых параллельных методов для решения задач глобальной оптимизации. Им опубликованы три монографии и более 270 статей в журналах "Global Optimization", "Parallel Computing", "Optimization", "Stochastics and Stochastics Reports", "Pattern Recognition and Image Analysis", "Engineering Cybernetics", "Lecture Notes in Economics and Mathematical Systems", "Журнал вычислительной математики и математической физики", "Кибернетика" и др.

   

Виктор Павлович Гергель – профессор кафедры математического обеспечения ЭВМ факультета ВМК (http://www.software.unn.ac.ru/mo_evm) в Нижегородского государственного Университета им. Н.И.Лобачевского. Он возглавляет Центр компьютерного моделирования и Отделение дополнительного компьютерного обучения. Его исследовательские интересы в настоящий момент – теория и применение параллельный вычислений и разработка методов и программных систем принятия решений. В.П. Гергель – автор новых параллельных методов для решения задач глобальной оптимизации. Им опубликованы три книги и более 120 статей в журналах "Global Optimization", "Optimization", "European Journal of Operation Research", "Pattern Recognition and Image Analysis", "Engineering Cybernetics", "Журнал вычислительной математики и математической физики" и др.

Содержание

Введение

Учебная рабочая программа по общему курсу "Многопроцессорные вычислительные системы и параллельное программирование"

1. Принципы построения параллельных вычислительных систем

1.1. Пути достижения параллелизма

1.2. Классификация вычислительных систем

1.3. Характеристика типовых схем коммуникации в многопроцессорных вычислительных системах

1.4. Высокопроизводительный вычислительный кластер ННГУ

2. Моделирование и анализ параллельных вычислений

2.1. Модель вычислений в виде графа "операции-операнды"

2.2. Описание схемы параллельного исполнения алгоритма

2.3. Определение времени выполнения параллельного алгоритма

2.4. Показатели эффективности параллельного алгоритма

3. Оценка коммуникационной трудоемкости параллельных алгоритмов

3.1. Характеристики топологии сети передачи данных

3.2. Общая характеристика механизмов передачи данных

Алгоритмы маршрутизации

Методы передачи данных

3.3. Анализ трудоемкости основных операций передачи данных

Передача данных между двумя процессорами сети

Передача данных от одного процессора всем остальным процессорам сети

Передача данных от всех процессоров всем процессорам

Обобщенная передача данных от одного процессора всем остальным процессорам сети

Обобщенная передача данных от всех процессоров всем процессорам сети

Циклический сдвиг

3.4. Методы логического представления топологии коммуникационной среды

Представление кольцевой топологии в виде гиперкуба

Отображение топологии решетки на гиперкуб

3.5. Оценка трудоемкости операций передачи данных для кластерных систем

4. Параллельные численные алгоритмы для решения типовых задач вычислительной математики

4.1. Вычисление частных сумм последовательности числовых значений

Последовательный алгоритм суммирования

Каскадная схема суммирования

Модифицированная каскадная схема

Вычисление всех частных сумм

4. 2. Умножение матрицы на вектор

Достижение максимально возможного быстродействия

Использование параллелизма среднего уровня

Организация параллельных вычислений при p = n

Использование ограниченного набора процессоров

4.3. Матричное умножение

Макрооперационный анализ алгоритмов решения задач

Организация параллелизма на основе разделения данных

4.4. Сортировка

Параллельное обобщение базовой операции сортировки

Пузырьковая сортировка

Сортировка Шелла

Быстрая сортировка

4.5. Обработка графов

Нахождение минимально охватывающего дерева

Поиск кратчайших путей

5. Модели функционирования параллельных программ

5.1. Концепция процесса

5.2. Понятие ресурса

5.3. Организация программ как системы процессов

5.4. Взаимодействие и взаимоисключение процессов

Попытка 1

Попытка 2

Попытка 3

Попытка 4

Алгоритм Деккера

Семафоры Дейкстры

5.5. Модель программы в виде дискретной системы

Определение состояния программы

Описание возможных изменений программы

Обнаружение и исключение тупиков

5.6. Модель программы в виде сети Петри

6. Учебно-практическая задача: Решение дифференциальных уравнений в частных производных

6.1. Последовательные методы решения задачи Дирихле

6.2. Организация параллельных вычислений для систем с общей памятью

Использование OpenMP для организации параллелизма

Проблема синхронизации параллельных вычислений

Возможность неоднозначности вычислений в параллельных программах

Проблема взаимоблокировки

Исключение неоднозначности вычислений

Волновые схемы параллельных вычислений

Балансировка вычислительной нагрузки процессоров

6.3. Организация параллельных вычислений для систем с распределенной памятью

Разделение данных

Обмен информацией между процессорами

Коллективные операции обмена информацией

Организация волны вычислений

Блочная схема разделения данных

Оценка трудоемкости операций передачи данных

Литература

© Гергель В.П., Стронгин Р.Г., 2003


Начало     Аннотация     Авторы     Содержание     Дальше >>