Архитектуры высокопроизводительных программных комплексов для моделирования сложных систем С.В. Ковальчук, И.О. Варвалюк НИИ Наукоемких компьютерных технологий, СПбГУ ИТМО
Процесс моделирования сложных систем Условия Многообразие моделей Язык программирования, платформа, степень эффективности Многообразие данных Формат хранения, место хранения, способ доступа Сложная динамическая структура взаимодействия моделей Учет особенностей архитектуры аппаратного обеспечения Желаемые результаты Эффективность функционирования Удобство управления программным комплексом Доступ к результатам вычислений Многопользовательская работа
Пример задачи Разработка высокопроизводительного программного комплекса моделирования экстремальных явлений в атмосфере и океане Работа ведется в рамках проекта ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на годы» Использование вычислительных мощностей комплекса на базе кластерной системы SGI ICE 8200 (177 узлов по 8 процессоров Intel Quad Core Xeon) Конечная цель: построение интерактивного справочника 2008НИИ Наукоемких компьютерных технологий, СПбГУИТМО Высоты волн 3% обеспеченности, возможные 1 раз в 100 лет
Организация взаимодействия моделей Модель 1 Многообразие исходных модулей Взаимодействие моделей в рамках процесса моделирования Модель 2 Модель 3 Модель 4 Работа совокупностей моделей в инфраструктуре комплекса
Применение сервисно-ориентированной архитектуры Характеристики сложных систем Множество составных частей Сложность связей Изменчивость систем Особенности моделирования Использование готовых моделей Необходимость синхронизации / сопряжения моделей Динамическая структура комплексов SOA Изолированные и унифицированные сервисы Стандартные протоколы работы с сервисами Независимость сервисов, динамическая компоновка 2008НИИ Наукоемких компьютерных технологий, СПбГУИТМО
Структура сервисов 2008НИИ Наукоемких компьютерных технологий, СПбГУИТМО
Динамическое реструктурирование сервисов Изменение структуры задания Изменение моделей Изменение связей Переопределение источников данных Динамическое построение структуры распараллеливания Миграция заданий Перенос задач в соответствии с приоритетом Полное перераспределение задач 2008НИИ Наукоемких компьютерных технологий, СПбГУИТМО
Реализация сервисов
Управления моделью Задачи Запуск модели Определение правил декомпозиции Определение ускорения модели
Управление заданиями Задачи Распределение вычислений Перераспределение/миграция Мониторинг
Процесс управления задачей
Доступ к данным Хранение Специализированные форматы (GRIB, Net) Базы данных Доступ Локальные хранилища On-Line хранилища Получение данных по запросу Унификация доступа к данным: REST Организация системы метаданных с описанием хранилища
Априорная оценка производительности Используется для определения параметров работы алгоритма Варианты использования На основании математической модели Для конкретных классов архитектур Идеализация среды исполнения Прямым моделированием Позволяет добиться большей универсальности Большие затраты времени
Итоги и перспективы Итоги Применение SOA позволяет повысить гибкость структуры высокопроизводительного программного комплекса Динамическое построение схемы распараллеливания позволяет добиться оптимального распараллеливания рабочих приложений Направления дальнейшего развития Организация сервисов взаимодействия с пользователем Обобщение принципов применения сервисно-ориентированной архитектуры в применении к разработке высокопроизводительных программных комплексов Разработка универсальной среды для построения высокопроизводительных программных комплексов 2008НИИ Наукоемких компьютерных технологий, СПбГУИТМО
Стохастическое моделирование параллельных процессов в распределенной вычислительной среде терафлопной производительности
Симуляция работы взаимосвязанной топологии задач в распределенной системе Основные требования к симулятору (в порядке убывания значимости): 1.Иерархия задач в алгоритме. 2.Возможность моделировать структуру сети. 3.Моделирование передачи информации по сети. Существующие аналоги: 1.Симуляторы работы сети(развиты хорошо, многофункциональны, и, следовательно, громоздки и сложны для модификации) – примеры:NetSim, RouterSim,Open SimMPLS. 2.Симуляторы распределения ресурсов среди взаимосвязанных задач (развиты не столь хорошо, имеют направленность на бизнес-процессы) – примеры: Rainbow, AgilPro. 3.Универсальные среды симуляции(Simulink)
Причины необходимости симуляции Разработка симулятора была вызвана следующими недостатками теоретических моделей: 1.Введение новых параметров в теоретическую модель зачастую связано со значительной перестройкой модели, что во-первых неудобно, а во-вторых повышает вероятность появления ошибки. 2.Теоретическая модель как правило строится под определенную архитектуру сети, т.е. изменение архитектуры сети может вызвать полную перестройку модели. 3.Сложность повторного использования составных частей моделиы. Единственным существенным недостатком симуляции является время работы, т.к. математические вычисления также заложены в симуляцию, но помимо них ещё присутствует много действий с объектами.
Схема работы симулятора
Характеристики задач Имя задачи Количество параллельных потоков Перекрытие по данным Функция количества выходных данных Мощность на один блок входящей информации Характеристики связей между задачами: От каких задач зависит Процент от выходных данных родительской задачи
Дальнейшее развитие Реализация миграции задач Развитие подсистемы передачи данных между узлами(несколько путей, сейчас используется один) Реализация различных алгоритмов балансировки Реализация различных алгоритмов передачи данных Проверка результатов соответствия симуляции теоретической модели и результатам экпериментов