Динамическая структурная оптимизация распределенных систем обслуживания на многопроцессорных системах
Тан Шейн, Тхан Зо У, Чжо Мью Хтун, С.А. Лупин,
Московский государственный институт электронной техники,
e-mail: [email protected]
В работе рассматриваются вопросы организации распределенных систем обслуживания (РСО) и их моделирование. Анализируется вычислительная сложность отдельных этапов моделирования и возможность их реализации на параллельных платформах.
Архитектурно современные службы экстренной помощи все чаще используют иерархическую распределенную децентрализованную структуру в сочетании с централизованным управлением в кризисных ситуациях. Такая организация характерна для служб скорой помощи, пожарной охраны, полиции и сил борьбы с последствиями чрезвычайных ситуаций.
Их роднит то, что они представляют собой распределенные системы обслуживания. В общем случае под РСО понимают совокупность следующих элементов:
1. закрепленная территория или зона ответственности;
2. множество распределенных обслуживающих объектов {S};
3. система сбора информации и заявок от обслуживаемых объектов{2};
4. система управления.
Обеспечение эффективной работы РСО невозможно без устойчивых к нагрузкам алгоритмов управления. Поскольку проведение натурных испытаний в данном случае практически невозможно, для оценки качества систем управления используются различные методы моделирования.
Моделирование, как метод исследований, традиционно используется для отработки алгоритмов управления различными сложными системами. Распределенные системы можно рассматривать как системы массового обслуживания, для описания которых широко используется имитационное моделирование.
Система моделирования РСО должна обеспечивать выполнение следующих функций [1]:
1. отображение окружающей среды (внешние факторы);
2. отображение потоков заявок;
3. отображение обслуживающих объектов;
4. расчет состояния системы;
5. визуализация результатов.
Рассмотрим вычислительную сложность каждой из этих функций. При этом будем исходить из того, что модель создается для оценки оптимальности структуры РСО и эффективности системы управления.
Отображение окружающей среды. Безусловно, от точности представления в системе моделирования внешних факторов будет зависеть качество получаемых результатов. Однако, для поставленной задачи вполне достаточно представления среды, как некоторого дискретного пространства размерностью с ограниченным набором характеристик {А}. Таким образом, на каждом шаге моделирования необходимо задать характеристики каждого элемента пространстваА(1^)=(РЪ ... Рк). Вычислительная сложность операции определяется только размерностью пространства моделирования N и числом параметров к.
Отображение объектов обслуживания. Этот этап требует задания параметров элементов {2}. Сложность операции линейно зависит от количества объектов - источников заявок М и степени детализации их описания 2(1)=(Х,У,Р1, ■■ Рг), где X и У координаты объекта, а Рг его свойства.
Отображение обслуживающих объектов. Этот этап требует задания параметров элементов {£}. Сложность операции линейно зависит от количества обслуживающих объектов К и степени детализации их описания 8(1)=(Х,У,РЬ ... Рг), где X и У координаты объекта, а Рг его свойства. Параллельная реализация этой операции не эффективна.
Оценки эффективности системы управления. Результатом моделирования РСО должна стать оценка того, справится ли система с нагрузкой, заданной {2} в состоянии, заданном {А} и {£}, и если нет, то возможна модификация ее структуры за счет введения дополнительных обработчиков заявок. Такой подход можно назвать динамической структурной оптимизацией. Если в качестве критерия эффективности системы использовать время реакции, то для его определения необходимо решить задачу распределения заявок {2} между обработчиками {£}. Для этого используются различные алгоритмы дискретной оптимизации, которые при увеличении параметров М и К становятся вычислительно сложными. Параллельное выполнение кода позволит сократить время вычислений на этом этапе моделирования, однако далеко не все стратегии и алгоритмы управления имеют эффективные параллельные реализации.
Визуализация результатов моделирования. В случае моделирования систем, состоящих из большого числа элементов, человеку весьма трудно оценить результат, если он представлен в цифровой форме. В некоторых случаях допустимо выражать свойства системы с помощью
комплексных показателей, что позволяет снизить нагрузку на оператора, но уменьшает информативность результатов. Наибольшую наглядность получаемой информации обеспечивают различные методы визуализации и сегодня существуют мощные графические станции способные динамически отображать результаты моделирования. Вычислительная сложность процесса визуализации зависит от представляемой информации и в общем виде достаточно трудна для оценки. Отметим, что современные станции визуализации являются параллельными вычислителями с развитым программным обеспечением.
Представленные соображения позволяют предложить следующую структуру системы моделирования РСО:
- последовательная подсистема моделирования обслуживающих объектов и заявок, внешней среды;
- параллельная подсистема оценки эффективности системы обслуживания;
- унифицированная подсистема визуализации результатов моделирования.
Такой подход приведет к сокращению сроков разработки и снижению затрат на создание новых систем моделирования РСО.
При относительно большом числе поступающих в систему заявок для решения задачи их распределения между обработчиками можно использовать алгоритмы случайного поиска. Одной из основных проблем при реализации алгоритма является получение случайного вектора R с уникальными элементами, отображающего распределение заявок. Уникальность элементов вектора определяется принципом «одна заявка - одни обработчик». Если мы начнем заполнять элементы вектора R случайными числами и при этом проверять, чтобы элементы не повторялись, то чем больше будет заполненных элементов, тем чаще будут выпадать повторяющиеся цифры. В результате на генерацию случайного вектора длиной N с неповторяющимися элементами будет затрачиваться неоправданно много времени. Теоретическая оценка математического ожидания числа бросков F (операций rand), необходимых для заполнения вектора уникальными числами дает следующий результат:
N 1
F = N^- * N(lnN + 0.557)
k=i k
В работе [2] предложен метод ускорения генерации случайных векторов. Это достигается за счет того, что случайное число получается как комбинация двух случайных чисел меньшей размерности, что снижает вероятность повторов. Представим набор чисел, которыми заполняется вектор, в виде упорядоченной последовательности, например, - от 1 до 36. Тогда одно из чисел будет отражать номер раздела этой последова-
тельности, а второе смещение в нем. Принцип заполнения вектора для разбиения 4*9 иллюстрируется на рисунках
1 и 2.
Г'
рп=Ю
row = 2 position = 5
(placement = 2 * 9 + 5 = 23)
row = rand() % 4; position = 1 + rand() % 9; placement = row * 9 + position;
Рис.1. Разбиение случайного вектора для ускорения его генерации
p[count] = placement
Рис.2. Алгоритм генерации случайного вектора
При генерации очередной случайной позиции вначале проверяется, полностью ли использован раздел последовательности. Если да, то возвращаемся к выбору раздела. В противном случае случайным образом определяем смещение относительно начала раздела в векторе USED.
Проверяем, использована ли данная ячейка или нет. Если она использована, то возвращаемся к выбору смещения. Если нет, то определяем элемент в векторе К, увеличиваем счётчик заполненных элементов в разделе, устанавливаем флаг занятости смещения в разделе и переходим к заполнению следующего элемента вектора.
Результаты статистических исследований предложенного способа приведены в таблице 1.
Табл. 1. Число генераций для различных разбиений вектора
Разбиение 1*36 2*18 3*12 4*9 6*6 9*4 12*3 18*2
Число бросков 150 127 113 100 88 75 67 54
Для практических исследований эффективности предложенного подхода была разработана параллельная MPI программа. Обмен данными между узлами кластерной системы выполняется при помощи механизма обмена сообщений MPI.
Полученные экспериментальные данные приведены в таблице 2.
Табл. 2. Результаты работы случайного алгоритма
Число случайных векторов (K) 104 105 106
Время реакции системы 183 173 155
При выполнении расчетов вычислительная нагрузка равномерно распределялась между узлами системы, а результат получался редуцированием на ведущем узле. Проведенные эксперименты подтверждают практическую возможность использования многопроцессорных вычислительных систем для выполнения этапа оценки состояния распределенной системы обслуживания.
Литература
1. Мью Мьинт Ту. Simulation of Distributed Service Systems. // Institute of Electronics, Information and Communication Engineers (IEICE Technical Report), Japan, Vol. 109 No. 348, (Submission System Conference Schedule) SSS2009-24-SSS2009-29, Safety, December 18, 2009, SSS2009-24, Page 1 to 4.
2. Зей Яр Вин. Распараллеливание итерационных алгоритмов для многопроцессорных систем.// Системный анализ и информационно-управляющие системы: Сборник научных трудов под редакцией д.т.н., профессора В.А. Бархоткина - М.: МИЭТ, 2008 г., с 164 - 168.