На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

4
Ожидается:
09 Сентября 2024

Разработка и применение распределенных пакетов прикладных программ

Development and application of the distributed softfare packages
Статья опубликована в выпуске журнала № 2 за 2010 год.
Аннотация:Обсуждаются вопросы, связанные с организацией распределенных вычислений. В частности, рассматриваются архитектура и принципы функционирования инструментальных средств для автоматизации разработки и применения в распределенной вычислительной среде сложных прикладных программных комплексов.
Abstract:The questions linked to the organisation of distributed computing are discussed. In particular, the architecture and principles of functioning of toolkit for automation of development and application in the distributed computing system of applied program complexes are considered.
Авторы: Опарин Г.А. (oparin@icc.ru) - Институт динамики систем и теории управления Сибирского отделения РАН, г. Иркутск, Россия, Сидоров И.А. (ivan.sidorov@icc.ru) - Институт динамики систем и теории управления Сибирского отделения РАН, г. Иркутск (научный сотрудник), Иркутск, Россия, кандидат технических наук, Феоктистов А.Г. (agf@icc.ru) - Институт динамики систем и теории управления Сибирского отделения РАН, г. Иркутск, Россия
Ключевые слова: концептуальная модель, ресурсоемкие задачи, пакеты прикладных программ, распределенные вычисления
Keywords: conceptual model, resources capacity tasks, software package, distributed computing
Количество просмотров: 12873
Версия для печати
Выпуск в формате PDF (4.97Мб)
Скачать обложку в формате PDF (1.38Мб)

Размер шрифта:       Шрифт:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SAT-задачи криптоанализа

Время решения SAT-задачи

на одном вычислительном ядре

в ВС (160 ядер)

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

Генератор Гиффорда

14–30 ч.

1–2 ч.

30–60 мин.

Суммирующий генератор

20 мин.– 2 ч.

10–30 мин.

2–6 мин.

Пороговый генератор

3 суток

30–120 мин.

6–10 мин.

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

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

Литература

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

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

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

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


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=2527
Версия для печати
Выпуск в формате PDF (4.97Мб)
Скачать обложку в формате PDF (1.38Мб)
Статья опубликована в выпуске журнала № 2 за 2010 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: