применение
модели асинхроннЫх вычислЕНИЙ в программных системах распределенной обработки
данных
(Москва, Московский Энергетический Институт (ТУ), Россия)
В настоящее время существует большое число задач, решение которых основано на применении концепции распределенных вычислений. Это научные задачи, также задачи, связанные с предоставлением информационных услуг (например, осуществления электронных платежей), задачи контроля и управления объектами. Последние два вида задач для своего решения, как правило, требуют режима реального времени.
Для представления алгоритмов перечисленных задач существует целый ряд вычислительных моделей. Обычно механизмы, заложенные в эти модели, имеют либо достаточно общий характер (например, MPI [1]), либо наоборот узко специализированны (например, ScaLAPACK [2]). Обсуждаемая в докладе модель асинхронных вычислений, на наш взгляд, позиционирована именно как средство описания алгоритмов задач указанных выше типов. Исследованию возможностей ее применения в распределенных системах обработки информации и посвящена данная работа.
Асинхронные вычислительные модели – класс моделей параллельных вычислений, в которых алгоритмы задач разбиваются на функционально обособленные части, представляемые компонентами, а потоки данных между компонентами буферизируются. Компоненты модели – автоматы специального вида с конечным набором состояний и фиксированной диаграммой переходов.
Различают несколько подклассов асинхронных вычислительных моделей, среди них асинхронные вычислительные сети [3] и асинхронные вычислительные конвейеры [4].
Для асинхронных вычислительных сетей характерно наличие конечных, завершающих состояний – совокупности соответствующих состояний ее компонентов. Для сетей, ориентированных на однократное получение результата, достижение завершающего состояния является целью их функционирования. Для конвейеров, наоборот, целью являются непрерывные параллельные вычисления, связанные с получением и выдачей данных. Можно сказать, что первый случай применим для спецификации расчетных научных задач, второй – для спецификации интерактивных информационных систем, систем управления технологическими процессами и т.д.
Базовая модель асинхронных вычислений предусматривает наличие четырех типов объектов: компонента, буфера, источника и приемника данных. Связи между объектами – «точка-точка», направленные. Компонент является активным объектом, то есть имеет собственную логику работы и может инициировать обращение к другим объектам. Объекты остальных типов пассивны.
Для эффективного применения базовой модели в системах распределенной обработки данных предлагается ее расширение за счет введения нового типа объектов – сервисов. Сервисы являются пассивными объектами, однако они функционируют на уровне всей сети (конвейера) и к ним могут обращаться одновременно несколько активных компонентов. Сервисы в модели могут нести любую семантическую нагрузку, например, являться ассоциативными запоминающими устройствами, базами данных или их отдельными таблицами, каналами сообщений, генераторами уникальных идентификаторов, арбитрами доступа и т.д. Обычно сервисы выполняют системные функции, однако могут, например, просто генерировать псевдослучайные числа. Хотя функцию каждого сервиса можно реализовать с помощью компонентов, введение в модель некоторого количества стандартных сервисов позволяет расширить возможности прикладного уровня описания задачи.
Для описания алгоритма задачи с помощью асинхронной вычислительной сети необходимо специфицировать входной язык. К нему предъявляются следующие требования:
- язык должен быть простым, не требующих навыков программирования, например, являться макрорасширением одного из известных языков высокого уровня;
- язык должен быть близок по своим характеристикам к языку реализации программной системы распределенной обработки данных, а, в идеале, совпадать с ним.
Учитывая эти требования, предлагается использовать графический способ задания распределенных алгоритмов, например, с помощью схем и диаграмм систем автоматизированного проектирования ПО – CASE-систем. Среди них можно выделить два типа систем – структурные и объектные системы. И те, и другие включают множество нотаций и диалектов. Наиболее распространенными из них являются структурная нотация Гейн-Сарсон [5] и объектная UML-нотация (Unified Modeling Language – универсальный язык моделирования) [6]. Если использовать стандартные CASE-средства для описания алгоритма в терминах модели асинхронных вычислений, то с помощью стандартных механизмов построения отчетов можно получать готовые (или почти готовые) модели вычислений для каждой конкретной задачи. На наш взгляд для рассматриваемого класса задач целесообразно применять второй подход – объектную нотацию.
Рассмотрим пример применения модели асинхронных вычислений для построения системы распределенной обработки данных. Задача состоит в круглосуточной регистрации прихода и ухода сотрудников предприятия, накоплении регистрационных данных и построении соответствующих отчетов. Для решения этой задачи требуется аппаратно-программный комплекс, включающий средства идентификации сотрудника (такие, как считыватели магнитной карты или отпечатка пальца), а также средства регистрации событий, связанных с проходом сотрудников, обеспечивающие накопление информации и построение отчетов.
Как видно, для описания алгоритма этой задачи может быть применена модель асинхронного вычислительного конвейера. В этой модели присутствуют следующие типы компонентов: компоненты первого типа получают сообщения с датчиков, компоненты второго типа регистрируют эти события, компоненты третьего типа строят отчет с заданными характеристиками и выдают пользователю. Количество компонентов первого типа соответствует количеству устройств считывания. Количество компонентов второго типа зависит от механизма регистрации. Если она осуществляется путем добавления информации о проходе – времени, месте, сотруднике и т.д. – в базу данных, то в рассматриваемой модели регистрирующий компонент, равно как и компонент построения отчетов, может быть один. Конвейер имеет один сервис, обеспечивающий хранение и доступ к информации о проходах – упомянутая выше база данных. Возьмем, например, такую конфигурацию конвейера: два компонента первого типа (две проходные), один компонент второго типа (регистратор событий), один компонент третьего типа (построитель отчетов) и один сервис (хранение данных). Графическое представление этой модели в структурном виде (с использованием нотации, описанной в [4]) показано на рис. 1.
На рис.
1. используются обозначения: ds
– источники данных, dr
– приемники данных, b1
и b2 – буферизованные
связи, p1 и p2 – компоненты
первого типа, p3 –
компонент второго типа, p4
– компонент третьего типа,
s – сервис хранения
данных.
Предложенные подходы применяются в разработке программной системы распределенной обработки данных, выполняемой на кафедре ВМСиС МЭИ (ТУ).
В данной работе рассматривалось применение модели асинхронных вычислительных сетей в программных системах распределенной обработки данных, в частности для решения задач сбора и обработки данных. Было предложено уточнение базовой модели, а именно: расширение модели за счет введения объектов нового типа - сервисов. Также было предложено представление алгоритма конкретной задачи в графическом виде с помощью стандартных CASE-средств, с последующим получением модели распределенной обработки данных.
Разрабатываемая программная система позволит специфицировать алгоритмы распределенной обработки данных, подобные рассмотренному выше алгоритму, отлаживать и выполнять их, реализуя соответствующие процессы распределенной обработки, а также проводить анализ исходных алгоритмов с последующим их уточнением.
ЛИТЕРАТУРА
1. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. – СПб.: БХВ-Петербург, 2002. –400 с.
2. Blackford L. S., Choi J., Cleary A.,
at alias. ScaLAPACK Users' Guide, Society for Industrial and Applied
Mathematics, 1997.
3. Строева
Т.М., Фальк В.Н. Асинхронные вычислительные сети: АВС-модель и АВС-система
параллельного программирования. // Кибернетика, 1981, № 3. – С. 90-96.
4. Калинина
Г.А., Ладыгин И.И., Мороховец Ю.Е. Редуцированная модель вычислительного
конвейера на регулярных компонентах. // Доклады МК «Информационные средства и технологии», том 1. – М.: Янус-К, 2002
– С. 14-17.
5. Калянов Г.Н. CASE: структурный системный анализ. – М.: ЛОРИ, 1996. – 364 с.
6. Якобсон А., Буч Г., Рамбо Дж. Унифицированный
процесс разработки программного обеспечения. – Спб.: Питер, 2002. – 496 с.