И.И. Левин, О.М. Омаров *
СF-СЕТИ - ИНСТРУМЕНТ ДЛЯ ОПЕРАТИВНОГО АНАЛИЗА РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ
Развитие компьютерных сетей, объединяющих рабочие станции и персональные компьютеры, обеспечивает неуклонный рост вычислительных ресурсов. В настоящее время вычислительные мощности компьютерных сетей на несколько порядков превосходят производительность суперкомпьютеров. Неслучайно ведущие специалисты в области вычислительной техники указывают в качестве конечной цели развития информационных технологий создание системы «вездесущих» вычислений, которая обеспечит доступ к информации и средствам ее обработки практически в любом месте. Для создания подобной системы необходимо решение целого ряда проблем и, прежде всего, в области программного обеспечения распределенных вычислительных ресурсов.
При создании распределенных вычислительных программ программист неизбежно сталкивается с рядом технических сложностей, к числу которых следует отнести: ненадежность сети, изменчивость топологии сети, согласование нескольких администраторов сети и минимизацию транспортных затрат [1]. Но главной проблемой, с которой неизбежно сталкиваются создатели программ для распределенных вычислительных систем, - это адекватная реализация в сети множества вычислительных процессов. Для обеспечения согласованной работы сотен, а иногда даже тысяч взаимосвязанных процессов необходимы средства моделирования, с одной стороны, достаточно простые, а, с другой стороны, точно отражающие события и процессы, происходящие в сети при реализации распределенных вычислений.
При имитационном моделировании неизбежно возникает сложность идентификации времени начала и окончания того или иного процесса параллельной вычислительной системы. Только для однопроцессорной ЭВМ фон-неймановской архитектуры вычислительный процесс однозначен и детерминирован: в определенный момент времени выполняется одна и только одна команда.
Для распределенных систем, в общем случае, неизбежен недетерминизм выполнения программы [2]. В определенный момент времени реализуются ансамбли команд, при этом как последовательность ансамбля, так и их состав может меняться. Если компоненты программы строго информационно зависимы, то их нужно реализовать последовательно. Если компоненты программы информационно независимы, то их можно реализовать параллельно. Порядок выполнения во времени тех или иных информационно независимых компонентов программ, в общем случае, не определен, что и приводит к различным протоколам выполнения параллельной программы.
Многообразие форм представления параллельных алгоритмов обусловлено большим количеством архитектур вычислительных систем. Одними из наиболее широко известных и распространенных форм представления задач являются представление задачи в виде взаимодействующих последовательных процессов [3] и в виде сети Петри (СП) [4]. Как правило, указанные формы используются отдельно: сети Петри отражают структуру описываемой системы и позволяют моделировать динамическое поведение системы и обнаруживать тупики и дедлоки, а представление задачи в виде взаимодействующих последовательных процессов позволяет наглядно описывать процессы управления и поведения системы на уровне составляющих систему процессов благодаря разработанному математическому аппарату.
*
Работа поддержана грантом РФФИ, проект № 04-07-96810
Практическое использование классических формализмов как СП, так и взаимодействующих последовательных процессов для описания реальных систем, выявило ряд серьезных недостатков (таких как невозможность описания функционирования условного оператора if для СП и абстрагирование от структуры самого процесса в модели взаимодействующих последовательных процессов), что существенно ограничивает их область применения.
Следует отметить, что СП, как правило, используются для описания исключительно управляющих компонентов вычислительного процесса, игнорируя сущность процесса, в том числе не отражается информационная зависимость между фрагментами вычислений. В то же время существует класс СП, описывающих потоковые вычисления, например для конвейерных устройств и машин data-flow. Классические сети Петри и потоковые сети Петри описывают две ипостаси вычислительного процесса: управляющий компонент и вычислительный - функциональный компонент. Как правило, оба типа СП являются несовместимыми, поскольку назначение мест и переходов в обоих типах сетей противоположное. В классических СП переходы соответствуют некоторым операторам, функциональное назначение которых не определяется в модели, места - состоянию программы или системы, дуги отражают зависимость по управлению. В потоковых СП переходы соответствуют операциям над данными или ячейкам памяти, места - операндам, дуги - информационным зависимостям. В то же время тенденции развития технологии программирования (в частности, на основе парадигмы объектноориентированного программирования) направлены на инкапсуляцию данных и методов их обработки, а, значит, и управляющих компонентов вычислительного процесса в единой программно-неделимой конструкции. Это приводит к необходимости создания расширения сетей Петри, которые поддерживали бы тенденции развития информационных технологий, обеспечивали бы адекватное моделирование распределенных вычислений и преемственность с разработанными методами и средствами анализа СП.
Для устранения описанных недостатков для моделирования параллельных алгоритмов в данной работе предлагаются управляющие функциональные расширения сетей Петри, предназначенные для адекватного представления и ориентированные на распределенную обработку информации [8].
Принцип построения управляющих функциональных сетей (CF-сетей): топологически изоморфные переходы сети являются эквивалентными, а топологически неизоморфные переходы являются неэквивалентными. Данный принцип позволяет значительно расширить свойства СП. Прежде всего, это относится к переходам, содержащим как ингибиторные, так и обычные дуги.
Например, если некоторый переход а связан с местом t обычной дугой, то данный переход активируется, когда в месте t находится, по крайней мере, одна фишка. Если некоторый переход р связан с местом t ингибиторной дугой, то данный переход активируется, когда в месте t не содержится ни одной фишки.
Если некоторый переход у связан n обычными дугами с местом t, то данный переход активируется тогда и только тогда, когда в месте t содержится не менее чем n фишек.
Если некоторый переход 5 связан n ингибиторными дугами с местом t, то, на первый взгляд, данный переход должен активироваться тогда и только тогда, когда в месте t нет ни одной фишки. Таким образом, переход 5 эквивалентен по своим свойствам переходу р. Однако это противоречит ранее сформулированному принципу, что топологически неизоморфные переходы должны выполнять различные действия. В этой связи предлагается следующая трактовка свойств перехода 5. Если некоторый переход 5 связан n ингибиторными дугами с местом t, то
данный переход должен активироваться тогда, когда в месте 1 находится фишек меньше, чем п. Данное определение делает переход 5 обратным по условию срабатывания переходу у. Аналогично условию срабатывания, переход а является противоположным по условию срабатывания переходу р.
Формально условие срабатывания вышеописанных переходов можно описать с помощью следующих формул:
5(/) = Р(||/|| > п\
5 (5) = Р(|| /| < п) = 5(7), где 5(и) - условие срабатывания перехода /и; || 11| - число вершин в месте /.
Несложно заметить, что условие срабатывания перехода р является частным случаем условиям срабатывания перехода 5 при п=1. Аналогично, условие срабатывания перехода а является частным случаем условия срабатывания перехода у.
Определенный интерес представляет переход е, который соединен с входным местом 1 как прямой, так и ингибиторной дугой. На первый взгляд, данный переход не может быть активирован ни при каком количестве фишек в позиции 1, так как необходимо выполнение условий таких, что фишки в позиции 1 как имеются, так и отсутствуют. Однако при преобразовании сети с переходом е в сеть с групповой позицией <11, 12> становится понятным, что переход е срабатывает тогда и только тогда, когда в месте ^ есть фишка, а в месте 12 фишки нет.
Для упорядочения правил срабатывания переходов СБ-сети мы вправе потребовать, чтобы каждое место, связанное с переходом и п дугами, из которых обычных дуг - к и ингибиторных дуг- т, заменялось групповой позицией <1!, 12, ..., 1п>, каждое место которой 11 связано с переходом и единственной дугой, причем места 1! 1=1,2,., к соединены с переходом и обычными дугами, а места 11 1=к+1, к+2,..., п соединены с переходом и ингибиторными дугами. Если позиция 1 содержит N фишек, то они должны быть разделены между местами групповой позиции, начиная с первой. Таким образом, для того чтобы переход и сработал, нам необходимо, чтобы фишки находились в местах групповой позиции 11 1=1,2,., к и отсутствовали фишки в местах 11 1=к+1, к+2,., п. Несложно заметить, что мы неизбежно приходим к противоречию, ведь при данных условиях переход и будет срабатывать тогда и только тогда, когда число фишек в 1 будет равно к и данное условие не зависит от величины т - числа ингибиторных дуг. С другой стороны, условия срабатывания перехода 5, реализованные для группового места, свидетельствуют о том, что переход сработает, если, по крайней мере, в одном из мест групповой позиции не будет фишки. Одним из простых вариантов реализации перехода сети с переходом 5 является сеть с групповой позицией, каждое место которой связано с отдельным независимым переходом. Подобное преобразование приведено на рис. 1.
Таким образом, мы вправе утверждать, что переход и, связанный с местом 1 к обычными и т ингибиторными дугами, может быть представлен с помощью групповой позиции из т-1 переходов, последователи которых совпадают с последователями перехода и. Причем первый переход связан с местами 11 1=1,2,., к обычными дугами и с позициями 1к+1 - ингибиторной дугой. Каждый из остальных т-2 переходов соединен с единственной дугой с местами 11 1=к+2, к+3,., п.
Правила срабатывания перехода и можно описать следующим образом:
5(а) = Р(|| /|| > 1),
5 (в) = Д||/|| = 0) = 5(0),
(1)
(2)
Наибольший интерес представляет переход, связанный с некоторым местом 1 с помощью к обычных дуг и единственной ингибиторной дуги; условием срабатывания перехода является наличие в месте 1 ровно к фишек, что обеспечивает более строгое соответствие программным конструкциям.
Рис.1. Срабатывание перехода ^
Для сокращения записи предлагается в СБ-сетях помечать разметку обычных и ингибиторных дуг. Допускается комплексная разметка дуги в виде к+т1, где I -символ ингибиторной дуги.
Классическая сеть Петри является абсолютно недетерминированным процессом, поскольку каждое из возможных срабатываний переходов срабатывает в случайный момент времени. В то же время в любых программах, в том числе, реализуемых в распределенных вычислительных системах, присутствуют как детерминированные, так и недетерминированные процессы. Как правило, детерминированные процессы выполняются последовательно. Можно выделить множество позиций, которые мы в дальнейшем будем называть управляющими, для которых фишка может находиться в одной и только в одной позиции. Множество таких позиций можно заменить с помощью единственной позиции, которая содержит п фишек, где п -мощность множества управляющих позиций. Для идентификации того или ин^го "| места управляющей позиции используются переходы, связанные не с отдельн^^ местом, а с групповой позицией, при этом дуги, активирующие переход, помечаются 1+!, то есть 1 - обычными дугами и одной I - ингибиторной дугой. Подобная конструкция позволяет существенно сократить число позиций в сети Петри, сделать ее более читаемой и в большей степени соответствующей традиционным методам программирования параллельных и распределенных вычислений [5].
Следующим шагом в модернизации СБ-сетей является введение в сеть компонентов, меняющих разметку дуг. Каждой дуге СБ-сети может быть поставлено в соответствие место, количество фишек в котором определяет разметку дуги (число обычных или ингибиторных дуг). При срабатывании перехода количество фишек в местах, размечающих дуги, активирующих переход, остается неизменным. Графически соответствие места и разметки некоторой дуги обозначается с помощью
а-дуги, инцидентной вершине и обычной дуге [6]. Каждой дуге СБ-сети может быть поставлено в соответствие несколько а-дуг, в том числе и а-дуге может быть поставлена в соответствие другая а-дуга.
Проведенный анализ показал, что поскольку движение фишки в местах групповой позиции не определено (известно только, что в позиции используется одна и только одна фишка, то есть номер активного места групповой позиции может как увеличиваться, так и уменьшаться), целесообразно создать механизм, обеспечивающий, чтобы срабатывание некоторого перехода приводило к изменению числа фишек в месте, не связанном с этим переходом. Для того чтобы это стало возможным, в СБ-сеть введены ингибиторные дуги второго рода, которые позволяют уменьшить на единицу одну фишку в выходном месте инцидентному переходу, п ингибиторных дуг второго рода уменьшает число фишек в выходной позиции на п, разумеется, число фишек в позиции не может быть отрицательной величиной. Ингибиторные дуги второго рода неизвестны авторам, в работе [7] введены дуги сброса, выходящие из перехода в позиции, срабатывание перехода приводит к «уничтожению» всех фишек в инцидентных позициях. Несложно заметить, что ингибиторные дуги второго рода являются более тонким механизмом управления процессов в сети.
СБ-сеть позволяет значительно расширить функциональные возможности сетей Петри, благодаря простым способам реализации типовых программных конструкций.
Например, отношение X < N реализуется с помощью перехода, входная дуга которого имеет разметку №, т.е. переход смежен с N ингибиторными дугами. Отношение X = N реализуется при разметке дуги N + I (Ы обыкновенных дуг и одна ингибиторная дуга). Отношение X < N реализуется при разметке (Ы + 1)! Отношение X > N реализуется при разметке N (нет ингибиторных дуг). Реализация данных вариантов отношений с помощью СБ-сетей приведена на рис. 2.
-о
о
22
В(Р) = (X < Ы) а)
-О
О
22
-О
В(Р) = (X = Ы) б)
с2.
В(Р) = (X < Ы) в)
В(Р) = (X > Ы) г)
Рис. 2. Реализация вариантов отношений с помощью СЕ-сетей
Следует отметить, что места в СБ-сети подразделяются на управляющие, которые образуют множество непересекаемых подмножеств, причем в каждом из подмножества управляющих мест может находиться одна и только одна фишка, и на места данных, семантика которых соответствует семантике мест традиционных сетей Петри. Для активации переходов отношения необходимо, чтобы фишка находилась в управляющей позиции.
В качестве примера рассмотрим реализацию CF-сетью фрагмента программы: if k >= b then
e:=e+a*b+c*d
else
if k2=m
then
f:=f+d*a-e CF-сеть приведена на рис.3.
Рис.3. CF-сеть
Переходы Pi и Р2 активируются тогда и только тогда, когда имеется фишка в управляющей позиции у, которая соответствует значению счетчика команд, указывающего на выполнение соответствующей инструкции.
Переход Р1 срабатывает, если число фишек в позиции К будет больше или равно числу фишек в позиции В. Условие активации перехода Р2 - противоположное. Таким образом, может сработать только один из переходов. Переход Р1 соответствует ветке then условного оператора, а переход Р2 - ветке else условного оператора.
Если сработает переход Р1, то в позицию е будет добавлено количество фишек, которое определяет число фишек в позиции с (а-дуга), а также числом фишек
а, умноженным на число фишек b в позиции b (двукратная а-дуга). При этом срабатывание перехода не изменит число фишек в позициях а, b, c и d.
Срабатывание перехода Р2 создаст фишку в управляющей позиции 8, что делает возможной активацию перехода Р3. Дополнительным условием срабатывания перехода Р3 является наличие фишек в позиции m, равное квадрату числа фишек в позиции К (двойная а-дуга с общим источником). 5
Срабатывание перехода Р3 приведет к увеличению числа фишек в позиции f на величину d*a-e. Для операции вычитания в CF-сетях используется ингибиторная а-дуга.
Развитие формализма сетей Петри на основе CF-сетей позволит более адекватно и удобно для разработчиков представлять распределенные вычислительные системы со сложной структурой, в том числе иерархические, многоуровневые и мультиагентные вычислительные системы. CF-сети обеспечат более естественное взаимодействие с современными технологиями программирования, в том числе с конструкциями объектно-ориентированного программирования.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Гофф М.К. Сетевые распределенные вычисления: достижения и проблемы. М.: КУДИТС-ОБАР, 2005. 320 с.
2. Дейкстра Э. Дисциплина программирования. М.: Мир, 1978. 278 c.
3. Хоар Ч. Взаимодействующие последовательные процессы. - М.: Мир, 1989. - 264 с.
4. Котов В. Е. Сети Петри. М.: Наука, 1984. 160 с.
5. Дордопуло А.И., Омаров О.М. Представление операторов параллельного программирования в унифицированной параллельной форме // Известия ТРТУ. Таганрог: Изд-во ТРТУ, 2004. Т. 9. С. 70-74.
6. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Янус-К, 2003. 380 с.
7. Dufourd C, Finkel A., Schnoebel Ph. Reset nets between decidability and undecidability // Proc. 25th Int. Coll. Automata, Languages, and Programming (ICALP'98), Lecture Notes in Computer Science. 1998. Vol. 1443. P. 103-115.
8. Левин И.И., Омаров О.М. Расширение сетей Петри для моделирования распределенных вычислений // Информационные технологии моделирования и управления. Воронеж: Научная книга, 2005. № 4(22). С.555-562.
О.О. Варламов
О ВОЗМОЖНОСТИ СОЗДАНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ НА ОСНОВЕ GRID, СИСТЕМ АДАПТИВНОГО СИНТЕЗА ИВК, СЕРВИСНООРИЕНТИРОВАННОЙ АРХИТЕКТУРЫ И МИВАРНОГО ИНФОРМАЦИОННОГО ПРОСТРАНСТВА
В статье проведен анализ следующих технологий: Грид (Grid), сервисноориентированной архитектуры (СОА), самоорганизующихся программноаппаратных комплексов (СПАК), систем адаптивного синтеза (САС) информационно-вычислительных конфигураций (ИВК) и миварного (Многомерного Информационного ВАРьирующегося) пространства данных и правил. Показано, что на уровне аппаратных средств технологии САС ИВК являются развитием Грид-технологий, а на уровне программных средств миварное пространство значительно расширяет возможности СОА. Совместное использование этих четырех технологий позволит проводить распределенную и параллельную обработку, осуществлять гибкую и надежную защиту данных и реализовать технологии создания самообучающихся СПАК. В перспективе они позволят создать интеллектуальные автоматизированные системы обработки информации (АСОИ) и системы искусственного интеллекта.
В настоящее время в научной среде имеют место различные подходы к решению важной научной проблемы создания интеллектуальных эволюционных СПАК и АСОИ путем объединения существующего оборудования и интеграции программного обеспечения. Отметим, что необходимым шагом к построению систем искусственного интеллекта является создание интеллектуальных самоорганизующихся эволюционных АСОИ. Для создания таких АСОИ необходимо наделить их способностью к адаптации в целях наиболее эффективного решения задач в условиях их непрерывного функционирования, изменения потока входных данных и внешней среды [1]. Анализ задач, необходимых для создания интеллектуальных АСОИ, показал, что необходимо выделить два взаимозависимых уровня: 1) уровень аппаратных средств; 2) уровень программного обеспечения.
На первом уровне (аппаратных средств) необходимо создание эволюционных технических средств, способных к универсальному взаимодействию с другими