- •В.П. Гергель, р.Г. Стронгин Основы параллельных вычислений для многопроцессорных вычислительных систем
- •1. Принципы построения параллельных вычислительных систем
- •2. Моделирование и анализ параллельных вычислений
- •3. Оценка коммуникационной трудоемкости параллельных алгоритмов
- •4. Параллельные численные алгоритмы для решения типовых задач вычислительной математики
- •5. Модели функционирования параллельных программ
- •6. Учебно-практическая задача: Решение дифференциальных уравнений в частных производных
- •Введение
- •"Многопроцессорные системы и параллельное программирование"
- •1. Цели и задачи курса
- •1. Цель преподавания курса
- •2. Задачи курса
- •3. Дисциплины, изучение которых необходимо при освоении данного курса
- •2. Принципы построения параллельных вычислительных систем
- •4. Принципы разработки параллельных алгоритмов и программ
- •6. Параллельные численные алгоритмы для решения типовых задач вычислительной математики
- •Часть 2. Методы параллельного программирования для вычислительных систем с общей памятью
- •8. Практикум по использованию библиотек параллельных методов для решения сложных научно-технических задач - 4 часа
- •9. Практикум по методам параллельных вычислений для решения задач многомерной многоэкстремальной оптимизации -4 часа
- •Учебно-методические материалы по дисциплине Основная литература
- •Дополнительная литература
- •Учебно-методические пособия
- •Информационные ресурсы сети Интернет
- •1. Принципы построения параллельных вычислительных систем
- •1.1. Пути достижения параллелизма
- •1.2. Классификация вычислительных систем
- •1.3. Характеристика типовых схем коммуникации в многопроцессорных вычислительных системах
- •1.4. Высокопроизводительный вычислительный кластер ннгу
- •4. Параллельные численные методы для решения типовых задач вычислительной математики
- •4.1. Вычисление частных сумм последовательности числовых значений
- •Последовательный алгоритм суммирования
- •Каскадная схема суммирования
- •Модифицированная каскадная схема
- •Вычисление всех частных сумм
- •4.2. Умножение матрицы на вектор
- •Достижение максимально возможного быстродействия ()
- •Использование параллелизма среднего уровня ()
- •Организация параллельных вычислений при
- •Использование ограниченного набора процессоров ()
- •4.3. Матричное умножение
- •Макрооперационный анализ алгоритмов решения задач
- •Организация параллелизма на основе разделения данных
- •4.4. Сортировка
- •Параллельное обобщение базовой операции сортировки
- •Пузырьковая сортировка
- •Сортировка Шелла
- •Быстрая сортировка
- •4.5. Обработка графов
- •Нахождение минимально охватывающего дерева
- •Поиск кратчайших путей
- •6. Учебно-практическая задача: Решение дифференциальных уравнений в частных производных
- •6.1. Последовательные методы решения задачи Дирихле
- •6.2. Организация параллельных вычислений для систем с общей памятью
- •Использование OpenMp для организации параллелизма
- •Проблема синхронизации параллельных вычислений
- •Возможность неоднозначности вычислений в параллельных программах
- •Проблема взаимоблокировки
- •Исключение неоднозначности вычислений
- •Волновые схемы параллельных вычислений
- •Балансировка вычислительной нагрузки процессоров
- •6.3. Организация параллельных вычислений для систем с распределенной памятью
- •Разделение данных
- •Обмен информацией между процессорами
- •Коллективные операции обмена информацией
- •Организация волны вычислений
- •Блочная схема разделения данных
- •Оценка трудоемкости операций передачи данных
Учебно-методические пособия
33. Афанасьев К.Е. и др. Многопроцессорные вычислительные системы и параллельное программирование. - Кемерово: Кузбассвузиздат, 2003.
34. Головашкин Д.Л. Методы параллельных вычислений. Ч. 1. - Самара: Самар. гос. аэрокосм, ун-т, 2002.
35. Головашкин Д., С.П. Головашкина С.П. Методы параллельных вычислений. Ч. 2: . - Самара: Самар. гос. аэрокосм, ун-т, 2003.
36. Деменев А.Г. Параллельные вычислительные системы: основы программирования и компьютерного моделирования. - Пермь: ПГПУ, 2001.
37. Дацюк В.Н. и др. Методическое пособие по курсу "Многопроцессорные системы и параллельное программирование. - Ростов-на-Дону: РГУ, 2000.
38. Дорошенко А.Е. Математические модели и методы организаций высокопроизводительных вычислений. Киев: Наукова думка, 2000.
39. Комолкин А.В., Немнюгин С.А. Программирование для высокопроизводительных ЭВМ. - СПб: Изд-во НИИ химии СПбГУ, 1998.
40. Сергеев Я.Д., Стронгин Р.Г., Гришагин В.А. Введение в параллельную глобальную оптимизацию. - Н. Новгород: ННГУ, 1998.
41. Старченко А.В., Есаулов А.О., Параллельные вычисления на многопроцессорных вычислительных системах. - Томск: ТГУ, 2002.
42. Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI: Пособие - Мн.: БГУ, 2002.
43. Фурсов В.А. и др. Введение в программирование для параллельных ЭВМ и кластеров. - Самара: СНЦ РАН, СГАУ, 2000.
44. Якобовский М.В. Распределенные системы и сети. - М.: МГТУ "Станкин", 2000.
Информационные ресурсы сети Интернет
45. Информационно-аналитические материалы по параллельным вычислениям (http://www.parallel.ru)
46. Информационные материалы Центра компьютерного моделирования Нижегородского университета (http://www.software.unn.ac.ru/ccam)
47. Информационные материалы рабочей группы IEEE по кластерным вычислениям (http://www.ieeetfcc.org)
48. Introduction to Parallel Computing (Teaching Course) (http://www.ece.nwu.edu/~choudhar/C58/)
49. Foster I. Designing and Building Parallel Programs. - Addison Wesley, 1994.(http://www.mcs.anl.gov/dbpp)
<< Назад Содержание Дальше >>
1. Принципы построения параллельных вычислительных систем
1.1. Пути достижения параллелизма
В общем плане под параллельными вычислениями понимаются процессы обработки данных, в которых одновременно могут выполняться нескольких машинных операций. Достижение параллелизма возможно только при выполнимости следующих требований к архитектурным принципам построения вычислительной системы:
независимость функционирования отдельных устройств ЭВМ - данное требование относится в равной степени ко всем основным компонентам вычислительной системы - к устройствам ввода-вывода, к обрабатывающим процессорам и к устройствам памяти;
избыточность элементов вычислительной системы - организация избыточности может осуществляться в следующих основных формах:
использование специализированных устройств таких, например, как отдельных процессоров для целочисленной и вещественной арифметики, устройств многоуровневой памяти (регистры, кэш);
дублирование устройств ЭВМ путем использования, например, нескольких однотипных обрабатывающих процессоров или нескольких устройств оперативной памяти.
Дополнительной формой обеспечения параллелизма может служить конвейерная реализация обрабатывающих устройств, при которой выполнение операций в устройствах представляется в виде исполнения последовательности составляющих операцию подкоманд; как результат, при вычислениях на таких устройствах могут находиться на разных стадиях обработки одновременно несколько различных элементов данных.
Возможные пути достижения параллелизма детально рассматриваются в [22, 29]; в этой же работе рассматривается история развития параллельных вычислений и приводятся примеры конкретных параллельных ЭВМ (см. также [9, 29, 31]).
При рассмотрении проблемы организации параллельных вычислений следует различать следующие возможные режимы выполнения независимых частей программы:
многозадачный режим (режим разделения времени), при котором для выполнения процессов используется единственный процессор; данный режим является псевдопараллельным, когда активным (исполняемым) может быть один единственный процесс, а все остальные процессы находятся в состоянии ожидания своей очереди на использование процессора; использование режима разделения времени может повысить эффективность организации вычислений (например, если один из процессов не может выполняться из-за ожидании вводимых данных, процессор может быть задействован для готового к исполнению процесса - см. [6, 13]), кроме того, в данном режиме проявляются многие эффекты параллельных вычислений (необходимость взаимоисключения и синхронизации процессов и др.) и, как результат, этот режим может быть использован при начальной подготовке параллельных программ;
параллельное выполнение, когда в один и тот же момент времени может выполняться несколько команд обработки данных; данный режим вычислений может быть обеспечен не только при наличии нескольких процессоров, но реализуем и при помощи конвейерных и векторных обрабатывающих устройств;
распределенные вычисления; данный термин обычно используют для указания параллельной обработки данных, при которой используется несколько обрабатывающих устройств, достаточно удаленных друг от друга и в которых передача данных по линиям связи приводит к существенным временным задержкам; как результат, эффективная обработка данных при таком способе организации вычислений возможна только для параллельных алгоритмов с низкой интенсивностью потоков межпроцессорных передач данных; перечисленные условия является характерными, например, при организации вычислений в многомашинных вычислительных комплексах, образуемых объединением нескольких отдельных ЭВМ с помощью каналов связи локальных или глобальных информационных сетей.
В рамках данного пособия основное внимание будет уделяться второму типу организации параллелизма, реализуемому на многопроцессорных вычислительных системах.
