Научная статья на тему 'Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. Часть II: разработка и оценка программной архитектуры'

Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. Часть II: разработка и оценка программной архитектуры Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
134
45
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / HIGH-PERFORMANCE COMPUTING / АРХИТЕКТУРА ПАРАЛЛЕЛЬНЫХ ПРИЛОЖЕНИЙ / PARALLEL SOFTWARE ARCHITECTURE / УПРАВЛЕНИЕ ПАРАЛЛЕЛЬНОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ / PARALLEL PERFORMANCE MANAGEMENT

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

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ковальчук Сергей Валерьевич, Иванов Сергей Владимирович, Бухановский Александр Валерьевич

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

HIGH-PERFORMANCE SOFTWARE FOR HYDROMETEOROLOGICAL EXTREME EVENTS SIMULATION. PART II: SOFTWARE ARCHITECTURE DESIGN AND ASSESSMENT

High-performance software for hydrometeorological extreme events simulation design and development peculiarities are considered within the bounds of Service-Oriented Architecture paradigm (SOA). It is shown by investigation using prototype software and parametric performance model, that parallel decomposition type for each of calculation modules of developing software is defined by task features and parallel hardware and software architecture specific character. The approach for dynamic performance-efficient organization of parallel software architecture by using intelligent management service is proposed. Results of architecture assessment using computing experiments are presented.

Текст научной работы на тему «Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. Часть II: разработка и оценка программной архитектуры»

УДК 004.021, 681.324

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЙ ПРОГРАММНЫЙ КОМПЛЕКС МОДЕЛИРОВАНИЯ ЭКСТРЕМАЛЬНЫХ ГИДРОМЕТЕОРОЛОГИЧЕСКИХ ЯВЛЕНИЙ. ЧАСТЬ II: РАЗРАБОТКА И ОЦЕНКА ПРОГРАММНОЙ АРХИТЕКТУРЫ

С.В. Ковальчук, С.В. Иванов, А.В. Бухановский

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

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

Введение

Высокоуровневое проектирование (или разработка архитектуры программного обеспечения, ПО) ставит своей целью формализацию и обоснование внутренней структуры ПО, которая наилучшим образом удовлетворяет проектным требованиям при заданном наборе ограничений в области работоспособности, безопасности, безотказности, защищенности [1]. Эволюция способов формализации структуры ПО определяется, в первую очередь, потребностью снижения сложности процессов разработки, тестирования и поддержки программных продуктов на фоне увеличения общей сложности решаемых задач. Это последовательно порождает структурный [2], объектно-ориентированный [3] и компонентно-ориентированный [4] подходы в инженерии ПО. Дальнейшая тенденция функциональной изоляции компонентов отражается в архитектурах на базе SOA (Service Oriented Architecture) [5], REST (Representational State Transfer) [6], AOA (Aspect Oriented Architecture) [7] и др. Такие подходы достаточно успешно используются при разработке коммерческих приложений и часто могут определять весь технологический процесс создания ПО [8].

При разработке наукоемкого ПО (scientific computing software engineering) необходимо учитывать, что приоритеты проектных требований, их структура, процесс проектирования, создания, проверки, внедрения, поддержки и использования обладают рядом индивидуальных особенностей [9]. Во многих случаях важным критерием работоспособности ПО является производительность (productivity), характеризующая получение результата вычислений с приемлемой точностью за заданное время. Она обеспечивается за счет применения технологий высокопроизводительных вычислений в многопроцессорных и/или распределенных средах.

Использование традиционных компонентно-ориентированных подходов к проектированию распределенных программных систем (на основе DCOM [10], CORBA [11], Enterprise Java Bean [12] и пр.) допустимо не во всех случаях, поскольку они не ориентированы непосредственно на достижение наибольшей производительности. Несмотря на то, что для наукоемкого ПО предлагаются специфические проблемно-ориентированные подходы, в частности CCA (Common Component Architecture) [13], в общем случае архитектура таких систем определяется особенностями решаемой задачи, спецификой предметной области и характеристиками параллельной вычислительной системы. В данной статье обсуждаются особенности проектирования программного

комплекса моделирования экстремальных гидрометеорологических явлений на основе концепции, изложенной в [14].

Сервисно-ориентированная архитектура программного комплекса

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

Для решения этой задачи взаимодействие вычислительных модулей программного комплекса осуществляется на основе сервисно-ориентированной архитектуры (80Л). Это позволяет добиться максимального уровня изоляции частей программного комплекса, тем самым делая более строгой его структурированность и облегчая процесс разработки и тестирования. На рис. 1 представлена общая структура взаимодействия сервисов программного комплекса. Для нее характерна следующая типизация сервисов:

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

