применение модели асинхроннЫх вычислЕНИЙ в программных системах распределенной обработки данных

 

 

А.С. Казарицкий,  Ю.Е. Мороховец

 

 

(Москва, Московский Энергетический Институт (ТУ), Россия)

 

 

 

 

 

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

Для представления алгоритмов перечисленных задач существует целый ряд вычислительных моделей. Обычно механизмы, заложенные в эти модели, имеют либо достаточно общий характер (например, 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 с.