УДК 004.4'22, 681.324
ИНСТРУМЕНТАЛЬНАЯ ОБОЛОЧКА ПРОЕКТИРОВАНИЯ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ПРИЛОЖЕНИЙ В СРЕДЕ ГРИД. ЧАСТЬ I: БАЗОВЫЕ ПОЛОЖЕНИЯ А.В. Ларченко, А.В. Дунаев, А.В. Бухановский
Рассматриваются особенности разработки высокопроизводительных приложений на основе прикладных Грид-сервисов. Предложен способ формализации процесса проектирования в виде графовой структуры потоков заданий (workflow) с последовательно уточняемыми характеристиками. Обоснована целесообразность поддержки принятия решений разработчика в среде Грид посредством использования интеллектуальной системы и предложена ее принципиальная архитектура.
Ключевые слова: Грид, проектирование, интеллектуальная система, высокопроизводительные вычисления.
Введение
На современном этапе развития технологий распределенных вычислений и систем под Грид подразумевается географически распределенная, согласованная, открытая и стандартизованная среда разделения вычислительных и информационных ресурсов [1]. Это понятие обобщает частные определения, независимо сформулированные I. Foster и С. Kesselman [2] и M. Livny [3], которые, по мере внедрения технологий Грид в научно-исследовательскую и производственную практику, расширяются и модифицируются. В настоящее время наиболее привычной является инфраструктурная интерпретация Грид как среды, предоставляющей совокупность высокопроизводительных вычислительных ресурсов для выполнения независимых задач различных пользователей [4]. Однако в рамках концепции [1] допустим альтернативный подход, который рассматривает Грид как специфическую («мягкую», soft) среду параллельных вычислений, наряду с более традиционными (например, кластерными, SMP, гибридными, P2P) параллельными архитектурами.
Проблема эффективной организации параллельных вычислений в Грид связана с необходимостью объединения и синхронизации большого количества вычислительных систем для решения одной задачи. Решение этой проблемы связано с учетом ряда специфических факторов, в общем случае отрицательно влияющих на параллельную производительность. К ним относятся неоднородность вычислительных ресурсов и стохастическая изменчивость параметров коммуникационных сетей и вычислительных систем, характеризуемая нестационарным поведением во времени [5]. Потому принципы проектирования эффективных параллельных вычислительных приложений в Грид существенно отличаются от традиционных подходов, характерных, например, для кластерных систем [6]. Как следствие, «ручной» процесс разработки таких приложений является весьма трудоемким и требует высокой квалификации разработчиков. Это ограничение может быть отчасти устранено за счет развития специализированного программного инструментария (технологических сред и оболочек проектирования), в частности, инструментальных оболочек семейства PEG (Parallel Execution on the Grid). В данной статье представлен способ формализации процесса проектирования композитных приложений в Грид и обоснована концептуальная схема оболочки PEG как интеллектуальной системы поддержки принятия решений.
Процесс проектирования вычислительных приложений в среде Грид
Целью проектирования является формализация и обоснование внутренней структуры приложения (элементов и связей между ними), обеспечивающей оптимальные значения характеристик выполнения с точки зрения пользователя при заданных огра-
ничениях. Применительно к задачам высокопроизводительных вычислений такими характеристиками являются общее время выполнения, а также связанные с ним параллельное ускорение и эффективность. Эти величины совокупно зависят от особенностей применяемых параллельных алгоритмов, характеристик исходных данных и специфики параллельной вычислительной архитектуры [7].
Современный подход к задаче проектирования технических объектов и сооружений традиционно формулируется в терминах задачи многокритериальной оптимизации. Она заключается в определении оптимальных характеристик системы с точки зрения удовлетворения различным, зачастую противоречивым или взаимозависимым требованиям. В области проектирования программного обеспечения в настоящее время такая постановка не является традиционной; основным инструментом проектирования остается использование полуинтуитивных подходов, основанных на использовании шаблонов [14], проверочных списков [15] или инструментария специальных парадигм программирования [16]. Это связано как с многообразием форм требований к программному обеспечению (пользовательские, функциональные, к надежности, к безопасности и пр.), так и с достаточно слабым уровнем формализации многих из них. Однако для такой области, как высокопроизводительные вычисления, ведущей характеристикой является собственно производительность (выражаемая через время выполнения задачи, параллельное ускорение, реактивность или эффективность приложения), которая находится в однозначном соответствии с характеристиками данных, спецификой алгоритма и особенностями вычислительной среды.
Отличительной особенностью процесса проектирования приложений в Грид является изначальная ориентация на использование предметно-ориентированных вычислительных компонентов - прикладных Грид-сервисов (ПГС). Под ПГС подразумевается прикладная программа, зарегистрированная в Грид посредством ее оборачивания (wrapping) соответствующей сервисной оболочкой и размещения на вычислительном узле, которая позволяет использовать ПГС другим системным и прикладным сервисам.
Организация процесса проектирования в значительной степени зависит от способа формального описания композитного приложения. Для описания приложений в Грид допустимо использовать нотацию потоков задач, или workflow (WF) [8]. WF представляет собой набор блоков, соответствующих основным операциям, реализуемым ПГС, и взаимосвязей между ними, определяющих обмен данными. В отличие от блок-схем алгоритмов, в WF очередность операций задана неявно и подчиняется принципу передачи управления по наличию исходных данных для блоков. Это качество является принципиальным для описания выполнения вычислительных задач в Грид в силу неконтролируемой изменчивости производительности вычислительных узлов и пропускной способности коммуникационной среды.
На рис. 1 изображен процесс проектирования приложений в среде Грид в виде последовательного уточнения заданного пользователем WF. На начальном этапе пользователь описывает постановку задачи в терминах своей предметной области, создавая семантическое описание композитного приложения, или мета-workflow (MWF), без указания условий ее выполнения в Грид. Второй этап проектирования состоит в переходе к описанию в терминах абстрактного workflow (AWF). AWF отличается от MWF тем, что неопределенное описание сервисов в терминах предметной области заменено указаниями на метасервисы. Метасервисы являются обобщением ПГС, объединяя в себе свойства прикладных программ нескольких ПГС без учета особенностей реализации на конкретных вычислительных узлах. Метасервисы подбираются посредством семантического поиска в Грид на основе пользовательских критериев (требований к функциональным характеристикам, ресурсоемкости, точности и пр.) Третьим этапом проектирования является конкретизация WF до уровня конкретного workflow (CWF) с целью формирования оптимальной по производительности архитектуры ком-
позитного приложения. При этом базовыми механизмами формирования оптимальной параллельной программной архитектуры такого приложения являются выбор конкретных сервисов, выбор эффективных способов распараллеливания по каждому из сервисов (внутренний параллелизм), выбор эффективных способов распараллеливания на уровне композитного приложения, статическая и динамическая балансировки, миграция задач между узлами в Грид и пр. Описание приложения в форме CWF эквивалентно алгоритмической записи, что позволяет автоматически генерировать сценарий исполнения, который может быть использован непосредственно для запуска в Грид.
Практическая реализация процесса проектирования (рис. 1) ограничена лишь достаточно простыми приложениями, состоящими из небольшого количества ПГС, объединенных в WF простой (преимущественно линейной) структуры. Увеличение количества ПГС в условиях неопределенности, характерной для параметров среды Грид, приводит к неполиномиальному усложнению переходов MWF-AWF и AWF-CWF. Сто-хастичность параметров Грид требует применения специфических методов проектирования, предназначенных для работы в условиях неопределенности входных данных и слабой формализации постановки задачи.
Рис. 1. Процесс проектирования вычислительных приложений в среде Грид Проектирование приложений в Грид как задача искусственного интеллекта
В общем случае преимущества выбора механизмов (или их комбинации) формирования оптимальной архитектуры неочевидны в силу относительно слабой формализации требований и ограничений, изменчивости внешней среды (в данном случае - инфраструктуры Грид) и неопределенности характеристик задачи. Как следствие, решение такой задачи целесообразно осуществлять не формальными методами, а средствами искусственного интеллекта [9]. В соответствии с критериями из [9], это обусловлено тем, что:
- не представляется возможным разработать количественную модель производительности приложений, применимую к различным классам параллельных вычислительных архитектур и видам приложений. Предлагаемые решения носят частный характер; условия их применимости для других архитектур дискуссионны [10];
Метасервисы
Хранилища
- создание моделей производительности ПГС является прерогативой их разработчиков, которые в данном случае выступают как эксперты;
- решение задачи проектирования, по сути, сводится к проблеме прогнозирования, или предсказания характеристик разрабатываемого приложения на этапе описания и обоснования его структуры;
- данные, характеризующие условия эксплуатации композитного приложения, за-шумлены за счет стохастической изменчивости характеристик среды Грид;
- задачу проектирования в рамках процесса, изображенного на рис. 1, допустимо решать методом формальных рассуждений - путем выбора наиболее адекватного образца из ограниченного набора вариантов, удовлетворяющих формальным требованиям (пользовательским или системным) как на уровне AWF, так и на уровне
Как следствие, программный инструментарий реализации процесса проектирования в заданной предметной области должен быть реализован в форме интеллектуальной системы поддержки принятия решений (ИСППР). Понятие ИС связано со способностью компьютерной программы решать сложные, трудно формализуемые задачи, способностью к обучению, обобщению и аналогиям с возможностью взаимодействия с внешней средой. Применительно к задаче проектирования композитных приложений в качестве внешней среды выступает сама среда Грид. В табл. 1 отмечены основные черты Грид, которые, в соответствии с критериями [11], обосновывают целесообразность применения ИСППР реального времени.
Таблица 1. Особенности среды Грид, обосновывающие применение ИСППР
Взаимодействие управляющих систем с внешним миром Взаимодействие ИСИИР с Грид посредством мониторинга и управления выполнением
Совершенствование собственного поведения в ходе работы Оценка опыта предыдущих запусков для адаптации к изменениям Грид
Механизмы прогноза изменений собственного поведения и поведения внешнего мира Прогнозирование производительности с учетом стохастического характера Грид
Наличие многоуровневой иерархической структуры Наличие иерархического параллелизма (multicore, GPGPU, MPI)
Сохраняемость функционирования при отказе некоторых подсистем Адаптивный ответ на сбои выполнения (миграция, перепланирование)
Отличительной чертой ИСППР является наличие базы знаний (БЗ), на интерпретации которой основан принцип действия системы. БЗ, определяющая процесс проектирования приложений в Грид, является распределенной; ее фрагменты (локальные БЗ, или ЛБЗ) ассоциированы с ПГС. БЗ содержит две категории знаний: предметно-ориентированные (декларативные) описания сервисов, зарегистрированных в Грид, и знания об их параллельной производительности. Последние включают в себя метазнания (информацию о структуре закономерностей, условия применимости, решающие знания), а также собственно предметные знания, или факты, в форме конкретных моделей производительности, таблиц и аппроксимаций, связывающих время выполнения задачи с характеристиками входных и выходных данных и параметрами вычислительной среды. Приобретение знаний (как процесс их передачи от эксперта или из других источников в БЗ) выполняется как непосредственно при разработке проблемно-ориентированных модулей, так и в процессе самообучения системы по результатам работы индуктивных программ имитационного моделирования вычислительных процессов в Грид [12].
Помимо этого, система имеет обратную связь с пользователем и поддерживает при необходимости диалог с ним на языке его предметной области на всех этапах создания описания, его интерпретации и выполнения. Это необходимо в следующих случаях:
- при недостатке знаний для построения процесса вычислений по данным, ограничениям и критериям, которые указал пользователь. В этом случае система должна определить, каких именно знаний не хватает, и предложить варианты их восполнения, если таковые возможны;
- в случае необходимости участия пользователя для осуществления явного выбора среди предложенных системой альтернатив. Это может объясняться желанием пользователя в некоторых случаях иметь более полный контроль над работой интеллектуальной системы, корректируя процесс вывода в тех местах, в которых он хочет самостоятельно производить выбор. Примером может служить предложение системой ранжированного по некоторым параметрам (время прогнозируемого исполнения, точность и пр.) списка альтернативных расписаний для «ручного» выбора;
- в случае возникновения критических ситуаций, когда требуется непосредственное участие пользователя - при сбоях в Грид, при значительном отставании от составленного прогноза и пр.
- в других особых случаях, когда избежать устранения пользователя от участия невозможно.
Принцип действия интеллектуальной системы поддержки принятия решений разработчика высокопроизводительных приложений в среде Грид
На рис. 2 приведена концептуальная схема, иллюстрирующая принцип действия ИСППР разработчика высокопроизводительных приложений в Грид. Человеко-компьютерное взаимодействие в ИСППР осуществляется через оболочку визуального проектирования, в которой пользователь описывает композитное приложение в форме MWF, используя специально разработанную графическую нотацию. На первом этапе работы ИСППР выполняется интерпретация MWF, на основании которой осуществляется семантический поиск сервисов, зарегистрированных в Грид, в рамках заданной предметной области.
Таким образом, создается набор активных ПГС, установленных на конкретных вычислительных системах, входящих в Грид, и готовых к использованию. Результатом является набор AWF, построенных с использованием метасервисов, формально подходящих под пользовательские критерии. Второй этап работы ИСППР связан с осуществлением логического вывода, который представляет собой создание расписания, оптимального с точки зрения критериев пользователя. Для этого используются экспертные знания о производительности ПГС, предоставляемые их разработчиками при регистрации сервиса в Грид, например, в форме параметрической модели времени выполнения в зависимости от параметров задачи и характеристик вычислительной системы. Используя данные мониторинга текущего состояния Грид и известные характеристики пользовательской задачи, на основе этих знаний оценивается время выполнения конкретных ПГС, т.е. формируется набор активных фактов, описывающих различные альтернативы. Эти факты используются для построения системы конкурирующих расписаний; при этом конкуренция обусловлена как различными эвристиками, применяемыми для ускорения процесса построения расписания, так и разнообразием AWF, порождаемых одним MWF в силу применения различных способов распределения данных, балансировки и других механизмов управления параллельной производительностью. Как следствие, выбор оптимального расписания требует выполнения процедуры сопоставления альтернатив путем их ранжирования в условиях неопределенности входных данных,
стохастической изменчивости параметров Грид и экспертного характера знаний о производительности ПГС. Это ранжирование выполняется на основании сопоставления распределений времени работы для каждого из расписаний с учетом ошибки мисклас-сификации. Процесс сопоставления проиллюстрирован в [13].
'Формальное графическое описание приложения в
со к
03 СЛ
ГО и-
о V
03 о_ к О
о.
о
Компонент семантического поиска сервисов
Компонент логического вывода I - построение конкурирующих расписаний
База знаний I: Предметно-ориентированное описание сервисов, зарегистрированных в Грид
База знаний II: Характеристики производительности вычислительных сервисов, зарегистрированных в Грид
Набор активных фактов
Усиление логического вывода за счет приобретения дополнительных знаний
Генератор композитного приложения
I
Композитное приложение в Грид
¡2 ш
03 О
I- I-
_о о)
5.5
СО 05
0) О. 0_
I
Исполнитель композитного приложения
I
Монитор исполнения приложения
х 0) сг
О)
=г 0) о.
сг о т л СП
11 II
о о. о. с 1=
о >>
X
0) 3" ю о ю О
СО
База данных статистики запусков (по сервисам и приложениям)
Монитор состояния вычислительной среды
Рис. 2. Концептуальная схема ИСППР разработчика высокопроизводительных
приложений в среде Грид
В результате пользователю предлагается один или несколько (в том случае, если достоверно нельзя отдать приоритет ни одному) CWF. Каждый CWF является полным описанием параллельного выполнения задачи в Грид. Таким образом, пользователь может непосредственно трансформировать CWF в соответствующие сценарии и отправить на выполнение в Грид. Результатом выполнения сценария является набор данных, который отправляется в указанное хранилище Грид или на машину пользователя.
Существенным отличием данной ИСППР от традиционных экспертных систем является наличие адаптивной компоненты, которая позволяет усиливать процедуру логического вывода системы за счет приобретения дополнительных знаний в ходе ее функционирования. Дополнительные знания могут приобретаться косвенным путем за счет использования следующих возможностей:
- поиск прецедентов - система осуществляет поиск знаний о предыдущих запусках и на их основании делает вывод;
- имитационное моделирование - система может произвести моделирование процесса вычислений с помощью симулятора Грид и основывать свой вывод на его результатах;
- тестирование и профилирование - производятся отдельные запуски программных модулей сервисов с участием эксперта, который по оценкам этих запусков самостоятельно пополнит базу знаний.
При этом динамически формируется и обновляется база данных статистики предыдущих запусков; ее анализ позволяет не только уточнить интерпретируемую информацию (например, коэффициенты моделей производительности), но и судить о качестве знаний, предоставляемых экспертами, регулируя соответствующие коэффициенты достоверности. Таким образом, предлагаемая ИСППР позволяет автоматизировать процесс разработки параллельных приложений в Грид даже в условиях существенной неопределенности, когда разработчик не сообщает достоверной информации о производительности своих ПГС.
Заключение
Проектирование высокопроизводительных приложений в Грид является сложным и ресурсоемким процессом, требующим высокой квалификации разработчика и специализированного программного инструментария. Неполнота исходной информации о характеристиках ПГС и стохастическая изменчивость характеристик среды Грид оправдывают решение задачи проектирования средствами искусственного интеллекта. Предложенная концепция ИСПРР реального времени позволяет описать задачу проектирования в рамках последовательности MWF-AWF-CWF, автоматизируя процесс разработки композитных приложений на основе ПГС и гибко управляя их параллельной производительностью, исходя из конкретных условий эксплуатации инфраструктуры Грид. Особенности программной реализации и примеры функционирования ИСППР приведены в работах [12, 13].
Работа выполнена в рамках НИР 2007-4-1.4-20-01-025 «Разработка инструментальной оболочки проектирования высокопроизводительных приложений для Грид-архитектур в целях создания прикладных сервисов компьютерного моделирования и обработки данных».
Литература
1. Stockinger H. Defining the Grid - a snapshot of the current view // Journal of Supercomputing. - Springer Science+Business Media. - 2007.
2. Foster I., Kesselman C. The Grid: Blueprint for a New Computing Infrastructure. -Morgan-Kaufman, 1999.
3. Thain D., Tannenbaum T., and Livny M. Condor and the Grid // Berman F. (Editor), Fox G. (Editor), Hey J.G.A. (Editor). Grid Computing: Making The Global Infrastructure a Reality. - John Wiley, 2003.
4. Дмитриев В.Ю. Сети высокопроизводительных вычислений - новое направление ИТ // JetInfo: Информационный бюллетень. Выпуск 175. - М.: Компания «Инфо-системы Джет», 2007. - 28 с.
5. Ларченко А.В., Дунаев А.В., Бухановский А.В. Инструментальная оболочка проектирования высокопроизводительных прикладных Грид-сервисов компьютерного моделирования и обработки данных // Труды Всероссийской научной конференции «Научный сервис в сети Интернет». - М.: Издательство МГУ, 2008. - С. 163.
6. Гергель В.П. Теория и практика параллельных вычислений: Учебное пособие. -М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. - 423 с.
7. Ковальчук С.В., Иванов С.В., Колыхматов И.И., Бухановский А.В. Особенности проектирования высокопроизводительных программных комплексов для моделирования сложных систем // Информационно-управляющие системы. - 2008. -№ 3. - С. 10-18.
8. Blythe J., Deelman E. et al. The Role of Planning in Grid Computing. - Режим доступа: http://www.isi.edu/~gil/papers/icaps03-submission.pdf, свободный.
9. Нечаев Ю.И. Искусственный интеллект: концепции и приложения. - СПб: Изд. СПбГМТУ, 2000. - 294 с.
10. Foster I. Designing and Building Parallel Programs: Concepts and Tools for Parallel. -Addison Wesley, 1995. - 430 p.
11. Аверкин А.Н., Гаазе-Рапопорт М.Г., Поспелов Д. А. Толковый словарь по искусственному интеллекту. - М.: Радио и связь, 1992.
12. Дунаев А.В., Ларченко А.В., Бухановский А.В. Инструментальная оболочка проектирования высокопроизводительных приложений в Грид. Часть III: Приобретение и формализация знаний // Научно-технический вестник СПбГУ ИТМО. - 2008. - Вып. 54. - С. 46-55.
13. Ларченко А.В., Дунаев А.В, Бухановский А.В. Инструментальная оболочка проектирования высокопроизводительных приложений в Грид. Часть II: Архитектура, реализация и применение // Научно-технический вестник СПбГУ ИТМО. - 2008. - Вып. 54. - С. 37-45.
14. Соммервилл И. Инженерия программного обеспечения. 6-е изд. / Пер. с англ.-М.: Издательский дом «Вильямс», 2002. - 624 с.
15. Foster I. What is the Grid. A three point checklist // GridToday. - July 22, 2002 -Vol. 1. - № 6. - Режим доступа: http://www.gridtoday.com/02/0722/100136.html, свободный.
16. Шалыто А. А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. - СПб: Наука, 2000. - 780 с.
Ларченко Алексей Викторович
Дунаев Антон Валентинович
Бухановский Александр Валерьевич
Санкт-Петербургский государственный университет информационных технологий, механики и оптики, м.н.с., [email protected] Санкт-Петербургский государственный университет информационных технологий, механики и оптики, м.н.с., [email protected]
Санкт-Петербургский государственный университет информационных технологий, механики и оптики, д.т.н., профессор, [email protected]