- сервисы доступа к данным (входная гидрометеорологическая информация, результаты расчетов);

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

Рис. 1. Архитектура программного комплекса

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

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

Tcalc (P, a Y) omp = T0

а(p -1) + — P

Y + (1 - Y)

(12)

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

Tcomm = tw [(то + П|д!) + Ш + + v(£L)2 )(П -1)], (13)

где т0, L0 и т, L - число узлов расчетной сетки по времени и пространству для метеорологических (входных) и океанографических (выходных) данных соответственно, П -количество узлов, n, v, | - коэффициенты, характеризующие кратность использования данных в моделях, а $ - доля репликации данных между узлами. Величина tw соответствует времени передачи единицы информации по коммуникационной сети. Предполагается, что время работы T0 каждой задачи (расчета ветра, волн, течений, параметризации спектров и расчета статистики) определяется только производительностью вычислителя (например, ядром CPU) и объемом обрабатываемых данных; выражения для времени работы конкретных вычислительных модулей приведены в [15].

На рис. 2 показано влияние архитектуры программной системы на общее ускорение вычислений. При небольшом количестве узлов оптимальным является распараллеливание по времени [14] с использованием отдельных процессоров узлов с общей памятью как независимых вычислителей. Однако с увеличением числа процессоров тенденция изменяется, и многопроцессорные узлы становятся более предпочтительными. С увеличением размера входного массива (число моделируемых лет, рис. 2, а-б) в результате увеличения гранулярности общее ускорение также возрастает. Рис. 2, в-г, иллюстрирует влияние перекрытия независимых блоков данных (что является обязательным при распараллеливании по времени) на производительность алгоритма. При уменьшении величины перекрытия с трех до одного месяца ускорение в среднем вырастает примерно в полтора раза, а эффективность от использования многопроцессорных узлов сдвигается в зону большего числа узлов и меньшего числа процессоров на узле. Эта характеристика может меняться в зависимости от специфики акватории (океанские процессы обладают большим «временем жизни», чем процессы в закрытых морях), а также от особенностей моделируемого процесса (синоптический интервал атмосферных процессов и волнения составляет несколько суток, а эволюция вихрей водных масс может длиться несколько месяцев). Из рис. 2 следует, что в рамках данной задачи невозможно предложить статический способ распараллеливания вычислительных модулей комплекса, который был бы одинаково эффективен для всех вариантов входных данных при заданных характеристиках вычислительной системы. Эта проблема решается путем внедрения в состав программного комплекса (рис. 1) управляющего сервиса специального вида, который, основываясь на характеристиках задачи, используя данные текущего мониторинга состояния вычислительной системы и знания о параллельной производительности расчетных модулей, организует процедуры параллельной декомпозиции и композиции данных таким образом, чтобы совокупная производительность программного комплекса была наилучшей.

В) 450

400

350

300

ш

X 250

V

О. 200

о

т О 150

>

100

50

0

К

Л

200

400

600 ОРУ

Г)

450 400 350 300

Ф

3 250

X

«200

° 150 £

^ 100 50 0

800 1000 1200

Vя "Ж* 6 К

Л* СЕ \Г й_

$ Г*4

Г

200 400

600 ОРУ

800 1000 1200

Рис. 2. Параллельное ускорение в зависимости от конфигурации вычислительных узлов, длины входного массива и размера перекрытия независимых блоков данных: а) 15 лет, перекрытие 1 месяц; б) 30 лет, перекрытие 1 месяц; в) 5 лет, перекрытие 3 месяца; г) 5 лет, перекрытие 1 месяц. В легенде - схема распараллеливания: число

процессов х число потоков

0

0

Интеллектуальный механизм управления параллельной производительностью

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

В процессе работы механизма вывода подсистема, оперируя знаниями экспертов (включенных в описание конкретных вычислительных сервисов), на основании имеющихся данных производит оценку весов ребер и вершин графа параллельных реализаций, варьируя вариантами распараллеливания отдельных вычислительных моделей (рис. 4). Варианты распараллеливания каждой из моделей строятся с использованием технологий параллельного программирования различных уровней (управление потоками и процессами). Каждому из вариантов распараллеливания соответствует своя специфика поведения кривой ускорения на используемой архитектуре. Для перехода к классическому представлению взвешенного графа достаточно заменить вершины ребрами с соответствующим весом, что позволит применять к построенному графу без изменения классические алгоритмы. Очевидно, что кратчайший путь в графе от узла «Начало» до узла «Конец» определит оптимальную (согласно модельным оценкам) схему распараллеливания вычислительных модулей и последовательности их запуска. В силу неопределенности во входных данных в результате анализа выявляется несколько конурирующих, или «допустимых» путей, которые потом ранжируются.

