ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

Development and application of the distributed softfare packages

The article was published in issue no. № 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.
Аннотация:Обсуждаются вопросы, связанные с организацией распределенных вычислений. В частности, рассматриваются архитектура и принципы функционирования инструментальных средств для автоматизации разработки и применения в распределенной вычислительной среде сложных прикладных программных комплексов.
Authors: Oparin G.A. (oparin@icc.ru) - Institute of System Dynamics and Control Theory SB of the Russian Academy of Sciences, Irkutsk, Russia, Sidorov I.A. (ivan.sidorov@icc.ru) - Institute of System Dynamics and Control Theory SB of the Russian Academy of Sciences, Irkutsk, Russia, Ph.D, Feoktistov A.G. (agf@icc.ru) - Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences, Irkutsk, Russia
Keywords: conceptual model, resources capacity tasks, software package, distributed computing
Page views: 12022
Print version
Full issue in PDF (4.97Mb)
Download the cover in PDF (1.38Мб)

Font size:       Font:

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

В данной работе рассматривается инструментальный комплекс (ИК) 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.


Permanent link:
http://swsys.ru/index.php?page=article&id=2527&lang=en
Print version
Full issue in PDF (4.97Mb)
Download the cover in PDF (1.38Мб)
The article was published in issue no. № 2, 2010

Perhaps, you might be interested in the following articles of similar topics: