Научная статья на тему 'Параллельная производительность стохастических алгоритмов'

Параллельная производительность стохастических алгоритмов Текст научной статьи по специальности «Математика»

CC BY
184
41
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СТОХАСТИЧЕСКИЕ АЛГОРИТМЫ / STOCHASTIC ALGORITHMS / ПАРАЛЛЕЛЬНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ / PARALLEL PERFOMANCE / ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / HIGH-PERFOMANCE COMPUTING

Аннотация научной статьи по математике, автор научной работы — Ковальчук Сергей Валерьевич, Бухановский Александр Валерьевич

Обсуждаются вопросы построения моделей производительности параллельных стохастических алгоритмов для различных классов задач. Предложен параметрический подход, позволяющий описывать параллельное ускорение в форме детерминированной функции. Ее параметрами являются случайные величины, характеризующие объективные свойства алгоритма и не зависящие от особенностей программно-аппаратной реализации. Такое представление позволяет в аналитической форме исследовать зависимость вероятностных характеристик производительности от алгоритма и специфики параллельной вычислительной архитектуры.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Ковальчук Сергей Валерьевич, Бухановский Александр Валерьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Parallel Performance of Stochastic Algorithms

Issues of parallel algorithm performance models construction for various task classes are discussed. Parametric approach which allows parallel speedup description in form of deterministic function is proposed. Parameters of this function are stochastic variables that characterize objective properties of algorithm and are independent of software and hardware implementation. This makes possible analytical study of dependences between performance probabilistic characteristics, algorithm and parallel architecture.

Текст научной работы на тему «Параллельная производительность стохастических алгоритмов»

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И СИСТЕМЫ

УДК 681.3.069, 681.324

С. В. Ковальчук, А. В. Бухановский

ПАРАЛЛЕЛЬНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ СТОХАСТИЧЕСКИХ АЛГОРИТМОВ

Обсуждаются вопросы построения моделей производительности параллельных стохастических алгоритмов для различных классов задач. Предложен параметрический подход, позволяющий описывать параллельное ускорение в форме детерминированной функции. Ее параметрами являются случайные величины, характеризующие объективные свойства алгоритма и не зависящие от особенностей программно-аппаратной реализации. Такое представление позволяет в аналитической форме исследовать зависимость вероятностных характеристик производительности от алгоритма и специфики параллельной вычислительной архитектуры.

Ключевые слова: стохастические алгоритмы, параллельная производительность, высокопроизводительные вычисления.

Введение. Для решения широкого круга научных и инженерных задач применяются стохастические вычислительные алгоритмы, основанные на операциях с последовательностями псевдослучайных чисел. К ним относятся, например, численные методы Монте-Карло, генетические алгоритмы, случайные алгоритмы на графах и др. Вследствие относительно слабой сходимости, обусловленной статистическими свойствами алгоритмов, получение достоверного результата требует больших объемов вычислений, что, в свою очередь, делает обоснованным применение параллельных алгоритмов и соответствующих им методов и технологий параллельного программирования [1 ].

Важнейшей характеристикой параллельной программы, исполняемой на р вычислителях (ядрах, процессорах, узлах), является ее производительность. Она характеризуется общим временем работы Тр и безразмерными характеристиками — параллельным ускорением 8р и

эффективностью вр. Классическое представление параллельного ускорения как отношения времени выполнения программы на одном и р вычислителях в одинаковых условиях [2] позволяет экспериментально определять 8р для обычных, детерминированных алгоритмов. На

его основе предложены различные методы моделирования производительности, которые позволяют предсказывать поведение алгоритма на платформах с различной вычислительной архитектурой (см., например, [3, 4]).

