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

кандидата технических наук
Сидоров, Иван Александрович
город
Иркутск
год
2009
специальность ВАК РФ
05.13.11
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Технология и инструментальные средства организации распределенных пакетов прикладных программ»

Автореферат диссертации по теме "Технология и инструментальные средства организации распределенных пакетов прикладных программ"

/Г

На правах рукописи

СИДОРОВ ИВАН АЛЕКСАНДРОВИЧ

Технология и инструментальные средства организации распределенных пакетов прикладных программ

05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Иркутск - 2009

□□3475711

003475711

Работа выполнена в Учреждении Российской академии наук Институте динамики систем и теории управления Сибирского отделения Российской академии наук (ИДСТУ СО РАН)

Научный руководитель: кандидат технических наук, доцент

Феоктистов Александр Геннадьевич

Официальные оппоненты: доктор технических наук, профессор

Легалов Александр Иванович

кандидат технических наук Федоров Роман Константинович

Ведущая организация:

Вычислительный центр ДВО РАН

(г. Хабаровск)

Зашита состоится 17 сентября 2009 г. в 15.30 часов на заседании диссертационного совета Д 003.021.01 при Институте динамики систем и теории управления СО РАН по адресу: 664033, г. Иркутск, ул. Лермонтова, 134.

С диссертацией можно ознакомиться в библиотеке ИДСТУ СО РАН.

Автореферат разослан 14 августа 2009 г.

Ученый секретарь диссертационного совета

д.ф.-м.н. О /I/. ^ , ~____А.А. Щеглова

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

В области распараллеливания вычислений имеется обширная библиография (см., например, работы В.Н. Абасова, С.М. Абрамова, О.Л. Бандман, В.В. Воеводина, Вл.В. Воеводина, И.Б. Задыхайло, В.Д. Корнеева, В.А. Крюкова, А.О. Лациса, А.И. Легалова, Г.А. Опарина, Т.П. Плакса, В.В. Топоркова, Д. Ивенса, Э. Гейтса, Н. Макдоналда, Д. Гелернтера, Г.Р. Эпдрюса, Ф.Г. Энслоу и др.). Качественные требования к реализации процесса параллельной обработки данных в прикладных программах (например, необходимость обеспечения эффективности, масштабируемости, переносимости и т.д.) породили большое многообразие систем для организации параллельных вычислений. Такие системы, как правило, требуют от специалиста-предметника достаточно высокого уровня программистской квалификации и навыков разработки параллельных программ. В процессе проектирования и разработки параллельных программ специалисту-предметнику приходится следовать тем или иным технологиям и моделям параллельного программирования, а также учитывать архитектуру и особенности используемой вычислительной системы.

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

' РВС рассматривается в традиционном понимании (см., например, работы В.Н. Коваленко, ДА. Корягниа и др.) как совокупность вычислительных узлов, объединенных коммуникационной сетью. Вычислительный узел представляет собой программно-аппаратный ресурс, включающий модуль оперативной памяти, один или несколько процессоров, жесткий диск, системное и прикладное программное обеспечение, поддерживающее функционирование узла в РВС. Один из вычислительных узлов назначается главным узлом и наделяется функциями управления заданиями пользователей и ресурсами РВС.

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

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

Основными задачами исследования являются:

1. Проведение анализа существующих методов и средств организации распределенных вычислений. Разработка технологии организации РППП в разнородных РВС.

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

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

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

Предметом исследования являются методы и инструментальные средства создания ППП в разнородных РВС.

Методы исследования. При решении поставленных задач использовались методы системного и прикладного программирования, характерные для разработки инструментальных программных комплексов; методы объектно-ориентированного и модульного (сборочного) программирования; технологии построения РВС и разработки \уеЬ-приложений.

Научная новизна. Разработан ИК ВВСОМР и предложена технология, ориентированные (в отличие от известных) на автоматизацию разработки и применения РППП в разнородных РВС. Функциональное наполнение таких РППП может включать модули, реализованные на различных языках программирования, нетиражируемые программные комплексы, а также унаследованное ПО2. ИК ШБСОМР обеспечивает возможность создания как автономных РППП, так и интеграцию данного инструментария с другими программными комплексами для автоматизации этапа проведения распределенных вычислений при решении исследовательских задач. В РППП впервые реализован подход к организации динамического управления распределенными процессами решения взаимосвязанных задач на основе механизмов обработки событий и анализа текущих расчетных данных.

Практическая значимость. Разработанное ПО позволяет сократить сроки и повысить эффективность разработки и применения РППП. Созданные программные средства зарегистрированы в Федеральной службе по интеллекту-

2 Под унаследованным ПО (legacy systems) понимаются программные системы или комплексы, не соответствующие современным требованиям, но до сих пор используемые ввиду значительных финансовых, организационных, технических и прочих затруднений, связанных с их заменой (см., например, работы Л.В. Массель и др.).

альной собственности, патентам и товарным знакам [15] и применяются для проведения экспериментальных расчетов по плановым научно-исследовательским работам в Институте динамики систем и теории управления (ИДСТУ) СО РАН, а также в учебном процессе в Институте математики, экономики и информатики Иркутского государственного университета.

Разработка и применение рассматриваемых в диссертации программных средств выполнялись в рамках проекта СО РАН № б «Планирование и оптимизация схем решения задач в распределенной мультиагентной вычислительной среде» программы фундаментальных исследований Президиума РАН № 21 «Разработка фундаментальных основ создания научной распределенной информационно-вычислительной среды на основе технологий GRID» (2004 г.); проекта СО РАН 3.2.6 «Интегрированные информационно-вычислительные и коммуникационные ресурсы: интеллектные методы организации, автоматизации разработки и применения» (2004-2006 гг.); проекта СО РАН «Разработка научных основ распределенной информационно-аналитической системы на основе ГИС и Веб-технологий для междисциплинарных исследований» междисциплинарной программы 4.5.2 (2007-2009 гг.); проекта РФФИ № 06-01-00340 «Разработка и исследование булевых моделей предметной области в задаче планирования при синтезе программ»; проекта РФФИ № 08-07-00163 «Технологии интеллектуального анализа данных и высокопроизводительных информационно-вычислительных ресурсов для поддержки междисциплинарных фундаментальных исследований в области геоэкологии и природопользования» (2008-2010 гг.); проекта № 3 «Концептуальные основы и программные средства разработки проблемно-ориентированных распределенных вычислительных сред» программы фундаментальных исследований Президиума РАН № 1 «Проблемы создания национальной научной распределенной информационно-вычислительной среды на основе развития GRID технологий и современных телекоммуникационных сетей» (2009-2011 гг.); проекта «Технология интеллектуальной обработки пространственно-распределенных данных и создания высокопроизводительных информационно-вычислительных ресурсов для поддержки междисциплинарных фундаментальных исследований» программы Отделения нанотехнологий и информационных технологий РАН (2009-2011 гг.).

Достоверность и эффективность нолучеппых в работе результатов подтверждается опытом успешной практической эксплуатации разработанного автором диссертации ИК DISCOMP в Суперкомпьютерном центре коллективного пользования ИДСТУ СО РАН при решении ряда ресурсоемких прикладных задач.

Апробация. Основные результаты работы были представлены па V и VIII Школах-семинарах молодых ученых «Математическое моделирование, управление и информационные технологии» (Иркутск, 2004 г., 2006 г.), на V Межрегиональной школе-семинаре «Распределенные и кластерные вычисления» (Красноярск, 2005 г.), на III Международной конференции «Параллельные вычисления и задачи управления (РАСО)» (Москва, 2006 г.), на XI и XII Байкальских всероссийских конференциях «Информационные и математические тех-

нологии в научных исследованиях» (Иркутск, 2006 г., 2007 г.), ira II Всероссийской конференции с международным участием «Инфокоммуникационные и вычислительные технологии и системы» (Улан-Удэ, 2006 г.), на Международных научных конференциях «Параллельные вычислительные технологии (PAVT)» (Челябинск, 2007 г.; Санкт-Петербург, 2008 г.), на конференции «Ля-пуновские чтепия» (Иркутск, 2007 г.), на VIII Международном симпозиуме «Интеллектуальные системы» (Нижний Новгород, 2008 г.), на Всероссийской конференции «Винеровские чтения» (Иркутск, 2009 г.), на Всероссийской конференции «Математическое моделирование и вычислительно-информационные технологии в междисциплинарных научных исследованиях» (Иркутск, 2009 г.), на семинарах ИДСТУ СО РАН.

