Интеллектуальный грид-сервис для решения задач статистического прогнозирования

Опубликовано: 
Кибернетика и вычислительная техника. Межведомственный сборник трудов. Киев 2010. Вып.162.-С.94-102

Введение. В основном грид-сети построены на базе существующих вычислительных кластеров. Так Украинский Академический грид (УАГ) [1] состоит из вычислительных кластеров и систем хранения данных, принадлежащих организациям Национальной Академии Наук Украины. И дальше в Украине идет развитие грид-вычислений. Так, в 2009 г. принята целевая программа, согласно которой в запланировано создать Национальный грид на основе УАГ [2].

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

Можно сказать, что ключевым понятием многих грид-систем является грид-сервис или грид-служба. Согласно материалам OpenScienceGrid[5] грид-сервис определен как способ доступа к ресурсу или агенту. Сервис – программный компонент, к которому можно удаленно обратиться посредством компьютерной сети, и который предоставляет функциональность запрашивающей стороне.

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

Предложенное решение

Под грид-сервисами будем понимать предоставляемое пользователям компьютерное оборудование и программное обеспечение, включающее (но не ограничиващееся), следующие службы: интерфейсы пользователя - UI, вычислительные элементы - CE, информационные сервисы - IS, протоколирование и учет - LBS, ресурс-брокеры RBrokers, каталоги реплик - RC, элементы хранения данных - SEи сервисы управления виртуальными организациями - VOMS. Грид-сервис предоставляет пользователю определенный программный интерфейс, который можно представить в терминах объектно-ориентированной парадигмы. Методы, определенные в программном интерфейсе, можно удаленно вызвать через сеть, соединяющую грид-узлы, например Интернет. Обычно для связи между грид-узлами и грид-сервисами используется Интернет. Интернет и грид связаны между собой, но это – разные технологии. Как глобальная система сетей Интернет, соединяет множество компьютеров и других сетей и позволяет им взаимодействовать. Веб – это способ доступа к информации, находящейся на удаленном, но включенном в Интернет компьютере (любой мощности). Грид – способ совместного использования вычислительных ресурсов и ресурсов хранения данных, распределенных по разным, территориально удаленным компьютерам большой мощности.

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

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

Открытая архитектура грид-сервисов OGSA (OpenGridServiceArchitecture) является концепцией организации и технологии обеспечения грид-сервисов. Причем их рассматривают как «надстройку» над Web-сервисами. Реализация OGSA осуществляется через набор инструментальных средств (GT), входящих в состав OGSI (OpenGridServiceInitiative) и ранее одобренных Всемирным грид-форумом GGF.

Ключевым понятием грид-системы на основе специализированного программного обеспечения Globusявляется грид-сервис. ППО является надстройкой (расширением) операционной системы вычислительных узлов Grid-системы и реализует основные сервисы грид-системы [11]. Пакет GlobusToolkit(GT)  от сообщества GlobusAlliance, был одним из первых программным продуктом для построения грид-сетей. В настоящее время на базе GTсоздано несколько проектов middleware, использующих часть функциональности GT. Например, gLiteразработан в рамках проекта EGEEили NorduGridи успешно используется в УАГ.  В таблице 1приведен список основных грид-сервисов GTс описанием их функциональности.

Таблица 

1.Функции основных грид-сервисов GT

Тип Grid‑сервиса

Название функции

Описание

WS‑MDS

Предоставление данных индекс‑сервису

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

GridFTP

Получение файлов из ресурса

Обеспечивает передачу файлов с некоторого ресурса

Передача файлов к ресурсу

Обеспечивает передачу файлов к некоторому ресурсу

RFT

Получение файлов из ресурса

Обеспечивает передачу файлов с некоторого ресурса

Передача файлов к ресурсу

Обеспечивает передачу файлов к некоторому ресурсу

Проверка статуса передачи большого файла

Обеспечивает мониторинг пакетных передач файлов

Удаление файлов на ресурсе

Обеспечивает удаление файлов

GRAM

Выполнение простой задачи без и с передачей файлов к ресурсу

Обеспечивает запуск, планирование и выполнение простых задач, в том числе с передачей файлов с и к ресурсу, для выполнения задачи

Выполнение потоковой задачи

Обеспечивает запуск, планирование, выполнение и контроль потоков ввода/вывода для потоковых задач

Выполнение MPI‑задачи

Обеспечивает запуск, планирование и выполнение MPI‑задач

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

Рис. 1. Модель прикладного грид-сервиса

При таком подходе пользователь создает источники данных (например, файлы) с входными данными, создает паспорт задания, куда заносит параметры обработки данных, в описании грид-задания указывает название грид-сервиса, как Runtime Environment  и направляет задачу на выполнение в грид-сеть. По завершении задания пользователь получает выходные данные (результат) и протокол обработки данных, в котором с определённой степенью детализации указано, насколько успешно выполнена обработка. На рис. 2показана UML-диаграмма процесса обработки данных.

Рис. 2. UML-диаграмма процесса обработки данных.

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

