Научная статья на тему 'Разработка и применение распределенных пакетов прикладных программ'

Разработка и применение распределенных пакетов прикладных программ Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Опарин Г. А., Феоктистов А. Г., Сидоров И. А.

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

Текст научной работы на тему «Разработка и применение распределенных пакетов прикладных программ»

УДК 681.3.06+519.68

РАЗРАБОТКА И ПРИМЕНЕНИЕ РАСПРЕДЕЛЕННЫХ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ

Г.А. Опарин, д.т.н..; И.А. Сидоров, к.т.н..; А.Г. Феоктистов, к.т.н.

(Институт динамики систем и теории управления Сибирского отделения РАН, г. Иркутск,

oparir@icc.ru, ivan.sidorov@icc.ru, agf@icc.ru)

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

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

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

В данной работе рассматривается инструментальный комплекс (ИК) DISCOMP, обеспечивающий автоматизацию разработки и применения распределенных пакетов прикладных программ (РППП) - специализированных систем параллельного модульного программирования. Пакеты данного вида представляют собой сложные программные комплексы, ориентированные на максимальное использование потенциала высокопроизводительных вычислительных систем при решении поставленных задач.

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

Модули составляют функциональное наполнение РППП и представляют собой исполняемые в пакетном режиме программы, которые могут быть написаны на различных языках программирования (C, Fortran, Pascal и др.) и являться плат-формо-зависимыми. Модули размещаются в разных узлах ВС, причем в одном узле ВС может быть установлено несколько модулей. Допустимо

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

Удаленный запуск модулей, распределенный обмен данными между модулями через файлы и мониторинг узлов ВС реализуются средствами системной части РППП.

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

Известные системы организации распределенных вычислений (например, кластерная система Condor, программный комплекс BOINC, инструментарий X-COM, пакет Globus Toolkit и др.) позволяют, как правило, осуществить в распределенной ВС решение не связанных между собой задач, допускающих распараллеливание по данным, но не обладают в полной мере всеми необходимыми возможностями для разработки и реализации более сложных распределенных прикладных программных комплексов.

Описание предметной области РППП в ИК DISCOMP задается в виде структуры S=<Z, T, M,

Y>, где Z - множество параметров; T - множество допустимых типов параметров; M - множество модулей; Y - множество узлов ВС, в которых размещен тот или иной модуль из M. Множество T включает следующие типы параметров: тип file, используемый для описания параметров неопределенной структуры (блоков произвольного текста большого размера); тип filelist, предназначенный для поддержки распараллеливания по данным (параллельный список параметров типа file); тип fileconst, введенный с целью сокращения объемов передачи данных в ВС (значение параметра типа fileconst один раз передается узлу ВС и затем может неоднократно использоваться при запуске модулей, размещенных в данном узле).

Содержательно модуль п^еМ реализует возможность вычисления множества искомых (выходных) параметров модуля по множеству заданных (входных) параметров модуля. Поэлементная обработка параметра Zj типа filelist модулем mi выполняется следующим образом: k-й элемент параметра Zjk обрабатывается k-м экземпляром модуля mik.

Постановка содержательной задачи для структуры S задается пользователем пакета в процедурном виде и в общем случае формулируется следующим образом: «зная S, выполнить Q», где QczM представляет собой частично упорядоченную последовательность модулей из M. При установлении частичного порядка множество Q разбивается на n непустых подмножеств. Упорядочение подмножеств осуществляется в зависимости от того, модули какого подмножества должны быть запущены раньше. В рамках каждого n-го подмножества входящие в него модули могут выполняться независимо друг от друга в любой последовательности или параллельно.

Описания предметной области РППП и постановок задач в DISCOMP представляются в формате, разработанном на основе расширяемого метаязыка XML [2].

Схемой решения задачи (СРЗ) в ИК DISCOMP является модель крупноблочной программы, отражающей информационно-логическую структуру вычислений в терминах предметной области. СРЗ автоматически строится в параллельно-ярусной форме на основе информационного планирования [3] по постановке задачи из элементов множеств параметров Z; модулей M; событий E, возникающих в процессе выполнения СРЗ; множества операций F, предназначенных для управления процессом выполнения СРЗ; множества специальных операторов O={START, STOP, READ <список параметров>, WRITE <список параметров>, CALL <имя модуля>, FORK, JOIN, TERMINATE <список модулей>}. Интерпретация СРЗ представляет собой последовательно-параллельный вычислительный процесс выполнения ее операторов.

