Научная статья на тему 'Масштабируемость эллипсоидального метода оценивания множеств достижимости линейных систем'

Масштабируемость эллипсоидального метода оценивания множеств достижимости линейных систем Текст научной статьи по специальности «Математика»

CC BY
43
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭЛЛИПСОИДАЛЬНЫЙ МЕТОД / МНОЖЕСТВО ДОСТИЖИМОСТИ / МАСШТАБИРУЕМОСТЬ / THE ELLIPSOIDAL METHOD / REACH SET / REACHABILITY / SCALABILITY

Аннотация научной статьи по математике, автор научной работы — Ширяев Владимир Дмитриевич

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

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

A study on scalability of the ellipsoidal method of linear systems' reachability estimation

The article is devoted to reseach of scalability of the ellipsoidal method of linear systems' reachability estimation. The article contains benchmarking results.

Текст научной работы на тему «Масштабируемость эллипсоидального метода оценивания множеств достижимости линейных систем»

УДК 519.688

В. Д. Ширяев

Масштабируемость эллипсоидального метода оценивания множеств достижимости линейных систем

Аннотация. Статья посвящена исследованию масштабируемости эллипсоидального метода оценивания множеств достижимости линейных систем. Приводятся измерения времени работы реализаций.

Ключевые слова и фразы: эллипсоидальный метод, множество достижимости, масштабируемость.

Введение

Рассматривается система дифференциальных уравнений

х(Ь) = Л(Ь)х(Ь) + п(£),

п(£) € Р(£) = Е(Р(£),р(£)) — управление,

х(Ьо) € X0 = Е(X0,х0) — начальное множество.

Е(Р(£),р(£)) обозначает эллипсоид с матрицей Р(£) и центром р(£), строгое определение дано ниже. Все коэффициенты непрерывны. Необходимо найти множество достижимости системы, т. е. все точки, в которые можно привести фазовую точку с помощью управления при указанных ограничениях, варьируя как угодно начальное положение точки в начальном множестве X0 и выбирая какое угодно кусочно непрерывное управление, удовлетворяющее для всех £ требованию п(£) € Р(£).

Задача решается с помощью эллипсоидального метода оценивания множества достижимости, а именно, будут строиться внешние оценки. Теория эллипсоидального метода приведена в [1]. Существует реализация для МАТЬАБ ([2]).

Работа выполнена в рамках ФЦП «Научные и научно-педагогические кадры инновационной России на 2009—2013 годы» (контракт №16.740.11.0426 от 26 ноября 2010 года).

© В. Д. Ширяев, 2011

© Программные системы: теория и приложения, 2011

Для описания алгоритма необходимы определения:

Определение 1. Пусть А — выпуклое компактное множество, а / — некоторый вектор пространства. Опорной функцией мно-

ж.ества А в направлении I называется функция

р (А | /) = яир (/, х) .

х£А

Определение 2. Пусть ^ — неотрицательно определённая матрица. Эллипсоидом Е(ф, ц) с центром ц и матрицей ф называется множество, такое что

р (е(д,4) |/) = (/,9) + (/,д/)2.

Строятся внешние оценки множества достижимости, каждая из них — это эллипсоид Е(Х+(£, /о), х+(£)), зависящий от времени и векторного параметра /о, размерность которого равна размерности фазового пространства. Каждая внешняя оценка обладает важными свойствами:

• оценка включает в себя точное множество достижимости,

• опорная функция оценки Е(Х+(£, /о), х+(£)) совпадает с опорной функцией точного множества достижимости в момент времени £ вдоль вектора /(£, /о), определяемого задачей Коши

(1) /'(*, /о) = -Ат(*)/(*, /о), /(*о, /о) = /о.

Это значит, что оценка Е(Х+(£, /о), х+(£)) касается точного множества в направлении /(£, /о) в момент времени £.

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

Матрица и центр оценки получаются как решения задачи Коши

Х+(£, /о) = А(*)Х+(*, /о) + (А(*)Х+(*, /о))т+

+ п(*)Х+(*, /о) + Р(£), Х+(0, /о) = Xо,

I П(£)

(2) ^ Х+(£) = А(£)х+(£)+ р(£), х+(о) = хо, т I (/(£,/о),Р (£)/(£,/о))

п(£) ~

(/(¿,/о),Х+(*,/о)/(*,/о))'

1. Анализ путей распараллеливания

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

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

2. Параллелизм на уровне разных эллипсоидальных оценок

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

Реализация выполнена для машины BlueGene/P, установленной на факультете ВМиК МГУ имени М. В. Ломоносова, на языке C с использованием библиотеки MPI для массового параллелизма и ESSL для матричных операций на каждом вычислительном узле. Схема работы следующая: сначала по всем вычислительным узлам рассылаются параметры задачи и начальное значение 1(to,1o) = lo, после чего каждый узел решает задачу Коши (2). Затем матрицы-ответы X+(t, lo) собираются со всех узлов на одном.

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

В. Д. Ширяев Таблица 1. Время работы программы

512 1024 2048 4096 8192 16384 32768

1 382.1 763.0

4 95.28 181.0 381.8 764.4

8 48.15 91.36 182.7 365.3 766.8

16 23.91 45.47 90.89 181.8 363.5 765.7

32 11.97 22.78 45.51 91.02 182.0 364.0 765.2

64 05.99 11.41 22.75 45.50 90.99 182.0 363.9

128 02.99 05.96 11.38 22.75 45.48 90.97 181.9

256 01.50 02.86 05.70 11.38 22.76 45.50 91.02

512 00.75 01.49 02.86 05.70 11.39 22.77 45.52

Таблица 2. Затраты машинного времени в процессоро-секундах

512 1024 2048 4096 8192 16384 32768

1 382.1 763.0

4 381.1 723.9 1527.0 3057

8 385.2 730.8 1461.4 2922 6134

16 382.6 727.6 1454 2908 5817 12251

32 383.0 728.9 1456 2913 5824 11647 24484

64 383.1 730.0 1456 2912 5823 11646 23291

128 383.2 763.4 1456 2911 5822 11644 23285

256 383.4 733.2 1460 2914 5825 11649 23300

512 383.7 761.8 1462 2918 5830 11656 23307

Таблица 3. Ускорение

1 4 8 16 32 64 128 256 512

512 1.00 4.01 7.94 16.0 31.9 63.8 128 255 510

1024 1.00 4.27 8.35 16.8 33.5 66.9 128 266 513

3. Параллелизм на уровне одной эллипсоидальной оценки

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

3.1. Алгоритм Кэннона перемножения матриц

Для перемножения двух матриц используется метод Кэннона перемножения матриц. Он заключается в следующем. Пусть имеется к2 вычислительных узлов, к — натуральное число, и пусть узлы соединены коммуникационной сетью, образующей топологию двумерного тора. То есть, если к2 узлов обозначать символом N(i,j), 0 ^ i, j ^ к — 1, то узел N(i, j) может быстро обмениваться данными с четырьмя узлами N(i ± 1 mod к, j ± 1 mod к).

Пусть теперь матрица A умножается на матрицу B, и размеры матриц делятся на к. Матрицы разбиваются на подматрицы соответственно топологии вычислительных узлов, то есть, на к2 одинаковых по размеру подматриц:

A =

