Научная статья на тему 'Функционально - управляющие сети для моделирования распределенных вычислений'

Функционально - управляющие сети для моделирования распределенных вычислений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
52
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФУНКЦИОНАЛЬНО УПРАВЛЯЮЩИЕ СЕТИ / РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Омаров О. М.

В статье рассмотрены вопросы применения CF-сетей для моделирования распределенных вычислительных систем со сложной структурой для обеспечения более естественного взаимодействия с современными технологиями программирования, в том числе, с конструкциями объектно-ориентированного программирования.

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

The article deals with the application of CF-nets for modeling of distributed computer systems with complex structure to enable a more natural interaction with modern technologies of programming, including, constructions of object-oriented programming.

Текст научной работы на тему «Функционально - управляющие сети для моделирования распределенных вычислений»

 54,5 65,0 17

55,6 68,5 18

56,1 70,8 19

56,2 72,1 20

55,4 66,5 21

56,9 71,1 22

57,5 74,0 23

57,7 75,7 24

54,5 64,9 25

55,6 68,5 26

56,0 70,7 27

56,2 72,1 28

Температура

Номер

Номер посадочного места

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

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

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

1. Меркухин Е.Н. Эффективность оптимального размещения тепловых источников в микроблочных конструкциях электронных аппаратов//Вестник ДГТУ. Технические науки. Выпуск № 3. - Махачкала, 1999. - С. 177 - 180.

2. Анализ конструкций РЭА по тепловым режимам.// Отчет о НИР/ВНТИЦентр; руководитель Абрамов Ю.С. N ГР 01820073918; Инв.К 028600423 64. - Махачкала ДПТИ, 1985.

УДК 681.3

ФУНКЦИОНАЛЬНО - УПРАВЛЯЮЩИЕ СЕТИ ДЛЯ МОДЕЛИРОВАНИЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ

Омаров О.М.

Генеральный директор ЗАО "ДАГИНКОМ", д.т.н., [email protected]

Аннотация: В статье рассмотрены вопросы применения CF-сетей для моделирования распределенных вычислительных систем со сложной структурой для обеспечения более естественного взаимодействия с современными технологиями программирования, в том числе, с конструкциями объектно-ориентированного программирования.

Ключевые слова: сети, моделирование, вычисления.

FUNCTIONAL - CONTROL NETWORK FOR SIMULATION OF DISTRIBUTED COMPUTING

Abstract: This article describes how to use CF-networks for modeling of distributed computing systems with a complex structure to provide more natural interaction and modern programming technologies, including designs with object-oriented programming.

Keywords: network simulation calculations.

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

Неслучайно ведущие специалисты в области вычислительной техники указывают в качестве конечной цели развития информационных технологий создание системы «вездесущих» вычислений, которая требует наличия информации и средств ее обработки в любом месте. Даже сейчас вычислительные мощности компьютерных сетей значительно превосходят по производительности самые мощные суперкомпьютеры. Однако для создания системы «вездесущих» вычислений необходимо решение целого ряда сложнейших проблем, прежде всего, в области программного обеспечения распределенных вычислительных ресурсов.

При создании распределенных вычислительных программ программист неизбежно сталкивается с рядом технических сложностей, к числу которых следует отнести: ненадежность сети, изменчивость топологии сети, согласование нескольких администраторов сети и минимизацию транспортных затрат. Главной проблемой, с которой неизбежно сталкиваются создатели программ для распределенных вычислительных систем, - это адекватная реализация в сети множества вычислительных процессов. Для обеспечения согласованной работы сотен, а иногда даже тысяч взаимосвязанных процессов необходимы средства моделирования, с одной стороны, достаточно простые, а, с другой стороны, адекватно представляющие события и процессы, происходящие в сети при реализации распределенных вычислений.

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

Одними из наиболее широко известных и распространенных форм представления задач являются представление задачи в виде взаимодействующих последовательных процессов [1] и в виде сети Петри (СП) [2]. Как правило, указанные формы используются отдельно: сети Петри отражают структуру описываемой системы и позволяют моделировать динамическое поведение системы и обнаруживать тупики и дедлоки, а представление задачи в виде взаимодействующих последовательных процессов позволяет наглядно описывать процессы управления и поведения системы на уровне составляющих систему процессов, благодаря разработанному математическому аппарату.

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

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

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

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