Пользователь

Характеристики вычислительной среды

Монитор выполнения приложения

Параметры

запуска

*

Интерпретатор

задачи

♦ -

Набор активных фактов

Компонента логического вывода: формирование оптимального схемы WF

Реализация динамической параллельной архитектуры

(правила работы управляющего сервиса)

X

Запуск вычислительного процесса

Характеристики производительности приложения

— Сервис 1

— Сервис 2

I § I *

го о

S Я ш §

о. с

_ Сервис 3

Адаптивная компонента приобретения дополнительных знаний и данных

— Сервис N

— Архитектура 1

го S

LQ S)

— Архитектура 3

о о. с

Архитектура 2

Архитектура M

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

Анализ текущих измерений

Имитационное моделирование

Поиск по прецеденту

Рис. 3. Структура интеллектуальной подсистемы

В табл. 1 приведен пример анализа оптимальной схемы распараллеливания, построенной посредством обхода графа на рис. 4, на основании результатов численных экспериментов, выполненных на кластере со 128 вычислителями (рассчитывались характеристики для Каспийского моря при 7=5). Из таблицы видно, что для различных вычислительных модулей в качестве оптимальной (в рамках работы комплекса в целом) выбраны различные схемы распараллеливания (количество узлов х количество логических процессоров на узле х количество потоков на каждом из процессоров). Примечательным является тот факт, что использование комбинации для различных методов распараллеливания позволяет существенно повысить масштабируемость не только комплекса в целом, но и отдельных расчетных модулей. Например, для международной модели морского волнения SWAN в расчетном примере параллельное ускоре-

ние составляет около 84 раз на 128 вычислителях, в то время как авторами этой модели указывается, что даже для систем с общей памятью эта модель эффективно не масштабируется более, чем на 64 вычислителя [16]. С увеличением временного интервала Т степень масштабируемости вычислений возрастает.

Расчет скоростей ветра

Расчет течений и уровня

Расчет волнения

Параметризация результатов расчетов

Балансировка с использованием банка задач *

\ Г - Декомпозиция по времени Декомпозиция по пространству

