TOWARDS THE MESSAGE PASSING INTERFACE IMPLEMENTATION AS A CLOUD SERVICE IN AGENT-ORIENTED METACOMPUTING SYSTEMS


Cite item

Full Text

Abstract

In this paper we propose the models of the logic of managing global computer processes in computer networks with agent-oriented metacomputing cloud services based on the collective data transfers, allowing you to simplify the implementation of massively parallel applications in large-scale distributed systems. Offered for logical control of discrete processes to use the formalism of predicate asynchronous networks, allows abstract and structural synthesis of the functional architecture of agent-based metacomputer with the implementation of global and collective computing operations for a group of agents - the virtual nodes of metacomputer.

Full Text

Ведение Ведущие поставщики облачных сервисов -фирмы Amazon, Sun Microsystems, Microsoft, Google и другие предоставляют различные об лачные услуги: хранение данных, в том числе в распределенных хранилищах данных, аренду виртуальных серверов, предоставление вычислительных мощностей, хранение приложений, библиотек и связанных с ними конфигурационных параметров, выбор типа операционной системы, на которой предполагается выполнять приложения, предоставление доступа к высокопроизводительным компьютерам и системам через Internet. Известны также и другие разработчики приложений как сервисов - фирмы Microsoft Dynamics, Salesforce, Taleo, Workday, NetSuite, Oracle, SucsessFactors. С недавнего времени начали получать применение инфраструктуры и облачные сервисы, созданные упомянутыми фирмами, такие как Amazon Web Services - инфраструктура WebServices платформы в облаке и входящий в нее веб-сервис Amazon Elastic Compute Cloud, который предоставляет вычислительные мощности в облаке, Sun Cloud - сервис облачных высокопроизводительных вычислений, Windows Azure - новая серверная операционная система, предлагаемая в качестве платформы для создания «Инфокоммуникационные технологии» Том 11, № 4, 2013 в сети в контексте использования Self-optimizing блачных веб-приложений, известная ранее под названием Windows Cloud, Google App Engine - сервис хостинга сайтов и web-приложений на серверах Google. Организация метакомпьютеров в виде облачных сервисов отражает современную тенденцию к организации распределенных вычислений, при которой используемое программное обеспечение метакомпьютера (так же, как и облачное программное обеспечение, относящееся к классу middleware) и сами обрабатываемые данные хранятся на облачных серверах, а в распоряжении клиента имеется простой Web-интерфейс. Однако облачным технологиям присущи и некоторые недостатки, сдерживающие их промышленное и научное применение. Например, требуется постоянное соединение пользователя с Internet, трудоемко настраивание программного обеспечения, затребованного пользователем, под его собственные цели. Последние ограничения частично преодолимы путем интеграции облачных и агентно-ориентированных технологий. Например, концепция мобильных вычислений, поддерживаемая мигрирующими агентами, не требует постоянного соединения клиента с Internet. Часть работы агент может выполнить автономно и далее передать ее результаты после того момента времени, когда клиент снова подключится к сети. Специальные агенты могут осуществлять поиск, отбор и мониторинг данных. Агенты, осуществляющие обработку данных от различных источников, могут взаимодействовать друг с другом, клонироваться и перемещаться на различные серверы. Благодаря данным функциям агентов возможно преодолеть многие недостатки и развить функциональность облачных сервисов, используя потенциально неограниченные вычислительные ресурсы и ресурсы хранения. Благодаря агентно-ориентированным технологиям можно увеличить потенциальные возможности облачных технологий, такие как гибкая виртуализация ресурсов, высокая доступность, прозрачный доступ, простое администрирование, масштабирование вычислений и ресурсов хранения. Метакомпьютеры как облачные сервисы В промышленности, научных и учебных учреждениях при помощи облачных технологий можно сократить расходы на приобретение, использование и хранение программ и данных, которые могут находиться на удаленных сер верах. Состав основных облачных сервисов, рассмотренных в работе [1] и известных также по другим работам [2-4], представлен на рис. 1. Данные сервисы выполняют в основном не вычислительные функции, а функции хранения и обработки данных. Подобно тому, как из «облака» на подключенном к сети компьютере запускаются программы, может быть организован и запуск больших масштабируемых сетевых приложений, например метакомпьютер-ных сервисов, что не нашло пока отражения в литературе. Для метакомпьютеров обработки данных могут быть выбраны многие из показанных на рис. 1 сервисов: сервисы хранения данных (возможно, структурированных), сервисы распределенных систем управления базами данных (РСУБД), сервисы управления процессами и ресурсами, сервисы приложений и другие. Сервисы управления процессами и ресурсами позволяют организовать единое управление многими ресурсами, например, виртуальными узлами метакомпьютера, очередями заданий, метаприложениями. Предоставляемая в качестве сервиса платформа может обеспечить разработку разнообразных метакомпьютерных приложений, в том числе распределенных баз данных. Управление работой метакомпьютера возможно организовать с помощью сервисов администрирования и управления, позволяющих задавать параметры метакомпьютера как одного из облачных сервисов: его топологию, используемые ресурсы (данные, СУБД, вычислительные узлы и др.), уровень виртуализации и масштабирования задач. Интегрированное программное обеспечение (ПО) как сервис возможно использовать для организации интерфейсов пользователей с программным обеспечением метакомпьютеров. Технология облачных вычислений в настоящее время находится в стадии интенсивного развития и объединяет в своем составе многие из известных технологий, особенно технологии виртуализации. Ключевым понятием в облачных вычислениях является предоставление пользователям услуг как Internet-сервисов. Крупные Internet-сервисы, например Amazon, Google и другие, послужили основой развития идеи облачных вычислений. Возможность увеличения объемов хранимой информации, развитие технологий виртуализации привело к созданию сетевого программного обеспечения, обеспечивающего создание вир «Инфокоммуникационные технологии» Том 11, № 4, 2013 44 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. туальной вычислительной инфраструктуры с практически неограниченными возможностями масштабирования (при наращивании аппаратных ресурсов без значительного усложнения коммуникаций) и доступной из любой точки к Internet. Облачные сервисы (Cloud Computing Services) Хранение как сервис (Storage as a Service) СУБД и база данных как сервис (DBMS and database as Services) Информация как сервис (Information as a Service) Управление процессом как сервис (Process as a Service) Приложение как сервис (Application as a Service) Интегрированное ПО как сервис (Integration as a Service) Безопасность как сервис (Security as a Service) Администрирование и управление как сервис (ManagementfGovemance as a Service) Инфраструктура как сервис (Infrastructure as a Service) Сервисы: контента, коммуникаций и взаимодействий (Content, Communications and Collaborations as Services) Аппаратное обеспечение как сервис (Hardware as a Service) Рабочее место как сервис (Workplace as a Service) Рис. 1. Основные виды облачных сервисов Использование предикатных сетей для формального описания интерфейса передачи сообщений В [5-6] предложено для логического управления дискретными процессами использовать формализм асинхронных предикатных сетей (АПС). Проиллюстрировано применение асинхронных предикатных сетей для формализации основных процессов занятия и освобождения ресурсов в агентно-ориентированных метакомпьютерных системах. Далее в данной среде становится возможной организация метакомпьютерных вычислений. Следующими важными задачами являются организация управления коллективным обменом, коллективными вычислениями и синхронизация процессов. Примеры двух вариантов коллективных пересылок данных между агентами по принципу «каждый с каждым» представлены на рис. 2. Рассмотрим четыре предикатные сети MCS1, MCS2 , MCSз, MCS4, реализующие при соответствующей программной интерпретации управление коллективным обменом данными и управляющими сообщениями в метакомпьютер-ных системах. Приводимые формальные спецификации относятся к классу непосредственно интерпретируемых в том смысле, что при создании распределенных программ должны учитываться только эти спецификации. Системой продукций для асинхронной предикатной сети MCSj задается процесс логического управления в мета-компьютерной системе при передаче данных от агента A каждому из остальных агентов B, C, D, E с подтверждением приема и передачей результатов от агентов B, C, D, E агенту A. Данная система MCSl соответствует схеме обменов, представленной на рис. 2а. Введены предикаты Рх, x&{a,b,c,d,e}, характеризующие состояния процессов для мобильных агентов A, B, C, D, E соответственно. Например, если истинно высказывание Px(xt), то это означает, что агент хнаходится в состоянии х,-. Каждый агент X может находиться в одном из трех состояний: Xj (начальная фаза), х2 (рабочая фаза) и х3 (заключительная фаза). Для процесса, создаваемого агентом A, добавлено состояние а', соответствующее широковещательной передаче сообщений каждому их остальных агентов. Этим передачам соответствуют модификации предиката Р Агенты B, C, D, E затем отвечают отправкой ответных сообщений агенту A, отмечая эти события модификациями предиката Рг. Затем процессы агентов переходят в рабочие состояния, завершающиеся переходами каждого из них «Инфокоммуникационные технологии» Том 11, № 4, 2013 Вашкевич Н.П., Зинкин С. А., Карамышева Н.С. 45 в заключительные состояния и модификациями предиката Pq , что сопровождает факты отправки агентами B, C, D, E сообщений об окончании работы или квитанций агенту A. Выполнение одноименных процессов A, B, C, D, E сопровождается согласованными модификациями предикатов Рх , X є {а, Ъ, с, d, е} . Инициатором начальной широковещательной рассылки сообщений является агент A. Агенты- Агентыотправители Агенты- Агентыполучатели Рис. 2. Коллективные пересылки данных между агентами по принципу «каждый с каждым» через агента-посредника (а) и непосредственно между агентами (б) Выражения для процедур в правых частях продукций записаны в упрощенной форме. Например, выражение Ра (а3 ) => “Рв (в3 ) & Ра (а1 ) в полной форме имело бы следующий вид Ра Оз ) => (Ра (а3 ) <- false) (Ра (а\ ) <- true) » где &_> символ последовательной композиции операторов. Cистема продукций для асинхронной предикатной сети MCS1 имеет следующий вид: MCSl : - продукции для агента A: Tal '■ Ра (а1 )=>^Ра(а 1 ) & Ра (а2 ) & Ps (Sab) & Ps(sac)&Ps(sad)&ps(sae)-, Та, : Ра(а') & Pr (rba) & Pr (rca) & Pr (rda) & Pr (rea )^^Pa(a')&^Pr(rba)&^Pr (гса ) & -Ъ (rda )&^Рг(Геа)&Ра (а2 У, та2 '-ра(a2)&pq(qba)&Pq(qca)&Pq(qda)& Pq (Яеа)^ ра (а2 )& q (<Iba)& q (<1са)& -pq(<lda)&-pq(<îlea)&Pa(a ъ)> ТаЗ ■ Ра Оз ) => ^, О 3 ) & Ра («1 - продукции для агента B: Ты : рь (h) & Ps (sab) => -nPb (bj) & -nP, (sab) & Pb(b2)&Pr(rab); Tb2 :pb(b2) =>~^Pb(b2)&Pb(b,)&Pq(qbay Тьъ-.Рь(Ъъ)^^Рь(Ъъ)81Рь(ЬхУ - продукции для агента C: Тс\ : рс (Cl ) & P,(Sae ) =* ~^с (с1 ) & -Р>ас ) & Рс(с2)&.Рг(гсаУ, Тс2 ’■ Рс (С2 ) => ~Ре (С2 ) & Рс (С3 ) & Pq (Чса У ТсЗ '■ Рс (С3 ) рс (С3 ) ^ Рс (<Ч У - продукции для агента D: : Pd (dx ) & Д (sad ) => ^, (^ ) & ) & Pd(d2)&Pr(rday, Td2 '■ pd (d2pd (d3) &pq (4day Td3 '■ pd (d3 ) => (d3 )&Pd(d1); - продукции для агента E: Tel : pe(e,) & Д (O => -nPe (e, ) & -nP, (O & Ре(е2)&Рг(Геа); Te2 : pe (e2 ) ^ -чРе (e2 ) & Д (e3 ) & pq (Яеа ); ТеЪ : Pe (e3 ) ^> -Pe (e3 ) & Pe (e1 ). Начальное состояние сети задают следующие начальные факты (истинные атомарные константные формулы): РД^), РьФ^, Pcfa), Pd (й?! ) и Ре (ех ). Имена продукционных правил, «Инфокоммуникационные технологии» Том 11, № 4, 2013 46 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. описывающих процесс логического управления обменом данных в метакомпьютерной системе, записаны слева от ядер соответствующих продукций. Для индексации предметных констант, предикатных констант и продукционных правил здесь и далее использованы имена констант, содержащие одно- или двухбуквенные сочетания символов (например, ad, e), либо букву и цифры (например, d2, e3), имеющие мнемонический смысл и заменяемые в программной реализации продукционных правил числами, выбираемыми из натурального ряда. Здесь и далее все массивы - одномерные. Следующей системой продукций для асинхронной предикатной сети MCS2 описывается процесс обмена данными между агентами по принципу «каждый с каждым» (через агент A) с возвратом результатов агенту A. Данный метод управления обменом данных можно использовать также для синхронизации процессов в мета-компьютерных системах. Введены дополнительные состояния b0, с0, d0, е0 для агентов B, C, D, E и не используется состояние а' для агента A. Здесь агенты B, C, D, E синхронизируют свои действия, направляя сообщения агенту A, что сопровождается соответствующими модификациями предиката Рг. Ответные посылки сообщений от агента A сопровождаются модификациями предиката Ps. Завершив согласованные действия, агенты B, C, D, E сигнализируют об этом агенту A, модифицируя предикат Pq. Начальное состояние сети задают следующие начальные факты (истинные атомарные константные формулы): Ра(аі). Pbibо). РЛСо). Pd(d0) и РЄ(Є0)- Система продукций для асинхронной предикатной сети MCS2 имеет следующий вид: MCS2: - продукции для агента A: Та, :Ра {a, )&Pr (rba ) & Pr (rca ) & Pr (rda ) & Pr (Геа ) => ~^Pa (Û1 ) & Pa i°2 ) & ~&г (ГЪа ) & -Pr іГса ) & (Va) & -nPr (Va ) & ^ Кб) & ra2 : Pa (a2) & Pq (qba) & Pq (qca ) & Pq (qda) & Pq ІЧеа ) => («2 ) & Pa («3 ) & (?*« ) & (?ca ) & (?</«) & (tfea ); Ta3 ■ Pa (a3 ) => ~Pa ia3 ) & Pa («1 )î - продукции для агента B: Гй0 :Pb(è0) ^ ^Рй (è0 ) &Pb{b,)&Pr(rha); Tb\ :Pb(b1)&Ps(sab)^^Pb(b1)&Pb(b2)& -PsiSab); ры :Рй(02)^-Рь(62)&Рй(63)&Р?(9йа); Гйз :/*(ô3) => —i/*(b3)&Pb(b0); - продукции для агента C: Тс0 : Рс (с0 )=>-Рс(с0)& Рс (q ) & РДгш ) ; Гс1 : Рс (Cl )&Ps(sac)^^Pc(c1)&Pc(c2)& -PÀSac)’ Тс2 : Рс (С2 ) => -рс (с2 ) & Рс (с3 ) & Pq (qca ); Тс3 : Рс (с3 )=>-Рс(с3)&Рс (с0); - продукции для агента D: Pd0 : Prf (<^о ) => —Prf (^о )&Pd(d1)&Pr (rda ) ; Td,:Pd {d,) &PS {sad)^^Pdid,) & Pd id2) & Td2:Pd (d2 ) => id2 )&Pd id3 ) &Pqiqda); Pd3 • Pd (ds ) => ~Pd id3 )&Pd id0 ); - продукции для агента E: Te0 Г Pe (Є0 ) => ~Pe (e0 ) & Рє (el )&Рг(Геа)> Te, : Pe {e, )&PS {sae ) —Pe (ej ) & Pe (e2 ) & CvJ; Г.2 '■ Pe(e2) => —Ре(е2) & Ре(Єз) & РдіЧеаУ’ ТеЗ '■ Ре ІЄ3 )^>^Ре(Єз)& Ре ІЄ0 )• Следующей системой продукций для асинхронной предикатной сети MCS3 задается процесс логического управления передачей данных от агента А по конвейеру последовательно остальным агентам B, C, D, E с возвратом результатов последовательно так же по конвейеру от агентов E, D, C, B агенту A. Введены предикаты Рх, xe{a,b,c,d,e} , характеризующие состояния одноименных процессов для мобильных агентов A, B, C, D, E соответственно. Истинность высказывания рх {х, ) означает, что агент x находится в состоянии x,. Каждый процесс, реализуемый агентом x, может находиться в одном из трех состояний: х, (начальная фаза), х2 (рабочая фаза) и х3 (заключительная фаза). Посредством предиката Ps организуется конвейерная связь между процессами в направлении от агента A последовательно к остальным агентам B, C, D и E. Обратная конвейерная связь организована посредством предиката Рг. Такая организация удобна для реализации конвейерного обмена данными при выполнении глобальных вычислительных операций в метакомпьютерах. Начальное состояние сети задают следующие начальные факты (истинные атомарные константные формулы): «Инфокоммуникационные технологии» Том 11, № 4, 2013 Вашкевич Н.П., Зинкин С. А., Карамышева Н.С. 47 Р>і), ВД), Рс(Сі), ЗД) и Реф3). Система продукционных выражений для асинхронной предикатной сети MCS3 имеет следующий вид: MCS3 : - продукции для агента A: Tal '• Ра («1 ) => “Рв (в 1 ) & Ра («2)&PASabY> та2 ■ рг (гЬа) & ра (а2) => -тРг (гйа) & ~^Ра (а2) & Ра(азУ ТаЪ : («3 ) => -^в (в3 ) & Ра (öl ); - продукции для агента B: Гм : Р, (О & Рь (й, ) => (saé) & (й, ) & Pb(b2)&—Ps(sbc)', ТЬ2 : Рг (гсЬ ) & Р* (й2 ) => -пРг (гЛ ) & ^Р6(й2)&Рй(й3)&РДгйа); Тьз ’■ РЬ Ф3 ) => —Рь (й3 )&РЬ (й3 ); - продукции для агента C: ТсХ : Ps (5ЙС) & Рс (Cl) => -J>s (5éc) & -Л>с (Cl) & Рс(с2)&^фыУ Тс2 ■ Рг Ы & Рс (С2 ) => (Gc) & ^Рс(с2)&Рс(с3)&Рг(гЛ); ГсЗ : Рс (С3 )=>^Рс(С3)& Рс (g ); - продукции для агента D: Гд:Р,(0&ад)=>^(0& ^(^)&Р,(г/2)&^(5,£); Td2-.Pr{red)&Pd{d2)^^Prired)& ~^Pd(d2)&Pd(d3)&Pr(rdcy, Td3 : Pd (d3 ) => —(c?3 )&Pd (d3 ); - продукции для агента E: Tel:Ps(sde)&Pe(e1)^^ps(sde)& ^Pê(e,)&Pe(e2); Pe2 : Pe O2 )=>-PÊ(e2)&Pe Оз ) & Pr (r^ ) ; Pe3 : Pe (е3 )^>^Ре(Єз)& Pe (el )• Системой продукций для асинхронной предикатной сети MCS4 задается процесс логического управления обменом данных от каждого агента каждому, причем здесь при обмене не выделяется главный агент. Данная система продукций соответствует схеме обменов, представленной на рис. 26. Каждый агент здесь может находиться в одном из четырех состояний: х0 (фаза широковещательной рассылки сообщений от каждого из агентов всем остальным агентам), х3 (фаза приема сообщений каждым из агентов от остальных агентов), х2 (рабочая фаза) и х3 (заключительная фаза). Введены предикаты Рх, xe{a,b,c,d,e}, характеризующие состояния одноименных процессов для мобильных агентов A, B, C, D, E соответственно. Система продукций для асинхронной предикатной сети MCS4 имеет следующий вид: MCS4: - продукции для агента A: Ра0 ' Ра («0 ) & » (ааЪ) & “P« (й«с) & Рй (aad ) & “Pfl (аае ) => “Ра (а0 ) & Ра (в1 ) & Ра (aab) & Ра (аас) & Ра (aad) & Ра(<*аеУ Та1:Раф1)&рь(ЬЬа)&рс(сса)& pd (dda)8c ре (ееа ) =У> ~пРа (ах ) & Р>2)&^Рй(й6а)&^Рс(0& -pd{dda)&.^Pe{eeay Та2 ■ Ра («2 ) => “P« («2 ) & Ра («3 У ТаЗ '■ Ра («3 ) => ^Ра К ) & Ра К); - продукции для агента B: Гй0 :Рьф0) & —Рь(ЬЬа) & —Рь(ЬЬс) & -Р6 )&^Pb(hbe)^^Pb (й0) & Рй (й, )&Рь(ЬЬа)&Рь(ЬЬс)& Ръ (йм ) & рьФьеУ ТЪ\ :Р*(й3) & Ра(ааЬ) &Рс(ссЬ) & pd (ddb)& Ре (ееЬ ) => ^Рй (й3 ) & Рй(й2)&^Р>ай)&^Рс(сс6)& “Pd (ddb)& -Ре (ееь ) > ТЬ2:РЬ(Ь2)^^РЬ(Ь2)&РЬ(Ь3); Тьз :Рь(Ь3)^^Рь(Ь3)&Рь(Ь0); - продукции для агента C: Тс0 :Рс(с0)&-Рс(сса)&-^с(сЛ)& ^Рс ) & ^Рс (cœ ) ^> ^Рс (с0 ) & Рс (Cl ) & Рс (сса ) & Рс (ссй ) & Рс (с* ) & Рс(СсеУ Tcl:Pc(Cl)&pa(aac)&Pb(bbc)& pd(ddc)&Pe(eec)^^pc(cl)& Рс(с2)&^Ра(аас)&^Р6(ййс)& ^pd(ddc)&^Pe(eecy тс2 : Рс (с2) => ^Рс (с2 ) & Рс (с3 ); Рсз : рс (сз ) => ^Рс (с3 ) & Рс (с0); - продукции для агента D: «Инфокоммуникационные технологии» Том 11, № 4, 2013 48 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. Тм '■ Pd (do ) & ~Pd (dda ) ^ ~Pd (ddb ) ^ ~Pd (ddc) & ~Pd (dde) ^ ~^Pd (d0)& Pd (d,)& Pd (dda) & Pd (ddb) & Pd (ddc) & Pd(dde)\ Tdl:Pd(d1)&Pa(aad)&Pb(bbd)& Pc (Ccd )&Pe(eed)^^Pd(d))& Pd (d2)& ~^Pa (aad) & (bbd) & (Ccd ) & (eed ); Pd2 • Pd (d, ) —^ Pd (d3 ) &Pd (do ) j - продукции для агента E: Te0 : Pe (e0 )&^Pe(eea)& ^Pe (eeb ) & ~Pe(eec)&'~Pe(eed)=>~Pe(e o)& PM)&Pe(eea)&Pe(eeb) & Pe(0& Ре(еыУ Te] :Pe(e])&PJaae)&Pb(bbe)& Pc(cce)&Pd(dde)^^Pe(e i)& Ре(е2)&^Ра(аае)&^РьФье)& -J>c(Cce)&^Pd(dde)\ Te2 ■ Pe (Є2 ) => (Є2 ) & Pe (Є3 ); теъ :pe(e3)=>^Pe(e3)&Pe(e0). Начальное состояние сети задают следующие начальные факты (истинные атомарные константные формулы): Ра(а0), iUèo)> ^с(со)> Pd(d0) и Ре(е0). Как и остальные асинхронные предикатные сети, данная сеть функционирует, модифицируя предикаты. Каждая модификация сопровождается изменением состояния мета-компьютерной системы и может сопровождаться передачей сообщений между агентами. О реализации интерфейса передачи сообщений в агентно-ориентированных метакомпьютерных системах Непосредственным приложением разработанных в предыдущем разделе сетей MGS',, MCS2 , MCS3, MCS4 является их использование в реализациях различного рода интерфейсов передачи сообщений, например типа спецификации MPI (Message Passing Interface). Спецификация MPI основана на модели передачи сообщений [7-10]. Данная спецификация (обновленная версия - MPI-2) представляет значительный интерес, поскольку она стала первым стандартом систем передачи сообщений, используемых в области параллельного программиро вания. Модель программирования MPI нередко называют моделью MPMD (Multiple Program -Multiple Data: множественный поток программ - множественный поток данных). Локальные и неструктурированные коммуникации организуются здесь с помощью двухточечных обменов, а при помощи коллективных обменов организуются глобальные операции. Спецификация MPI, однако, не использовалась в агентно-ориентированном программировании, поскольку здесь применяются другие механизмы реализации параллельной и распределенной обработки данных. В силу того, что спецификация MPI важна для организации мета-компьютерных и облачных вычислений, целесообразно рассмотреть особенности ее асинхронной реализации для агентно-ориентированных систем. Об актуальности решения данной задачи свидетельствуют сведения о реализации интерфейса MPI поверх системы Grid в работах [11-12] на базе других технологий. Известные схемы коллективных обменов и глобальных вычислительных операций [9] иллюстрируют рис. 3 и рис. 4 (вместо имен процессов проставлены имена агентов, реализующих данные процессы). Здесь A, B, C, D, E - имена агентов, представляющих логические узлы метакомпьютерной системы, а А0, А1, •••, А4> Вп> В] 9 В4> С0 j Cj, С4 j Dq > Z)j 5 • ••> D4, E0, E1, E4 - передаваемые данные. Рассмотренные в предыдущем подразделе спецификации логического управления глобальными вычислительными процессами в системах метакомпьютерного типа позволяют реализовать все схемы коллективных обменов и глобальных вычислительных операций, ранее примененных в интерфейсе MPI. В том числе возможно и выполнение широковещательных передач, при которых один из процессов передает данные всем процессам, обменов с барьерами, когда обмен сообщениями происходит после того, как синхронизирована работа нескольких процессов и операций приведения, при реализации которых происходит выполнение глобальных вычислительных операций. В данном разделе с учетом предикатных спецификаций предыдущего параграфа предлагается реализовывать коллективные передачи и глобальные вычислительные операции на основе модели согласования процессов через информационное пространство, а не на основе модели передачи сообщений. Подобный подход отличается лучшей согласованностью информационной и процедурной компонент модели представления «Инфокоммуникационные технологии» Том 11, № 4, 2013 Вашкевич Н.П., Зинкин С. А., Карамышева Н.С. 49 знаний, используемой непосредственно для создания управляющих программ. Системой продукций для асинхронной предикатной сети MCS, задается процесс логического управления в метакомпьютерной системе при передаче данных от агента A каждому из остальных агентов B, C, D, E с подтверждением приема и передачей результатов от агентов B, C, D, E агенту A. Очевидно, что все схемы выполнения коллективных операций, представленные на рис. 3, реализуемы на базе схемы согласования процессов MCS,. Для реализации последних двух коллективных allgather и alltoall обменов необходимо последовательно инициировать работу независимых сетей MCS1A, MCS,B, MCS,c , MCSlD, MCS1E, в которых главными являются агенты A,B, C, D, E соответственно. Данные 8> < Ао broadcast Ао Ао Ао Ао Ао А: Ао А, А2 Аз A4 А: Ао В: scatter В: Ai С: gather С: Аз D: D: Аз Е: Е: A4 А: Ао А: Ао Во Со Do Eo В: Во В' allgather ' Ао Во Со Do Eo С: Со Ао Во Со Do Eo D: Do D: Ао Во Со Do Eo Е: Ео Е: Ао Во Со Do Eo A: Ao Ai Аз Аз A4 А: Ао Во Со Do Eo B: Bo Bi Вз Вз В4 aNtoaJ^ В: Ai Bi Cl Di Ei C: Co Ci Сз Сз С4 С: Аз Вз Сз Do Ез D: Do Di Do Ds D4 D: Аз Вз Сз D3 Ез E: Eo Ei Ез Ез Е4 Е: A4 В4 С4 D4 Ез Рис. 3. Коллективные операции для группы агентов (диаграммы построены на основе функций MPI [9]) Системой продукций для асинхронной предикатной сети MCS2 описывается процесс обмена данными между агентами по принципу «каждый с каждым» (через агент A) с возвратом результатов (или квитанций) агенту A. Для реализации последних двух коллективных allgather и alltoall обменов необходимо инициировать работу одной сети MCS2. Системой продукций для асинхронной предикатной сети MCS3 задается процесс логического управления передачей данных от агента A по конвейеру последовательно остальным агентам B, C, D, E с возвратом результатов последовательно также по конвейеру от агентов E, D, C, B агенту A. Подобная сеть эффективно реализует логическое управление выполнением глобальных вычислительных операций, схемы выполнения которых представлены на рис. 4. Системой продукций для асинхронной предикатной сети MCS4 задается процесс логического управления обменом данных от каждого агента каждому, причем здесь при обмене не выделяется главный агент. Такая организация коллективного обмена данными особенно удобна при реализации операций allgather и alltoall. Развитие аппарата асинхронных предикатных сетей - асинхронные предикатно-функциональные сети В основу языка абстрактного описания узлов, или модулей, асинхронных предикатно-функциональных сетей (АПФС) положен язык многосортного исчисления предикатов первого порядка, расширенный правилами выборки и обновления кортежей информационного пространства, а также язык систем алгоритмических алгебр Глушко-ва [13 - 15]. Необходимость развития формализма сетей АПС до АПФС, например, связана с формализацией обработки данных в агентно-ориентированных метакомпьютерных системах. При определении АПС И АПФС используется понятие блока совместимых (непротиворечивых) обновлений с последовательным выполнением правил обновлений предикатов и функций. В формальной записи блоки ограничиваются фигурными скобками. При построении сетей АПФС на основе узлов, или модулей, нами будут использоваться обычные для параллельного и распределенного программирования бинарные операции последовательного, параллельного и конкурентного выполнения модулей. Бинарные темпоральные операции « ; », « , », « : », « || », « |c» предписывают различные способы выполнения модулей. Операция « ; » предписывает последовательное выполнение модулей, из которых второй модуль может зависеть от первого (в продукционных правилах данная операция обозначается составным символом ). Операция « , » предписывает выполнение независимых модулей: последовательное в про- «Инфокоммуникационные технологии» Том 11, № 4, 2013 50 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. Данные 2> < А: Ао Во Со Do Eo А: Ао*Аі*Аз*Аз*Аз Во*Ві*Вз*Вз*Вз Со*Сі*Сг*Сз*Сз Do *Di *Do *Ds *Di Eo*Ei 'Ез *Ез *Ез В: Ai Bi Cl Di Ei ^reduc^ g. 'С: Аз Вз Сз Do Ез С: D: Аз Вз Сз Ds Ез D: Е: Аз Вз Сз Оз Ез Е: A: Ao Во Со Do Eo А: Ао*Аі*Аг*Аз*Аз Во*Ві*Вз*Вз*Вз Со*Сі*Сз*Сз*С4 Do*Di*Di*D3*D3 Ео*Еі*Ез*Ез *E4 В: Ai Bi Cl Di Ei allreduce В: Ао*Аі *Аз*Аз*Аз Во*Ві*Вз*Вз*В4 Со*Сі*Сз*Сз*Сз Do*Di*D3*Ds*D3 Eo*Ei *Ез *Ез*Ез С: Ao Во Сз Do Ез ^С: Ао*Аі *Аз*Аз*Аз Во*Ві*Вз*Вз*В4 Со*Сі*Сз*Сз*Сз Do*Di*Do*D3*D4 Ео*Еі*Ез*Ез *Ез D: Аз Вз Сз Ds Ез D: Ао*Аі*Аг*Аз*Аз Во*Ві*Вз*Вз*Вз Со*Сі*Сз*Сз*Сз Do*Dl*Do*D3*D4 Eo*Ei *Ез *Ез*Ез E: Аз Вз Сз Dl Ез Е: Ао*Аі*Аг*Аз*Аз Во*Ві*Вг*Вз*В4 Со*Сі*Сз*Сз*Сз Do*Di*D3*Di*Dt Ео*Еі*Ег*Ез *Ез А: Ао Во Со Do Eo В: Аі Ві Cl Di Ei С: Аз Вз Сз Di Ei D: Аз Вз Сз Ds Ез Е: Аз Вз Сз Di Ез reduce-scatter В D E Ао*Аі*Аг*Аз*Аз Во*Ві*Вз*Вз*Вз Со*Сі*Сз*Сз*Сз Do*Di *Do *Ds *Di Eo *Ei *Ез *Ез *Ез А: Ао Во Со Do Eo A: Ao Во Со Do Eo В: At Ві Cl Di Ei scan В: Ao*Ai Во*Ві Со*Сі Do*Di Eo*Ei С: Аз Вз Сз Di Eo * С: Ао*Аі*Аз Во*Ві*Вг Со*Сі*Сг Do*Di*Di Ео*Еі*Ез D: Аз Вз Сз Ds Es D: Ао*Аі*Аг*Аз Во*Ві*Вг*Вз Со*Сі*Сз*Сз Do*Di*Di*D3 Ео*Еі*Ег*Ез Е: Аз Вз Сз Di Ез E: Ао*Аі*Аз*Аз*Аз Во*Ві*Вг*Вз*Вз Со*Сі*Сз*Сз*Сз Do *Di *Ds Юз *Di Ео*Еі*Ег "Ез щЕз Рис. 4. Глобальные вычислительные операции для группы агентов (диаграммы построены на основе функций MPI [9]) извольном порядке или параллельное (в продукционных правилах данная операция обозначается составным символом &= )• Операция « : » предписывает непараллельное выполнение модулей в произвольном порядке (в продукционных правилах данная операция обозначается составными символами &_ или ). Операция « || » предписывает модулям причинно-следственную связь по крайней мере через единственный предикат либо функцию; при программной реализации применение данной операции требует дальнейшей детализации описания через операции « ; », « , » « : ». В продукционных правилах вместо символа обновления функции или предиката <«—» может использоваться обычный символ присваивания « :=». Операция « |с » указывает на возможное конкурентное выполнение модулей, например использующих разделяемый ресурс; непосредственно при программировании данная операция не используется - ее применение требует дальнейшей детализации описания при помощи других операций, как и в случае операции « || ». Алгебраические свойства реализуемых операций описаны в работах [16-17]. Кроме того, некоторые алгебраические свойства операций очевидны - например, операции « , » « : » ком мутативны и ассоциативны, а операция « ; » некоммутативна и ассоциативна. В формульной записи имена модулей, сгруппированных в блоки, заключаются в фигурные скобки, а внутри блоков могут использоваться простые скобки для указания на последовательность выполнения операций, например: {т,, т2, тъ}, {т,, т2}, {(т,, т2 ), тъ}, {{т„т2),т3}. В случае когда блок содержит лишь один модуль, скобки можно опускать. В настоящей работе алгебра алгоритмов Глушкова используется в основном для записи обычных структурированных (дейкстровских) конструкций -«последовательность операторов», «ветвление», «цикл»; в принципе, здесь могла бы использоваться любая другая нотация, так же пригодная для записи структурированных программ. Все указанные выше операции мы также включаем в состав операций алгебры модулей, что облегчит формирование новых модулей сетей АПФС. Из алгебры операторов мы выбираем тернарную операцию а-дизъюнкцию и бинарную операцию а-итерацию как основы для формирования модулей АПФС (сети, при описании которых не «Инфокоммуникационные технологии» Том 11, № 4, 2013 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. 51 используется операция а-итерации, в работах [18-19] принято называть сетями абстрактных машин (СеАМ), а для сетей, при описании ко -торых используется данный оператор, выбрано название «расширенных» СеАМ, то есть РСе-АМ). Следуя [13-15], напомним правила выполнения данных операций. При выполнении операции а-дизъюнкции [ot] (W] vm2) при а = true выполняется модуль тх, a при а = false выполняется модуль т2. При реализации операции а-итерации [a]{m} модуль m выполняется циклически, пока a = false, а при a = true происходит выход из цикла (следует отличать итерационные фигурные скобки от блочных). В сетях СеАМ и РСеАМ вместо имен модулей тх, т2 и т в указанные выражения могут подставляться подформулы с символами любых из определенных выше операторов, например возможно построение следующих выражений для модулей: т6 = [«К Н> т2 > тъ} V {(т3, т4 ), т5}), Щ -[аі](([а2]{[аз](ті V/W2)})V {[a4](m3 vm4)}). Элементарный модуль содержит единственное правило обновления предиката или функции. Пустое обновление RB эквивалентно тождественному оператору E алгебры алгоритмов Глуш-кова, не выполняющему никаких действий по модификации информационного пространства. Неопределенное обновление Rn соответствует неопределенному оператору N. Продукционному программированию, применяемому в сетях АПС и АПФС, соответствует использование модулей СеАМ (модулей-продукций) следующего ограниченного вида m = [a](L vRE), что эквивалентно записи m:a=>G, где L - непустая последовательность элементарных или составных модулей. При определенных очевидных условиях данный модуль может выполняться так же, как и модуль РСеАМ, описываемый выражением [—icx] {Z} . Поскольку в общем случае не все составные модули непосредственно (без дополнительных преобразований или без введения дополнительных условий) допускают аналитическую запись в виде суперпозиций операций, при составлении сосредоточенных и распределенных программ рекомендуется использовать модули, допускающие аналитическое описание (то есть структурированные модули), а связи между ними организовывать посредством модификации и проверки значений функций и предикатов, составляющих информационное пространство. Такие связи называются причинно-следственными, или кау зальными. Подобный подход позволяет использовать при распределенном программировании модули различного вида - от простых модулей-продукций до более сложных структурированных модулей. Алгебра модулей сетей СеАМ, подобно системам алгоритмических алгебр, имеет систему образующих - элементарные модули и элементарные логические условия. Условиями называются замкнутые (не содержащие свободных вхождений предметных переменных) логические формулы с предикатными символами в качестве логических переменных. Множество используемых предикатных символов включает символы, используемые при формировании информационного пространства, а также символы стационарных, или немодифицируемых, предикатов сравнения. Используемые при сравнениях термы строятся по обычным в многоосновном исчислении предикатов первого порядка правилам (термами, или функциональными выражениями, называют слова, построенные из переменных, функциональных и специальных символов по определенным правилам). Среди элементарных логических условий важное значение имеют условия, формируемые на основе квантифицированных операторов выборки кортежей из отношений. Определенные сети СеАМ являются в общем случае асинхронными недетерминированными системами ввиду произвольного порядка выбора на исполнение и неопределенного времени работы модулей, модифицирующих общее информационное пространство для получения полезного результата. При проектировании систем и сетей хранения и обработки данных представляет значительный интерес построение выражений для модулей СеАМ как с использованием квантифицированных операторов выбора 3!, 3!!, Vh V!!, так и без них. Применение квантифицированных операторов, а также дополнительных «связывающих» предикатов может привести к существенному уменьшению необходимого числа применяемых модулей СеАМ и упрощению описывающих выражений. Учитывая, что формализмы сетей абстрактных машин мы предлагаем использовать в качестве непосредственно интерпретируемых спецификаций при создании нового программного обеспечения систем хранения и обработки данных, следует рассмотреть различные формы записи а-условий в продукционных выражениях «Инфокоммуникационные технологии» Том 11, № 4, 2013 52 Вашкевич Н.П., Зинкин С.А., Карамышева Н.С. АПФС. При выполнении оператора 3! из области истинности предиката, описываемого выражением справа, выбирается произвольный кортеж. При выполнении оператора 3!! выбирается единственный кортеж, находящийся в области истинности стоящего справа предиката. При выполнении оператора V выбираются все кортежи, составляющие область истинности соответствующего предиката. Оператор V! ! позволяет выбрать все кортежи из области истинности предиката в случае, если его область определения совпадает с его же областью истинности. Во всех случаях подразумевается, что предикат описывается выражением, стоящим справа от символа квантифицированного оператора. Описанные операторы не удаляют выбранные кортежи из областей истинности предикатов. Модификации предикатов и функций могут быть осуществлены далее при помощи описанных выше правил обновления, сгруппированных в блоки модулей абстрактных машин. Каждому из описанных квантифицированных операторов выборки кортежей из отношений, в случае его использования в условной части выражения для модуля, ставится в соответствие элементарное логическое условие, истинное в случае успешного выполнения оператора и ложное в противном случае. Данный факт в [18-19] отмечался подчеркиванием оператора снизу. Поскольку такой способ образования элементарного логического условия применяется только при формировании условного выражения, заключенного в полном выражении для модуля в квадратные скобки, символ подчеркивания в квадратных скобках можно опускать. Заключение 1. Рассмотрены области применения кон -цепции агентно-ориентированного продукционно-процедурного программирования, основанного на методах логического управления вычислительными процессами и ресурсами. Решены проблемы декомпозиции, взаимодействия и синхронизации в коллективе агентов на основе согласования процессов и объектов, что позволяет усовершенствовать практические принципы построения агентно-ориентированных систем. 2. Предложены модели логического управления глобальными вычислительными процессами на основе интерфейса передачи сообщений в вычислительных сетях с агентно-ориентированными облачными метакомпьютерными сервисами, основанные на коллективных пересылках дан ных, что позволяет упростить реализацию массового параллелизма в крупномасштабных прикладных распределенных системах. 3. Даны предложения по организации меж-агентных взаимодействий в сетевой среде при реализации систем управления распределенными реляционными базами данных, что повышает эффективность метакомпьютерной реализации процессов обработки структурированных данных. Кроме того, продемонстрирована возможность применения модели согласования процессов и агентов при организации обработки структурированных данных. Литература 1. Шалагинов А. В. CloudComputing - «облачные вычисления»
×

References

  1. Шалагинов А. В. CloudComputing - «облачные вычисления» // Технологии и средства связи. № 5, 2010.- С.15-17.
  2. Hewitt C. ORGs for scalable, robust, privacy-friendly client cloud computing // IEEE Internet Computing. Vol. 12, No. 5, 2005. - P. 96-99.
  3. Dave P. Introduction to Cloud Computing. http:// dotnetslackers.com/articles/sql/introduction-to-cloud-computing.aspx, свободный.
  4. Облачные вычисления. http://ru.wikipedia. org/ wiki /, свободный.
  5. Зинкина Н.С. Методы и модели логического управления дискретными процессами в распределенных вычислительных системах на основе концепции согласования // Известия ВУЗов. Поволжский регион. Технические науки. №1, 2011. - С. 35-47.
  6. Механов В.Б., Зинкин С.А., Карамышева Н.С. Формализация управления вычислительными процессами в распределенных системах хранения и обработки данных и знаний // Информационные технологии. №1, 2013. - С. 51-58.
  7. Таненбаум Э., ВанСтеен М. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. - 877 с.
  8. Хьюз К., Хьюз Т. Параллельное и распределенное программирование на C++. - М.: ИД «Вильямс», 2004. - 672 с.
  9. Snir M., Otto S., Huss-Lederman S., Walker D., J. Dongara D. MPI: The complete reference. The MIT Press. Cambridge, Massachusetts, 1996. -335 p.
  10. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. СПб.: БХВ-Петербург, 2002. - 400 с.
  11. Karonis N.T., Toonen B., Foster I. MPICH-G2: A Grid-enabled implementation of the Message Passing Interface // Journal of Parallel and Distributed Computing. Vol. 63, 2003. - P. 551-563.
  12. PACX-MPI: The Grid-computing library PACX-MPI extending MPI for computational Grid http://www.hlrs.de/organization/av/amt/research/ pacx-mpi/ , свободный.
  13. Глушков В.М., Цейтлин Г.Е., Ющенко Е.Л. Методы символьной мультиобработки. Киев: Наукова думка, 1980. - 252 с.
  14. Ющенко Е.Л., Цейтлин Г.Е., Грицай В.П., Терзян Т.К. Многоуровневое структурное проектирование программ. Теоретические основы, инструментарий. М.: Финансы и статистика, 1989. - 208 с.
  15. Капитонова Ю.В., Летичевский А.А. Математическая теория проектирования вычислительных систем. М.: Наука, 1988. - 296 с.
  16. Зинкин С.А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (базовый формализм и темпоральные операции // Изве стия ВУЗов. Поволжский регион. Технические науки. №1, 2007. - С. 3-12.
  17. Зинкин С.А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (реализация и свойства сценарных моделей) // Известия ВУЗов. Поволжский регион. Технические науки. №2, 2007. - С. 13-21.
  18. Зинкин С.А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (базовый формализм и его расширения) // Известия ВУЗов. Поволжский регион. Технические науки. №3, 2007. -С. 13-22.
  19. Зинкин С.А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (механизмы интерпретации и варианты использования) // Известия ВУЗов. Поволжский регион. Технические науки. №4, 2007. - С. 37-51.

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2013 Vashkevich N.P., Zinkin S.A., Karamysheva N.S.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies