Введение к работе
Актуальность. Для решения сложных междисциплинарных задач с большими объемами данных и вычислений постоянно привлекаются новые аппаратные и программные средства. Сегодня в математическом моделировании активно используются высокопроизводительные ЭВМ (суперкомпьютеры, кластеры, сети), специализированное системное (операционные системы, коммуникационные библиотеки, системы визуализации) и прикладное программное обеспечение (генераторы сеток, библиотеки решения систем линейных алгебраических уравнений, системы автоматизированного проектирования). При этом возникают три основные проблемы, связанные с прикладным программным обеспечением: возможность быстрой и надежной реализации сложных математических моделей (гибкость), максимальное использование вычислительных ресурсов (производительность), обеспечение взаимодействия между существующими и новыми элементами аппаратного и программного обеспечения (платфор-монезависимость).
Методологией разработки комплексов программ для математического моделирования занимаются О.Б. Арушанян (НИВЦ МГУ), Н.Г. Буньков (ЦАГИ), В,А. Семенов (ИСП РАН) и др. Предлагаются различные способы построения программных систем от библиотек подпрограмм, направленных на решение определенного класса задач, до интегрированных комплексов, предназначенных для междисциплинарных расчетов. Показываются возможности использования в математическом моделировании современных парадигм, языков и инструментальных средств программирования. Однако проблема разработки гибкого и одновременно с этим высокопроизводительного программного обеспечения остается не решенной. Несмотря на то, что объектно-ориентированный анализ уже применяется при создании программного обеспечения для метода конечных элементов, следует отметить чрезвычайную редкость его применения в параллельном программировании.
Прикладные программные системы для вычислительной физики и математики с применением многопроцессорных ЭВМ разрабатываются в ИАП РАН (О.М. Белоцер-ковский и др.), ИММ РАН (Б.Н. Четверушкин и др.), ИПМ им. М.В. Келдыша (А.В. Забродин и др.), ИГУ, ИТПМ СО РАН, ИММ УрО РАН, ВЦ РАН и др. В настоящее время в нашей стране и за рубежом ведутся работы над созданием специализированных высокопроизводительных расчетных пакетов, таких как LAPACK, PETSc (Аг-gonne National Laboratory), PMPL (ВНИИЭФ и Mississippi State University) и др. Данные проекты направлены на разработку параллельных алгоритмов и их адаптацию к многопроцессорным вычислительным системам. Наибольшую практическую ценность имеют системы, которые могут быть использованы в составе интегрированных программных комплексов. Актуальным является создание универсальных пакетов программ для метода декомпозиции области, одного из немногих, используемых в параллельных вычислениях.
Математическими основами параллельного программирования, а также отображением проблем вычислительной математики на архитектуру вычислительных систем занимаются в ИВМ РАН (В.В. Воеводин и др.). Языки, технологии и промежуточное программное обеспечение для параллельных распределенных вычислений разрабатываются в НИВЦ МГУ (Вл. В. Воеводин и др.), ИСП РАН (В.П. Иванников, С.С. Гайса-рян, А.Л. Ластовецкий. А.И. Аветисян и др.), ИПМ им. М.В. Келдыша (В.А. Крюков, Н.А. Коновалов и др.). Большое практическое значение при отображении параллельных алгоритмов на многопроцессорные архитектуры имеет промежуточное программное обеспечение, которое позврляет-иепотНтзевать-код-лрикладныч программ на разных архитектурах. Сегодня наиболее1 pacW)Joc4}$fl$hftftP видами промежуточного
j -' -.«-Уо* І
J у і :;)7airr І
программного обеспечения являются MPI (LAM, MPICH, MPICH-G и др.) и CORBA (Orbix. VisiBroker, omniORB, М1СО, TAO и др.). Развитием стандарта MPI (Message Passing Interface - интерфейс обмена сообщениями) занимается ряд зарубежных исследовательских организаций: Mississippi State University (A. Skjellum и др.), Argonne National Laboratory (W. Gropp, E. Lusk и др.), University of Tennessee (J.J. Dongarra и др.), University of Illinois (L.V. Kale и др.). Над стандартом CORBA (Common Object Request Broker Architecture - общая архитектура брокера объектных запросов) работает международный консорциум OMG, основы программирования описаны в работах S. Vinoski (IONA), задачу повышения производительности решает в D.C. Schmidt (Washington University). Одним из перспективных направлений является совместное использование технологий CORBA и MPI; отдельные результаты достигнуты в IRISA/INRIA (Т. Priol и др.).
Разработка открытого высокопроизводительного комплекса ііроірамм для конечно-элементного анализа имеет существенное значение как комплексное исследование научно-технических проблем, направленное на программную реализацию эффективных математических алгоритмов, метода конечных элементов и метода декомпозиции области, и их адаптацию к широким классам вычислительных систем.
Цель работы. Разработка комплекса программ для численного моделирования методом конечных элементов, обеспечивающего гибкие средства разработки, высокую производительность вычислений и независимость от аппаратно-программных платформ.
Объект исследования. Комплекс программ, реализующий подзадачи метода конечных элементов и метода декомпозиции области, поддерживающий объектно-ориентированные средства разработки и обеспечивающий возможность параллельного распределенного выполнения посредством промежуточного программного обеспечения CORBA, MPI.
Предмет исследования. Разработка интегрированных комплексов программ для междисциплинарных расчетов, использование парадигм объектно-ориентированного и компонентного программирования в математическом моделировании, в частности для программной реализации метода конечных элементов и метода декомпозиции области, сравнение и использование технологий параллельных распределенных вычислений MPI и CORBA, параллельная распределенная реализация объектно-ориентированных моделей.
Задачи работы. Разработка объектно-ориентированной модели метода конечных элементов и метода декомпозиции области, обеспечение возможностей модификации и расширения.
Анализ технологий параллельных распределенных вычислений MPI и CORBA. Сравнение производительности различных видов промежуточного программного обеспечения MPI и CORBA, определение уровня независимости от аппаратно-программных платформ. Исследование методов разработки параллельных распределенных объектно-ориентированных программ на промежуточном программном обеспечении MPI и CORBA.
Создание технологии построения параллельных распределенных объектно-ориентированных моделей на основе обычных объектно-ориентированных моделей и промежуточного программного обеспечения. Разработка параллельной распределенной объектно-ориентированной вычислительной среды для конечно-элементного анализа.
Исследование возможностей совместного использования промежуточного программного обеспечения CORBA и MPI. Интеграция MPI пакетов линейной алгебры в вычислительную среду для конечно-элементного анализа.
Проведение численных исследований напряженно-деформированного состояния трехмерных тел методом подструктур на многопроцессорных вычислительных системах.
Научная новизна работы. Предложенная методика построения программных комплексов для численного моделирования, основанная на объектно-ориентированном анализе и технологиях CORBA и MPI, позволяет разрабатывать гибкое, независимое от аппаратно-программных платформ, высоко производительное прикладное программное обеспечение.
Разработанная трехуровневая объектно-ориентированная модель метода конечных элементов, включающая классы расчетных данных, численные классы и классы решения, использована при проектировании модели метода декомпозиции, в которой подобласть представлена как область расчетной модели и как элемент модели решения.
Проведенный анализ технологий параллельных распределенных вычислений MPI
| и CORBA показал, что MPI имеет незначительное преимущество в плане производи-
тельности, но значительно уступает CORBA в поддержке объектно-ориентированного программирования. Создана технология параллельных распределенных компонентов, которая обеспечивает возможность распределения и распараллеливания объектно-ориентированных моделей с использованием промежуточного программного обеспечения CORBA. В технологии реализована модель удаленного и перемещаемого объектов, усовершенствован механизм асинхронного вызова методов, создана компонентная модель и предложена новая методика интеграции CORBA и MPI. Технология позволяет создавать исполняемые модули из объектов, взаимодействующих между разными процессами и узлами вычислительной системы посредством CORBA, обеспечивает высокую производительность и гибкость в распараллеливании последовательного кода, дает возможность повторно использовать пакеты прикладных программ, реализованные с помощью MPI, в рамках интегрированных программных комплексов.
Разработана вычислительная среда для конечно-элементного анализа, которая
обеспечивает разработку, реализацию и запуск прикладных расчетных программ. В
основе комплекса лежит параллельная распределенная объектно-ориентированная
модель метода конечных элементов и метода декомпозиции области, созданная с по
мощью технологии параллельных распределенных компонентов. Распределенная мо
дель метода декомпозиции построена в соответствии с разделением области на подоб
ласти: удаленными объектами заданы подобласть и узел, перемещаемыми - элементы,
узлы, граничные условия, матрицы, векторы. В параллельной модели реализованы
классы, обеспечивающие асинхронный вызов методов удаленных объектов класса
подобласть, и модифицирована модель решения, связанная с разделенной областью,
і Созданы компоненты метода декомпозиции, описывающие процессы вычислений в
подобластях и в области. В вычислительную среду подключен MPI пакет линейной алгебры. Комплекс программ ориентирован на проведение междисциплинарных расчетов.
С помощью вычислительной среды разработана параллельная распределенная модель метода подструктур, включающая прямые и итерационные схемы решения системы с дополнением Шура. Проведенные численные исследования показали высокую эффективность распараллеливания и масштабируемость программного обеспечения.
Достоверность и обоснованность. Достоверность результатов работы обеспечивается применением объектно-ориентированного анализа к задачам математического моделирования, использованием языка программирования C++ и технологий CORBA, MPI. Обоснованность обеспечивается сравнением существующих технологий разработки программного обеспечения и технологий параллельных распределенных вычис-
лений, анализом существующих объектно-ориентированных моделей метода конечных элементов и метода декомпозиции области, тестированием программ.
На защиту выносится. Новый подход к построению комплекса программ для конечно-элементного анализа с использованием объектно-ориентированного программирования и промежуточного программного обеспечения CORBA и MPI.
Технология разработки параллельных распределенных объектно-ориентированных моделей на основе обычных объектно-ориентированных моделей и промежуточного профаммного обеспечения CORBA. Объектно-ориентированная модель системы параллельных распределенных компонентов, реализующая данную методику.
Технология включения MPI кода в параллельные распределенные объекты CORBA. Объектно-ориентированная модель интеграции пакетов прикладных программ, основанных на MPI.
Параллельная распределенная объектно-ориентированная модель метода конечных элементов и метода декомпозиции области, построенная в соответствии с предложенными подходами с использованием разработанного базового профаммного обеспечения.
Результаты численных исследований напряженно-деформированного состояния трехмерных тел методом подструктур на многопроцессорной вычислительной системе.
Практическая ценность. Методика построения параллельных распределенных объектно-ориентированных моделей на основе обычных объектно-ориентированных моделей и промежуточного программного обеспечения CORBA может применяться для реализации комплексов программ, связанных со сложными физико-математическими моделями и требующих больших вычислительных ресурсов. Методика позволяет поэтапно выполнить переход от обычной объектно-ориентированной модели к распределенной, а затем к параллельной модели с минимальной модификацией исходного кода, что значительно увеличивает скорость разработки программного обеспечения.
Предлагаемый механизм интеграции MPI приложений в виде параллельных распределенных объектов CORBA обеспечивает возможность повторного использования прикладных MPI пакетов в составе сложных многокомпонентных программных комплексов для гетерогенных аппаратно-программных платформ.
Разработанная вычислительная среда для конечно-элементного анализа является открытой программной системой и обеспечивает процесс быстрой разработки высокопроизводительных платформонезависимых прикладных программ. Данный комплекс программ позволяет решать задачи с различными видами конечных элементов, содержит аппарат для решения систем линейных алгебраических уравнений, дает возможность включить новые параллельные алгоритмы решения. Вычислительная среда может быть использована в научно-исследовательских и конструкторских организациях.
Апробация работы. Основные положения диссертационной работы обсуждались на следующих научных конференциях: XI Международная конференция по вычислительной механике и современным прикладным программным системам, 2-6 июля 2001, Истра; III Всероссийская молодежная школа «Суперкомпыотерные вычислительно-информационные технологии в физических и химических исследованиях», 31 октября-1 ноября 2001, Черноголовка; Workshop "'Grid Generation: Theory and Applications", June 24-28, 2002, Dorodnicyn Computing Center RAS, Moscow; Международная конференция "СуперЭВМ и многопроцессорные вычислительные системы", 26-30 июня 2002, Таганрог; V International Congress on Mathematical Modeling, September 30-October 6, 2002, Dubna; Всероссийская конференция "Актуальные про-
7 блемы прикладной математики и механики", 3-7 февраля 2003, Екатеринбург; Parallel Computational Fluid Dynamics, May 13-15, 2003, Moscow; 15th International Conference on Domain Decomposition Methods, July 21-25, 2003 Berlin; Всероссийская конференция "Прикладная геометрия, построение расчетных сеток и высокопроизводительные вычисления", 28 июня-1 июля 2004, Вычислительный центр им. А.А. Дородницына РАН, Москва.
Публикации. По теме диссертации опубликовано 17 печатных работ.
Благодарности. Диссертационная работа выполнена при финансовой поддержке РФФИ (гранты №02-07-90265, №03-07-90002, MAC №03-07-06120) и УрО РАН (фант для научных проектов молодых ученых и аспирантов, трэвел-грант для участия молодых ученых в зарубежных конференциях).
Структура и объем диссертационной работы. Диссертация состоит из введения, четырех глав, заключения, общим объемом 122 страниц, содержит 39 рисунков и 16 таблиц, включает список литературы из 82 наименований и 2 приложений на 13 страницах.