Публикации. Результаты научных исследований Сидорова И.А. отражены в 15-ти научных работах [1-15], из которых статьи [1, 2] опубликованы в журналах, рекомендованных ВАК для опубликования научных результатов диссертации. В перечисленных публикациях все результаты, связанные с алгоритмизацией, программной реализацией и проведением вычислительных экспериментов в РВС, получены автором лично. Результаты по моделям и методам организации РППП получены совместно с Феоктистовым А.Г. и являются неделимыми. Из совместных работ с Васильевым С.Н., Опариным Г.А, Тятюшки-ным А.И., Семеновым A.A., Богдановой В.Г. и Заикиным О.С. в диссертацию включены только те результаты, которые принадлежат лично автору.

Структура работы. Диссертация состоит из введения, трех глав, заключения, библиографии из 91-го наименования, глоссария и 7 приложений. Общий объем работы - 140 страниц, из которых 110 страниц основного текста, включающего 13 рисунков и 4 таблицы.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

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

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

РППП ориентируются на класс задач, характеризующихся следующими свойствами:

- решение задачи требует проведения расчетов на ЭВМ с использованием больших объемов вычислительных ресурсов (процессорного времени, оперативной памяти, дискового пространства и др.);

- возможна декомпозиция общей сложной задачи на более простые (с вычислительной точки зрения) подзадачи;

- процесс решения общей задачи подразумевает распределенное решение набора ее взаимосвязанных подзадач;

- не предполагается интенсивного взаимодействия между параллельными процессами решения подзадач;

- задача допускает декомпозицию данных на блоки и независимую параллельную обработку этих блоков;

- решение задачи выполняется, как правило, по одной слабо меняющейся синхронной схеме.

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

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

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

Языковые средства. В качестве входного языка пакета используется расширяемый язык разметки XML. Требуются средства описания крупноблочного распределенного алгоритма решения задачи в РВС.

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

Системная часть. Требуется организация вычислений на основе удаленного запуска модулей и распределенного обмена данными. Необходим мониторинг узлов РВС.

Большинство инструментальных систем (например, OLYMPUS, ПРИЗ, САФРА, СПОРА и др.) разрабатывались, как правило, для создания традиционных ППП. Применение таких систем для построения РППП является затруднительным. Известные системы организации распределенных вычислений (например, кластерная система Condor, программный комплекс BOINC, инструментарий Х-СОМ и др.) позволяют осуществить в РВС решение не связанных между собой задач, допускающих распараллеливание по данным, но не обладают всеми необходимыми возможностями для реализации перечисленных выше особенностей распределенного пакета взаимосвязанных прикладных программ. В этой связи возникает необходимость разработки инструментария для организации специализированного вида прикладных программных комплексов - РППП.

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

Формализованное описание предметной области РППП относится к классу вычислительных моделей3 и представляет собой совокупность значимых параметров предметной области, а также модулей РППП, реализующих вычислительные операции с этими параметрами. В простейшем случае описание предметной области РППП4 можно определить в виде структуры S~<Z,T,M,Y >, где Z - множество параметров, Т - множество допустимых типов параметров, М - множество модулей, У - множество узлов РВС, в которых размещен тот или иной модуль из М. Связи между элементами множеств Z, Т, Ми У заданы отношениями ZTcZxT, INcZxM, OUTczZxM и MY с. MxY (в общем случае типа «многие-ко-многим»), Для каждого объекта структуры S (параметра, типа параметра, модуля и узла) определен набор его атрибутов. Множество Т включает следующие типы параметров: тип file, используемый для описания параметров неопределенной структуры (блоков произвольного текста большого размера); тип fdelist, предназначенный для поддержки распараллеливания по данным (параллельный список параметров типа _/?/<?); тип fileconst, введенный с целью сокращения объемов передачи данных в РВС (значение параметра типа fileconst один раз передается узлу РВС и затем может неоднократно использоваться при запуске модулей, размещенных в данном узле). Содержательно модуль rni б М реализует возможность вычисления множества параметров

OUT' C.Z по множеству параметров IN' с Z, а множества IN' и OUT' называются соответственно множествами входных и выходных параметров для модуля т,. Поэлементная обработка параметра z;. типа filelist модулем mi выполняется следующим образом: к-й элемент параметра zjt обрабатывается к-м экземпляром модуля ш:к. Описание предметной области РППП будем считать целостным, если выполняются следующие условия:

1. Условие наличия описания предметной области (Z 0) л (М Ф 0).

2. Условие наличия входных и выходных параметров модулей Vm, еМ (IN' Ф0)л(ОЦТ' Ф0).

3. Условие целостности отношений IN и OUT Vm(GW IN'\JOUT' cZ.

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

4 Опарин Г.А. Булево моделирование планирования действий в распределенных вычислительных системах /Г.А. Опарин, Л.П. Новопашин//Теория и системы управления. -2004. -№ 5. - С. 105-108. 8

4. Условие отсутствия в модулях транзитных параметров V/и, б М IN' П OUT' = 0.

5. Условие неизбыточности множества параметров \/Zj е Z Э/я, е М: г, б IN' И OUT'.

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

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

- множества параметров Z; множества модулей М;

- множества событий Е, возникающих в процессе выполнения СРЗ;

- множества функций F, предназначенных для управления процессом выполнения СРЗ;

- множества специальных операторов О = {START, STOP, READ <список параметров>, WRITE <список параметров>, CALL <имя модуля>, FORK, JOIN, TERMINATE <список модулей>}.

Информационно-логические связи между параметрами и модулями СРЗ представляются в виде структуры Я =< INh,Q,OUTh >, где INh и OUTh -множества входных и выходных параметров СРЗ, соответственно. Структура // изображается двудольным ориентированным информационным графом G/, включающим два непересекающихся множества вершин (рис. 1): вершин-параметров и вершин-модулей. Вершины-параметры, как и вершины-модули, являются попарно несмежными. Частично упорядоченную последовательность модулей Q удобно задавать в виде булевой матрицы размерности кхп, где к -число ярусов СРЗ, а л — число модулей в М Элемент матрицы qtJ = 1 означает,

что модуль т. сазмешен на i-ом ярусе СРЗ.

а) параметры zj, z} и zt mm file

б) параметры z/ и типа file, параметры Zi и Zj типа fihlist Рис. 1. Примеры графа G;

Построение СРЗ осуществляется в два этапа: 1) разработчик РППП формирует ярусы СРЗ, размещает на этих ярусах модули из М и определяет события из Е, при возникновении которых необходимо выполнить те или иные управляющие функции из F; 2) транслятор постановки задачи на основе информационно-логических связей между параметрами и модулями структуры S определяет множества входных и выходных параметров СРЗ и дополняет постановку задачи специальными операторами из О. СРЗ будем называть допустимой, если она удовлетворяет следующим условиям:

1. Условие процедурной постановки задачи

(Q * 0) л(lNk \JOUTH = 0).

2. Условие допустимости включения модуль в СРЗ

Vm( 6Q ■ qp, = I IN'\(INh U(Q U 0UT')) = 0 •

M M

3. Условие информационной независимости модулей, расположенных на одном и том же ярусе СРЗ

Vm,ee:9> = l (j OUTj) = 0.

0%=1)Л(У*0

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

START

READ zi

<;1),. CALL m,

СП

CALL m2

(;D

CALL m3

CD

WRITE Z4

OD 1 r

STOP

а) граф Gu соответствует б) граф Gu соответствует

графу Gi на рис. la графу Gi на рис. 16

Рис. 2. Примеры графа Gu

Каждая дуга v, графа Gu характеризуется парой величии (1;с), где /б{0,1} - это логический переключатель, определяющий возможность (1=1) или невозможность (/=0) перехода по дуге vJt а с - ограничитель числа переходов по дуге Vj. Запись (; с) для дуги v; означает безусловный переход по данной дуге.