По такому принципу, в рамках выполнения тематического плана по созданию Национального Грида разработаны грид-сервис  PREDICTOR и интеллектуальная библиотека решения задач статистического анализа эконометрических (временных) рядов. Которые установлены на узле ресурсного центра УАГ ICYBSCIT-3, работающего на кластере СКИТ-3 [7, 8] Института кибернетики им. В.М. Глушкова НАН Украины. Как один из мощных кластеров СКИТ-3 в УАГ предоставляет пользователям оригинальное интеллектуальное программное обеспечение, например,  библиотека численных алгоритмовlibinpar, библиотека libapprox для построения разных способов аппроксимации функций одной или нескольких переменных, библиотека predictor.

Назначение грид-сервиса Predictor – статистическое прогнозирование в бизнес-расчетах,  например, с целью анализа объемов предполагаемых продаж, выбора ассортимента товаров и услуг по спрогнозированным ценам,  удовлетворения потребностей в численности персонала.  Основные направления использования  пакета – Finance  (финансы); Planning  (планирование);  Pricing (ценообразование);  Marketing (маркетинг); Production (производство); Operations Stock (фонды, склады);  Demand (спрос на товары и услуги);  Personal (потребность в кадрах).

В Predictorреализованы 26 методов прогнозирования, среди которых назовем простые и линейные скользящие средние; сглаживание простое, адаптивное, линейное по Холту, линейное по Брауну, квадратичное по Брауну, аддитивное сезонное по Винтерзу, сезонное по Холту-Винтерзу, сезонное по Брауну-Харриссону; регрессия: авторегрессия, S-кривые, кривая Гомпертца, логистическая кривая, популярные и определяемые пользователем тренды; методология Бокса-Дженкинса, ARARMA, ARIMA-модели с сезонностью в ARи MA, обобщенная адаптивная фильтрация GAF; множественная регрессия; нейронные сети.  Поддерживается динамическое прогнозирование по мере поступления  данных, управление сценариями и повторное их использование. Наряду с документацией, в поставку пакета входит много тестовых примеров.

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

Согласно рис. 1 грид-сервис  PREDICTORсостоит из интерфейсного модуля Predictorи одноименной библиотеки. В библиотеке собраны более 26 методов статистического прогнозирования, а также функции интегральной оценки, допускающие автоматический выбор лучших методов прогнозирования наборов данных [9], см. подробнее авторское свидетельство [10].

Библиотека Predictor предназначена для работы на вычислительном кластере с использованием MPI или в грид-сети. Библиотека Predictor дает пользователю возможность использовать готовые приложения из пакета для быстрого прогнозирования или создания своего приложения, которое будет использовать функции библиотеки Predictor, используя мощь кластера СКИТ-3 в параллельном режиме MPI.

Интерфейсный модуль состоит из функций обработки паспорта задания и из интерфейсного класса CPredictor, в котором реализованы основные функции взаимодействия элементов библиотеки, и взаимодействие с пользователем. На рис. 3показана структура классов и взаимодействие объектов сервиса и библиотеки.

Рис. 3. UML-диаграмма структуры классов

Грид-сервис PREDICTOR может работать как полностью в автономном и автоматическом режиме, так и в режиме, когда пользователь может вызывать только определенные блоки обработки данных.

Для использования грид-сервиса PREDICTOR необходимо создать паспорт задания для интерфейсной программы.

Паспорт задания для PREDICTOR описывается в текстовом файле:

[PREDICTOR]

[Files]                                       - секция файлы

FileInput=y_in.txt;                   - файл с входными данными

FileOutput=y_out.txt;             - файл с результатом построения прогноза

FileRes=y_res.txt;                    - файл с результатом подбора методов прогнозирования

[MakeForecast]                        - секция параметры прогнозирования

SeasonNum=1;                         - к-во сезонов

HorizontNum=3;                      - глубина (горизонт) прогноза

NumBestRes=4;                       - к-во методов с лучшим результатом прогноза

Паспорт задания для грид-сети с установленным на узле грид-сервисом PREDICTOR выглядит так:

&(executable="run_predictor")

(arguments="zadanie.ini")

(inputfiles=

            ("zadanie.ini" "zadanie.ini")

            ("y_in.txt" "y_in.txt"))

(outputfiles=

            ("y_out.txt" "y_out.txt")

            ("y_res.txt" "y_res.txt"))

(jobname=prognoz)

(stdout=stdout.txt)

(stderr=stderr.txt)

(cpuTime="240")

(count=16)

(runTimeEnvironment="PREDICTOR")

 

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

Рис. 4. Список пакетов грид-узла СКИТ-3.

Для построения прогноза, с использованием грид-узлов, на которых нет установленного сервиса PREDICTOR, можно задание использовать так:

&(executable="./predictor")

(arguments="zadanie.ini")

(inputfiles=

            ("zadanie.ini" "zadanie.ini")

            ("y_in.txt" "y_in.txt")

            ("predictor" "gsiftp://nordug.bitp.kiev.ua/predictor/predictor"))

