Моделирование и анализ параллельных вычислений
Автор: В.П. Гергель, Р.Г. Стронгин
Источник:
http://www.software.unn.ac.ru/ccam/files/HTML_Version/part2.html
При разработке параллельных алгоритмов решения задач
вычислительной математики принципиальным моментом является
анализ эффективности использования параллелизма, состоящий
обычно в оценке получаемого ускорения процесса
вычисления (сокращения времени решения задачи). Формирование
подобных оценок ускорения может осуществляться применительно
к выбранному вычислительному алгоритму (оценка
эффективности распараллеливания конкретного алгоритма).
Другой важный подход может состоять в построении оценок
максимально возможного ускорения процесса получения решения
задачи конкретного типа (оценка эффективности
параллельного способа решения задачи).
В данном разделе описывается модель вычислений в виде
графа "операции-операнды", которая может использоваться для
описания существующих информационных зависимостей в
выбираемых алгоритмах решения задач, приводятся оценки
эффективности максимально возможного параллелизма, которые
могут быть получены в результате анализа имеющихся моделей
вычислений. Примеры использования излагаемого теоретического
материала приводятся в 4 разделе пособия.
1. Модель вычислений в виде графа "операции-операнды"
Для описания существующих информационных зависимостей в
выбираемых алгоритмах решения задач может быть использована
модель в виде графа "операции-операнды" [18] (дополнительная
информация по моделированию параллельных вычислений может
быть получена в [3, 16, 23, 26, 28]). Для уменьшения
сложности излагаемого материала при построении модели будет
предполагаться, что время выполнения любых вычислительных
операций является одинаковым и равняется 1 (в тех или иных
единицах измерения); кроме того, принимается, что передача
данных между вычислительными устройствами выполняется
мгновенно без каких-либо затрат времени (что может быть
справедливо, например, при наличии общей разделяемой памяти
в параллельной вычислительной системе). Анализ
коммуникационной трудоемкости параллельных алгоритмов
выполняется в 3 разделе пособия.
Представим множество операций, выполняемых в исследуемом
алгоритме решения вычислительной задачи, и существующие
между операциями информационные зависимости в виде
ациклического ориентированного графа
G = (V, R)
,
Рис. 1.1. Пример вычислительной
модели алгоритма в виде графа "операции-операнды"
где V = {1,
…, |V|}
есть множество вершин графа, представляющее выполняемые
операции алгоритма, а R
есть множество дуг графа (при этом дуга
r = (i, j)
принадлежит графу только, если операция
j использует результат
выполнения операции i).
Для примера на рис. 2.1 показан граф алгоритма вычисления
площади прямоугольника, заданного координатами двух углов.
Как можно заметить по приведенному примеру, для выполнения
выбранного алгоритма решения задачи могут быть использованы
разные схемы вычислений и построены соответственно разные
вычислительные модели. Как будет показано далее, разные
схемы вычислений обладают разными возможностями для
распараллеливания и, тем самым, при построении модели
вычислений может быть поставлена задача выбора наиболее
подходящей для параллельного исполнения вычислительной схемы
алгоритма.
В рассматриваемой вычислительной модели алгоритма вершины
без входных дуг могут использоваться для задания операций
ввода, а вершины без выходных дуг – для операций вывода.
Обозначим через
множество вершин графа без вершин ввода, а через
d(G) диаметр (длину
максимального пути) графа.
2. Описание схемы параллельного выполнения алгоритма
Операции алгоритма, между которыми нет пути в рамках
выбранной схемы вычислений, могут быть выполнены параллельно
(для вычислительной схемы на рис. 2.1, например, параллельно
могут быть выполнены сначала все операции умножения, а затем
первые две операции вычитания). Возможный способ описания
параллельного выполнения алгоритма может состоять в
следующем [18].
Пусть p есть
количество процессоров, используемых для выполнения
алгоритма. Тогда для параллельного выполнения вычислений
необходимо задать множество (расписание)
,
в котором для каждой операции i
∈ V указывается номер используемого для
выполнения операции процессора Pi
и время начала выполнения операции
ti. Для того, чтобы расписание было
реализуемым, необходимо выполнение следующих требований при
задании множества Hp:
-
,
т.е. один и тот же процессор не должен назначаться
разным операциям в один и тот же момент времени,
-
,
т.е. к назначаемому моменту выполнения операции все
необходимые данные уже должны быть вычислены.
3. Определение времени выполнения параллельного
алгоритма
Модель вычислительной схемы алгоритма
G совместно с
расписанием Hp
может рассматриваться как модель параллельного алгоритма
Ap(G, Hp),
исполняемого с использованием p
процессоров. Время выполнения параллельного алгоритма
определяется максимальным значением времени, используемым в
расписании
.
Для выбранной схемы вычислений желательно использование
расписания, обеспечивающего минимальное время исполнения
алгоритма
.
Уменьшение времени выполнения может быть обеспечено и
путем подбора наилучшей вычислительной схемы
.
Оценки Tp(G,
Hp), Tp(G)
и Tp могут
быть использованы в качестве показателей времени выполнения
параллельного алгоритма. Кроме того, для анализа максимально
возможной параллельности можно определить оценку наиболее
быстрого исполнения алгоритма
.
Оценку T∞
можно рассматривать как минимально возможное время
выполнения параллельного алгоритма при использовании
неограниченного количества процессоров (концепция
вычислительной системы с бесконечным количеством процессоров,
обычно называемой паракомпьютером, широко
используется при теоретическом анализе параллельных
вычислений).
Оценка T1
определяет время выполнения алгоритма при использовании
одного процессора и представляет, тем самым, время
выполнения последовательного варианта алгоритма решения
задачи. Построение подобной оценки является важной проблемой
при анализе параллельных алгоритмов, поскольку применяется
для определения эффекта использования параллельности (ускорения
времени решения задачи). Очевидно
,
где
||,
напомним, есть количество вершин вычислительной схемы
G без вершин ввода.
Важно отметить, что если при определении оценки
T1
ограничиться рассмотрением только одного выбранного
алгоритма решения задачи
,
то получаемые при использовании такой
оценки показатели ускорения будут характеризовать
эффективность распараллеливания выбранного алгоритма. Для
оценки эффективности параллельного решения исследуемой
задачи вычислительной математики величину
T1 следует
определять с учетом всех возможных последовательных
алгоритмов
(эффективный параллельный алгоритм может
не совпадать с наилучшим последовательным методом при
исполнении на одном процессоре).
Приведем без доказательства теоретические положения,
характеризующие свойства оценок времени выполнения
параллельного алгоритма [18].
Теорема 1. Минимально возможное время выполнения
параллельного алгоритма определяется длиной максимального
пути вычислительной схемы алгоритма, т.е.
.
Теорема 2. Пусть для некоторой вершины вывода в
вычислительной схеме алгоритма существует путь из каждой
вершины ввода. Кроме того, пусть входная степень вершин
схемы не превышает 2. Тогда минимально возможное время
выполнения параллельного алгоритма ограничено снизу
значением
,
где n
есть количество вершин ввода в схеме алгоритма.
Теорема 3. При уменьшении числа используемых
процессоров время выполнения алгоритма увеличивается
пропорционально величине уменьшения количества процессоров,
т.е.
.
Теорема 4. Для любого количества используемых
процессоров справедлива следующая верхняя оценка для времени
выполнения параллельного алгоритма
.
Теорема 5. Времени выполнения алгоритма,
сопоставимым с минимально возможным временем
T∞, можно
достичь при количестве процессоров порядка
p ∼ T1 / T∞,
а именно,
.
При меньшем количестве процессоров время выполнения
алгоритма не может превышать более чем в 2 раза наилучшее
время вычислений при имеющемся числе процессоров, т.е.
.
Приведенные утверждения позволяют дать следующие
рекомендации по правилам формирования параллельных
алгоритмов:
- при выборе вычислительной схемы алгоритма должен
использоваться граф с минимально возможным диаметром (см.
теорему 1);
- для параллельного выполнения целесообразное
количество процессоров определяется величиной
p ∼ T1 /
T∞ (см. теорему 5);
- время выполнения параллельного алгоритма
ограничивается сверху величинами, приведенными в
теоремах 4 и 5.
Для вывода рекомендаций по формированию расписания по
параллельному выполнению алгоритма приведем доказательство
теоремы 4.
Доказательство теоремы 4. Пусть
H∞ есть
расписание для достижения минимально возможного времени
выполнения T∞.
Для каждой итерации τ, 0 ≤ τ
≤ T∞, выполнения расписания
H∞ обозначим
через nτ
количество операций, выполняемых в ходе итерации
τ. Расписание выполнения
алгоритма с использованием p
процессоров может быть построено следующим образом.
Выполнение алгоритма разделим на T∞
шагов; на каждом шаге τ
следует выполнить все операции, которые выполнялись на
итерации τ расписания
H∞.
Выполнение этих операций может быть выполнено не более, чем
за énτ
/ pù итераций при
использовании p
процессоров. Как результат, время выполнения алгоритма
Tp может быть
оценено следующим образом:
.
Доказательство теоремы дает практический способ
построения расписания параллельного алгоритма. Первоначально
может быть построено расписание без учета ограниченности
числа используемых процессоров (расписание для
паракомпьютера). Затем, следуя схеме вывода теоремы, может
быть построено расписание для конкретного количества
процессоров.
4. Показатели эффективности параллельного алгоритма
Ускорение, получаемое при использовании
параллельного алгоритма для p
процессоров, по сравнению с последовательным вариантом
выполнения вычислений определяется
,
т.е. как отношение времени решения задач
на скалярной ЭВМ к времени выполнения параллельного
алгоритма (величина n
используется для параметризации вычислительной сложности
решаемой задачи и может пониматься, например, как количество
входных данных задачи).
Эффективность использования параллельным
алгоритмом процессоров при решении задачи определяется
соотношением:
(величина эффективности определяет
среднюю долю времени выполнения алгоритма, в течение которой
процессоры реально используются для решения задачи).
Как следует из приведенных соотношений, в наилучшем
случае Sp(n)
= p и Ep(n)
= </nopr>1. В 4 разделе данные
показатели будут определены для ряда рассмотренных
параллельных алгоритмов для решения типовых задач
вычислительной математики.
Литература
- Гергель В.П., Стронгин Р.Г. Основы параллельных
вычислений для многопроцессорных вычислительных систем.
- Н.Новгород, ННГУ, 2001.
- Богачев К.Ю. Основы параллельного программирования.
- М.: БИНОМ. Лаборатория знаний, 2003.
- Воеводин В.В., Воеводин Вл.В. Параллельные
вычисления. - СПб.: БХВ-Петербург, 2002.
- Немнюгин С., Стесик О. Параллельное программирование
для многопроцессорных вычислительных систем - СПб.:
БХВ-Петербург, 2002.
- Березин И.С., Жидков И.П. Методы вычислений. - М.:
Наука, 1966.
- Дейтел Г. Введение в операционные системы. Т.1.- М.:
Мир, 1987.
- Кнут Д. Искусство программирования для ЭВМ. Т. 3.
Сортировка и поиск. - М.: Мир, 1981.
- Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы:
построение и анализ. - М.: МЦНТО, 1999.
- Корнеев В.В.. Параллельные вычислительные системы. -
М.: Нолидж, 1999.
- Корнеев В.В. Параллельное программирование в MPI.
Москва-Ижевск: Институт компьютерных исследований, 2003.
- П.Тихонов А.Н., Самарский А.А. Уравнения
математической физики. -М.:Наука, 1977.
- Хамахер К., Вранешич З., Заки С. Организация ЭВМ. -
СПб: Питер, 2003.
- Шоу А. Логическое проектирование операционных
систем. - М.: Мир, 1981.
- Andrews G.R. Foundations of Multithreading, Parallel
and Distributed Programming. Addison-Wesley, 2000
(русский перевод Эндрюс Г.Р. Основы многопоточного,
параллельного и распределенного программирования. - М.:
Издательский дом "Вильяме", 2003)
- Barker, M. (Ed.) (2000). Cluster Computing
Whitepaper
http://www.dcs.port.ac.uk/~mab/tfcc/WhitePaper/.
- Braeunnl Т. Parallel Programming. An Introduction.-
Prentice Hall, 1996.
- Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan,
D., McDonald, J. Parallel Programming in OpenMP. -
Morgan Kaufinann Publishers, 2000
- Dimitri P. Bertsekas, John N. Tsitsiklis. Parallel
and Distributed Computation. Numerical Methods. -
Prentice Hall, Englewood Cliffs, New Jersey, 1989.
- Fox G.C. et al. Solving Problems on Concurrent
Processors. - Prentice Hall, Englewood Cliffs, NJ, 1988.
- Geist G.A., Beguelin A., Dongarra J., Jiang W.,
Manchek В., Sunderam V. PVM: Parallel Virtual Machine -
A User's Guide and Tutorial for Network Parallel
Computing. MIT Press, 1994.
- Group W, Lusk E, Skjellum A. Using MPI. Portable
Parallel Programming with the Message-Passing Interface.
- MIT Press, 1994. (http://www.mcs.anl.gov/mpi/index.html)
- Hockney R. W., Jesshope C.R. Parallel Computers 2.
Architecture, Programming and Algorithms. - Adam Hilger,
Bristol and Philadelphia, 1988. (русский перевод 1
издания: Р.Xокни, К.Джессхоуп. Параллельные ЭВМ.
Архитектура, программирование и алгоритмы. - М.: Радио и
связь, 1986)
- Kumar V., Grama A., Gupta A., Karypis G.
Introduction to Parallel Computing. - The
Benjamin/Cummings Publishing Company, Inc., 1994
- Miller R., Boxer L. A Unified Approach to Sequential
and Parallel Algorithms. Prentice Hall, Upper Saddle
River, NJ. 2000.
- Pacheco, S. P. Parallel programming with MPI. Morgan
Kaufmann Publishers, San Francisco. 1997.
- Parallel and Distributed Computing Handbook. / Ed.
A.Y. Zomaya. -McGraw-Hill, 1996.
- Pfister, G. P. In Search of Clusters. Prentice Hall
PTR, Upper Saddle River, NJ 1995. (2nd edn., 1998).
- Quinn M. J. Designing Efficient Algorithms for
Parallel Computers. - McGraw-Hill, 1987.
- Rajkumar Buyya. High Performance Cluster Computing.
Volume l: Architectures and Systems. Volume 2:
Programming and Applications. Prentice Hall PTR,
Prentice-Hall Inc., 1999.
- Roosta, S.H. Parallel Processing and Parallel
Algorithms: Theory and Computation. Springer-Verlag, NY.
2000.
- Xu, Z., Hwang, K. Scalable Parallel Computing
Technology, Architecture, Programming. McGraw-Hill,
Boston. 1998.
- Wilkinson В., Allen M. Parallel programming. -
Prentice Hall, 1999.
Информационные ресурсы сети Интернет
- Информационно-аналитические материалы по
параллельным вычислениям (http://www.parallel.ru)
- Информационные материалы Центра компьютерного
моделирования Нижегородского университета (http://www.software.unn.ac.ru/ccam
)
- Информационные материалы рабочей группы IEEE по
кластерным вычислениям (http://www.ieeetfcc.org
)
- Introduction to Parallel Computing (Teaching Course)
(http://www.ece.nwu.edu/~choudhar/C58/)
- Foster I. Designing and Building Parallel Programs.
- Addison Wesley, 1994. (http://www.mcs.anl.gov/dbpp)
|