Экспериментально определить и тем более спрогнозировать параллельную производительность стохастического алгоритма, пользуясь традиционными подходами, затруднительно. Это обусловлено тем, что время работы Т[, Тр последовательной и параллельной программ может быть случайной величиной. Как следствие, каждое измерение времени работы

программы соответствует в общем случае разным условиям эксперимента, что не позволяет напрямую воспользоваться классическими представлениями ускорения и эффективности.

Исследования производительности стохастических алгоритмов выполнялись применительно к некоторым классам задач (итерационным методам решения задач оптимизации) [5—7]. В настоящей работе предлагается вероятностный подход к построению моделей производительности параллельных стохастических алгоритмов для различных классов задач на основе представления времени работы программы в виде детерминированной функции случайных аргументов — параметров самого алгоритма.

Классы параллельных стохастических алгоритмов. Представленные на рис. 1 параллельные стохастические алгоритмы классифицированы по признаку влияния источника сто-хастизации на время выполнения программы (У (г = 0,..., п) — отдельные блоки алгоритма, Я — набор аргументов). Квазидетерминированный алгоритм (рис. 1, а) является вырожденным случаем стохастического алгоритма: каждый вычислитель выполняет одни и те же операции с одинаковым, заданным, количеством псевдослучайных чисел. Такие алгоритмы характерны, например, для задачи вычисления многомерных интегралов методом Монте-Карло [8].

а) - б) ,- в)

Уо

Уо

VI

У?

Я

Уз

Я

У4

У1 У? Уз У4

Уо

Я

У1

Я

V?

Я

Уз

Я

У4

Я

г)

Уо

д)

Уо

е)

Уо

Я

/Т\ |/Тч| |/Тч| /ТЧ ЧУ ЧУ ЧУ ЧУ

Я

Я

Т4

ЧУ

Я

Уп

Я

/тч

ЧУ

Я

Я

т

ЧУ

Я

/ТЧ ЧУ

ЯЯЯЯ

/ТЧ /ТЧ /ТЧ

Уп

У1 /ТЧ

ЧУ

Я

У?

I

Уз

ЯЯ

У4

ЧУ

/тч ЧУ

Уп

Рис. 1

Алгоритмы со случайным выходом (обладающие недетерминированным временем выполнения отдельных процедур алгоритма) (рис. 1, б, в) соответствуют итерационным, применяемым, например, в задачах оптимизации [9, 1о]. Алгоритмы со случайным накоплением (рис. 1, г, д) характерны для методов, основанных на многократном повторении испытаний со

случайным выходом, — например, решения систем линейных уравнений методом Монте-Карло [11]. Отдельный класс представляют алгоритмы со случайными входными данными (рис. 1, е): для них время выполнения программы определяется совокупным влиянием источника стохастизации самого алгоритма и изменчивостью данных.

Вероятностный подход к описанию параллельной производительности. Из рис. 1 следует, что время работы программы, реализующей параллельный стохастический алгоритм, определяется структурой самого алгоритма и характеристиками псевдослучайных величин (переменных), составляющих источник стохастизации. Это дает основание представить время работы программы на р вычислителях в форме детерминированной функции Тр = Т(р, Я), зависящей от набора аргументов Я, которые являются случайными величинами. Если известна плотность распределения /я (х), то плотность распределения времени выполнения программы /т (х), а также соответствующие значения плотности распределения параллельного ускорения

/ (х) и эффективности /в (х) выражаются через нее однозначно [12].

Рассмотрим возможность применения данного подхода на конкретных примерах алгоритмов в рамках PRAM-модели параллельной программы [13], реализуемой посредством технологии OpenMP для систем с общей памятью. В рамках PRAM-модели накладные расходы на создание потоков в первом приближении не учитываются, что упрощает содержательную интерпретацию результатов исследования.

Алгоритмы со случайным выходом без барьера. Параллельный алгоритм со случайным выходом без барьера (рис. 1, б) является традиционным для численного решения задач оптимизации, например, методом случайного поиска (различными модификациями) [14]. Этот алгоритм задает управляемый случайной последовательностью итерационный процесс, на каждом шаге которого целевая функция оптимизации вычисляется параллельно. Собственно в параллельных вычислениях случайная последовательность не используется, однако она определяет общее количество итераций п для достижения заданной точности и, как следствие, время выполнения работы алгоритма:

Т = Т0 + пТс, Тр = т + пт-. (1)

р

Здесь Т — время выполнения операции вне итерационного цикла (последовательная часть кода), Тс — время, затрачиваемое на одну итерацию алгоритма поиска (вычисление целевой

функции, параллельная часть кода).

