любому доступному протоколу, также и по структуре передаваемой информации, от обычной системы «запрос-ответ», до передачи целых БД-сателитов.
Литература
1. Микляев И.А., Концепция разработки матричной универсальной базы данных с поддержкой древовидной структуры единицы информации и её универсального приложения // Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии. 2010. № 2., Воронеж, С. 101-108
2. Микляев И.А., Формализованное описание основной структуры представления данных матричной универсальной объектно-реляционной базы данных // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика. 2011. № 1., Астр., С. 61-68
УДК 004.042, 004.272.44
ФОРМАЛИЗАЦИЯ DATAFLOW-МОДЕЛИ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА1,2
Салибекян Сергей Михайлович, ст. преподаватель, Московский институт электроники и математики Национального исследовательского университета «Высшая школа экономики», Москва,
Панфилов Пётр Борисович, к.т.н., доцент, Министерство экономического развития, Москва,
panfilov@,miem .edu.ru
В статье представлены основные элементы разрабатываемого формального аппарата для описания и анализа вычислительных систем и приложений, создаваемых в dataflow-парадигме организации вычислительного процесса. Парадигма управления вычислениями потоком данных (dataflow-парадигма) более приспособлена к реализации параллельных вычислений, чем классическая controlflow-парадигма, предусматривающая управление вычислениями потоком инструкций. Кроме того, в dataflow-парадигме более естественно и просто реализуется объектный принцип построения приложений, т.к. на основе dataflow-модели вычислений появляется возможность создавать сложно структурированные описания объектов и моделировать их поведение. Тем не менее, до сих пор вычислительные системы и приложения на основе dataflow-модели вычислений не могут занять своего достойного места среди параллельных вычислительных систем и приложений, одной из причин чему является не только сложность в аппаратной реализации модели, но и недостаточная формальная проработка самой dataflow-модели вычислений. В данной работе предлагается вариант решения задачи формализации вычислительного процесса, построенного в dataflow-парадигме, при этом фокусом наших исследований является вариант dataflow-модели организации вычислений на основе предложенного авторами объектно-атрибутного (ОА) подхода к организации вычислительного процесса [1, 2].
Основой формального аппарата для описания вычислительного процесса в ОА-системе послужили теория конечных автоматов [3] и процессная сеть Кана [4]. Процессная сеть Кана была выбрана ввиду того, что она неплохо подходит к моделированию параллельных вычислительных систем (ВС) с управлением потоком данных (dataflow), хотя при данной модели и существуют определенные проблемы при описании совместной обработки данных несколькими вычислительными узлами в случае параллельной вычислительной архитектуры с общей оперативной памятью. Поэтому модель Кана пришлось дорабатывать. Переработки также потребовала и модель конечных автоматов, т.к. классический автомат не приспособлен к обработке сложно структурированных типов данных и тем более к работе с объектами. Также потребовалось разработать и формат данных для описания сложно структурированных информационных конструкций.
1 Исследование осуществлено в рамках программы фундаментальных исследований НИУ ВШЭ в 2013 году
2
Статья рекомендована к опубликованию в журнале "Информационные технологии и вычислительные системы"
87
Предлагаемая здесь формальная модель dataflow-системы ОА-архитектуры представляет собой совокупность элементов любой природы (счетные и несчетные множества, списки, вектора, функции, вектора функций и т.д.), сгруппированных во множества, называемые ОА-автоматами, которые, собственно, и реализуют обработку данных. Согласно ОА-подхода, как это представлено, например, в работе [1], в прикладной (программной или аппаратной) ОА-системе ОА-автомат является функциональным устройством (ФУ), которое осуществляет обработку информации. Все данные в формальной ОА-модели представляются в виде информационных пар (ИП). ИП - это двойка с={а, l}, где а е A (A - множество атрибутов), нагрузка l е L ={^uniluSuQ}, где L - множество данных в нагрузке, Ш - множество рациональных чисел, nil - обозначение пустой нагрузки, Q -множество адресов (номеров) глобальной памяти; S е Е* - множество цепочек символов, принадлежащих алфавиту Е. Все ИП можно разделить на два класса, а именно: информационные (служат для описания каких-либо объектов) и милликоманды (применяются для обмена информаций между ОА-автоматами).
Описанию нашей ОА-автоматно-сетевой модели dataflow-вычислительного процесса предпошлем ряд базовых определений и утверждений.
Дадим определение цепочки ИП (в ОА-ВС цепочка ИП является информационной капсулой [1]) в нашей ОА-автоматно-сетевой модели.
Определение 1. < является цепочкой ИП, если выполняются следующие условия:
1. Если ш - пустая цепочка ИП (не содержит ни одной ИП), то ш - цепочка ИП;
2. Если у - цепочка ИП и с - ИП, то ус (или уос) - цепочка ИП (где о - знак объединения цепочек ИП);
3. < - цепочка ИП тогда и только тогда, когда она является таковой в силу (1) и (2).
Примечание: В цепочку ИП могут входить одинаковые ИП.
Индексом ИП в цепочке является порядковый номер ИП в цепочке, например, <i, где i = 1,2,... |<|, а |<| - длина (количество ИП) цепочки <.
Для реализации обработки информационных конструкций введем следующее понятие эквивалентности цепочек.
Утверждение 1. Цепочки ИП <1 и <2 эквивалентны (т.е. <1=<2) в том случае, если выполняются следующие условия:
1. совпадают длины цепочек ИП <1 и <2, т.е. |<1| = |<2|
2. <1=<2=ш или <1,i=<2,i, i=1,2,...,|<1|.
Определим операции над цепочками ИП, чтобы иметь возможность их обработки.
Определение 2. Операция конкатенации (объединения): если а и Р - цепочки ИП, то цепочка ИП аР (аоР) называется конкатенацией (сцеплением, объединением) цепочек ИП а и р. аш=ша=а, где ш - пустая цепочка ИП.
Определение 3. Операция пересечения по правилу ИЛИ: если а и Р - цепочки ИП, то цепочка ИП у является пересечением цепочек ИП а и Р (а п Р) в том случае, если она содержит в себе ИП, удовлетворяющие следующему условию:
у = {ai е а: 3 bj е Р, такое что, ai=bj}, где i=1,2,..., |а|, j=1,2,..., |Р|.
Определение 4. Операция пересечения по правилу И: если а и Р - цепочки ИП, то цепочка ИП у является пересечением цепочек ИП а и Р (а and Р) в том случае, если она содержит в себе ИП, удовлетворяющие следующему условию:
если а п Р = а, то у = а, иначе у = ш.
Т.е. если в цепочке Р для каждой ИП из а найдется равная ей ИП, то у будет содержать цепочку а, иначе у будет содержать пустую цепочку ш.
Определение 5. Связка цепочек ИП (W) - это взаимосвязанная структура данных, состоящая из цепочек ИП. В ячейках связки W могут содержаться цепочки ИП W={w1,w2,.W|W|}, где |W| - длина цепочки цепочек символов, w1,.,W|W|. Для индексации конкретной ИП в цепочке цепочек ИП можно пользоваться двойным индексом: Wij - ИП, которая содержится в j-ой ИП i-ой цепочке ИП из W.
88
Связка цепочек ИП W будет использоваться в качестве общей памяти, в которой располагаются данные, к которым имеют доступ все вычислительные устройства.
Определение 6. Объектно-аттрибутный граф или ОА-граф представляет собой набор цепочек ИП (капсул), объединенных ссылками, расположенными в нагрузках ИП (рис. 1).
Цепочки ИП, расположенные в связке W, соединенные с помощью ссылок, помещенных в нагрузках ИП (где ссылка принадлежит множеству адресов глобальной памяти О), объединяются в ОА-граф, который можно использовать для описания сложно структурированных объектов, включая как данные, так и программы.
Для отображения элементов множества О на ИП, расположенные в общей памяти W, вводится функция FromMem, а для преобразования индексов ИП в W на множество О -функция ToMem.
Для удобства анализа ОА-графа составим связку цепочек ИП V, в которую будут входить все цепочки ИП, входящие в ОА-граф, и отныне будем считать, что ОА-граф - это связка таких цепочек ИП, что ссылки, расположенные в нагрузках ИП этих цепочек, указывают только на ИП, входящие в состав ОА-графа, т.е.:
V c={a,l} е V, l е Q : FromMem( l ) е V, где V - множество всех ИП в ОА-графе.
Благодаря этому введению появляется возможность сравнения ОА-графов.
Дадим еще одно определение, необходимое нам для осуществления сравнения ОА-графов.
Определение 7. Переиндексацией ОА-графа будем называть изменение последовательности цепочек ИП в V.
Также введем функцию индексации памяти IdMem, которая задает однозначное отображение элементов множества адресов ш; е О и ш; е Load(Vij), которые встречаются в ОА-графе, на множество индексов I (отображение является инъекцией). И теперь во время сравнения ИП, в том случае, когда у сравниваемых ИП нагрузки есть li, I2 е О, эти нагрузки будут равны в том случае, когда IdMem(l1)= IdMem(l2).
Утверждение 2. ОА-графы G1 и G2 эквивалентны, если можно подобрать такую переиндексацию G1 и такие функции индексации памяти IdMemi и IdMem2 для G1 и G2, соответственно, что выполняются следующие условия:
1. |G1|=|G2|;
2. V i е 1,2,...| G1|, G1;=G2;.
Утверждение 3. АО-графы G1 и G2 изоморфны (G1 » G2), если выполняются следующие условия:
1. |G1|=|G2|;
89
2. Можно сделать такую переиндексацию ОА-графа и подобрать такие функции индексации памяти IdMem1 для G1 и IdMem2 для G2, что V i е 1,2,.. ,| G1|, G1i=G2i.
Если G1 и G2 изоморфны, то это значит, что оба графа описывают один и тот же объект.
Утверждение 4. ОА-граф G1 частично изоморфен ОА-графу G2 (G1 »> G2), если можно подобрать такую переиндексацию G1 и такие функции индексации памяти для графов G^ G2, что G1in G2i= G1i, где i=1,...|G1|.
Частичная изоморфность означает, что объект G1 входит в состав объекта G2.
Теперь представим обобщенное описание работы ОА-автоматной сети как модели dataflow-вычислительного процесса.
Обработчиком информации, представленной в виде ИП, является ОА-автомат. В отличие от классического автомата, его состояние задается не множеством состояний, а контекстом K. Контекст ОА-автомата K - это набор сущностей любой природы (скалярные или векторные величины, счетные или непрерывные множества и т.д.). Если представить каждую сущность, входящую в контекст ОА-автомата, как измерение в многомерном пространстве, то состояние автомата будет представлять собой точку в этом пространстве. Изменение состояния автомата задается функцией изменения состояния автомата F:
K'=F(K),
где F - функция преобразования состояния K в новое состояние ОА-автомата K'.
Функцию F можно задать с помощью вектора предикатов переходов P и вектора функций перехода (F ). При этом размерности векторов должны совпадать, т.е. | P | = | F |. Аргументами предиката Pi и функции преобразования элемента контекста Fi, где i=1,2,...,
| P |, являются все параметры, входящие в контекст K. Fi представляет собой вектор функций, где каждая функция возвращает значение одного из параметров контекста
Fi=[Fii,Fi2,.,Fi|K|], Kj'=Fj(K), где j=1...|K|.
Отображение состояния контекста K на новое состояние K' осуществляется следующим образом: происходит перебор предикатов из вектора предикатов и, если Pi(K)=true, то K'=Fi(K) (т.е. Kj=Fij(K), где i=1,2,..,| F |, j=1,2,..., |K|) и перебор заканчивается. В том случае, когда ни один из предикатов Pi не принимает истинного значения, контекст ОА-автомата остается неизменным. Следует отметить, что вектора F и P входят в контекст ОА-автомата K и поэтому могут быть изменены вместе со всем контекстом. Функция F входит в контекст ОА-автомата и также может быть изменена после перехода ОА-автомата в новое состояние. Таким образом, алгоритм работы (поведение) автомата может изменяться непосредственно во время вычислительного процесса.
ОА-автоматы делятся на несколько типов, каждый из которых реализует определенный функционал и имеет свой индивидуальный контекст. Однако контекст ОА-автомата любого типа обязательно включает в себя входную и выходную очереди милликоманд. Так, функция изменения контекста F может быть активизирована только в том случае, когда во входной очереди милликоманд присутствует хотя бы одна милликоманда (после активации функции F милликоманда из головы очереди милликоманд удаляется). Во время изменения своего контекста ОА-автомат может помещать информацию в конец своей выходной очереди милликоманд и тем самым передавать данные другим ОА-автоматам, для которых эта очередь является входной. При этом одна очередь милликоманд может входить в контекст одного ОА-автомата в качестве выходной и в контекст другого ОА-автомата в качестве входной очереди. В контекст любого типа ОА-автомата также в обязательном порядке входит общая оперативная память W. ОА-автоматы, таким образом, получают возможность работы с данными, расположенными в ней. Передача милликоманд между ОА-автоматами может происходить через автомат-коммутатор типа «Шина» (Bus) или напрямую.
90
Определение 8. Совокупность взаимодействующих ОА-автоматов будем называть ОА-сетью.
Структура ОА-автоматной сети, описывающей параллельный dataflow-вычислительный процесс, приведена на рис. 2.
Определение 9. Выполнением S ОА-сети будем называть последовательность активаций функций изменения контекстов ОА-автоматов: S=Fi1,Fi2... .
Примечание: В один момент может быть активирована только одна функция.
Функция перехода Fi, где i есть номер ОА-автомата, считается разрешенной к активации в том случае, если во входной очереди ОА-автомата присутствует хотя бы одна милликоманда. Выполнение ОА-сети будем считать завершенным в том случае, когда входные очереди всех ОА-автоматов пусты.
Рис. 2 - Сеть ОА-автоматов
Применение предложенного ОА-сетевого формализма описания dataflow-вычислений можно продемонстрировать на примере параллельного приложения семантического разбора естественного языка (англ. Natural Language Processing, NLP).
В последнее время данное научное направление привлекает большое внимание научной общественности. Во-первых, семантический анализ востребован во многих областях: web-поиск, машинный перевод, филология и т.д. Во-вторых, в данной области остается много нерешенных проблем, включая полноценный семантический анализ естественного языка, для реализации которого необходимо разработать робастую методику семантического разбора языка. Существующие подходы, например, на основе теории конечных автоматов, теории фреймов или концепции «смысл-текст» [5-7], не могут похвастаться надежностью и универсальностью. ОА-сетевой подход лучше всего подходит для решения такой задачи и имеет ряд преимуществ, включая возможность реализации объектного принципа, эффективное распараллеливание вычислений, реализацию на распределенных ВС и др.
В состав ОА-сети для реализации вычислительного процесса семантического анализа языка должны входить ОА-автоматы (функциональные устройства) следующих типов:
• Lexica осуществляет обработку входной последовательности символов, выделение из нее лексем (лексический анализ), формирование ИП с описанием лексем для дальнейшей обработки.
• IcManager отвечает формирование и модификацию новых ИП, цепочек ИП и ОА-графов.
91
• List - это автомат для сравнения капсулы с капсулами, находящимися в списке капсул, и выполнения последовательности действий в зависимости от результата сравнения.
• Find - это автомат для сравнения капсулы с эталонной капсулой и выполнения последовательности действий в зависимости от результата сравнения.
Опишем более подробно автомат Find, которому передаются три цепочки, включая эталонную цепочку ИП, последовательность милликоманд для выполнения в случае совпадения сравниваемой цепочки с эталонной и последовательность милликоманд для реализации при несовпадении цепочки с эталоном.
Контекст автомата Find будет представлять собой следующую структуру:
AF={A, L, MkIn, MkOut, FuT,<s,<f},
где A и L - это множество атрибутов милликоманд и множество данных в нагрузке ИП; MkIn и MkOut - очереди входных и выходных милликоманд, соответственно;
F - функция изменения контекста;
T - эталонная капсула;
<s и <f - капсулы, передаваемые в выходную очередь милликоманд, в случаях, когда пересечение входной капсулы с эталонной ' ш (success) и = ш (failure), соответственно.
Для управления автоматом Find используются следующие атрибуты милликоманд:
Set - установить эталонную цепочку ИП;
SuccessProgSet и FailProgSet - установить цепочку ИП с программой, передаваемой в выходную очередь милликоманд в случае, если в результате сравнения с эталонной цепочкой ИП получилась непустая (success) и пустая цепочка ИП ш (failure), соответственно;
FindOr и FindAnd - сравнение по правилу ИЛИ и по правилу И, соответственно, эталонной цепочки ИП с цепочкой ИП из нагрузки.
Правила изменения контекста будут выглядеть следующим образом (справа от знака «"» находится предикат перехода, слева - функция изменения контекста ОА-автомата):
F:
Fi: MkIn=Set" T=Load(MkIn)
F2: MkIn= FailProgSet " <f =Load(MkIn)
F3: MkIn= SuccessProgSet " <s =Load(MkIn)
F4: MkIn= FindOr, Load(MkIn) n T ' ш " MkOut= MkOut u <f F5: MkIn= FindOr, Load(MkIn) n T = ш " MkOut= MkOut u <s F6: MkIn= FindAnd, Load(MkIn) and T ' ш " MkOut= MkOut u <f F7: MkIn= FindAnd, Load(MkIn) and T = ш " MkOut= MkOut u <s
Семантический анализ языка в ОА-сети происходит следующим образом. Распознаваемый текст поступает на ОА-автомат Lexica, который выделяет из исходного текста лексемы и оформляет их в виде ИП. Далее лексемы обрабатываются автоматами Find и List, а автомат IcManager формирует ОА-графы. Затем на основе запроса пользователя на анализируемом языке формируется ОА-граф запроса и производится определение частичной изоморфности ОА-графа запроса ОА-графу, описывающему смысл текста.
Предлагаемый формальный аппарат описания dataflow-вычислительного процесса ОА-архитектуры позволит в дальнейшем проводить математическое моделирование и анализ распределенных вычислительных систем и приложений, реализуемых в dataflow-парадигме. Модель выглядит более универсальной, чем такие часто применяемые модели параллельных ВС, как автоматные, на основе сетей Петри или процессных сетей Кана, т.к. позволяет моделировать параллельный вычислительный процесс, dataflow- и объектные системы.
Работы по формализации ОА-подхода к реализации распределенных вычислительных систем и приложений ведутся в рамках тематической НИР при финансовой поддержке Центра фундаментальных исследований НИУ ВШЭ.
Литература
92
1. Салибекян С.М., Панфилов П.Б. Объектно-атрибутная архитектура - новый подход к созданию объектных систем // Информационные технологии.—2012.—No. 2 (186).—С.8-13.
2. Салибекян С.М., Панфилов П.Б. Моделирование суперкомпьютерной вычислительной системы объектно-атрибутной архитектуры с управлением потоком данных // Информационные технологии и вычислительные системы.—2013.—No. 1.—С.3-10.
3. Брауэр В. М. Введение в теорию конечных автоматов: Радио и связь, 1987. — 392 с
4. Ключев А.О., Кустарев П.В., Ковязина Д.Р., Петров Е.В. Программное обеспечение
встроенных вычислительные систем. - СПб.: СПбГУ ИТМО, 2009. - 212 с.
http://window.edu.ru/resource/411/63411/files/itmo368.pdf
5. М. Минский. Фреймы для представления знаний. / Пер. с англ. О.Н. Гринбаума; под ред. Ф.М. Кулакова. М. Энергия. 1979.
6. Мельчук И.А. Опыт теории лингвистических моделей «СМЫСЛ <->ТЕКСТ» - М.: Школа «Языки русской литературы», 1999.
7. Нгуен Ба Нгок, А.Ф. Тузовский. Обзор подходов семантического поиска // Доклады томского государственного университета систем управления и радиоэлектроники. Томский государственный университет систем управления и радиоэлектроники. Томск. 2010. URL: http://www.tusur.ru/filearchive/reports-magazine/2010-2-2/234.pdf
УДК 004.4
ПРИНЦИПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ В ФОРМИРОВАНИИ АДАПТИРУЕМЫХ ИНФОРМАЦИОННЫХ СРЕД1,2
Жукова Светлана Александровна, к.т.н., докторант, Чайковский технологический институт (филиал) Ижевского государственного технического университета, Россия, Чайковский,
otdel [email protected]
Магафуров Вадим Вильданович, аспирант, Чайковский технологический институт (филиал) Ижевского государственного технического университета, Россия, Чайковский
Введение
Современные информационные системы вырастают и приобретают глобальный характер и охватывают широкий спектр функций. В связи с чем актуальным стал вопрос разработки информационных систем, обладающих свойством адаптируемости, т.е. способности к совершенствованию, модификации, устойчивыми к изменениям среды функционирования или функциональных требований. При этом система должна предусматривать добавление новых компонентов по мере их разработки минимальными усилиями. Применение принципов объектно-ориентированного проектирования в разработке таких систем позволяет достигнуть перечисленных свойств.
Рассмотрим механизмы объектно-ориентированного проектирования в разработке информационно-вычислительной среды управления ресурсами исследовательского пространства. Под исследовательским пространством (ИП) понимается информационновычислительная среда, обеспечивающая комплексную поддержку исследовательской деятельности. Основная цель построения исследовательского пространства - предоставление через Интернет сервисов в области научных исследований на базе информационнокоммуникационных технологий для представителей научных сообществ, образования и бизнеса. Вторая цель - консолидация и концентрация ресурсов исследовательской деятельности в единое научное информационно-вычислительное пространство, которое включает ресурсы и достижения в области науки и формируется совместно владельцами
1 Работа выполнялась в рамках ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 по
теме «Разработка модели автоматизированной системы интеграции открытых виртуальных лабораторных комплексов» государственного контракта номер 02.740.11. 0658 от 29.03.2010.
2 Лауреат номинации "Лучший доклад по UML-моделированию". Авторы доклада награждаются книгой Иванова Д.Ю. и
Новикова Ф.А. "Моделирование на UML. Теория, практика, видеокурс" (www.umlmanual.ru) с автографами авторов
93