Введение. ........................................................................................................................................2 Разработка прототипа ЭС. ............................................................................................................2 1. Идентификация проблемы. ...............................................................................................2 2. Получение знаний..............................................................................................................3 3. Структурирование. ............................................................................................................6 4. Формализация. ...................................................................................................................6 5. Реализация прототипа. ......................................................................................................8 6. Тестирование......................................................................................................................8 Список источников. .......................................................................................................................9 Введение. Целью работ, выполняемых в рамках проекта «Интеллектуальные технологии распределенных вычислений для моделирования сложных систем» является развитие подходов, методов и технологий, позволяющих проектировать и разрабатывать программные приложения, эффективно функционирующие в распределенных вычислительных средах с неоднородной иерархической архитектурой применительно к задачам компьютерного моделирования сложных систем. С практической точки зрения полученные в ходе исследования результаты позволят создать среду автоматизации процесса разработки - интеллектуальную программную оболочку, предоставляющую разработчику не только инструментарий, но и формализованные знания в области создания распределенных предметно-ориентированных программных комплексов. Наличие такой среды создаст стимул для развития соответствующих приложений в новых предметных областях, позволит существенно сократить время их разработки и отладки, а также, обеспечить эффективную загрузку высокопроизводительных вычислительных ресурсов (суперкомпьютеров, связанных высокоскоростной сетью), имеющихся на настоящий день в ВУЗах и не загружаемых на полную мощность не в силу отсутствия задач, а по причине отсутствия инструментария для их реализации. [1] Процесс разработки первой версии (прототипа) экспертной системы, являющейся частью интеллектуальной составляющей оболочки, в данной работе структурирован следующим образом [6]: Рис 1. Стадии разработки прототипа ЭС. Разработка прототипа ЭС. 1. Идентификация проблемы. Для достижения эффективности параллельных вычислений недостаточно только уповать на возможности сверхмощных вычислительных систем и глубинные средства 2 исследования и оптимизации программ. Высокая производительность является следствием совокупного учета специфики предметной области, особенностей применяемых моделей, методов и алгоритмов, а также архитектурных особенностей вычислительных систем и технологий программирования. Проблема сочетания знаний из столь различных областей, по-видимому, на данном этапе может быть решена лишь на основе их отчуждения, обобщения и использования посредством интеллектуальных технологий. [1] Цели. Необходимо разработать Интеллектуальную Информационную систему (ЭС), содержащую формализованные знания предметной области “Оптимизация программ”, в частности: o Знаниями об отдельных (предметно-ориентированных) модулях; взаимная интеграция; эффективное использование при решении конкретной задачи; o Знания о параллельных вычислениях; принципы организации эффективного распараллеливания; которая станет частью описанной во введении интеллектуальной программной оболочки и будет отвечать за: o Выбор оптимальной схемы распараллеливания при решении конкретной задачи предметной области на имеющейся вычислительной системе. Источники знаний. o Текста. Описания предметно-ориентированных пакетов; методики оптимизации вычисления отдельных программных моделей; методики построения комплексных программных приложений, эффективно функционирующих в распределенных вычислительных средах и т.д.; o Эксперты. 2. Получение знаний. На данной стадии выполняется получение полного представления о предметной области и способах принятия решений в ней. Используются следующие источники знаний: Анализ текстов. Дискуссии. Знания, необходимые для функционирования информационной системы можно разделить на 2 части: Знания о (предметно – ориентированных) модулях и Знания о принципах эффективных параллельных вычислений. Экспертные знания о модулях В качестве примера взята модель среднесрочного прогноза погоды ПЛАВ-2008 [7] Способы (сценарии) применения. Способы сопряжения с другими компонентами. Описание модуля в терминах предметной области. Например, ниже приведено частичное описание модели ПЛАВ-2008: “В Гидрометцентре России совместно с ИВМ РАН была разработана глобальная полулагранжевая конечно-разностная модель среднесрочного прогноза погоды ПЛАВ. Прогноз полей метеорологических элементов осуществляется с помощью 3 численного решения уравнений гидротермодинамики в вертикальной сигмасистеме координат на сфере. В блоке решения уравнений динамики атмосферы, как и в подавляющем большинстве глобальных моделей численного прогноза погоды, применяется полулагранжево представление адвекции и двухслойная полунеявная схема интегрирования по времени. За счет этого шаг интегрирования по времени в модели может быть увеличен в 3-5 раз по сравнению с классическим эйлеровым подходом к описанию адвекции, таким образом, существенно сокращается время расчета прогноза. Оригинальными особенностями блока решения уравнений динамики атмосферы модели ПЛАВ являются применение конечных разностей четвертого порядка на несмещенной сетке для аппроксимации неадвективных слагаемых уравнений и использование вертикальной компоненты абсолютного вихря и дивергенции в качестве прогностических переменных конечно-разностной модели. В модель включены параметризации процессов подсеточного масштаба (коротко- и длинноволновая радиация, глубокая и мелкая конвекция, планетарный пограничный слой, торможение гравитационных волн, тепло- и влагообмен с подстилающей поверхностью с учетом растительности), разработанные МетеоФранс и европейским консорциумом LACE (www.rclace.eu) для оперативной региональной модели ALADIN. Оперативная версия модели имеет горизонтальное разрешение 0,72° по широте, по долготе - 0,9° и 28 неравномерно расположенных уровней по вертикали. В качестве начальных данных модель ПЛАВ-2008 использует поля оперативного объективного анализа на стандартных изобарических поверхностях с горизонтальным разрешением 1,25 градуса по долготе и широте, а также объективные анализы на модельной сетке: поля температуры и относительной влажности на уровне 2 м, температуры и влагосодержания поверхностного и глубинного слоев почвы, разработанные в Лаборатории перспективных численных методов в моделях атмосферы ГУ «Гидрометцентр России», поля температуры поверхности океана и высоты снежного покрова, разработанные А.Н. Багровым. Авторами впервые в России реализована технология усвоения почвенных переменных и вариационный алгоритм усвоения данных наблюдений о приземной температуре“. Способы распараллеливания задачи (исходя из сценариев применения) o Способы декомпозиции. o Модели производительности параллельных реализаций. Для ПЛАВ-2008 были найдены следующие сведения: “Программный комплекс модели был распараллелен на основе сочетания технологий MPI и OpenMP, достигнута масштабируемость кода на 512 процессорах [Володин Е.М., Толстых М.А. Параллельные вычисления в задачах моделирования климата и прогноза погоды // Вычислительные методы и программирование. 2007. Т. 8. С. 113-122.]”. Как эффективно использовать. Особенности внутреннего распараллеливания. Это может быть: o Эмпирические знания разработчика/тестировщика/опытного пользователя модуля; 4 полученные путем самообучения системы (Мониторинг процесса использования комплекса и переоценка «достоинств» программных компонентов и квалификации экспертов[8]); В поверхностном описании модуля ПЛАВ-2008 было отмечено следующее: “Оперативная версия модели ПЛАВ реализована на вычислителе SGI Altix 4700, установленном в ГВЦ Росгидромета. Экспериментальная версия модели с горизонтальным разрешением над Россией порядка 37 км и 50 уровнями по вертикали показывает параллельное ускорение около 24 на 48 вычислительных ядрах, при этом на 36 ядрах время расчета прогноза на 24 часа составляет 20 мин.” Данная информация не очень полезна, так как желательно получить некую зависимость эффективности (или времени) параллельного вычисления от характеристик входных данных и/или характеристик вычислительной среды. Пример такого рода информации можно привести из [5], где показано влияние архитектуры программной системы на общее ускорение вычислений: “при небольшом количестве узлов наиболее оптимальным является распараллеливание по данным с использованием отдельных процессорных узлов с общей памятью как независимых вычислителей. Однако с увеличением числа процессоров тенденция изменяется, и многопроцессорные узлы становятся более предпочтительными”, а также влияние изменения характеристик входных данных: “С увеличением размера входного массива в результате увеличения гранулярности общее ускорение также возрастает…. При уменьшении величины перекрытия с трех месяцев до одного ускорение в среднем вырастает примерно в полтора раза, а эффективность от использования многопроцессорных узлов сдвигается в зону большего числа узлов и меньшего числа процессоров на узле. Эта характеристика может меняться в зависимости специфики акватории (океанские процессы обладают большим “временем жизни”, чем процессы в закрытых морях), а также от особенностей моделируемого процесса (синоптический интервал атмосферных процессов и волнения составляет несколько суток, а эволюция вихрей водных масс может длиться несколько месяцев)”; Экспертные знания об эффективном распараллеливании Модели производительности вычислений для различных параллельных архитектур. Вопрос описан в [4], ниже основные концепции: o Использование естественных способов распараллеливания для задачи статистической обработки данных позволяет строить количественные модели производительности в параметрической форме. Параметры моделей производительности совокупно учитывают архитектуру вычислительных систем, особенности системного программного обеспечения и характеристики параллельного алгоритма. o Параметрические модели производительности обобщаются на различные параллельные вычислительные архитектуры, включая однородные и неоднородные MPP-системы, а также гиперсети (GRID). o На основе параметрических моделей производительности, идентифицированных по тестовым расчетам, можно оценить изменение параллельного ускорения при варьировании объемом обрабатываемых данных, количеством вычислительных узлов и даже при переносе программы на вычислительную систему с другими характеристиками. 5 Принципы отображения параллельных алгоритмов на вычислительную архитектуру. Вопрос описан в [4], ниже основные идеи: o Проблема отображения параллельного алгоритма на многопроцессорную вычислительную архитектуру в статической постановке сводится к парному сопоставлению и ранжированию возможных алгоритмов на основе разных естественных принципов для заданных значений характеристик массива данных и характеристик многопроцессорной системы. o Основным способом обеспечения масштабируемости параллельных алгоритмов на большое число процессоров является использования специальных технологий динамического управления параллельными вычислениями с точки зрения балансировки вычислительной нагрузки, реализуемой на основе геометрического разбиения массива данных. o Процесс адаптации параллельного математического обеспечения под особенности вычислительной архитектуры и специфику задачи может быть выполнен лишь в рамках единой интеллектуальной технологии, позволяющей системе гибко определять условия своего функционирования, комбинируя методы статической (принцип конкуренции) и динамической (балансировка нагрузки) оптимизации. Также знания можно почерпнуть из работ об параллельных вычислениях [2, 3]. 3. Структурирование. Экспертные знания о модулях. В данной области знаний можно выделить следующие понятия: Задача - проблема, решаемая в рамках некоторой предметной области. Подзадача – каждая проблема может быть разбита на определенное число подзадач. Вычислительный модуль – программное обеспечение, которое может решить ту или иную подзадачу, используя определенные алгоритмы и входные данные; также процесс решения той или иной подзадачи может быть оптимизирован, в зависимости от характеристик входных данных и вычислительной среды. Входные и Выходные Данные – данные, поступающие на вход вычислительным модулям и возвращаемые на выходе. Обладают определенными характеристиками (объем, формат и т.д.). Вычислительная среда – доступные системе вычислительные ресурсы. И т.д. Экспертные знания об эффективном распараллеливании Модели производительности вычислений для различных параллельных архитектур. Могут быть выражены в виде параметрических моделей производительности [4]. Неполнота самого поля знаний предметных областей и понимания способов принятия решений в ней не позволяет в данный момент выполнить полное структурирование знаний. 4. Формализация. В виду того, что система работает со знаниями различного рода и назначения целесообразно использовать гибридную базу знаний (или несколько баз знаний), использовать различные способы представления, учитывая их достоинства и недостатки, исходя из назначения и требований к системе. Экспертные знания о модулях 6 Способы (сценарии) применения. Способы сопряжения с другими компонентами. Для представления этих знаний можно использовать онтологию. В этом случае исполняемые (моделируемые) процессы той или иной предметной области можно организовать на базисе интересующего нас набора терминов [9]: “задача”, “подзадача (шаг)”, “компонента” и т.д., описанных с помощью стандартных отношений(“is a”, “a kind of”) и связанных между собой специальными (“нетаксономическими”[9]) связями, например “компонента решает задачу”. Ниже приведена часть онтологии предметной области “Биоинформатика” из системы Proteus [9]: Данный подход обеспечит наглядное представление этой части знания, но на практике могут возникнуть сложности с реализацией системы вывода, свойственные для данного способа представления знаний [6, 10]. Также для представления данной части знаний можно использовать продукционную модель. Насколько я понимаю функционирование системы на данном этапе (где потребуется эта часть знаний) будет происходить при тесном взаимодействии с пользователем, в режиме диалога. Поэтому мне видится удобным использовать продукционную модель с её преимуществами – интуитивно понятными человеку посылками “Если *, то *”, прозрачным процессом вывода, как прямого, так и обратного (что немаловажно в случае наличия требования объяснения выбора). Недостающие для вывода факты будут запрашиваться у пользователя динамически в виде вопросов в терминах предметной области. Единственным минусом для данного подхода является то, что при большом числе продукций становится сложной проверка их непротиворечивости (при количестве правил > 1500 ) [6], но я думаю, что на практике это доставит неудобство в рамках функционирования проектируемой системы. Способы распараллеливания задачи (исходя из сценариев применения) 7 o Способы декомпозиции. o Модели производительности параллельных реализаций. За рабочий вариант взят подход из [8]. Анализируются его плюсы и недостатки, рассматриваются альтернативные подходы. Экспертные знания об эффективном распараллеливании Недостаточно прояснены возможные запросы к данной области знаний в ходе функционирования системы и процессы принятия решений. 5. Реализация прототипа. На данный момент мне представляется возможным реализация прототипа ЭС, отвечающей за идентификацию Задачи и выбора цепочки(ек) вычислительных модулей для её решения. Для реализации ЭС, отвечающей за выбор оптимальной схемы с учетом характеристик входных данных и вычислительных ресурсов, еще нет достаточного понимания процессов принятия решения. Реализация может быть начата c параллельным продолжением исследования применимой области знаний. 6. Тестирование. 8 Список источников. 1. http://escience.ifmo.ru/ , “Интеллектуальные технологии распределенных вычислений для моделирования сложных систем”. 2. Теория и практика параллельных вычислений / В. П. Гергель // Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007 г. 3. “Параллельные вычисления” / В. В. Воеводин, Вл. В. Воеводин // БХВ - Петербург, 2004 г. 4. Проектирование прикладного математического обеспечения параллельной обработки данных. / А.В. Бухановский, С.В. Иванов // Учебные материалы Зимней школы-практикума «Технологии параллельного программирования 2006» 5. Высокопроизводительный программный комплекс моделирования экстремальных гидрометеорологических явлений. / Ковальчук С. В. // Автореферат, Санкт Петербург 2008. 6. Базы знаний интеллектуальных систем. / Т. А. Гаврилова, В. Ф. Хорошевский // СПБ: Питер, 2000. 7. http://method.hydromet.ru/ , Сайт методического кабинета Гидрометцентра РФ. 8. Интеллектуальные технологии распределенных вычислений для моделирования сложных систем, презентация. / http://escience.ifmo.ru/files/science/ppt_avb.pdf 9. Proteus, a Grid based Problem Solving Environment for Bioinformatics: Architecture and Experiments / Mario Cannataro, Carmela Comito, Filippo Lo Schiavo, Pierangelo Veltri // 2004. 10. Введение в искусственный интеллект: конспект лекций. / Смолин Д. В. // М.: ФИЗМАЛИТ, 2004. 9