Как известно, в СП срабатывание некоторого перехода возможно тогда и только тогда, когда во всех местах инцидентных переходу имеются фишки. Если же переход соединен с входным местом а с помощью нескольких дуг, то для активирования данного перехода необходимо, чтобы число фишек в месте а было не меньше, чем число дуг, связывающих место с переходом [4]. Аналогично, если некоторый переход связан с местом Р n дугами, то при активизации перехода в месте Р появляется n дополнительных фишек.

Если некоторый переход а связан с местом t обычной дугой, то данный переход активируется, когда в месте t находится, по крайней мере, одна фишка. Если некоторый

переход Р связан с местом t ингибиторной дугой, то данный переход активируется, когда в месте t не содержится ни одной фишки.

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

Если для CF-сети некоторый переход 5 связан с местом t п ингибиторными дугами, то данный переход должен активироваться тогда, когда в месте t находится фишек меньше, чем п. Данное определение делает переход 5 обратным по условию срабатывания переходу у. Аналогично, как по условию срабатывания, переход а является противоположным по условию срабатывания переходу р.

Формально условие срабатывания вышеописанных переходов можно описать с помощью следующих формул:

5(а) = Р(|| *|| > 1)

5-(р) = Р(|| *|| = 0) = 5(а)

5(у) = Р(|| *Ц > п) , (1)

5(5) = Р(|| *|| < п) = 5(у)

где £(л) - условие срабатывания перехода /; || * || - число вершин в месте

Несложно заметить, что условие срабатывания перехода Р является частным случаем условием срабатывания перехода 5 при п=1. Аналогично условие срабатывания перехода а является частным случаем условия срабатывания перехода у.

Можно предположить, что некоторый переход /, связанный с входным местом t п дугами, и, соответственно, активируемый наличием в месте t п и более фишек, эквивалентен переходу, связанному с п мест: ..., tn>, которые образуют

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

Определенный интерес представляет переход в, который соединен с входным местом t как прямой, так и ингибиторной дугой. На первый взгляд, данный переход не может быть активирован ни при каком количестве фишек в позиции ^ так как необходимо выполнение условий таких, что фишки в позиции t как имеются, так и отсутствуют. Однако при преобразовании сети с переходом в в сеть с групповой позицией <1, становится понятным, что переход в срабатывает тогда и только тогда, когда в месте ^ есть фишка, а в месте ^ фишки нет.

В общем случае для срабатывания переходов CF-сети каждое место, связанное с переходом / п дугами, из которых k - обычных дуг и m - ингибиторных дуг, заменялось групповой позицией ..., каждое место которой Ъ связано с

переходом / единственной дугой, причем места Ъ 1=1,2,., k соединены с переходом / обычными дугами, а места Ъ i=k+1, k+2,..., п соединены с переходом / ингибиторными дугами. Если позиция t содержит N фишек, то они должны быть разделены между местами групповой позиции, начиная с первой. Таким образом, для того чтобы переход / сработал, нам необходимо, чтобы фишки находились в местах групповой позиции ^ ¡=1,2,..., k и отсутствовали фишки в местах ^ i=k+1, k+2,..., п.

Правила срабатывания перехода / можно описать следующим образом:

Б(ц) = Р( ¿11 е[к,п[)

(2)

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

Для сокращения записи предлагается в CF-сетях помечать разметку обычных и ингибиторных дуг. Допускается комплексная разметка дуги в виде k+mI, где I - символ ингибиторной дуги.

Классическая сеть Петри является абсолютно недетерминированным процессом, поскольку каждое из возможных срабатываний переходов срабатывает в случайный момент времени. В то же время, в любых программах, в том числе, реализуемых в распределенных вычислительных системах, присутствуют как детерминированные, так и недетерминированные процессы. Как правило, детерминированные процессы выполняются последовательно. Можно выделить множество позиций, которые мы в дальнейшем будем называть управляющими, для которых фишка может находиться в одной и только в одной позиции. Множество таких позиций можно заменить с помощью единственной позиции, которая содержит п фишек, где п - мощность множества управляющих позиций. Для идентификации того или иного места управляющей позиции используются переходы, связанные не с отдельным местом, а с групповой позицией, при этом дуги, активирующие переход, помечаются i+I, то есть i -обычными дугами и одной I - ингибиторной дугой. Подобная конструкция позволяет существенно сократить число позиций в сети Петри и сделать ее более читаемой и в большей степени соответствующей традиционным методам программирования параллельных и распределенных вычислений [3].

Следующим шагом в модернизации CF-сетей является введение в сеть компонент, меняющих разметку дуг. Каждой дуге CF-сети может быть поставлено в соответствие место, количество фишек в котором определяет разметку дуги (число обычных или ингибиторных дуг). При срабатывании перехода количество фишек в местах, размечающих дуги, активирующих переход, остается неизменным. Графически соответствие места и разметки некоторой дуги обозначается с помощью а-дуги инцидентной вершине и обычной дуге [3]. Каждой дуге CF-сети может быть поставлено в соответствие несколько а-дуг, в том числе, и а-дуге может быть поставлена в соответствие другая а-дуга.

Следует отметить, что если размеченная а-дугами обычная дуга соответствует операции сложения, то вторично размеченная а-дуга соответствует операции умножения.

На рис. 1 приведена CF-сеть, соответствующая вычислительной структуре

Срабатывание перехода е приводит к добавлению в позиции х числа фишек, равного числу фишек в позиции Ь, умноженных на число фишек в позиции с и число фишек в позиции d.

1^) Шеп x:=x+b*c+d

Рис.1.

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

На рис. 2 приведена CF-сеть, соответствующая структуре

if(e) then x:=x-b.

о—

Рис.2.

Для обычной дуги признак ингибиторности соответствует вычитанию, для а-дуги - операции деления (обратной операции умножения).

CF-сети позволяют сделать процесс моделирования распределенных вычислений более простым и наглядным. В качестве примера рассмотрим CF-сеть, реализующую протокол TCP, представленную на рис.3.

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

Рис.3.

Для моделирования протокола с помощью СП необходимо создать множество мест как для клиента, так и для сервера, каждое из которых будет ответствовать определенному состоянию (CONNECTION REQUEST, CONNECTION ACCEPED, REJECT и т.д.). В CF-сети данные множества мест могут быть заменены двумя групповыми местами, число фишек в которых взаимно однозначно определяет

с

состояние клиента (К) или сервера (С), так как фишка может находиться только в одном месте, характеризующем состояние клиента или сервера. Множество переходов, связанных с определенным местом, характеризующим состояние клиента или сервера, можно заменить четырьмя переходами: рп , Р^ , срабатывающими в четный момент

времени, и Р^ , Р2^ , срабатывающими в нечетный момент времени. При

срабатывании указанных переходов число фишек в позиции К или С увеличивается на единицу, то есть клиент или сервер переходит в новое состояние. Также имеются два перехода: Ррп , РС , срабатывание которых завершает взаимодействие клиента и сервера соответственно. Данные переходы активируются по дуге, выходящей из групповых мест К и С, при этом дугам поставлены в соответствие а-дуги инцидентные местам ЕК и ЕС. Когда количество фишек в позициях К(С) сравняется с числом фишек в позиции ЕК(ЕС), сработает переход, завершающий взаимодействие. Количество фишек в позициях ЕК и ЕС может быть изменено в процессе функционирования CF-сети. При срабатывании переходов и происходит появление сообщения от клиента МК

или от сервера МС соответственно. Переходы Р^ и Р^ не будут активированы, если

не будет фишки в местах МС и МК, что соответствует ожиданию сообщения от сервера или клиента. Срабатывание данных переходов приводит к появлению фишек в позициях АК и АС. Наличие фишек в данных местах необходимо для срабатывания переходов Р^п и Р2^ соответственно.

При необходимости создания переходов, активируемых конкретным состоянием клиента или сервера, достаточно поставить переход инцидентный групповому месту К или С с разметкой дуги, равной i+I, где i - номер состояния клиента (сервера).

Развитие формализма сетей Петри на основе CF-сетей позволит более адекватно и удобно представлять распределенные вычислительные системы со сложной структурой, в том числе, иерархические, многоуровневые и мультиагентные вычислительные системы. CF-сети обеспечат более естественное взаимодействие с современными технологиями программирования, в том числе, с конструкциями объектно-ориентированного программирования.

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

1. Хоар Ч. Взаимодействующие последовательные процессы. - М.: Мир, 1989. -

264 с.

2. Котов В. Е. Сети Петри. - М.: Наука, 1984. - 160 с.

4. Левин И.И. Анализ вычислительных процессов и структур на основе CF-сетей.-Махачкала: ДНЦ РАН. 2006.- 253с.

РАЗРЯДНО-ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА АССОЦИАТИВНЫХ СУММАТОРАХ Хачумов В.М.

Федеральное государственное бюджетное учреждение науки Институт системного анализа Российской академии наук

Аннотация: Ускорение вычисления элементарных функций, а также геометрических преобразований является актуальной задачей в бортовых

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