1 ^ ''' 1 Пересылка данных при изменении перекрытия

Декомпозиция по времени Декомпозиция по пространству

Перераспределение рядов характеристик \

Декомпозиция рядов по времени

Статистический анализ

Использование параллелизма ОрепМР

Композиция данных

Последовательная реализация

Балансировка с использованием банка задач *

Model

(Н)

Decomp.

(Н) + TTranslatim(н) + ?Add.(5)| ( Конец )

Y? (Н) ^ opt.

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

Таблица 1. Анализ оптимальной схемы распараллеливания по данным вычислительных экспериментов (общее ускорение на 128 вычислителях - 83 раза)

Функциональный компонент Схема распараллеливания Модельное время работы, с Измеренное время работы, с Относительная ошибка, % Ускорение

Расчет ветра 16x8x1 106 102 4 71

Модель SWAN 16x1x8 4749 4699 1 84

Модель течений и уровня 16x8x1 1999 2175 8 70

Статистическое обобщение 16x2x4 726 719 1 127

Организация доступа к данным

Поскольку функционирование комплекса связано с оперированием большими объемами информации, в рамках данной задачи применяется технология REST, ориен-

тированная на обеспечение эффективного представления ресурсов [17]. Доступ к ресурсам обладает фиксированным интерфейсом, что обеспечивает унификацию ресурсов и упрощает взаимодействие с пользователем. Совместное использование технологий SOA и REST позволяет добиться организации унифицированного доступа к различным данным, используемым программным комплексом. На рис. 1 ряд рассмотренных сервисов (подсистема управления данными) отвечает за организацию доступа к большим объемам данных, необходимых для работы программного комплекса. Несмотря на то, что для коммерческого программного обеспечения традиционным способом хранения данных являются реляционные базы данных, для представления расчетной гидрометеорологической информации эффективнее использовать файловые форматы GRIB и NetCDF. Однако каждому из расчетных файлов сопоставляются метаданные (характеристики сетки, условия расчета и пр.), которые допустимо хранить в реляционной базе данных.

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

Заключение

Таким образом, в работе обоснована онтология сервисов, необходимых для формализации структуры программного комплекса моделирования экстремальных гидро-метерологических явлений на базе SOA. Предложен принцип организации интеллектуальной подсистемы отображения параллельных вычислительных алгоритмов на заданную аппаратную архитектуру с целью достижения наибольшей производительности; разработаны механизмы оптимизации времени выполнения задачи на основе обхода графа параллельной реализации расчетной схемы. Продемонстрирована эффективность предложенных методов организации динамической параллельной архитектуры программного комплекса на примере расчетов экстремальных характеристик ветра, волнения, течений и уровня Каспийского моря. В работе [19] обсуждаются вопросы интерпретации и использования полученных результатов.

Литература

1. Соммервилл И. Инженерия программного обеспечения. - 6-е изд. / Пер. с англ. -М.: Издательский дом «Вильямс», 2002.- 624 с.

2. Вирт Н. Алгоритмы + структуры данных = программы. - М.: Мир, 1985. - 406 с.

3. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд. / Пер. с англ. - М.: «Бином». - СПб: «Невский диалект», 1999. - 560 с.

4. Szyperski C. Component Software: Beyond Object-Oriented Programming. - Addison-Wesley Professional, 1998. - 411 p.

5. Lublinsky B. Defining SOA as an architectural style. 9 January 2007. - Режим доступа: http://www.ibm.com/developerworks/architecture/library/ar-soastyle/, свободный.

6. Fielding R.T. Architectural Styles and the Design of Network-based Software Architectures: Doctoral thesis / University of California. - Irvine, 2000. - 162 p.

7. Navasa A., Pérez M.A., Murillo J.M. Aspect Modelling at Architecture Design // Lecture Notes in Computer Science. - 2005. - Vol. 3527. - Р. 41-58.

8. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. - СПб: Питер, 2002.- 496 с.

9. Carver J.C., Kendall R.P., Squires S.E., et al. Software Development Environments for Scientific and Engineering Software: A Series of Case Studies // Proceedings of the 29th International Conference on Software Engineering. - Washington, DC, USA. - IEEE Computer Society Press, 2007. - P. 550-559.

10. Sessions R. COM and DCOM: Microsoft's Vision for Distributed Objects. - New York, USA: John Wiley & Sons, 1998.- 492 p.

11. Object Management Group. OMG's CORBA website. - Режим доступа: http://www.corba.org, свободный.

12. Matena V., Stearns B. Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform. - Prentice Hall, 2000. - 464 p.

13. Bernholdt D.E., Elwasif W.R., Kohl J.A., Epperly T.G.W. A Component Architecture for High-Performance Computing // Proceedings of the Workshop on Performance Optimization via High-Level Languages and Libraries, New York, USA, 22 June 2002. - Режим доступа: http://www.ece.lsu.edu/jxr/pohll-02/papers/bernholdt.pdf , свободный.

14. Бухановский А.В. и др. Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. Часть I: Постановка задачи, модели, методы и параллельные алгоритмы // Научно-технический вестник СПбГУ ИТМО. - 2008. - Вып. 54. - С. 56-63.

15. Ковальчук С.В. Особенности проектирования высокопроизводительных программных комплексов для моделирования сложных систем // Информационно-управляющие системы. - 2008. - № 3. - С. 10-18.

16. John E. Cazes, Tim Campbell, Erick Rogers. OpenMP Parallel Implementation of SWAN // Navo MSRC Navigator. - 2001. - Vol. 13.

17. Vinoski S. REST Eye for the SOA Guy // IEEE Internet Computing. - 2007. - Vol. 11. -№ 1. - P. 82-84.

18. Obasanjo D. XML Serialization in the .NET Framework // Microsoft MSDN Library. 23 January 2003. - Режим доступа http://msdn2.microsoft.com/en-us/library/ms950721.aspx, свободный.

19. Иванов С. В. и др. Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. Часть III: Интерпретация и использование результатов расчетов // Научно-технический вестник СПбГУ ИТМО. - 2008. - Вып. 54. - С. 72-79.

Ковальчук Сергей Валерьевич

Иванов Сергей Владимирович

Бухановский Александр Валерьевич

Санкт-Петербургский государственный университет информационных технологий, механики и оптики, м.н.с., [email protected]

Санкт-Петербургский государственный университет информационных технологий, механики и оптики, м.н.с., [email protected]

Санкт-Петербургский государственный университет информационных технологий, механики и оптики, д.т.н., профессор, [email protected]

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