Выполнение СРЗ в режиме интерпретации представляет собой процесс последовательно-параллельного выполнения ее операторов в соответствии с порядком их вхождения в граф Gu■ Передача данных (значений параметров) между ¡модулями выполняется в соответствии с графом G/. Выполнение СРЗ будем считать корректным, если оно завершается оператором STOP за конечное число шагов.

Описание предметной области РППП и постановок задач в ИК DISCOMP представляются в формате, разработанном на основе расширяемого метаязыка XML. Функциональные и системные требования к инструментальному комплексу DISCOMP, предназначенному для создания и применения РППП в разнородных РВС, сформулированы на основе анализа известных методов и средств организации распределенных вычислений.

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

В архитектуре ИК ОКСОМР можно выделить следующие составляющие (рис. 3): систему управления РВС (СУРВС), набор вычислительных клиентов РВС, систему хранения данных и средства доступа пользователей к РППП.

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

II

( Система убавления РВС ^ Менеджер вычислительных процессов ^ Система хванения данных

Описания предметных _областей__^ Расчетные данные

Диспетчер очереди задач

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

1

Вычислительные клиенты РВС | Вычислительный клиент | | Вычислительный клиент | ...

Рис. 3. Схема взаимодействия основных компонентов ИК

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

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

Вычислительный клиент предназначен для организации процесса выполнения модуля в узле РВС. Вычислительный клиент выполняет следующие функции:

- создание соответствующей среда выполнения модуля (создание временных директорий, файлов входных и выходных параметров модулей, задание значений переменных окружения, перенаправление ввода/вывода и т.д.);

- получение значений входных параметров модуля из управляющего узла;

- запуск модуля;

- контроль процесса его выполнения;

- отсылка значений выходных параметров в управляющий узел после завершения работы модуля.

Вычислительные клиенты РВС

Вычислительный клиент

Вычислительный клиент

Рис. 4. Система управления РВС Система храпения данных предназначена для структурированного хранения описаний предметной области и постановок задач в формате XML, а также размещения расчетных данных в виде файлов и предоставления доступа к ним из различных подсистем ИК DISCOMP. Синхронизация процессов чтения/записи данных осуществляется посредством файловых блокировок.

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

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

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

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

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

Дистрибутив ИК DISCOMP включает все необходимые средства для установки ИК в узлах с типовой конфигурацией5. Такая комплектность дистрибутива исключает необходимость установки какого-либо дополнительного ПО и обеспечивает быструю установку и настройку ИК (в том числе и пользователями, не владеющими навыками системного администрирования). Работоспособность ИК DISCOMP протестирована в РВС с узлами, функционирующими под управлением следующих ОС: MS Windows 2000, MS Windows XP, MS Windows Vista, Gentoo Linux 2008.0, ASP Linux 9.2, Fedora Core Linux 6.0, Mac OS X 10.4.

Разработка архитектуры и программная реализация ИК DISCOMP выполнены лично автором.

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

1. Проектирование: проведение структурного анатиза исследуемой предметной области с целью выявления ее основных объектов и их взаимосвязей; определение класса задач, решаемых в рамках предметной области; проведение декомпозиции сложных задач на более простые в вычислительном смысле подзадачи.

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

3. Создание системной части: установка компонентов ИК DISCOMP в узлах

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

РВС; конфигурирование РВС, определение политик безопасности и правил доступа, регистрация пользователей и т.д.

4. Описание предметной области: описание параметров и модулей предметной области; формирование процедурных постановок задач.

5. Размещение модулей: размещение модулей и их спецификаций в узлах РВС (выполняется в ручном либо автоматическом режимах).

6. Отладка и тестирование: выполнение серии тестов на различных наборах данных, выявление и исправление ошибок.

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

8. Сопровождение: включение в состав РППП новых модулей; формирование новых постановок задач; консультирование пользователей и т.д.

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

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

Таблица 1. Время решения SAT-задач

Описание КНФ в SAT-задаче Время решения на одном вычислительном ядре Время решения в РВС (160 ядер) Время решения в РВС (160 ядер) с устранением вычислительной избыточности

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

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

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

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

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

РППП [5] для расчета оптимального управления и построения множеств достижимости для летательных объектов. Основу функционального наполнения РППП составляет диалоговый пакет КОНУС7, реализованный для работы под управлением ОС DOS. Для пакета КОНУС была реализована программная оболочка, эмулирующая ввод данных в режиме диалога и обеспечивающая запуск пакета под управлением ОС Windows ХР. Остальные модули РППП реализованы для ОС ASP Linux. Использование ИК DISCOMP позволило автоматизировать процесс многовариантных расчетов для пакета КОНУС, а также объединить в одном РППП платформозависимые модули, реализованные для различных ОС.

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

Для организации простых многовариантных расчетов (одна программа и много вариантов данных) в ИК DISCOMP автором реализован специализированный РППП, функциональное наполнение которого включает один базовый модуль solver.exe, размещенный во всех узлах РВС. На вход этого модуля передается имя исполняемой программы пользователя, шаблон имен файлов с вариантами исходных данных (например, input%.txt) и шаблон имен файлов с результатами счета (например, outpul%.txt). Данный РППП успешно использован для решения задач моделирования складского комплекса, исследования филогенетических отношений сиговых рыб Байкала, а также сравнительно-геномного анализа диатомовой водоросли Synedra Acus.

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

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ ДИССЕРТАЦИИ

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

7 Тятюшкин А.И. Численное исследование свойств оптимального управления в одной задаче преследования /

А.И. Тятюпшш, Б.Е. Федунов//Теория и системы управления. -2005. -№3. - С. 104-113. в Опарин г.А. Распределенный решатель булевых уравнений большой размерности: методы и средства управления вычислениями / Г.А. Опарин, А.Г. Феоктистов, А.П. Новопашин, В.Г. Богданова // Проблемы управления и моделирования в сложных системах. Труды VII Международной конференции. - Самара: Самарский научный нсктр РАН, 2005. - С. 113-116. 16

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

3. Разработана архитектура и выполнена программная реализация инструментального комплекса DISCOMP, которые обеспечивают функционирование прикладного и системного ПО РППП на различных аппаратных платформах и под управлением разных ОС.

СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Сидоров И.А. Технология организации распределенных вычислений в инструментальном комплексе DISCOMP / Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Современные технологии. Системный анализ. Моделирование. -2009.-№2.-С. 175-180.

2. Васильев С.Н. Интеллектные технологии и инструментальные средства создания вычислительной инфраструктуры в сети Интернет / С.Н. Васильев, Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Вычислительные технологии. Специальный выпуск. - 2006. - Т. 11. - С. 34-44.

3. Сидоров И.А. Визуальный пользовательский интерфейс распределенных пакетов знаний / И.А. Сидоров, А.Г. Феоктистов // Математическое моделирование и информационные технологии: Материалы V школы-семинара молодых ученых. - Иркутск: ИДСТУ СО РАН, 2004. - С. 43-44.

4. Васильев С.Н. Интеллектуализация инструментальных средств организации распределенных систем модульного программирования / С.Н. Васильев, Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Оптимизация, управление, интеллект. - Иркутск: ИДСТУ СО РАН, 2005. -№ 10. - С. 255-265.

5. Сидоров И.А. Распределенная информационно-вычислительная среда модульного программирования / И.А. Сидоров, А.Г. Феоктистов, А.И. Тятюш-кин // Параллельные вычисления и задачи управления: Тр. 1П Междунар. конф. -М.: ИПУ РАН, 2006. - С. 505-521.

6. Сидоров И.А. Распределенная информационно-вычислительная среда модульного программирования / И.А. Сидоров, А.Г. Феоктистов Н Математическое моделирование и информационные технологии: Материалы VIII школы-семинара молодых ученых. - Иркутск: ИДСТУ СО РАН, 2006. - С. 161-164.

7. Феоктистов А.Г. Реализация программных комплексов типа SIMD на вычислительном кластере / А.Г. Феоктистов, И.А. Сидоров // Информационные и математические технологии в научных исследованиях: Тр. XI Байкальской междунар. конф.: в 2-х ч. - Иркутск: Изд-во ИСЭМ РАН, 2006. -Ч. 2.-С. 38-44.

8. Заикин О.С. Технология крупноблочного распараллеливания в криптоанализе некоторых генераторов двоичных последовательностей / О.С. Заикин,

И.А. Сидоров И Тр. Междунар. науч. конф. - Челябинск: ЮУрГУ, 2007. - Т. 1,-С. 158-169.

9. Заикин О.С. Параллельная технология решения SAT-задач с применением пакета прикладных программ D-SAT / О.С. Заикин, A.A. Семенов, И.А. Сидоров, А.Г. Феоктистов // Вестник ТГУ. Приложение. - 2007. - № 23. - С. 83-95.

10. Опарин Г.А. Интеллектуальный решатель задач в булевых ограничениях в распределенной вычислительной среде / Г.А. Опарин, В.Г. Богданова, И.А. Сидоров // Тр. XII Байкальской Всерос. конф.: в 2-х ч. - Иркутск: Изд-во ИСЭМСО РАН, 2007.-Ч. 2.-С. 12-19.

11. Сидоров И.А. Описание вычислительного процесса в инструментальном комплексе DISCOMP / И.А. Сидоров // Ляпуновские чтения: Материалы конф. - Иркутск: ИДСТУ СО РАН, 2007. - С. 31.

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

13. Опарин Г.А. Инструментальные средства управления выполнением абстрактной программы на вычислительном кластере / Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Интеллектуальные системы: Тр. ХП1 Междунар. симпоз. - Нижний Новгород: Изд-во НГТУ, 2008. - С. 213-215.

14. Опарин Г.А. Организация распределенных вычислений в инструментальном комплексе DISCOMP / Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Винеровские чтения: Материалы П Всерос. конф. - Иркутск: Изд-во Ир-ГТУ, 2009. - 4 с.

15. Сидоров И.А., Феоктистов А.Г. Инструментальный комплекс DISCOMP: Свидетельство об официальной регистрации программы для ЭВМ № 2008615180.- М.: Федеральная служба по интеллектуальной собственности, патентам и товарным знакам, 2008.

Редакционно-издательский отдел Института динамики систем и теории управления СО РАН 664033, Иркутск, Лермонтова, 134 Подписано к печати 11.08.2009 г. Формат бумаги 60x84 1/16, объем 1 п.л. Заказ №3. Тираж 100 экз.

Отпечатано в ИДСТУ СО РАН

Оглавление автор диссертации — кандидата технических наук Сидоров, Иван Александрович

Список принятых сокращений.

Введение.

Глава 1. Распределенные пакеты прикладных программ.

1.1. Основные характеристики РППП.

1.2. Описание предметной области, постановка и схема решения задачи

1.3. Интерпретация СРЗ.

1.4. Языковые средства описания предметной области РППП.

1.4.1. Параметры.

1.4.2. Модули.

1.4.3. Процедурная постановка задачи.

1.4.4. Управляющие конструкции.

1.5. Требования к инструментальным средствам.

1.6. Выводы.

Глава 2. Инструментальный комплекс DISCOMP.

2.1. Общая схема ИК DISCOMP.

2.2. Распределенный вычислительный процесс.

2.3. Вычислительный клиент.

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

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

2.4.2. Менеджер вычислительных процессов.

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

2.4.4. Диспетчер очереди задач.

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

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

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

2.6.1. XML-RPC-сервис.

2.6.2. Пользовательский web-интерфейс.

2.6.3. Утилиты командной строки.

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

2.8. Средства реализации.

2.9. Выводы.

Глава 3. Технология организации РППП и примеры ее применения.

3.1. Технологические этапы создания и применения РППП.

3.2. Использование вычислительного кластера для проведения многовариантных расчетов с использованием ИК DISCOMP.

3.2.1. Специализированный РППП для проведения многовариантных вычислительных экспериментов.

3.2.2. Установка ИК DISCOMP на вычислительном кластере.

3.3. Расчет оптимального управления и построения множеств достижимости управляемых систем.

3.3.1. Постановка задачи.

3.3.2. Методы и средства реализации РППП КОНУС.

3.3.3. Результаты вычислений.

3.4. Применение инструментального комплекса DISCOMP для решения SAT-задач в РВС.

3.4.1. Технология крупноблочного распараллеливания SAT-задач.

3.4.2. Функциональное наполнение РППП D-SAT.

3.4.3. Схема решения задачи.

3.4.4. Применение параметров-констант.

3.4.5. Вычислительные эксперименты.

3.5. Доступ к вычислительной среде ИК DISCOMP из внешних программных комплексов.

3.5.1. Концептуальная схема предметной области ИК РЕБУС.

3.5.2. Технические аспекты.

3.6. Выводы.

Введение 2009 год, диссертация по информатике, вычислительной технике и управлению, Сидоров, Иван Александрович

Актуальность темы. Появление и развитие ЭВМ привело к существенному ускорению темпов научно-технического прогресса и позволило во многих исследовательских задачах перейти от натурного эксперимента к вычислительному. Вычислительный эксперимент над математической моделью позволяет изучить поведение исследуемого объекта в различных условиях и модификациях, которые невозможно реализовать на практике [46]. Это обстоятельство характеризует вычислительный эксперимент как наиболее практически значимую технологию и методологию научных и прикладных исследований. Математические модели, описывающие реальные физические объекты и процессы, зачастую включают совокупность сложных систем дифференциальных, разностных и алгебраических уравнений, которые оформляются в виде множества взаимосвязанных процедур [41]. Программное обеспечение (ПО), предназначенное для автоматизации решения определенного класса задач, как правило, разрабатывается и оформляется в виде пакета прикладных программ (ППП), включающего различные реализации численного решения необходимых математических подзадач и средств системного обеспечения (программных и языковых) [17]. В качестве самостоятельного научного направления пакетная проблематика сложилась в 70-х годах прошлого столетия (см., например, [2, 19, 37, 47, 58]). • Первые ППП представляли собой простые тематические подборки программ для решения отдельных задач в той или иной прикладной области. Современный ППП является сложным программным комплексом, включающим: функциональное (прикладное) наполнение, развитые высокоуровневые языковые средства описания исследуемой предметной области и системное ПО, предназначенное для организации процесса решения исследовательской задачи на требуемой вычислительной установке.

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

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

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

Исторически сложилось четыре этапа развития ППП:

- ППП библиотечного типа;

- ППП с развитой системной частью;

- ППП, создаваемые на основе инструментальных систем;

- интеллектуальные ППП.

Каждый из этих типов ППП характеризуется определенными особенностями входящих в его состав компонентов — входных языков, функционального и системного наполнения. В основу такой классификации положен уровень автоматизации решения задач и тесно связанный с ним уровень необходимой программистской квалификации пользователя ППП: степень автоматизации решения задач повышается при переходе от ППП библиотечного типа к интеллектуальным ППП, а требуемый уровень необходимой программистской квалификации пользователя при таком движении снижается [39].

Функциональное наполнение ППП библиотечного типа, как правило, организуется в виде наборов (пакетов) независимых программ на некотором базовом языке программирования (отсюда впервые возник и сам термин пакет). Такие ППП иногда называют пакетами простой структуры. В качестве системного обеспечения пакетов первого поколения обычно использовались штатные компоненты программного обеспечения ЭВМ: компиляторы с алгоритмических языков, редакторы текстов, средства организации библиотек программ, архивные системы и т. д. Решение задачи с помощью 111111 данного типа сопряжено с ручным написанием программы на одном из языков программирования и требует высокой программистской квалификации.

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

Создание ППП с помощью специально разработанных для этой цели инструментальных систем позволяет ускорить и упростить процесс создания пакета, а также снизить стоимость разработки. Инструментальные системы обычно реализуются таким образом, что их можно использовать в качестве базы (готовых компонентов) для системного обеспечения разрабатываемых пакетов (поэтому их иногда называют инструментально базовыми системами). Как правило, при использовании таких систем от разработчика требуется только наполнение функциональной части пакета. Язык заданий и системное наполнение пакета реализуются средствами инструментария и переходят в его состав без существенных изменений. Кроме того, в инструментальных системах особое внимание уделяется созданию средств, позволяющих использовать в качестве функционального обеспечения ППП написанные ранее прикладные программы. Из наиболее известных инструментальных систем для построения ППП (с развитой системной частью) можно выделить: систему OLYMPUS [84], охватывающую широкий класс задач математической физики; отечественную систему автоматизации физических многовариантных расчетов САФРА [15], которая базируется на каркасной методологии построения пакетов программ [16].

Для интеллектуальных ППП основной особенностью является наличие концептуальной модели (схемы) предметной области, под которой понимается совокупность сведений об объектах предметной области и отношениях между ними, а также возможность постановки задач пакету в непроцедурном виде: «по известным значениям объектов с именами Xj, х2, х^ вычислить значения объектов с именами уь у2, ., ут». С помощью средств планирования непроцедурная постановка задачи преобразуется в схему решения задачи, которая, как и в случае ППП с развитой системной частью, далее интерпретируется, или для нее генерируется программа на некотором языке программирования. Кроме того, в таких пакетах хорошо развиты средства информационно-справочного обслуживания, облегчающие процесс создания и применения пакета. Одними из первых систем, относящихся к данному классу, можно выделить системы СПОРА [2], ПРИЗ [24] и САТУРН [42].

На основе приведенного обзора можно сделать вывод, что применение специализированных инструментальных систем является неотъемлемой частью процесса проектирования и создания современных 111111. Большое разнообразие существующего программного обеспечения, реализованного на различных языках программирования и функционирующего под управлением различных операционных и аппаратных платформ, требует развитых средств инструментальной системы, позволяющих с наименьшими трудозатратами объединить имеющееся (унаследованное1) наукоемкое прикладное обеспечение и реализовать на его основе ППП. Помимо этого средства инструментальной системы должны обеспечивать корректность и отказоустойчивость вычислений, предоставлять диалоговые интерактивные режимы взаимодействия с пользователем, эффективно использовать функциональное наполнение пакета, а также обеспечивать должный уровень интеллектуализации. Однако на сегодняшний день большинство известных инструментальных систем для создания ППП не удовлетворяют современным требованиям, тенденциям и технологиям в области разработки Под унаследованным по (legacy systems) понимают системы или комплексы, которые перестали соответствовать изменившимся со временем потребностям, но, тем не менее, продолжают эксплуатироваться ввиду значительных финансовых, организационных, технических и прочих затруднений, возникающих при попытке их замены [31].

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

В последние 10—15 лет отмечается интенсивное развитие сетевых технологий, позволивших многократно повысить производительность современных вычислительных систем с распределенной памятью, основанных на идее массового параллелизма. Несомненно, актуальными становятся также специальные программы, рассчитанные на параллельную работу в таких системах. Одна из основных идей распараллеливания вычислений в прикладных программах основана на возможностях независимой, одновременной (параллельной) обработки определенных блоков программ и соответствующих им блоков данных на доступном множестве вычислительных устройств. Такой подход к решению некоторых задач позволяет многократно повысить объемы обрабатываемых данных, снизить общее время вычислений, организовать крупномасштабные вычислительные эксперименты, которые нереализуемы на персональном компьютере. Поэтому одним из наиболее перспективных и актуальных направлений развития пакетной проблематики является создание таких инструментальных средств, которые обеспечивают разработку и применение ППП для параллельных и распределенных вычислительных систем.

В области распараллеливания вычислений имеется обширная библиография (см., например, [6, 12, 27, 29, 57]). Качественные требования к реализации процесса параллельной обработки данных в прикладных программах (например, необходимость обеспечения эффективности, масштабируемости, переносимости и т.д.) породили большое многообразие систем для организации параллельных вычислений. Такие системы, как правило, требуют от специалиста-предметника достаточно высокого уровня программистской квалификации и навыков разработки параллельных программ. В процессе проектирования и разработки параллельных программ специалисту-предметнику приходится следовать тем или иным технологиям и моделям параллельного программирования, а также учитывать архитектуру и особенности используемой вычислительной системы.

Обычно выделяют два основных вида параллелизма (см. [3]) - мелкозернистый и крупноблочный. Это деление достаточно условно, но, тем не менее, позволяет классифицировать подходы к распараллеливанию вычислений. Мелкозернистый параллелизм характеризуется большим количеством параллельно выполняемых простых, часто одинаковых вычислений, при этом обмен результатами происходит на каждом шаге. Применение данного подхода требует такой трансформации исходной задачи на уровне ее содержания и постановки, чтобы алгоритм решения мог быть представлен в виде совокупности распределенных, параллельно выполняемых процессов, взаимодействующих между собой [30]. Данное требование накладывает ряд ограничений: во-первых, не позволяет использовать существующее программное обеспечение без его модификации; во-вторых, ставит ряд сложностей выявления параллелизма алгоритма решаемой задачи; в-третьих, вынуждает учитывать все специфические особенности аппаратного обеспечения и коммуникационной среды при разработке программного обеспечения. Крупноблочный параллелизм характеризуется небольшим числом сложных последовательных вычислений с редкими обменами промежуточными результатами. В большинстве случаев область данных задачи разбивается на множество слабо зависимых блоков (декомпозиция исходной задачи), которые могут обрабатываться независимо друг от друга. Наиболее значимой областью использования крупноблочного параллелизма является проведение многовариантных расчетов, предполагающих выполнение одной программы с различными вариантами входных данных, что наиболее соответствует модели SPMD [5].

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

Таблица 1. Характеристики моделей параллелизма

Характеристика Общая память Обмен сообщениями Параллелизм по данным

Аппаратная среда Однородные процессорные устройства (ядра) Как правило, однородные по производительности и архитектуре вычислительные узлы Неоднородные по производительности и архитектуре вычислительные узлы

Степень связности процессов (синхронизация) Очень высокая степень связности: процессы работают с общей структурой данных Высокая степень связности: процессы взаимодействуют через высокопроизводительную сеть (ин-терконнект) Слабая связность: процессы взаимодействуют через каналы с относительно низкими показателями пропускной способности

Готовность выполнять вычисления Выделенные процессоры доступны в течение всего времени вычислений Выделенные процессоры доступны в течение всего времени вычислений Узлы могут выходить из состава или, наоборот, добавляться в процессе вычислений

Свойствен- На уровне процес- Мелкозернистый Крупноблочный

Характеристика Общая память Обмен сообщениями Параллелизм по данным ный вид параллелизма сов при совместном доступе к памяти

Технология ОрепМР и др. MPI, PVM и др. Распределенные среды (Condor и др.)

Масштабируемость распараллеливания Ограничивается числом процессоров (ядер) SMP-машины Ограничивается как возможностями распараллеливания задачи, так и количеством процессоров Ограничивается только возможностями распараллеливания задачи

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

Распределенная вычислительная среда (РВС) рассматривается в традиционном понимании (см., например, [13, 25]) как совокупность вычислительных узлов, объединенных коммуникационной сетью. Вычислительный узел представляет собой программно-аппаратный ресурс, включающий модуль оперативной памяти, один или несколько процессоров, жесткий диск, системное и прикладное программное обеспечение, поддерживающие функционирование узла в РВС. Один из вычислительных узлов назначается главным узлом и наделяется функциями управления заданиями пользователей и ресурсами РВС.

Многие из существующих проектов по организации распределенных вычислений ориентированы на решение частных, узкоспециализированных задач. К таким проектам можно отнести проект SETI@home, объединивший миллионы компьютеров по всему миру для решения задачи поиска внеземных цивилизаций; проект GIMPS, направленный на поиск чисел Мерсена и др. Среди универсальных систем для проведения распределенных вычислений можно выделить: Globus Toolkit [72], который является стандартом для построения специализированных вычислительных сетей Grid [73]; систему Condor [11], предназначенную для создания мобильных кластеров из доступных невыделенных рабочих станций. Но большинство универсальных систем крайне сложны в установке, администрировании и сопровождении. Организация расчетов на доступных компьютерах требует привилегированных административных полномочий, что значительно усложняет их применение для рядовых пользователей. Кроме того, существуют инструменты для быстрого создания распределенных вычислительных сред, позволяющих решать широкий класс задач вычислительного эксперимента. К их числу можно отнести: событийно-управляемую среду для разработки распределенных приложений ALua [91], созданную на основе языка Lua; инструментарий Х-Сош [14] для организации распределенных вычислительных экспериментов, разрабатываемый в Научно-исследовательском вычислительном центре МГУ; программный комплекс NetStart [18], представляющий собой полнофункциональное средство для организации масштабируемых распределенных вычислительных комплексов; среду пакетно-ориентированных распределенных вычислений [1], разрабатываемую в Институте систем энергетики СО РАН и позволяющую организовать распределенные вычисления на основе унаследованного ПО путем установки различных вычислительных программ в узлах распределенной среды и построения схемы взаимодействия по данным между различными вычислителями; среду непроцедурного программирования СиКрус [44], предназначенную для синтеза эффективных параллельных программ на языке Fortran-DVM [70]; инструментальный комплекс (ИК) ORLANDO TOOLS [34], предназначенный для конструирования параллельных прикладных программ с использованием коммуникационной библиотеки PVM [82].

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

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

Основными задачами исследования являются:

1. Проведение анализа существующих методов и средств организации распределенных вычислений. Разработка технологии организации РППП в разнородных РВС.

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

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

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

Объектом исследования являются теория и практика организации распределенных вычислений.

Предметом исследования являются методы и инструментальные средства создания пакетов прикладных программ в разнородных РВС.

Методы исследования. При решении поставленных задач использовались методы системного и прикладного программирования, характерные для разработки инструментальных программных комплексов; методы объектно-ориентированного и модульного (сборочного) программирования; технологии построения РВС и разработки web-приложений.

На защиту выносятся следующие основные результаты:

- технология организации РППП в разнородных РВС, основанная на методах модульного программирования и автоматизации построения 111111 и обеспечивающая использование модулей, реализованных на различных языках программирования, нетиражируемых программных комплексов, а также унаследованного ПО;

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

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

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

Практическая значимость. Разработанное программное обеспечение позволяет сократить сроки и повысить эффективность разработки и применения РППП. Созданные программные средства зарегистрированы в Федеральной службе по интеллектуальной собственности, патентам и товарным знакам [53] и применяются для проведения экспериментальных расчетов по плановым научно-исследовательским работам в Институте динамики систем и теории управления (ИДСТУ) СО РАН, а также учебном процессе в Институте математики, экономики и информатики Иркутского государственного университета.

Разработка и применение рассматриваемых в диссертации программных средств выполнялись в рамках проекта СО РАН № 6 «Планирование и оптимизация схем решения задач в распределенной мультиагентной вычислительной среде» программы фундаментальных исследований Президиума РАН № 21 «Разработка фундаментальных основ создания научной распределенной информационно-вычислительной среды на основе технологий GRID» (2004 г.); интеграционного проекта № 3 СО РАН «Методы, технологии и инструментальные средства создания вычислительной инфраструктуры в Internet» (2003-2005 гг.); проекта СО РАН 3.2.6 «Интегрированные информационно-вычислительные и коммуникационные ресурсы: интеллектные методы организации, автоматизации разработки и применения» (2004-2006 гг.); проекта СО РАН «Разработка научных основ распределенной информационноаналитической системы на основе ГИС и Веб-технологий для междисциплинарных исследований» междисциплинарной программы 4.5.2 (2007-2009 гг.); проекта РФФИ № 06-01-00340 «Разработка и исследование булевых моделей предметной области в задаче планирования при синтезе программ»; проекта РФФИ № 08-07-00163 «Технологии интеллектуального анализа данных и высокопроизводительных информационно-вычислительных ресурсов для поддержки междисциплинарных фундаментальных исследований в области геоэкологии и природопользования» (2008-2010 гг.); проекта № 3 «Концептуальные основы и программные средства разработки проблемно-ориентированных распределенных вычислительных сред» программы фундаментальных исследований Президиума РАН № 1 «Проблемы создания национальной научной распределенной информационно-вычислительной среды на основе развития GRID технологий и современных телекоммуникационных сетей» (2009-2011 гг.); проекта «Технология интеллектуальной обработки пространственно-распределенных данных и создания высокопроизводительных информационно-вычислительных ресурсов для поддержки междисциплинарных фундаментальных исследований» программы Отделения нанотехнологий и информационных технологий РАН (2009-2011 гг.).

Достоверность и эффективность полученных в работе результатов подтверждается опытом успешной практической эксплуатации разработанного автором диссертации ИК DISCOMP в Суперкомпьютерном центре коллективного пользования ИДСТУ СО РАН при решении ряда ресурсоемких прикладных задач.

Апробация. Основные результаты работы были представлены на V и VIII Школах-семинарах молодых ученых «Математическое моделирование, управление и информационные технологии» (Иркутск, 2004 г., 2006 г.), на V Межрегиональной школе-семинаре «Распределенные и кластерные вычисления» (Красноярск, 2005 г.), на III Международной конференции «Параллельные вычисления и задачи управления (РАСО)» (Москва, 2006 г.), на XI и XII Байкальских всероссийских конференциях «Информационные и математические технологии в научных исследованиях» (Иркутск, 2006 г., 2007 г.), на II Всероссийской конференции с международным участием «Инфокоммуникационные и вычислительные технологии и системы» (Улан-Удэ, 2006 г.), на конференции «Ляпуновские чтения» (Иркутск, 2007 г.), на Международных научных конференциях «Параллельные вычислительные технологии (PAVT)» (Челябинск, 2007 г.; Санкт-Петербург, 2008 г.), на восьмом Международном симпозиуме Интеллектуальные системы (Нижний Новгород, 2008 г.), на Всероссийской конференции «Винеровские чтения» (Иркутск, 2009 г.), на Всероссийской конференции «Математическое моделирование и вычислительно-информационные технологии в междисциплинарных научных исследованиях» (Иркутск, 2009 г.), на семинарах ИДСТУ СО РАН.

Публикации. Результаты научных исследований Сидорова И.А. отражены в 15-ти научных работах, включая 2 статьи [8, 52] в журналах, рекомендованных ВАК для опубликования научных результатов диссертации на соискание ученой степени доктора или кандидата наук, 12 публикаций [9, 21, 23, 35, 36, 38, 48-51, 63, 64] в трудах региональных, всероссийских и международных конференций, 1 свидетельство [53] об официальной регистрации программ в Федеральной службе по интеллектуальной собственности, патентам и товарным знакам. В перечисленных публикациях все результаты, связанные с алгоритмизацией, программной реализацией и проведением вычислительных экспериментах на высокопроизводительных системах, получены автором лично. Результаты по моделям и методам организации распределенных пакетов прикладных программ получены совместно с Феоктистовым А.Г. и являются неделимыми. Из совместных работ с Васильевым С.Н., Опариным Г.А, Тятюшки-ным А.И., Семеновым А.А., Богдановой В.Г., Заикиным О.С. в диссертацию включены только те результаты, которые принадлежат лично автору.

Структура работы. Диссертация состоит из введения, трех глав, заключения, библиографии из 91 наименования, глоссария и 7 приложений. Общий объем работы - 140 страниц, из которых 110 страниц основного текста, включающего 13 рисунков и 4 таблицы.

Заключение диссертация на тему "Технология и инструментальные средства организации распределенных пакетов прикладных программ"

3.6. Выводы

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

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

Лично автором был организован РППП для решения задач оптимального управления и построения множеств достижимости. Некоторые технические аспекты организации вычислений в РППП D-SAT (механизм минимизации транспортных расходов, управляющие конструкции для устранения избыточных вычислений и пр.) были получены и реализованы в неделимом соавторстве с О.С. Заикиным. Автором были проведены вычислительные эксперименты для большинства рассмотренных РППП.

Заключение

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

Перечислим основные результаты диссертационной работы.

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

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

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

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

Библиография Сидоров, Иван Александрович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Абасов Н.В. Долгосрочный прогноз природообусловленных факторов энергетики в информационно-прогностической системе ГИПСАР / Н.В. Абасов, Т.В. Бережных, А.П. Резников // Известия РАН, Энергетика. - 2000. - № 6. - С. 22-30.

2. Бабаев И.О. СПОРА — система программирования с автоматическим синтезом программ / И.О. Бабаев, С.С. Лавров, Г.А. Нецветаева, Ф.А. Новиков, Г.М. Шувалов // Применение методов математической логики. — Таллин: ИК АН ЭССР, 1983. С. 29-41.

3. Бандман О.Л. Мелкозернистый параллелизм в вычислительной математике / О.Л. Бандман // Программирование. — 2001. — № 4. — С. 1-18.

4. Баранов А.В. Руководство администратора системы управления прохождением задач МВС-1000/16 / А.В. Баранов, А.О. Лацис, С.В. Сажин, М.Ю. Храмцов // Документация по МВС-1000/16. М.: ИПМ им. Келдыша РАН, 2007. - 25 с.

5. Барский А.Б. SPMD-архитектура и параллельная обработка структур данных / А.Б. Барский, В.В. Шилов // Информационные технологии. 1999. — №6.-С. 11-17.

6. Бэбб Р. Программирование на параллельных вычислительных системах / Р. Бэбб, Дж. Мак-Гроу, Т. Аксельрод. -М.: Мир, 1991. 376 с.

7. Вальковский В.А. Элементы современного программирования и суперЭВМ / В.А. Вальковский, В.Э. Малышкин. — Новосибирск: Наука. Сиб. отд-ние, 1990.- 150 с.

8. Вигерс К. Разработка требований к программному обеспечению / К. Вигерс.- М.: Русская Редакция, 2004. — 576 с.

9. Владимиров Д. Кластерная система Condor / Д. Владимиров // Открытые системы. 2000. - № 7-8. - С. 20-26.

10. Воеводин В.В. Параллельные вычисления /В.В. Воеводин, Вл.В. Воеводин.- СПб.: БХВ-Петербург, 2002. 608 с.

11. Воеводин Вл.В. Суперкомпьютер на выходные / Вл.В. Воеводин, М.П'. Фи-ламофитский // Открытые системы. — 2003. — № 5. — С. 48-56.

12. Воеводин Вл.В. Х-Сош проект организации распределенных вычислений / Вл.В. Воеводин, М.П Филамофитский // Научный сервис в сети Интернет: Тр. всерос. науч. конф. -М.: МГУ, 2001. - С. 11-13.

13. Горбунов-Посадов М.М. Расширяемые программы / М.М. Горбунов-Посадов. М.: Полиптих, 1999. — 336 с.

14. Горбунов-Посадов М.М. Системное обеспечение пакетов прикладных программ / М.М. Горбунов-Посадов, Д.А. Корягин, В.В. Мартынюк. М.: Наука, 1990.-208 с.

15. Грошенков К.С. Сервисно-ориентированные решения в системах организации параллельных вычислений / К.С. Грошенков, А.Н. Кузнецов // Тр. Ме-ждунаро. науч. конф. ПАВТ'07. Челябинск: ЮУрГУ, 2007. - Т. 1. - С. 237-243.

16. Ершов А.П. Пакеты программ — технология решения прикладных задач / А.П. Ершов, В.П. Ильин. Новосибирск: ВЦ СО АН СССР, 1978. - 22 с.

17. Жуматий С. Система РагСоп — ассистент в работе пользователя и администратора вычислительного кластера / С. Жуматий // Методы и средства обработки информации: Тр. Всерос. науч. конф. — МГУ им. М.В. Ломоновова, 2005.-С. 252-255.

18. Заикин О.С. Параллельная технология решения SAT-задач с применением пакета прикладных программ D-SAT / О.С. Заикин, А.А. Семенов, И.А. Сидоров, А.Г. Феоктистов // Вестник ТГУ. Приложение. — 2007. № 23. - С. 83-95.

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

20. Заикин О.С. Технология крупноблочного распараллеливания в криптоанализе некоторых генераторов двоичных последовательностей / О.С. Заикин, И.А. Сидоров // Тр. междунар. науч. конф. — Челябинск: ЮУрГУ, 2007. -Т. 1.-С. 158-169.

21. Кахро М.И. Инструментальная система программирования ЕС ЭВМ (ПРИЗ) / М.И. Кахро, А.П. Калья, Э.Х. Тыугу. М.: Финансы и статистика, 1988. -180 с.

22. Коваленко В.Н. Вычислительная инфраструктура будущего / В.Н. Коваленко, Д.А. Корягин // Открытые системы. 1999. — № 11-12. — С. 45-53.

23. Коваленко В.Н. Планирование ресурсов Grid на основе локальных расписаний / В.Н. Коваленко, Е.И. Коваленко, Д.А. Корягин и др. // Методы и средства обработки информации: Тр. I Всерос. науч. конф. — М.: МГУ, 2003. С. 205-211.

24. Корнеев В.В. Параллельные вычислительные системы / В.В. Корнеев. М.: Нолидж, 1999.-320 с.

25. Кузнецов М. Объектно-ориентированное программирование на РНР / М. Кузнецов, И. Симдянов. СПб.: БХВ-Петербург, 2007. - 608 с.

26. Малышкин В.Э. Введение в параллельное программирование мультиком-пьютеров / В.Э. Малышкин. Новосибирск: ИВМиМГ, 2003. - 268 с.

27. Малышкин В.Э. Мощности вычислительных систем прирастают с параллелизмом / В.Э. Малышкин // Наука в Сибири. 2001. - № 32-33. - 3 с.

28. Массель Л.В. Тенденции развития и инструменты создания программных комплексов для решения больших задач в исследованиях энергетики / Л.В. Массель, А.В. Черноусов // Научный сервис в сети Интернет: решение больших задач. Абрау-Дюрсо, 2008. - С. 403-406.

29. Новак Л.Г. Свойства схем данных XML / Л.Г. Новак, С.Д. Кузнецов // Тр. Института Системного Программирования РАН. — 2003. — 24 с.

30. Олейников А .Я. Методика тестирования на соответствие стандартам, обеспечивающим переносимость прикладных программ (POSIX) / А.Я. Олейников, В.Н. Корниенко // Научные телекоммуникации и информационная ин-. фраструктура. М., 1999. - 31 с.

31. Опарин Г.А. Инструментальный комплекс ORLANDO TOOLS / Г.А. Опарин, А.Г. Феоктистов, А.П. Новопашин, С.А. Горский // Программные продукты и системы. 2007. - № 4. - С. 63-65.

32. Опарин Г.А. Интеллектуальный решатель задач в булевых ограничениях в распределенной вычислительной среде / Г.А. Опарин, В.Г. Богданова, И.А. Сидоров // Тр. XII Байкальской Всерос. конф.: в 2-х ч. Иркутск: Изд-во ИСЭМ СО РАН, 2007. - Ч. 2. - С. 12-19.

33. Опарин Г.А. К теории планирования вычислительного процесса в пакетах прикладных программ / Г.А. Опарин // Пакеты прикладных программ. Методы и разработки. Новосибирск: Наука, 1981. — С. 5-20.

34. Опарин Г.А. Организация распределенных вычислений в инструментальном комплексе DISCOMP / Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Винеровские чтения: Материалы II Всерос. конф. — Иркутск: Изд-во Ир1. ГТУ, 2009. -4 с.

35. Опарин Г.А. САТУРН метасистема для построения пакетов прикладных программ / Г.А. Опарин // Разработка пакетов прикладных программ. - Новосибирск: Наука, 1982. - С. 130-160.

36. Опарин Г.А. Технология синтеза модульных параллельных программ для DVM-системы / Г.А. Опарин, А.П. Новопашин // Интеллектуальные системы: Тр. VII Междунар. симпоз. Под ред. И.А. Пупкова. М.: РУСАКИ, 2006.-С. 468-471.

37. Савин Г.И. Создание распределенной инфраструктуры для суперкомпыо-терных приложений / Г.И. Савин, В.В. Корнеев, Шабанов Б.М. и др. // Статьи Межведомственного Суперкомпьютерного Центра РАН. 2008. — 14 с.

38. Самарский А.А. Математическое моделирование и вычислительный эксперимент / А.А. Самарский // Вестник АН СССР. 1979. - № 5. - С. 38-49.

39. Самарский А.А. Пакеты прикладных программ как средство обеспечения сложных физических расчетов / А.А. Самарский // Перспективы системного и теоретического программирования: Тр. Всесоюз. симпоз. — Новосибирск: ВЦ СО АН СССР, 1978. С. 5-14.

40. Сидоров И.А. Описание вычислительного процесса в инструментальном комплексе DISCOMP / И.А. Сидоров // Ляпуновские чтения: Материалы конф. Иркутск: ИДСТУ СО РАН, 2007. - С. 31.

41. Сидоров И.А. Распределенная информационно-вычислительная среда модульного программирования / И.А. Сидоров, А.Г. Феоктистов, А.И. Тятюш-кин // Параллельные вычисления и задачи управления: Тр. III Междунар. конф. М.: ИПУ РАН, 2006. - С. 505-521.

42. Сидоров И.А. Технология организации распределенных вычислений в инструментальном комплексе DISCOMP / Г.А. Опарин, А.Г. Феоктистов, И.А. Сидоров // Современные технологии. Системный анализ. Моделирование. — 2009.-№2.-С. 175-180.

43. Сидоров И.А., Феоктистов А.Г. Инструментальный комплекс DISCOMP: Свидетельство об официальной регистрации программы для ЭВМ №2008615180.- М.: Федеральная служба по интеллектуальной собственности, патентам и товарным знакам, 2008.

44. Суперкомпьютерный центр коллективного пользования ИДСТУ СО РАН Электронный ресурс. — Электрон, дан. Режим доступа: http://mvs.icc.ru/, свободный.

45. Таненбаум Э. Распределенные системы. Принципы и парадигмы / Э. Танен-баум, В. Стен. СПб.: Питер, 2003. - 877 с.

46. ТОП 50 Суперкомпьютеры Электронный ресурс. Электрон, дан. - Ре1жим доступа: http://supercomputers.ru/?page=archive&rating=9, свободный.

47. Топорков В.В. Модели распределенных вычислений / В.В. Топорков. М.: ФИЗМАТЛИТ, 2004. - 320 с.

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

49. Тятюшкин А.И. ППП КОНУС для оптимизации непрерывных управляемых систем / А.И. Тятюшкин // Пакеты прикладных программ: Опыт использования. М.: Наука. - 1989. - С. 63-83.

50. Тятюшкин А.И. Численное исследование свойств оптимального управления в одной задаче преследования / А.И. Тятюшкин, Б.Е. Федунов // Изв. РАН, ТиСУ. 2005. - № 3. — С. 104-113.

51. Тятюшкин А.И. Численные методы и программные средства оптимизации управляемых систем / А.И. Тятюшкин. — Новосибирск: Наука, 1992. 193 с.

52. Федунов Б.Е. Максимально быстрое торможение объекта, осуществляющего управляемое движение под действием сил аэродинамического сопротивления и тяжести / Б.Е. Федунов // ПММ. 1990. - Т. 54, № 5. - С. 88-95.

53. Blanchette Jl С++ GUIProgramming with Qt 4' / J. Blanchette, M. Summerfield. -Prentice Hall, 2008. 668 p.

54. DIMACS Электронный ресурс.! Электрон., дан. — Режим доступа: http://www.cs.ubc.ca/~hoos/SATLIB/beiichm.html, свободный.

55. Doxy gen Электронный ресурс. — Электрон.' дан:. — Режим, доступа: http://doxygen.org/, свободный. •

56. Ferguson N. Practical Cryptography: Designing and Implementing Secure Cryptographic Systems / N. Ferguson, B. Schncier. Willey, 2003. — 432 p.

57. Fortran-DVM a language for portable program development / N.A. Konovalov, V.A. Krukov, S.N. .Mihailov, A.A. Pogrebtsov // Proceedings, of Software For Multiprocessors & Supercomputers: Theory, Practice, Experience: Institute for

58. System Programming, RAS. Moscow, 1994.- P. 124-133.

59. Ferraiolo D.F. Role-based Access Control?/ D.F. Ferraiolo, D.R. Kuhn. Artech House, 2007. - 400 p.

60. FosterT. Globus Toolkit Version 4: Software for Service-Oriented^ Systems / I. Foster // IFIP; International Conference on- Network, and Parallel Computing. -Springer, 2006.-P. 2-13.

61. Foster I. The Anatomy of the Grid: : Enabling Scalable Virtual Organizations / I. Foster, C. Kcsselman, S. Tuecke // Intern. J. of High Performance Computing Applications. 2001. - Vol. 15, № 3. - P. 200-222.

62. General Public License Электронный ресурс. . — Электрон, дан. — Режим доступа: /, свободный.:

63. GNU coding standard: Электронный ресурс. — Электрон, дан. Режим доступа: http://www.gnu.org/prep/standards/, свободный.

64. Griffith A. GCC: The Complete Reference / A. Griffith. McGraw-Hill, 2002. -515 p.

65. Laurent S. Programming Web Services with XML-RPC / S. Laurent, J. Johnston, E. Dumbill. O'Reilly, 2001. - 452 p.

66. MiniSat Электронный- ресурс. Электрон, дан. - Режим доступа: http://minisat.se/MiniSat.html, свободный.

67. POSIX (Portable Operating System Interface for UNIX) Электронный ресурс. Электрон, дан. - Режим доступа: http://standards.ieee.org/regauth/posix/, свободный.

68. PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing / A. Geist., A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, V. Sunderam. Cambridge: The MIT Press, 1994. - 298 p.

69. Raymond. E.S. The Art of UNIX Programming / E.S. Raymond. Addison-Wesley, 2003.-511 p.

70. Roberts K.V. An introduction to the OLYMPUS system / K.V. Roberts // Computer physics communication, 1974. V. 7. — 237 p.

71. SATLIB Электронный ресурс. Электрон, дан. - Режим доступа: http://www.lri.fr/~simon/satex/satex.php3, свободный.

72. Stroustrup В. The С++ Programming Language: Special Edition / В. Stroustrup. -Addison-Wesley, 2000. 1104 p.

73. The Common Gateway Interface (CGI) Version 1.1 Электронный ресурс. — Электрон, дан. Режим доступа: http://www.ietf.org/rfc/rfc3875.txt, свободный.

74. Thomas A. JavaScript: The Complete Reference / A. Thomas, F. Schneider. -McGraw-Hill, 2001. 960 p.

75. Thomas D. Pragmatic Version Control Using CVS / D. Thomas, A. Hunt. The pragmatic programmers, 2002. - 362 p.

76. Ururhay C. ALua: Flexibility for parallel programming / C. Ururahy, N. Rodri-gyez; R. Ierusalimschy // Computer Languages, Elsevier Science Ltd. 2002. -Vol. 28.-№2.-P. 155-180.1. Глоссарий

77. Вычислительный кластер — это совокупность вычислительных узлов, объединенных в рамках некоторой коммуникационной среды и представляющих с точки зрения пользователя единый аппаратный ресурс для решения определенного класса задач.

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

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

80. Входной язык — язык описания предметной области пакета прикладных программ, постановок задач, заданий по их решению.

81. Гетерогенность разнородность вычислительных ресурсов (как* программных, так и аппаратных), входящих в состав РВС.

82. Интерпретатор программное средство; осуществляющее пооператорную обработку и выполнение СРЗ.

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

84. Латентность время между инициированием передачи данных в процессе посылки и прибытия первого байта в процессе приема.

85. Масштабируемость — это способность системы увеличивать вычислительную мощность без существенного снижения производительности за счет включениягв состав РВС большего числа вычислительных узлов.

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

87. Модуль — это объект концептуальной схемы предметной области пакета прикладных программ, реализующий абстрактную операцию над параметром данной предметной области.

88. Непроцедурная постановка задачи задача ставится в следующем виде: «зная вычислительную модель, по заданным значениям параметров xl, х2, ., хк вычислить значения параметров yl, у2, ., уг».

89. Пакет прикладных программ — это комплекс взаимосвязанных прикладных программ и средств системного обеспечения (программных и языковых), предназначенный для автоматизации решения определенного класса задач конкретной предметной области.

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

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

92. Распределенный пакет прикладных программ — пакет, прикладные программы которого размещены в различных узлах РВС.

93. Ресурсоемкая задача задача вычислительного характера, решение которой требует выполнения прикладного ПО и использования достаточно больших объемов вычислительных ресурсов (процессорного времени, оперативной памяти, дискового пространства).

94. Система управления прохождением заданий — системное программное обеспечение, предназначенное для поддержания очередей и планирования работ на вычислительном кластере.

95. Системное программное обеспечение — это комплекс программ, которые обеспечивают эффективное управление компонентами вычислительной системы, такими как процессор, память, каналы,ввода-вывода, сетевое и коммуникационное оборудование и т. п.