Число итераций п является случайной величиной. В общем случае закон ее распределения неизвестен и во многом зависит от вида целевой функции и характеристик решаемой задачи. Однако в ряде случаев вывод о классе распределения может быть сделан на основании общих соображений. В частности, для задач случайного поиска, сводящихся к последовательности положительных и отрицательных испытаний (зависимых испытаний Бернулли), общее количество итераций тяготеет к нормальному распределению. В дальнейшем ограничимся этим предположением и будем характеризовать число итераций в (1) двумя параметрами — средним значением тп и средним квадратическим отклонением ап .

На рис. 2, а приведен квантильный биплот распределения числа итераций для нормального распределения в процедуре адаптивного случайного поиска с линейной тактикой в рамках задачи аппроксимации климатических спектров морского волнения [15]. Квантильный биплот представляет собой двумерный график, по оси абсцисс которого отложены значения порядковых статистик рассматриваемой величины (результаты экспериментов), а по оси ординат — теоретические квантили соответствующего распределения. Подобное построение позволяет оценить соответствие распределения величины теоретическому по степени приближенности графика к прямой линии.

В рамках предположений о нормальности п величины Т и Тр также будут нормально распределены. Тогда параллельное ускорение

Т + пТ

(2)

^ (р) = — = То + пТс

Тр Т0 + пТс!р

при одном и том же значении п в числителе и знаменателе будет иметь плотность распределения

/ (Б) = / (п(Б ))| п'( 5 )|,

где обратная (2) функция

п(5) =

ТО ^ -1

Тс 1 - Б/р

(3)

(4)

выражает зависимость числа итераций через ускорение системы.

На рис. 2, б приведен пример сопоставления аналитического выражения (3) с результатами экспериментального определения ускорения в терминах (2), полученного путем одинаковой инициализации последовательностей псевдослучайных чисел при вычислениях на одном и двух ядрах. Данные представлены в форме вероятностного биплота (Р — вероятность, ш — частота). Из рис. 2, б видно, что выражение (3) хорошо отображает данные измерений.

а)

1000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

600

200

б) Р

0,1

0,01

а)

600 1000 п 1-10" Рис. 2

б)

0,01 0,1 ш

Б 3

2

2

п

3

Б

3

1 2 3 4 р 1 2 3 4 р

Рис. 3

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

Алгоритмы со случайным выходом и барьером. Параллельные алгоритмы со случайным выходом и барьером (рис. 1, в) также достаточно часто применяются для численного решения задач оптимизации, например, при глобальном поиске или при дискретной оптимизации. Они реализуют конкурирующую схему: параллельно выполняющиеся задачи реализуют один и тот же алгоритм над различными данными. По завершении работы всех задач результаты сравниваются с целью выбора оптимального варианта. Если время работы каждой задачи соответствует (1), то общее время работы параллельного алгоритма с барьером следующее:

Тр = max [То + niTc ] = 7Q + Тс max [n ], (5)

i=1,р 1=1, р

где операция максимума соответствует наличию барьера. Однако в отличие от (1) время работы последовательного алгоритма будет

р р-1

Т1 = То + Тс Z ni = Т0 + Тс max [n ] + Тс Z nk . (6)

i=1 ы'р k=1

р-1

Последний член суммы 4 = Z Щ характеризует задачи (процедуры), завершившиеся до

k=1

момента достижения барьера.

Определение (5) допускает поиск класса распределений Тр в рамках теории экстремальных значений случайных величин [16]. В частности, если распределение числа итераций ni нормально, то распределение времени работы на р вычислителях будет асимптотически

описываться первым предельным распределением (распределением Гумбеля или Фишера— Типпета) с плотностью:

Л (х) = ар exP Г-ар (х - Ър )] exp - exp Г-а„ (х - Ър )] , (7)

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

ln(ln( р)) + ln(4n)

>/21п(р) Ъ

ар =-, Ър =

^ о

'n

^1п(р )

^21n( р)

°п + mn . (8)

Если определить параллельное ускорение через (5) и (6) как

£ (р) = — = — + ^тах Т + — Ч (9)

Тр — + птах —с

и воспользоваться выражением (3), то плотность распределения ускорения будет зависеть от случайного параметра $ . Как следствие, это позволит воспользоваться моделью комбинированного распределения

I(£) = |/тахКах^,Ч)|Ппах(£Ч|ф(Ч | ,а9^ , (10)

0

где

п (Б) = Т0 1 - £ + Тс ЧТ0 "тахч°/ — £ 1

есть обратная функция к (9), а ф — плотность распределения величины Ч . Она асимпотиче-ски может рассматриваться как нормальная с параметрами = (р - 1)тп, = ^(р - 1)оп. Здесь знак „~" соответствует моменту усеченного нормального распределения с точкой усечения птах = (р -1)/р . В силу приближенности этого предположения выражение (10), в отличие от точного выражения (3), не имеет ограничения при £ = р, что должно учитываться при анализе. На рис. 3, б приведен пример расчета ускорения (для алгоритма со случайным

выходом и барьером) по (10) при тех же параметрах, что и для рис. 3, а (кривая — теоретические значения, пунктир — ядерная оценка по данным эксперимента).

Алгоритмы со случайным накоплением. Параллельные алгоритмы со случайным накоплением возникают в задачах потоковой обработки больших объемов данных, где на каждом из M шагов используется один из приведенных выше алгоритмов. В силу независимости статистических испытаний общее время работы таких алгоритмов будет асимптотически нормальным с параметрами mT = MmT., от = yfMат. В частности, если на каждом шаге используется

алгоритм со случайным выходом без барьера, то распределение параллельного ускорения получим в соответствии с (1)—(4) путем замены переменных

T0 = MTo, mn = Mmn, on = 4Mon, (11)

т.е. масштабных преобразований исходного распределения. При увеличении M среднее значение ускорения остается прежним, а размах распределения убывает пропорционально 1/VM.

Метрологический анализ процедуры измерения параллельной производительности. Параллельные алгоритмы со случайным накоплением при значительных M можно рассматривать как детерминированные. На практике эта величина ограничивается допустимой точностью определения параллельного ускорения по данным измерений. Это связано с тем, что даже для детерминированных алгоритмов на точность измерения времени работы влияет ряд дополнительных факторов (источников стохастизации) [17]:

— недетерминированность работы библиотечных процедур, используемых в процессе работы программного средства;

— оптимизации, вносимые компилятором (которые в некоторых случаях могут оказывать косвенное влияние при работе с методами операционной системы);

— шум, вносимый работой операционной системы в управление распределением вычислительных ресурсов между процессами;

— аппаратный шум вычислительной системы.

В качестве примера в таблице приведены экспериментальные оценки характеристик относительной ошибки времени работы и ускорения для детерминированной (100 испытаний при одной и той же реализации случайной последовательности) реализации алгоритма случайного поиска, в зависимости от приоритета рабочих потоков в операционной системе. Видно, что даже при низком приоритете случайная ошибка определения ускорения составляет не более 2 %.

Относительная ошибка времени выполнения и параллельного ускорения в зависимости от приоритета рабочих потоков в операционной системе _(двухъядерный процессор)_

Параметр Ошибка, %

Низкий приоритет Нормальный приоритет Высокий приоритет Приоритет реального времени

T1 0,6 0,3 0,05 0,07

T2 1,5 1,0 0,26 0,32

S 1,6 0,9 0,27 0,35

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

Если коэффициент вариации параллельного ускорения в рамках описанного выше подхода сопоставим со случайной ошибкой измерений, алгоритм допустимо рассматривать как детерминированный. Для алгоритма без барьера эта характеристика может быть получена приближенно (без интегрирования (3)) с использованием метода статистической линеаризации. Коэффициент вариации параллельного ускорения (как относительная ошибка) имеет вид

5 е =

1

1

(12)

^/У, +1 7} р/Т2 +1

где 7} и 7, — время работы последовательного и параллельного кода в программе соответственно, а 5п = оп / тп — коэффициент вариации числа итераций. Выражение в квадратных

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

На рис. 4 приведен график этого коэффициента (в процентах).

Р

10

5 -1

0,1

0,3

0,7

0,9 Т1/Т2

0,5 Рис. 4

Эта диаграмма может быть использована для экспресс-оценки изменчивости значений параллельного ускорения и для оценивания целесообразности описания производительности стохастической моделью вида (1)—(4) или (5)—(10). Так, например, при коэффициенте вариации числа итераций, равном 5n = 0,25, числе исполнителей p = 7 и отношении последовательного кода к параллельному 7]/ 72 =0,17 коэффициент вариации параллельного ускорения составляет 5^ ~ 0,1, что примерно соответствует изолинии графика для 40 %.

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