(outputfiles=

            ("y_out.txt" "y_out.txt")

            ("y_res.txt" "y_res.txt"))

(jobname=prognoz)

(stdout=stdout.txt)

(stderr=stderr.txt)

 

В этом задании убран атрибут runTimeEnvironment идобавлен путь к программе("predictor" "gsiftp://nordug.bitp.kiev.ua/predictor/predictor"). Тогда программа выполняется без распараллеливания.

Грид-сервис можно установить на любом грид-узле. Для запуска описанных заданий пользователь может использовать рабочую станцию cпопулярными операционными системами, посколь UIуже есть для большинства операционных систем. Пример такого UI– KnowARC – работает под Linux(RedHat, Fedora, Ubuntu, Debian), Windows(XP, Vista, 7), MacOS(Leopard, SnowLeopard) и может запускать задания на ARC, gLite, GT. Можно использовать web-интерфейс для запуска заданий типа GridSphere.

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

Задача статистического прогнозирования актуальна для многих предприятий. И если по какой-то причине пользователи не работают в грид-сети, можно использовать сервис PREDICTOR для пользователей кластера СКИТ-3 через традиционный доступ.

Пользователи кластера СКИТ-3, разрабатывающие свои приложения для выполнения на кластере или в грид-сети, могут использовать библиотеку libpredictor. Чтобы построить прогноз на СКИТ-3 с использованием функций и классов из библиотеки libpredictor, необходимо написать main-программу для среды параллельного программирования MPI с обращением к библиотеке libpredictor. Функции написаны на языке С++ для компьютеров MIMD-архитектуры.

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

Грид-сервис PREDICTORможет быть применен для решения и системных задач, например: прогнозирование состояния локальной очереди задач кластерного комплекса; или при использовании данных о работе грид-сетей, за определенный период [12], прогнозирует состояние грид-узлов, грид-очереди. На рис. 5показан пример прогнозирования среднего за день числа выполняемых задач на кластере СКИТ-3. Данные за июль месяц 2010 [12].

Рис. 5. Прогнозирование среднедневной загрузки СКИТ-3.

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

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

Литература

1. Украинский Академический Грид. - http://grid.bitp.kiev.ua/

2. Державна цільова науково-технічна програма впровадження і застосування грід-технологійна 2009-2013 роки. – http://grid.bitp.kiev.ua/images/stories/GRID/docs/programa.pdf

3. I. Foster et al. The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration.TR Glous Project. –http://www.globus.org/research/papers/ogsa.pdf

4Christensen E. et al. Web Services Description Language 1.1, W3C Note. –http://www.w3.org/TR/wsdl. – 2001 15 Mar.

5. OSG Glossary.–https://twiki.grid.iu.edu/twiki/bin/view/Documentation/Glossa­ryOfTerms

6.  Marco Aldinucci, Marco Danelutto, Giorgio Zoppi, Peter Kilpatrick. Advances in autonomic components & services. From Grids to Service and Pervasive Computing, Springer, August 2008.

7. Коваль В., Сергiєнко I. СКIТ - український суперкомп'ютерний проект //Вiсник НАН України. – №8, 2005. – С. 3-13.

8. СКИТ-3 - http://icybcluster.org.ua/

9. Интеллектуальные пакеты статистического прогнозирования /О.Л Перевозчикова, И.Н. Пшoнковская, Т.К. Терзян, В.Г. Тульчинский и др. // Упр. системы и машины. - 1997. - №6. - C. 56-67.

10. Лавренюк С.И., Перевозчикова О.Л., Тульчинский В.Г., Харченко А.В. Комп‘ютерна програма «Програмний пакет PREDICTOR для автоматичної побудови числових прогнозів» - Свідоцтво про реєстрацію авторського права на твір №33934 від 30.06.2010.

11. Лавренюк С.И., Бандура А.Ю., Горенко С.А. Сравнение и выбор грид-инфраструктуры // Розподілені комп‘ютерні системи . Т1. Збірн. праць ювіл. міжнар. науково-практичн. конф. РКС-2010. - Київ, НТУУ «КПІ», 6-8 квітня 2010. -200 с. – С-32-35

12. Лавренюк С.И., Лавренюк А.Н., Грипич Ю.А. Построение базы данных мониторинга состояния узлов grid-инфраструктуры. Материалы тр. 6-й междунар. конф. «Теоретические та прикладные аспекты построения программных систем» – TAAPSD’ 2009 Киев, 09-10 декабря 2009 г., - С. 124-131.

Аннотация: 

Рассмотрен пример создания программного обеспечения для грид-сетей в виде прикладных сервисов, основанных на компонентной технологии. Так компоненты грид-сервиса Predictor, который описан в данной статье, используются не только в грид-сети, но и локальными пользователями вычислительного кластера СКИТ-3. Кроме решения прикладных задач пользователей – статистическое прогнозирование, грид-сервис успешно решает системные задачи по прогнозированию состояния грид-узлов и очередей задач: локальной, грид-очереди.