ИК DISCOMP реализован на основе архитектуры «клиент-сервер» (см. рисунок). Система управления ВС (серверная часть ИК DISCOMP) поддерживает взаимодействие с подсистемами хранения данных и доступа пользователей к пакету, а также обеспечивает централизованное управление узлами ВС. Серверная часть ИК DISCOMP включает системное ядро, менеджеров вычислительных процессов и ресурсов, диспетчера очереди задач, подсистему журнализации и исполнительную подсистему. Вычислительный клиент реализует процесс выполнения модуля в узле ВС и осуществляет следующие функции: организация соответствующей среды для работы модуля (создание временных директорий, файлов входных и выходных параметров модулей, задание значений переменных окружения, перенаправление ввода/вывода и т.д.); получение значений входных параметров модуля из управляющего узла; запуск модуля; контроль процесса его выполнения; отсылка значений выходных параметров в управляющий узел после завершения работы модуля. Система хранения данных используется для структурированного размещения описаний предметной области, постановок задач в формате XML и расчетных данных в виде файлов, а также для предоставления доступа к ним из различных подсистем ИК DISCOMP. Синхронизация процессов чтения/записи данных осуществляется посредством файловых блокировок. Средства доступа пользователей к РППП обеспечивают взаимодействие пользователя с пакетом, управление вычислительными процессами, ввод данных, получение результатов вычислений и пр. ИК DISCOMP предоставляет два способа взаимодействия пользователя с РППП: с помощью набора утилит командной строки и посредством интерактивного пользовательского web-интерфейса.

Связь распределенных компонентов ИК DISCOMP между собой реализована на основе специально разработанного протокола сетевого взаимодействия, поддерживающего обмен сообщениями, удаленный вызов процедур и передачу больших объемов бинарных данных. Протокол обеспечивает высокопроизводительный обмен данными между компонентами ИК за счет установления между ними непрерывного соединения по TCP-каналу, использования многопоточного режима работы серверной части ИК DISCOMP и минимизации объемов управляющих данных в теле передаваемого сообщения.

Эффективность решения задач в РППП обеспечивается следующими особенностями работы ИК DISCOMP: возможностью максимального использования разнородных ресурсов ВС; поддержкой высокопроизводительного взаимодействия между распределенными компонентами DISCOMP; гибкой диспетчеризацией очередями задач; наличием средств оптимизации объемов

Средства доступа пользователей к РППП

N (

Web-интерфейс Утилиты

командной строки

Система хранения данных

Описания предметных областей

Расчетные данные

_ У ' N

Система управления ВС

Протокол сетевого взаимодействия

Системное ядро

+ ♦

т ▼

Менеджер вычислительных процессов а ъ у

Транслятор

Интерпретатор гчер о задач

Подсистема сбора статистики S; ' е О

Подсистема создания контрольных точек

Менеджер вычислительных ресурсов

Информационная подсистема

Исполнительная подсистема

Монитор

-Ч-

Подсистема журнализации

Т.

Вычислительный клиент в узле 1

Т.

Вычислительный клиент в узле 2

1

Вычислительный клиент в узле N

Вычислительные клиенты разнородной ВС

Схема взаимодействия компонентов ИК DISCOMP

данных, передаваемых между модулями в процессе решения задач в ВС; возможностью динамического управления процессами решения задач.

Динамическое управление вычислительным процессом в ИК DISCOMP базируется на механизмах обработки событий, возникающих при выполнении СРЗ. Алгоритм процесса управления включает две основные фазы: 1) применение операций, предназначенных для обработки события и выбора нужного воздействия на процесс вычислений; 2) проверка корректности выбранного воздействия системными функциями РППП (контроль выполнения множества ограничений для интерпретатора СРЗ). Управляющие операции задаются разработчиком РППП при описании предметной области, а их вызовы реализуются в виде функций на языке JavaScript и включаются в постановку задачи. Динамическое управление вычислительным процессом позволяет сократить общее время решения задачи за счет устранения вычислительной избыточности на основе анализа текущих результатов счета в узлах ВС.

Рассмотренные в данной работе инструментальные средства для разработки и применения РППП прошли успешную проверку при решении ряда прикладных задач из разных предметных областей: исследование биоресурсов озера Байкал; моделирование логистических складских систем;