( A(0,0) A(0,1) • • A(0, k - 1) \

A(1,0) A(1,1) • • a(1, k - 1)

\A(k - 1,0) A(k - 1,1) • • A(k - 1, k - 1)/

( B(0,0) B(0,1) • • B(0,k - 1) ^

B(1,0) B(1,1) • • B(1,k - 1)

B( k 1 . ,1 0) B(k - 1,1) • • B(k - 1, k - 1)У

B

Затем происходит построение матриц A[0] и B[0]: блок A[0](i, j) матрицы A[0] — это блок A(i, j + i mod k), а блок B[0](i, j) матрицы B[0] — это блок B(i+j mod k, j mod k). Наглядно это означает следующее: первый столбец A[0] — это главная диагональ A, а первая строка B[0] — это главная диагональ B. Заранее определим матрицы A[s] и B[s] следующим образом: блок A[s](i, j) матрицы A[s] — это блок A(i, j + i + s mod k), а блок B[s](i, j) матрицы B[s] — это блок B(i + j + s mod k, j mod k). Иными словами, блоки матрицы A[s] —

это сдвинутые на в позиций влево циклическим образом блоки матрицы А[0], а блоки В [в] — это сдвинутые на в позиций вверх циклическим образом блоки матрицы В[0].

На узле (і, і) будет получаться блок С (і, і) матрицы-произведения А и В. Начальное значение блока С (і, і) — нулевая квадратная матрица со стороной к. Кроме того, на узле (і, і) будет всегда храниться по одному блоку матриц А и В. Начальное положение таково: узел (і,і) хранит блоки А[0](і,і) и В[0](і,і).

Собственно алгоритм Кэннона состоит из к шагов: на п-том шаге, 0 ^ п ^ к — 1, происходит следующее:

(1) узел (і,і) получает блоки А[п](і,і) и В[п](і,і) (от своих соседей по сети в топологии двумерного тора),

(2) узел (і, і) перемножает хранящиеся на нём блоки и добавляет это произведение к хранящемуся на нём блоку С (і, і).

После выполнения последнего шага п = к — 1 узел (і, і) будет хранить блок С (і, і). Матрица С = АВ из этих блоков получается так же, как на них разбивались А и В:

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

Таблица 4 содержит измерения времени работы реализации этого метода умножения матриц, таблица 5 — затраты процессорного времени, а 6 — ускорение. По горизонтали откладывается число используемых процессоров, а по вертикали — размер стороны матрицы-сомножителя. Реализация сделана для BlueGene/P, на языке C с применением библиотеки MPI. В этот раз не использовалась библиотека

C

/ C (0,0) C (0,1)

C (і, о) c(i, 1)

C(0,k - 1) \ C(l,k - l)

\C(k - 1,0) C(k - 1,1) • •• C(k - 1,k - 1)/

ESSL, использование которой позволяет сократить время работы программы в несколько раз (не меньше, чем в 6). Это обстоятельство, однако, влияет на масштабируемость не принципиально.

Таблица 4. Время работы программы

1 4 16 36 64 100 144 196 256 324 361 400 441 484 1024

512 1.355 0.348 0.088 0.047 0.024 0.014 0.011 0.008 0.006 0.006 0.005 0.005 0.005 0.004 0.003

1024 10.84 2.745 0.691 0.324 0.178 0.122 0.099 0.069 0.049 0.034 0.031 0.028 0.025 0.024 0.013

2048 86.75 21.82 5.485 2.608 1.383 0.925 0.664 0.500 0.356 0.310 0.277 0.246 0.221 0.230 0.104

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

4096 694.4 174.1 43.63 19.99 11.00 7.408 5.277 3.770 2.745 2.234 2.104 1.866 1.653 1.604 0.741

8192 348.1 159.0 87.38 57.95 40.21 29.63 22.02 17.91 16.24 14.82 13.23 12.36 5.688

Таблица 5. Затраты машинного времени в процессоро-секундах

1 4 16 36 64 100 144 196 256 324 361 400 441 484 1024

512 1.355 1.390 1.410 1.690 1.570 1.390 1.550 1.530 1.450 1.810 1.920 1.930 2.040 2.140 3.240

1024 10.84 10.98 11.06 11.66 11.39 12.25 14.19 13.56 12.54 11.04 11.21 11.24 11.21 11.38 13.04

2048 86.75 87.29 87.76 93.88 88.51 92.45 95.62 98.09 91.08 100.6 100.2 98.49 97.44 111.5 106.9

4096 694.4 696.3 698.0 719.5 704.2 740.8 759.9 738.9 702.7 723.8 759.4 746.2 729.2 776.3 758.8

Таблица 6. Ускорение

1 4 16 36 64 100 144 196 256 324 361 400 441 484 1024

512 1.000 3.900 15.35 28.86 55.39 97.58 125.6 173.1 240.0 242.8 254.8 280.6 292.4 307.1 428.0

1024 1.000 3.950 15.69 33.49 60.94 88.52 110.0 156.7 221.4 318.2 349.2 385.8 426.5 461.3 851.7

2048 1.000 3.980 15.82 33.27 62.73 93.84 130.7 173.4 243.8 279.8 312.7 352.3 392.6 376.8 830.7

4096 1.000 3.990 15.92 34.74 63.11 93.74 131.6 184.2 253.0 310.8 330.1 372.2 420.0 433.0 937.1

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

Заключение

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

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

[1] Kurzhanski A.B., Valyi I. Ellipsoidal Calculus for Estimation and Control. Boston : Birkhauser, 1997. |[]

[2] Kurzhanski A.A., Varaiya P. Ellipsoidal Toolbox, 2006, http://code.google. com/p/ellipsoids. |[]

V. D. Shiryaev. A study on scalability of the ellipsoidal method of linear systems’ reachability estimation.

Abstract. The article is devoted to reseach of scalability of the ellipsoidal method of linear systems’ reachability estimation. The article contains benchmarking results.

Key Words and Phrases: the ellipsoidal method, reach set, reachability, scalability.

Образец ссылки на статью:

В. Д. Ширяев. Масштабируемость эллипсоидального метода оценивания множеств достижимости линейных систем // Программные системы: теория и приложения : электрон. научн. журн. 2011. № 2(6), с. 53-60. URL: http://psta.psiras.ru/read/psta2011_2_53-60.pdf

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