Работа выполнена при частичной финансовой поддержке гранта Intel SPB/Don/118/2006 „Естественные технологии распараллеливания алгоритмов высокопроизводительной обработки данных для многопроцессорных вычислительных комплексов на основе многоядерных микропроцессоров".

список литературы

1. Kenneth Tan C. J. On Parallel Pseudo-Random Number Generation // Int. Conf. on Computational Science. 2001. N 1. P. 589—596.

2. ОртегаДж. Введение в параллельные и векторные методы решения линейных систем. М.: Мир, 1991. 367 с.

3. Foster J. Designing and Building Parallel Programs. Adison-Wesley, 1995. 430 р.

4. GerbessiotisA. V. Architecture independent parallel algorithm design: theory vs practice // Future Generation Computer Systems. 2002. N 18. P. 573—593.

5. UresinA., DuboisM. Effect of asynchronism in the convergence rate of iterative algorithms // J. Parallel and Distributed Computing. 1996. N 34. P. 66—81.

6. Casanova H. Stochastic models for performance analysis of iterative algorithms in distributed environment. Ph.D. Thesis Univ. Tennessee, Knoxville, 1998. 200 р.

7. Ларченко А. В., Дунаев А. В., Бухановский А. В. Анализ и моделирование производительности параллельных стохастических алгоритмов, адаптированных к особенностям многоядерных вычислительных архитектур // Научный сервис в сети Интернет: многоядерный компьютерный мир. 15 лет РФФИ: Тр. Всерос. науч. конф. (24—29 сентября 2007, Новороссийск). М.: Изд-во МГУ, 2007. С. 156.

8. Бурова И. Г., Демьянович Ю. К. Лекции по параллельным вычислениям. СПб, 2003.

9. Карпенко А. П., Федорук В. Г., Федорук Е. В. Балансировка загрузки многопроцессорной вычислительной системы при распараллеливании одного класса вычислительных задач // Научный сервис в сети Интернет: многоядерный компьютерный мир. 15 лет РФФИ: Тр. Всерос. науч. конф. (24—29 сентября 2007, Новороссийск). М.: Изд-во МГУ, 2007. С. 48—52.

10. Birattari M., Dorigo M. How to assess and report the performance of a stochastic algorithm on a benchmark problem: mean or best result on a number of runs? // Optimization Letters. 2007. Vol. 1, N 3. P. 309—311.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

11. Fathi B., Liu B., Alexandrov V. Mixed Monte Carlo Parallel Algorithms for Matrix Computation // ICCS 2002, LNCS 2330. Berlin—Heidelberg: Springer-Verlag, 2002. P. 609—618.

12. Лившиц Н. А., Пугачев В. Н. Вероятностный анализ систем автоматического управления. Т.1. М.: Сов. радио, 1963. 896 с.

13. Fortune S., Willie J. Parallelism in Random Access Machines // Proc. 10th Annual Symp. on Theory of Computing. 1978. P. 114—118.

14. Растригин Л. А. Адаптация сложных систем. Рига: Зинатне, 1981. 375 с.

15. Boukhanovsky A. V., Lopatoukhin L. J., Guedes Soares C. Spectral wave climate of the North Sea // Applied Ocean Research. 2007. Vol. 29, N 3. P. 146—154.

16. Лидбеттер М., Линдгрен Г., Ротсен X Экстремумы случайных последовательностей и рядов. М.: Мир, 1989. 392 с.

17. Касперски К. Техника оптимизации программ. Эффективное использование памяти. СПб: БХВ-Петербург, 2003. 464 с.

Сведения об авторах

Сергей Валерьевич Ковальчук — Научно-исследовательский институт наукоемких компьютерных

технологий Санкт-Петербургского государственного университета информационных технологий, механики и оптики; E-mail: iterater@mail.ru

Александр Валерьевич Бухановский — Научно-исследовательский институт наукоемких компьютерных

технологий Санкт-Петербургского государственного университета информационных технологий, механики и оптики; E-mail: avb_mail@mail.ru

Рекомендована кафедрой Поступила в редакцию

информационных систем 26.02.08 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.