задачи оптимального управления летательным аппаратом; решение систем булевых уравнений. Так, использование ИК Б1БСОМР позволило реализовать технологию крупноблочного распараллеливания £АТ-задач в виде пакета Б-БАТ [4]. С помощью данного пакета был успешно выполнен распределенный криптоанализ генераторов Гиффор-да, суммирующего и порогового. Вычислительные эксперименты проводились в распределенной ВС, включающей 20 двухпроцессорных узлов (каждый процессор имеет по 4 ядра, всего 160 ядер).

В таблице приведены сравнительные результаты криптоанализа на одном ядре и в ВС с применением механизмов устранения вычислительной избыточности (реализованных в ИК ЫБСОМР) и без них.

SAT-задачи криптоанализа Время решения SAT-задачи

на одном вычислительном ядре в ВС (160 ядер) в ВС (160 ядер) с устранением вычислительной избыточности

Генератор Гиффорда 14-30 ч. 1-2 ч. 30-60 мин.

Суммирующий генератор 20 мин.-2 ч. 10-30 мин. 2-6 мин.

Пороговый генератор — 3 суток 30-120 мин. 6-10 мин.

Архитектура и принципы работы ИК Б1БС0МР, а также способы и средства его реализации обеспечивают широкий спектр функциональных возможностей данного комплекса для организации распределенных вычислений. Компоненты ИК О18С0МР являются кросс-платформенными и позволяют использовать весь потенциал доступных разнородных узлов ВС.

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

Литература

1. Тыугу Э.Х. Концептуальное программирование. М.: Наука, 1984. 256 с.

2. Феоктистов А.Г., Сидоров И.А. Языковые средства описания распределенных вычислений в инструментальном комплексе DISCOMP // Параллельные вычислительные технологии: тр. Междунар. науч. конф. СПб: Изд-во СПГПУ, 2008. С.488-493.

3. Технологические системы поддержки разработок искусственного интеллекта / Лавров С. [и др.] // Представление знаний в человеко-машинных и робототехнических системах: отчет Проблем. комис. многосторон. сотруднич. соцстран (Науч. вопр. вычислит. техн.). В 3-х т. М.: Изд-во ВЦ АН СССР, ВИНИТИ, 1984. С. 102-123.

4. Заикин О.С., Семенов А.А. Технология крупноблочного параллелизма в SAT-задачах // Проблемы управления. 2008. № 1. С. 43-50.

УДК 681.3:510.64:004.8

МОДЕЛИРОВАНИЕ ВЗАИМОДЕЙСТВИЯ РОБОТА С ВНЕШНЕЙ СРЕДОЙ НА ОСНОВЕ ПРОСТРАНСТВЕННЫХ ЛОГИК И РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ

(Работа выполнена при поддержке РФФИ, проекты № 07-01-00656 и № 08-01-00917)

А.П. Калуцкая; В.Б. Тарасов, к.т.н.

(Московский государственный технический университет им.. Н.Э. Баумана, к_а_р@уЪстай. ги, 1атазоу@гк9. Ът^и. ги)

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

Ключевые слова: автономный агент, среда, взаимодействие агента со средой, когнитивный робот, псевдофизические логики, обобщенные ограничения, пространственные логики, логики расстояний и направлений.

Проблема моделирования взаимодействия искусственных агентов с внешней средой является одной из центральных при создании и использовании агентно-ориентированных технологий в различных областях: от мобильных софтботов, перемещающихся в сети Интернет, до автономных роботов, функционирующих в экстремальных средах, или многоагентных комплексов, входящих в состав интеллектуальных производств. Искусственный агент представляет собой автономную, открытую систему, помещенную в некоторую среду, причем эта система обладает собственным поведением, удовлетворяющим некоторым экстремальным принципам [1]. Минимальный набор базовых характеристик агента, отличающих его от обычных объектов информатики и искусственного интеллекта, включает такие свойства, как активность, реактивность, автономность, общительность и целенаправленность.

В статье рассматриваются индивидуальные, физические, мобильные, автономные агенты.

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

На пути к когнитивным роботам

В работах [4, 5] описаны три поколения роботов: промышленные, очувствленные, интегральные. Роботы первого поколения работают в простом, строго фиксированном внешнем мире, соответственно, модель внешней среды у них отсутствует. Как следствие, управляющая программа является жесткой, и ее надо менять даже тогда, ко-

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