автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Параллельная распределенная объектно-ориентированная вычислительная среда для конечно-элементного анализа

кандидата физико-математических наук
Рычков, Владимир Николаевич
город
Ижевск
год
2004
специальность ВАК РФ
05.13.18
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Параллельная распределенная объектно-ориентированная вычислительная среда для конечно-элементного анализа»

Автореферат диссертации по теме "Параллельная распределенная объектно-ориентированная вычислительная среда для конечно-элементного анализа"

На правах рукописи

Рынков Владимир Николаевич

ПАРАЛЛЕЛЬНАЯ РАСПРЕДЕЛЕННАЯ ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ВЫЧИСЛИТЕЛЬНАЯ СРЕДА ДЛЯ КОНЕЧНО-ЭЛЕМЕНТНОГО АНАЛИЗА

Специальность 05.13.18- Математическое моделирование, численные методы и комплексы программ

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Москва - 2004

Работа выполнена в Институте прикладной механики УрО РАН

Научный руководитель:

кандидат физико-математических наук, старший научный сотрудник Копысов Сергей Петрович

Официальные оппоненты:

доктор физико-математических наук, ведущий научный сотрудник Ластовецкий Алексей Леонидович кандидат физико-математических наук, старший научный сотрудник Якобовский Михаил Владимирович

Ведущая организация:

Институт автоматизации проектирования РАН

Защита диссертации состоится $0 Лп часов на заседании диссертационного совета К 002.058.01 в Институте математического моделирования РАН по адресу: 125047, г. Москва, Миусская пл., 4а.

С диссертацией можно ознакомиться в библиотеке ИММ РАН.

Автореферат разослан ^^КЛ^иА

Ученый секретарь диссертационного совету к. ф.-м. н.

В.И. Похилко

-

/7 0П/

2 5U5id

Общая характеристика работы

Актуальность. Для решения сложных междисциплинарных задач с большими объемами данных и вычислений постоянно привлекаются новые аппаратные и программные средства. Сегодня в математическом моделировании активно используются высокопроизводительные ЭВМ (суперкомпьютеры, кластеры, сети), специализированное системное (операционные системы, коммуникационные библиотеки, системы визуализации) и прикладное программное обеспечение (генераторы сеток, библиотеки решения систем линейных алгебраических уравнений, системы автоматизированного проектирования). При этом возникают три основные проблемы, связанные с прикладным программным обеспечением: возможность быстрой и надежной реализации сложных математических моделей (гибкость), максимальное использование вычислительных ресурсов (производительность), обеспечение взаимодействия между существующими и новыми элементами аппаратного и программного обеспечения (платфор-монезависимость).

Методологией разработки комплексов программ для математического моделирования занимаются О.Б. Арушанян (НИВЦ МГУ), Н.Г. Буньков (ЦАГИ), В,А. Семенов (ИСП РАН) и др. Предлагаются различные способы построения программных систем от библиотек подпрограмм, направленных на решение определенного класса задач, до интегрированных комплексов, предназначенных для междисциплинарных расчетов. Показываются возможности использования в математическом моделировании современных парадигм, языков и инструментальных средств программирования. Однако проблема разработки гибкого и одновременно с этим высокопроизводительного программного обеспечения остается не решенной. Несмотря на то, что объектно-ориентированный анализ уже применяется при создании программного обеспечения для метода конечных элементов, следует отметить чрезвычайную редкость его применения в параллельном программировании.

Прикладные программные системы для вычислительной физики и математики с применением многопроцессорных ЭВМ разрабатываются в ИАП РАН (О.М. Белоцер-ковский и др.), ИММ РАН (Б.Н. Четверушкин и др.), ИПМ им. М.В. Келдыша (А.В. Забродин и др.), НГУ, ИТПМ СО РАН, ИММ УрО РАН, ВЦ РАН и др. В настоящее время в нашей стране и за рубежом ведутся работы над созданием специализированных высокопроизводительных расчетных пакетов, таких как LAPACK, PETSc (Аг-gonne National Laboratory), PMPL (ВНИИЭФ и Mississippi State University) и др. Данные проекты направлены па разработку параллельных алгоритмов и их адаптацию к многопроцессорным вычислительным системам. Наибольшую практическую ценность имеют системы, которые могут быть использованы в составе интегрированных программных комплексов. Актуальным является создание универсальных пакетов программ для метода декомпозиции области, одного из немногих, используемых в параллельных вычислениях.

Математическими основами параллельного программирования, а также отображением проблем вычислительной математики на архитектуру вычислительных систем занимаются в ИВМ РАН (В.В. Воеводин и др.). Языки, технологии и промежуточное программное обеспечение для параллельных распределенных вычислений разрабатываются в НИВЦ МГУ (Вл. В. Воеводин и др.), ИСП РАН (В.П. Иванников, С.С. Гайса-рян, A.JI. Ластовецкий. А.И. Аветисян н др.), ИПМ им. М.В. Келдыша (В.А. Крюков, Н.А. Коновалов и др.). Большое практическое значение при отображении параллельных алгоритмов на многопроцессорные архитектуры имеет промежуточное программное обеспечение, которое позврияет-иелогнгзевать-код-прикладныч программ на разных архитектурах. Сегодня паиб||лее распуо1-г}Й1|ё}|ЙГк? йидами промежуточного

' ••СТО?

:>:• У;) 7airr

программного обеспечения являются MPI (LAM, MPICH, MPICH-G и др.) и CORBA (Orbix. VisiBroker, omniORB, MICO, 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 (T. 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 пакет линейной алгебры. Комплекс программ ориентирован на проведение междисциплинарных расчетов.

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

Достоверность и обоснованность. Достоверность результатов работы обеспечивается применением объектно-ориентированного анализа к задачам математического моделирования, использованием языка программирования С++ и технологий 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-0ctober 6, 2002, Dubna; Всероссийская конференция "Актуальные про-

блемы прикладной математики и механики", 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 страницах.

Краткое содержание работы

Во введении обоснована актуальность темы исследования, сформулированы цели и задачи работы, определены ее научная новизна и практическая ценность, приведены основные положения, выносимые на защиту.

Увеличение сложности математических моделей и объемов расчетных данных требует повышения качества и производительности программного обеспечения. Развитие технологий программирования дает возможность реализации универсальных программных комплексов, предназначенных для решения широких классов задач в разных предметных областях. Использование промежуточного программного обеспечения для параллельных распределенных вычислений позволяет адаптировать прикладные программы к различным многопроцессорным вычислительным системам, что обеспечивает их высокую производительность.

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

Постановка задачи о разработке вычислительной среды для конечно-элементного анализа подразумевает создание высокоуровневого промежуточного программного обеспечения, основанного в свою очередь на более низкоуровневом (компилятор С++, CORBA/MPI), и включает разработку и реализацию объектно-ориентированной модели метода конечных элементов и метода декомпозиции области, модели параллельных распределенных компонентов на основе CORBA с возможностью интеграции MPI, параллельной распределенной объектно-ориентированной модели метода декомпозиции области, интеграцию пакетов программ решения систем линейных алгебраических уравнений.

Сложность модели конечных элементов приводит к необходимости использования специальных методов программирования. В одном из параграфов рассмотрены парадигмы структурного, объектно-ориентированного и компонентного программирования. В приложении А приведен пример программной реализации одной из подзадач метода конечных элементов - решения системы линейных алгебраических уравнений - и проведено сравнение языков программирования С, С++, CORBA IDL. Показано, что наибольшая гибкость программного обеспечения достигается при использовании объектно-ориентированного и компонентного подходов. Проанализированы факторы,

влияющие на производительность кода С, С++ и ССЖВА ЮЬ, и определены наиболее приемлемые стратегии программирования.

Реализация тех или иных моделей параллельных распределенных вычислений в виде промежуточного программного обеспечения позволяет адаптировать прикладные программы к широкому классу аппаратно-программных платформ. В следующем параграфе рассмотрены две наиболее распространенные модели: модель обмена сообщениями, применяемая в массивных параллельных вычислениях, и модель удаленного вызова процедур, используемая при построении распределенных программных комплексов. Анализ существующего промежуточного программного обеспечения, основанного на обмене сообщениями, показал, что для его успешного использования необходимо включить механизмы объектно-ориентированного и компонентного программирования, что имеет значение при создании комплекса программ для конечно-элементного анализа. Приведены различные методы повышения производительности систем с удаленным вызовом процедур, которые позволяют использовать такие системы в параллельных вычислениях, например, при распараллеливании объектно-ориентированного кода метода декомпозиции области.

—♦— сттгаКВ/М>г1пе1-2000 —»—МР1СН/М>г1ге>1-2000

отгпСЖВ/БС! —с— МР1СН/БС1

—н— ТАСЖ31дйЫ1 —и— МР1СН/0даЫ1

—О— ТАО/ЕИтегпе1 —•—-МРЮН/аИегпе!

32 1Кб 32Кб 1Мб

Размер сообщений (байт)

а) б)

Рис. I. Производительность промежуточного программного обеспечения MPI и CORBA на коммуникациях Myrinel, SCI, Gigabit н Ethernet

Проведено сравнение технологий MPI и CORBA со следующих позиций: зависимость от платформ, производительность коммуникаций и гибкость модели программирования. Промежуточное программное обеспечение CORBA строится па основе большого количества стандартов, обозначенных OMG, что обеспечивает более высокий уровень независимости от платформ. Проведено сравнение производительности промежуточного программного обеспечения MPICH и ТЛО на коммуникациях Gigabit и Ethernet, результаты которого были сопоставлены с данными зарубежных исследований MPICH и onmiORB на коммуникациях Myrinet и SCI (IR1SA/INRIA, Франция). Сравнение показало одинаковую пропускную способность при более низком уровне латентности MPI (рис. 1).

В приложении Б показан пример реализации некоторых параллельных распределенных объектов метода декомпозиции области с помощью технологии MPI и языка программирования С++, при этом пришлось построить систему поддержки распределенных объектов и для каждого класса распределенных объектов реализовать удаленный вызов методов. При параллельном вызове методов объектов одного класса выигрышно использован неблокирующий обмен сообщениями, который позволил избежать существенных модификаций при переходе от последовательного к параллельному коду. Показаны основные конструкции технологии CORBA для реализации распределенных объектов. Проанализированы возможности реализации параллельных объектов с помощью событийных моделей: обратного вызова в oneway методах и асинхронного вызова методов (AMI - Asynchronous Method Invocation). Их недостатком является то, что код синхронизации должен размещаться в обработчике обратного вызова, что приводит к значительной модификации последовательного кода. Проведенный анализ показал, что технология CORBA поддерживает распределенное объектно-ориентированное программирование и может быть использована для разработки параллельных объектов, тогда как для использования MPI в параллельных распределенных объектно-ориентированных программных комплексах необходимо реализовать систему поддержки объектов, подобную ядру CORBA.

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

Nodo DOFGraup

РЖЖШ

Рис. 2. Структура классов объсктно-орнентнрованноП модели метода конечных элементов (□ - классы расчетных данных, О - численные классы, П - классы решения)

Первый параграф посвящен объектно-ориентированному анализу метода конечных элементов, выделены три уровня абстракции данных: конечно-элементная сетка с

заданными граничными условиями и свойствами материалов, система уравнений и основные шаги алгоритма решения. В следующем параграфе проанализированы способы представления данных метода конечных элементов в существующих объектно-ориентированных моделях. Затем описана новая трехуровневая объектно-ориентированная модель (рис. 2), включающая классы расчетных данных, численные классы и классы решения. Класс решения Analysis - это сборка основных шагов решения, которые выполняются под управлением класса алгоритма решения Solu-tionAlgorithm. К основным шагам относятся: построение модели решения Analy-sisModel по конечно-элементной сетке, определяемой классом Domain, введение граничных условий посредством класса ConstraintHandler, упорядочивание степеней свободы с помощью класса DOFNumberer, формирование классом Integrator и решение классом LinearSolver системы линейных алгебраических уравнений Lin-earSOE.

В четвертом параграфе классифицированы методы декомпозиции области и определены их основные шаги для случая конечно-элементной аппроксимации. Далее приведены результаты анализа существующих объектно-ориентированных моделей метода декомпозиции, который показал, что решающую роль играет подсистема разделения области, для чего целесообразно представить конечно-элементную сетку в виде графа и применить к нему алгоритм разделения. Кроме этого, в существующих моделях подобласть рассматривается одновременно как область в расчетной модели и как элемент в модели решения, поэтому при построении объектно-ориентированной модели метода декомпозиции целесообразно дважды использовать модель метода конечных элементов: в области и в подобластях.

ParilícnedCDmán

i

DomdrPartlloner

r

QínptiPiifltbiiA

Nodo С- DORSraup

9

<-—

Alleys is М»И

Elan 4---- AndysIsEtoment

--T

fncrriTwntilW» grato »WrtwirSoive

Рис. 3. Структура классов объектно-орнситированной модели метода декомпозиции области (□ - классы расчетных данных, О - численные классы,г' - классы решения)

Объектно-ориентированная модель метода декомпозиции области, представленная в шестом параграфе, является расширением всех подсистем модели метода конечных элементов для области и подобластей (рис. 3). В расчетную модель области введены классы разделенной области PartitionedDomain и разделителя области Do-mainPartitioner. Первый отвечает за формирование графа, соответствующего конечно-элементной сетке, второй - за его разделение и распределение объектов сетки между подобластями. От метода формирования графа (граф узлов или граф элементов) зависит, какой алгоритм лучше применить для его разделения и по какому принципу нужно перераспределить объекты между подобластями (детали определены в потомках этих классов).

Расчетная модель подобласти расширена классом подобласти Subdomain. В численную модель добавлен класс решателя в подобласти DomainSolver, который отвечает за выполнение численных операций в подобласти для того или иного метода декомпозиции. Их наборы точнее определяются в потомках этого класса, например, для метода подструктур в классе SubstructuringSolver определены методы формирования блока для дополнения Шура. Из соображений эффективности для некоторых потомков решателей на подобласти введены классы систем линейных алгебраических уравнений специального вида. Класс системы уравнений для метода подструктур substructurescœ, например, содержит систему в разобранном виде, по блокам, соответствующим внутренним и граничным степеням свободы. В модель решения подобласти включены классы метода декомпозиции DomainDecompositionAnalysis и алгоритма DomainDecompositionAlgorithm. Метод решения ассоциирован с подобластью и является контейнером всех объектов решения. Алгоритм управляет объектами, собранными в методе, для обновления состояния подобласти.

В третьей главе предложена новая методика построения параллельных распределенных объектно-ориентированных моделей на основе обычных объектно-ориентированных моделей с использованием технологии CORBA. Описана программная система, реализующая этот подход, созданная на языке программирования С++ и промежуточном программном обеспечении ТАО. Разработан механизм интеграции MPI приложений. Предложенная технология использована при построении параллельных распределенных компонентов для метода декомпозиции области.

Распределенная объектно-ориентированная программа отличается от обычной тем, что объекты создаются в разных адресных пространствах и взаимодействуют друг с другом удаленно. При удаленном вызове методов объекты также обмениваются простыми и объектными данными, при этом объекты, передаваемые по адресу, остаются в единственном экземпляре в том адресном пространстве, в котором они были созданы, а объекты, передаваемые по значению, перемещаются между разными адресными пространствами. В первом параграфе определены возможности использования основных конструкций CORBA IDL для разработки распределенной объектно-ориентированной модели. Удаленные объекты предложено представить с помощью интерфейсов (interface), которые описывают объекгы, доступные через объектную ссылку. Интерфейсы поддерживают наследование, могут содержать атрибуты и методы, которые вызываются удаленно через объектную ссылку. Для описания перемещаемых объектов предложено использовать структуры (struct) и типы-значения (valuetype). Структуры могут содержать только атрибуты, типы-значения - атрибуты и методы. Типы-значения в отличие от структур поддерживают сложные объектно-ориентированные конструкции (наследование, множественное наследование, рекурсивные определения). При пересылке объектов, заданных структурами и типами-значениями, передаются все их атрибуты и на принимающей стороне конструируются

экземпляры, являющиеся их точными копиями. Методы объектов, заданных типами-значениями, выполняются локально.

Разработка IDL интерфейса - предварительный шаг к созданию распределенной объектно-ориентированной модели. Перед его выполнением необходимо произвести разделение объектов исходной объектно-ориентированной модели по процессам и определить взаимодействия между ними. Определены основные интерфейсы для объектов, которые в распределенной модели нужно представить в виде удаленных объектов: подобласть Subdomain (разделение и вычисления на подобласти) и узел Node (доступ к расчетным данным, связанным с узлом). Классы подобласти и узла являются потомками других классов в исходной объектно-ориентированной модели, поэтому в IDL также введены вспомогательные интерфейсы для использования механизмов наследования и полиморфизма в распределенной объектно-ориентированной модели (это обеспечивает повторное использование и гибкость кода). К вспомогательным интерфейсам отнесены: Domain (обновление состояние подобласти), Element (формирование вкладов подобласти в систему уравнений), Transaction (обновление состояния подобласти, узла), TaggedObject (идентификация подобласти, узла).

Далее определены основные и вспомогательные структуры и типы-значения для объектов метода декомпозиции области, которые в распределенной модели нужно представить в виде перемещаемых объектов. Основные - обеспечивают передачу состояния объектов узсл^ойе, элемент Element и различных объектов граничных условий. Вспомогательные - участвуют в передаче сложно составного состояния, это векторы, матрицы различных видов, пронумерованный объект TaggedObject, материал Material.

Для реализации распределенной объектно-ориентированной модели по описаниям IDL, необходимо связать объекты исходной модели с объектами инфраструктуры CORBA. Во втором параграфе представлена система (рис. 4), обеспечивающая такое объединение, позволяющая создавать распределенные объектно-ориентированные модели, которые максимально используют код исходных моделей и обладают такой же гибкостью.

В объектах клиент client путем наследования от объектов исходной модели и агрегирования стабов удаленных CORBA объектов переопределяются виртуальные функции, в которых входные параметры конвертируются из типов исходной модели в типы CORBA, вызываются соответствующие методы удаленных объектов, а выходные данные конвертируются обратно и возвращаются как результат удаленного вызова. Кроме этого, объекты клиент отвечают за кэширование (хранение локальной копии) постоянных или редко изменяемых данных удаленного объекта. В объектах сервант servant путем наследования от CORBA сервантов реализуются абстрактные методы последних, внутри которых входные данные конвертируются из типов CORBA в типы объектно-ориентированной модели, вызываются соответствующие методы объектов сервер server, а выходные параметры конвертируется обратно для последующей отправки клиенту, которую обеспечивает ORB. Потомки объектов клиент и сервер могут быть использованы внутри исходной объектно-ориентированной модели. Их полиморфно измененные функции обеспечивают удаленное обращение клиента к серверу посредством объектов CORBA: стаба (на стороне клиента) и серванта (на стороне сервера). Предложен подход к использованию новых классов в распределенной программе в зависимости от связей между ними, а также от связей между ними и объектами исходной модели. Рассмотрена проблема инкапсуляции данных и реализации методов доступа к ним для классов клиент и сервер.

Перемещение предложено реализовать с помощью конвертирования структур/типов-значений в классы перемещаемых объектов и обратно, для чего созданы потомки классов перемещаемых объектов, в которых определены: конструктор от структуры/типа-значения (IDL —* объектно-ориентированная модель), а также конструктор от объекта исходной объектно-ориентированной модели и метод копирования в структуру/тип-значение (объектно-ориентированная модель —> IDL).

В заключении второго параграфа показана распределенная объектно-ориентированная модель метода декомпозиции, функционирующая следующим образом. Потомок построителя области DomainBuilder создает по данным из файла серверные объекты узлов конечно-элементной сетки FEA_Node_Server в управляющем процессе. На процессорах запускаются серверные объекты подобласти FEA_Subdomain_server, в управляющем процессе создается массив клиентских объектов подобластей FEA_Subdomai.n_Cl.ient, которые содержат стабы к соответствующим серверным объектам. Эти классы изображены на рис. 5. Потомок разделителя области DomainPartitioner передает в виде структур состояние тех узлов, которые становятся внутренними узлами подобластей, для того чтобы удаленные объекты подобластей создали серверные объекты копии узлов FEA_Node_Server на своей стороне, а затем уничтожает исходные объекты. Узлы, соответствующие границе, передаются разделителем по объектной ссылке, для них на подобластях создаются клиентские объекты FEA_Node_ciient. Элементы и граничные условия перемещаются в соответствующие подобласти. Таким образом, все шаги, реализованные в объектно-ориентированной модели метода декомпозиции области, могут выполняться распределение, в нескольких адресных пространствах подобластей, каждая из которых содержит массив всех необходимых узлов, только часть из них физически находится в других процессах. Полиморфизм, используемый при создании заместителей узлов, дает возможность избежать модификаций методов, связанных с доступом к узлам.

Третий параграф посвящен разработке параллельных объектно-ориентированных программ с помощью CORBA. Параллельная программа отличается от обычной объектно-ориентированной тем, что методы объектов могут выполняться одновременно. В общем случае параллельные процессы могут быть заданы разными методами объектов разных классов, но в моделях массового параллелизма, как правило, идентичными методами объектов одного класса (с учетом наследования). В параллельной объектно-ориентированной модели предусматривается асинхронный (неблокирующий) вызов методов (запуск параллельных процессов) и обработка результатов их выполнения (синхронизация параллельных процессов). В стандарте CORBA определены две модели асинхронных вызовов: обратного вызова (callback) и опроса (polling) (табл. 1).

Таблица 1

Модели асинхронных вызовов методов

Обработка обратного вызова о завершепнн выполнении Опрос па предмет завершении выполисинл

Объект на клиентской стороне Обработчик обратного вызова -сервант ЗапрошенныП объект - обычныП объект

К'ОЛИЧССТПО DLI30D0D один от клиента к серверу + один от сервера к клиенту множество (не менее двух) от клиента к серверу

Модификации последовательного кода Значительная Незначительная

При построении параллельной распределенной объектно-ориентированной модели необходимо учесть следующие требования: максимальное повторное использование кода исходной и распределенной моделей и гибкость. В промежуточном программном обеспечении 'ГАО реализована только одна модель асинхронного вызова методов -

модель обратного вызова — как наиболее производительная. Практическое значение имеет предложенное в этом параграфе ожидание обратного вызова: основной процесс может выполняться до тех пор, пока ему не нужно будет удостовериться в выполнении операции или получить ее результат, обратившись к обработчику в цикле ожидания (блокировка). Это позволило использовать производительность модели обратного вызова и свести к минимуму объем модификаций последовательного кода.

Ю1_ отсант

О

ССКВА:ОЬ]ес(

Porta tfeSe<y?r $?r>anf5a^

Серверная сторона Клиентская сторона

PortaUeSetver: SetvanlBasi

I

CORBA;Ot?leol_vai

I

POk Maaaqhg .feflvHand< ■

I

.Cbleet Ofenl i-T- Obiecl AMCIfen rv- Oblrct ReolvHande

Рис. 4. Структура классов, обеспечивающих синхронный/асинхронный удаленный вызов методов (О - классы инфраструктуры CORBA)

В третьем параграфе предложено расширить систему классов, обеспечивающих удаленный вызов, классами клиента с возможностью асинхронного вызова методов AMiciient и обработчика обратного вызова ReplyHandler (рис. 4). Асинхронные клиенты наследуются от клиентов, поэтому также содержат ссылку на удаленный объект, но ссылка расширена асинхронными вызовами всех методов, обозначенными префиксом sendc_. Асинхронные клиенты дополнительно содержат парные методы вида: send_x - асинхронный вызов метода х (конвертирование входных параметров из объектно-ориентированной модели в CORBA и асинхронный вызов sendc_x), recv_x - завершение метода (ожидание обратного вызова и конвертирование выходных параметров). Объекты AMiciient агрегируют объекты обработчики обратного вызова ReplyHandler, ссылки на которые отправляются как параметр при асинхронных вызовах.

В конце параграфа показана параллельная объектно-ориентированная модель подобласти. Объект асинхронный клиент подобласти FEA_Subdomain_AMlClient агрегирует обработчик обратного вызова подобласти FEA_Subdomain_ReplyHandler (рис. 5). Асинхронный клиент при вызове методов, не дожидаясь их удаленного выполнения, возвращает управление главному процессу. В момент, когда результаты становятся необходимы в главном процессе, главный процесс обращается к асинхронному клиенту, который блокирует его до тех пор, пока обработчик обратного вызова не получит результат от удаленного объекта.

В четвертом параграфе рассмотрены некоторые вопросы построения компонентной модели. Так как параллельные объекты запускаются и взаимодействуют под управлением промежуточного программного обеспечения, важным становится структура программ. В связи с тем, что спецификации ССМ (CORBA Component Model -компонентная модель CORBA) появились достаточно недавно и их реализация еще находится в стадии разработки, в данной работе предложена библиотека для запуска компонентных приложений. Класс приложения Application выполняет инициализацию промежуточного программного обеспечения CORBA. Класс менеджера компонентов Ноше отвечает за жизненный цикл того или иного типа(ов) компонентов. Менеджеры компонентов существуют в рамках приложения. При конструировании ме-

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

Обычкалобмпмо-ориенпфовонивя идапь IDL списания

Рис. 5. Параллельная распределенная модель подобласти (П - классы, автоматически сгенерированные но IDL описаниям)

В этом же параграфе представлены исполняемые модули для метода декомпозиции. Модуль dd включает следующие объекты: область и ее разделитель; общую систему с однопроцессорной и распределенной схемой хранения (для тех методов, в которых эта система строится); прямые и итерационные алгоритмы решения системы; упорядочиватель степеней свободы; обработчик граничных условий; алгоритм решения задачи. Модуль DDTask включает: подобласть; сиегему уравнений в подобласти и алгоритм се решения.

Вследствие широкого использования технологии MPI в параллельных прикладных расчетах, целесообразно повторное использование существующего программного обеспечения, построенного на ее основе. Обычно проблема повторного использования кода решается на уровне компиляторов языков программирования путем подключения модулей, здесь же, кроме этого, необходимо решить вопросы взаимодействия двух систем промежуточного программного обеспечения и декомпозиции MPI кода. ТАО и MPICH для коммуникаций используют протокол TCP/IP, который реализован практически для всех видов сетевого оборудования. Коммуникации TCP/IP могут использоваться коллективно несколькими процессами, что обеспечивает возможность совместного использования ТАО и MPIC1I.

В пятом параграфе определены основные шаги, которые нужно пройти при интеграции систем: инициализация обеих систем промежуточного программного обеспечения, запуск объектов CORBA, обмен сообщениями посредством MPI. Проанализированы возможности реализации этих шагов. Предложено инициализировать систему CORBA внутри MPI процессов, далее в каждом процессе создать однопоточный объектный адаптер, активизировать в нем CORBA объект и запустить обработку объект-пых запросов, a MPI код поместить внутри тех или иных методов CORBA объекта, которые следует вызывать асинхронно. Приведен пример реализации эюго подхода с

использованием системы классов компонентной модели. В качестве примера использования такого подхода реализована параллельная распределенная объектно-ориентированная модель решателя систем линейных алгебраических уравнений, интегрированного с MPI пакетом PETSc.

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

Рис. б. Процесс вычислений в методе подструктур В первом параграфе приведена формулировка метода подструктур, в основе которого лежит идея независимого расчета отдельных подобластей и последующего учета их взаимодействия. Затем описан процесс построения программной модели задачи, который включает расширение объектно-ориентированной модели, описаний IDL, параллельной распределенной объектно-ориентированной модели метода декомпозиции. Расчетная объектно-ориентированная модель метода конечных элементов расширена классами, задающими тетраэдр Tetra и соответствующий построитель области TetraBuilder. В численную модель подобласти метода декомпозиции введены система линейных уравнений для метода подструктур SubstructureSOE и решатель для этой системы GenSubstructureSolver. Для перемещения нового типа элементов в IDL задана структура FEA_Tetra_struct. В распределенной объектно-ориентированной модели модифицированы методы перемещения элементов в классах разделенной области FEñ_PartitionedDomain и подобласти FEA_subdomain_ciient/FEñ_subdomain_server. Параллельная объектно-ориентированная модель расширена классом параллельного упорядочивателя степеней свободы FEA_DOFNumberer_AMi и классами параллельной сборки системы уравнений с дополнением Шура FEñ_lncrementalIntegrator_ñMI, FEA_PlainlncrementalIntegrator_ñMl. Для хранения системы с дополнением Шура использовались однопроцессорные (BandSPDSOE) и распределенные

(PETSc_LinearSOE) схемы, для решения - прямые (BandSPDSolver), итерационные (CGSolver), параллельные итерационные (PETSc_Linearsolver) решатели. Завершающим этапом расширения вычислительной среды для конечно-элементного анализа стало включение в исполняемые модули DD и DDTask объектов метода подструктур. Процесс взаимодействия объектов метода подструктур показан на рис. 6.

Третий параграф посвящен численным экспериментам, которые проводились на Linux кластере Paraclete ИПМ УрО РАН, состоящем из 14 узлов Pentium IV 2,4-2,8 GHz 512 MB. Определена эффективность распараллеливания как всего метода подструктур, так и его отдельных шагов (распределение объектов конечно-элементной сетки, упорядочивание степеней свободы, формирование и решение системы с дополнением Шура, установка вычисленных перемещений граничных узлов в подобластях, определение перемещений внутренних узлов).

----Постоянный размер

задачи

-Постоянная нагрузка

на процессор

14

Рис. 7. Масштабируемость разработанного программного обеспечения метода подструктур Проведены измерения эффективности на ряде модельных задач (рис. 7). При увеличении числа процессоров эффективность решения фиксированной задачи падает, это связано с уменьшением нагрузки на каждый процессор и с увеличением затрат на коммуникации. Если же объем вычислений увеличивать пропорционально числу процессоров, так чтобы нагрузка на каждый процессор оставалась постоянной, то эффективность вычислений колеблется в пределах 60-80% (колебание обусловлено незначительной гетерогенностью кластера и некоторой разбалансировкой, вызванной тем, что объем вычислений увеличивался не абсолютно пропорционально числу процессоров и распределялся между процессорами не совсем равномерно). Тесты показали высокую масштабируемость разработанного программного обеспечения метода подструктур, при этом, максимальная эффективность достигается при равной и высокой загрузке процессоров.

Таблица 2

Эффективность параллельных вычислений прямым н итерационным методами подструктур

14 процессоров Л В С Эффективность (%)

(1) прямой метод, 15164 узлов 75177 элементов 14 подобластей 0:17:00 0:18:28 0:02:24 50,60

(2) итерационный метод, 15164 узлов 75177 элементов 14 подобластей 0:17:10 0:18:40 0:01:53 65,11

(3) итерационны!! метол, 40447 узлов 209108 элементов 70 подобластей - 0:14:00 0:01:12 83,33*

Для определения эффективности распараллеливания сравнивались скорости вычислений последовательного однопроцессорного варианта (А - для тех задач, которые удается разместить в оперативной памяти на одном узле), последовательного распределенного варианта (В), реализованного с помощью CORBA, и параллельного распределенного вариантов (С), реализованного на основе CORBA AMI и MPI. В табл. 2 показана эффективность вычислений прямым (1) и итерационным (2,3) методами под-

55 100

75

о

50

5

ni 25

fl-

■H- (1

m

4 8

Число процессоров

структур для задачи определения напряженно-деформированного состояния тела со сложной геометрией и с сеткой, адаптивной к геометрии. В эксперименте (3) вычислялась эффективность только параллельной части, т.к. на каждом процессоре было запущено несколько процессов-подобластей. На рис. 8 показано распределение вычислительной нагрузки между процессорами в итерационном методе подструктур (2.С).

а определение перемещений внутреннейузлоо (синхронизация)

□ определение перемещений внутреннихушоэ

■ решение системы с дополнением Ш>ра

□ формирование прзаой части

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

□ форм[фование детолнения Шура

□ формирование блока для дополнения Шура

01:43,7

о:

| 01:26,4 - _ — — - — - - - — — — — -

с 01:09,1 о - - -• -

| 00.51,8 - -

к 00:34,6 - -

1 00:17,3 _ _

m

00.00,0

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Рис. 8. Распределение вычислительной нагрузке между процессорами в итерационном методе подструктур

В заключении сформулированы основные результаты работы.

Основные результаты работы

Предложена новая методика построения комплекса программ для численного моделирования методом конечных элементов, основанная на объектно-ориентированном анализе и технологиях CORBA, MPI.

Разработана трехуровневая объектно-ориентированная модель метода конечных элементов. Классы метода конечных элементов использованы при проектировании модели метода декомпозиции.

Проведен анализ технологий параллельных распределенных вычислений MPI и СОЮЗА. Создана технология параллельных распределенных компонентов, которая обеспечивает возможность распределения и распараллеливания объектно-ориентированных моделей с использованием промежуточного программного обеспечения CORBA, MPI.

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

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

Научные публикации по теме диссертации

1. Рычков В.II., Красноперов И.В., Копысов С.П. Применение объектно-ориентированного подхода для параллельных распределенных вычислений в МКЭ // Сборник научных трудов "Проблемы механики и материаловедения". - Ижевск: Изд. ИПМ УрО РАН, 2001. - С. 147-155.

2. Рычков В.Н., Красноперов И.В., Копысов С.П. Технологии для построения объектно-ориентированных распределенных параллельных систем // Тезисы докладов XI Международной конференции по вычислительной механике и современным программным системам, 2-6 июля 2001, Истра. - М.: Изд. МАИ, 2001. - С.296-297.

3. Рычков В.И., Красноперов И.В., Копысов С.П. Объектно-ориентированная распределенная параллельная система для конечно-элементного анализа // Тезисы докладов XI Международной конференции по вычислительной механике и современным программным системам, 2-6 июля 2001, Истра. - М.: Изд. МАИ, 2001. - С.294-295.

4. Рычков В.Н., Красноперов И.В., Копысов С.П. Построение ВС на основе параллельных распределенных компонентов Ü Тезисы докладов Ш Всероссийской молодежной школы "Суперкомпыотерные вычислительно-информационные технологии в физических и химических исследованиях", 31 октября-1 ноября 2001, Черноголовка. - Черноголовка: Типография ИПХФ РАН, 2001. - С.84-88.

5. Рычков В.Н., Красноперов И.В., Копысов С.П. Параллельные распределенные вычисления и реализующие их технологии. - Ижевск, 2001. - 43 с. (Препринт ИПМ УрО PAII, Изд. ИПМ УрО РАН).

6. Рычков В.П., Красноперов И.В., Копысов С.П. Промежуточное программное обеспечение для высокопроизводительных вычислений // Вычислительные методы и программирование. - 2001. - Т. 2. - № 2. - С. 117-132.

7. Kopyssov S.P., Rychkov V.*N., Ponomaryov A.B. The integration of CAD-systems and unstructured mesh generators // Proceedings of the workshop "Grid generation: theory and applications", June 24-28, 2002, Dorodnicyn Computing Centre RAS, Moscow. -P.218-229.

8. Рычков В.II., Красноперов И.В., Копысов С.П. Программное обеспечение МВС на основе параллельных распределенных компонентов CORBA // Материалы Международной конференции "СуперЭВМ и многопроцессорные вычислительные системы", 26-30 июня 2002, Таганрог, - С. 195-200.

9. Rychkov V.M., Kxasnopyorov I.V., Kopyssov S.P. Parallel Distributed CORBA-based Components in Mathematical Simulations // V International Congress of Mathematical Modeling, September 30-0ctober 6, 2002, Dubna. - P.78.

10. Рычков В.И., Красноперов И.В., Копысов С.П. Объектно-ориентированная распределенная параллельная система для конечно-элементного анализа // Математическое моделирование. - 2002. - Т. 14. - № 9. - С.81 -86.

11. Копысов С.П., Рычков В.И., Пономарев А.Б. Интеграция генераторов сеток и CAD-систем // Тезисы докладов Всероссийской конференции "Актуальные проблемы прикладной математики и механики", 3-7 февраля 2003, Екатеринбург. - С.44-45.

12. Копысов С.П., Красноперов И.В., Рычков В.Н. Объектно-ориентированный метод декомпозиции области // Вычислительные методы и программирование. - 2003. -Т. 4.-№ I,-С. 176-193.

13 Конысоп СП., Красноперов И.В., Рычков В.Н. Реализация объектно-ориентированной модели метода декомпозиции на основе параллельных распреде-

2007-4

17001

20

ленных компонентов CORBA // Вычислительные методы и пршршимировшше. -2003. -Т. 4. -№ 1. - С.194-206.

14.Kopyssov S.P., Krasnopyorov I.V., Novikov А.К., Rychkov V.N. Parallel Distributed Object-oriented Model of Domain Decomposition // Book of Abstracts 15th International Conference on Domain Decomposition Methods, July 21-25,2003, Berlin. -P.63-64.

15.Kopyssov S.P., Krasnopyorov I.V., Novikov A.K., Rychkov V.N. Object-oriented Software for Domain Decomposition Methods with Local Adaptive Refinement // Parallel Computational Fluid Dynamics: Advanced numerical methods, software and applications / Chetverushkin, B.N. et. al. (Eds.) - Elsevier, North-Holland, Amsterdam, 2004. -P.425-432.

16.Kopyssov S.P., Krasnopyorov I.V., Novikov A.K., Rychkov V.N. Parallel Distributed Object-oriented Framework for Domain Decomposition // Lecture Notes in Computational Science and Engineering: Domain Decomposition Methods in Science and Engineering / Kornhuber, R. et. al. (Eds.) - Springer, Berlin, 2004. - Vol.40. - P.605-614.

17.Копысов С.П., Пономарев А.Б., Рычков B.H. Открытое визуальное окружение для взаимодействия с геометрическими ядрами, генерации/перестроения/разделения сеток и построения расчетных моделей // Прикладная геометрия, построение расчетных сеток и высокопроизводительные вычисления / Ред. Ю.Г. Евтушенко, М.К. Керимов, В. А. Гаранжа. -Т.2. -М.: ВЦ РАН, 2004. - С. 154-164.

Издательство Института прикладной механики УрО РАН. 426067, г. Ижевск, ул. Т. БарамзиноП, 34. Лицензия на издательскую деятельность ИД № 04874 от 24.05.2001.

Подписано в печать £ô, Cf. Тираж 100 экз. Заказ К» Формат 60:<S4 1/16. Бумага X е го\г Гар шцуря-Ximes ' Печать офсетная. Усп'пЬи.'Ь.йЛУ.'. -

Оглавление автор диссертации — кандидата физико-математических наук Рычков, Владимир Николаевич

ВВЕДЕНИЕ.

1. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ РАЗРАБОТКА КОМПЛЕКСОВ ПРОГРАММ ДЛЯ ПАРАЛЛЕЛЬНЫХ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ.

1.1. Разработка вычислительной среды для конечно-элементного анализа.

1.2. Технологии разработки программного обеспечения.

1.2.1. Эволюция технологий разработки программного обеспечения.

1.2.2. Сравнение языков программирования С, С++, CORBA IDL

1.2.3. Инструментальные среды разработки программного обеспечения.

1.3. Промежуточное программное обеспечение параллельных распределенных вычислений.

1.3.1. Модель обмена сообщениями.

1.3.2. Удаленный вызов процедур.

1.3.3. Сравнение технологий MPI и CORBA.

2. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ МОДЕЛИ МЕТОДА КОНЕЧНЫХ ЭЛЕМЕНТОВ И МЕТОДА ДЕКОМПОЗИЦИИ ОБЛАСТИ.

2.1. Основные шаги и уровни абстракции данных в методе конечных элементов.

2.2. Сравнение программных моделей метода конечных элементов.

2.3. Трехуровневая объектно-ориентированная модель метода конечных элементов.

2.4. Метод декомпозиции области, основанный на конечно-элементной аппроксимации.

2.5. Построение моделей метода декомпозиции области.

2.6. Объектно-ориентированная модель метода декомпозиции области на основе модели МКЭ.

3. ПАРАЛЛЕЛЬНЫЕ РАСПРЕДЕЛЕННЫЕ КОМПОНЕНТЫ НА

ОСНОВЕ CORBA В МЕТОДЕ ДЕКОМПОЗИЦИИ ОБЛАСТИ.

3.1. Описание распределенной объектно-ориентированной модели на языке IDL.

3.2. Связывание классов исходной объектно-ориентированной модели и классов инфраструктуры CORBA.

3.3. Реализация параллельных моделей на основе асинхронного вызова методов CORBA.

3.4. Компонентная модель.

3.5. Совместное использование систем MPI и CORBA.

4. ИСПОЛЬЗОВАНИЕ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ ДЛЯ

ЧИСЛЕННЫХ ИССЛЕДОВАНИЙ ПАРАЛЛЕЛЬНЫМ МЕТОДОМ

ПОДСТРУКТУР.

4.1. Решение трехмерных задач линейной теории упругости.

4.2. Метод подструктур.

4.3. Разработка параллельных распределенных компонентов метода подструктур.

4.4. Численные эксперименты на многопроцессорной вычислительной системе.

Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Рычков, Владимир Николаевич

Актуальность. Для решения сложных междисциплинарных задач с большими объемами данных и вычислений постоянно привлекаются новые аппаратные и программные средства. Сегодня в математическом моделировании активно используются высокопроизводительные ЭВМ (суперкомпьютеры, кластеры, сети), специализированное системное (операционные системы, коммуникационные библиотеки, системы визуализации) и прикладное программное обеспечение (генераторы сеток, библиотеки решения систем линейных алгебраических уравнений, системы автоматизированного проектирования). При этом возникают три основные проблемы, связанные с прикладным программным обеспечением: возможность быстрой и надежной реализации сложных математических моделей {гибкость), максимальное использование вычислительных ресурсов {производительность), обеспечение взаимодействия между существующими и новыми элементами аппаратного и программного обеспечения {платформонезависимость). Для каждой из перечисленных проблем можно определить место в триаде A.A. Самарского модель-алгоритм-программа [1]: первая проблема связана с необходимостью комплексного исследования научных и технических проблем с применением современных технологий математического и компьютерного моделирования, вторая заключается в адаптации эффективных математических алгоритмов к широким классам вычислительных систем, а третья — в реализации универсальных высокопроизводительных платформонезависимых прикладных программ.

Методологией разработки комплексов программ для математического моделирования занимаются О.Б. Арушанян (НИВЦ МГУ), Н.Г. Буньков (ЦАГИ), В.А. Семенов (ИСП РАН) и др. Предлагаются различные способы построения программных систем от библиотек подпрограмм [2], направленных на решение определенного класса задач, до интегрированных комплексов, предназначенных для междисциплинарных расчетов [3, 4]. Показываются возможности использования в математическом моделировании современных парадигм, языков и инструментальных средств программирования [5, 6]. Однако проблема разработки гибкого и одновременно с этим высокопроизводительного программного обеспечения остается не решенной. Несмотря на то, что объектно-ориентированный анализ уже применяется при создании программного обеспечения для метода конечных элементов, следует отметить чрезвычайную редкость его применения в параллельном программировании. При разработке объектно-ориентированных и компонентных моделей часто применяется язык графических описаний UML (Unified Modeling Language - универсальный язык моделирования) [7, 8], наиболее распространенным средством реализации программных моделей является язык программирования С++ [9].

В настоящее время в нашей стране и за рубежом ведутся работы над созданием высокопроизводительных многопроцессорных вычислительных систем, обеспечивающих решение новых актуальных научно-технических задач с большим объемом вычислений и обработки данных [10, 11]. Прикладные программные системы для вычислительной физики и математики с применением многопроцессорных ЭВМ разрабатываются в ИАП РАН (О.М. Белоцерковский и др.), ИММ РАН (Б.Н. Четверушкин и др.), ИПМ им. М.В. Келдыша (А.В. Забродин и др.), НГУ, ИТПМ СО РАН, PIMM УрО РАН, ВЦ РАН и др. Важным направлением является создание специализированных высокопроизводительных расчетных пакетов, таких как LAPACK [12], PETSc (Argonne National Laboratory) [13], PMPL (ВНИИЭФ и Mississippi State University) и др. Данные проекты направлены на разработку параллельных алгоритмов и их адаптацию к многопроцессорным вычислительным системам. Наибольшую практическую ценность имеют системы, которые могут быть использованы в составе интегрированных программных комплексов. Актуальным является создание универсальных пакетов программ для метода декомпозиции области, одного из немногих, используемых в параллельных вычислениях.

Математическими основами параллельного программирования, а также отображением проблем вычислительной математики на архитектуру вычислительных систем занимаются в ИВМ РАН (В.В. Воеводин и др.) [14]. Языки, технологии и промежуточное программное обеспечение для параллельных распределенных вычислений разрабатываются в НИВЦ МГУ (Вл. В. Воеводин и др.), ИСП РАН (В.П. Иванников, С.С. Гайсарян, А.Л. Ластовец-кий, А.И. Аветисян и др.) [15, 16], ИПМ им. М.В. Келдыша (В.А. Крюков, H.A. Коновалов, А.Н. Андрианов, К.Н. Ефимкин и др.) [17, 18]. Большое практическое значение при отображении параллельных алгоритмов на многопроцессорные архитектуры имеет промежуточное программное обеспечение, которое позволяет использовать код прикладных программ на разных архитектурах [19]. Сегодня наиболее распространенным видами промежуточного программного обеспечения являются MPI (LAM, MPICH, MPICH-G и др.) и CORBA (Orbix, VisiBroker, omniORB, MICO, TAO и др.). Развитием стандарта MPI (Message Passing Interface - интерфейс обмена сообщениями) занимается ряд зарубежных исследовательских организаций [20]: 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 [21], основы программирования описаны в работах S. Vinoski (IONA), задачу повышения производительности решает в D.C. Schmidt (Washington University) [22]. Одним из перспективных направлений является совместное использование технологий CORBA и MPI; отдельные результаты достигнуты в IRISA/INRIA (T. Priol и др.) [23].

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

Цель работы. Разработка комплекса программ для численного моделирования методом конечных элементов, обеспечивающего гибкие средства разработки, высокую производительность вычислений и независимость от аппаратно-программных платформ.

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

Предмет исследования. Разработка интегрированных комплексов программ для междисциплинарных расчетов, использование парадигм объектно-ориентированного и компонентного программирования в математическом моделировании, в частности для программной реализации метода конечных элементов и метода декомпозиции области, сравнение и использование технологий параллельных распределенных вычислений MPI и CORBA, параллельная распределенная реализация объектно-ориентированных моделей.

Задачи работы. Анализ парадигм структурного, объектно-ориентированного и компонентного программирования, языков программирования С, С++, CORBA IDL (Interface Definition Language — язык описания интерфейса) и инструментальных средств разработки программного обеспечения. Сравнение гибкости языков программирования С, С++, CORBA IDL на примере решения задач математического моделирования.

Разработка объектно-ориентированной модели метода конечных элементов и метода декомпозиции области, обеспечение возможностей модификации и расширения.

Анализ технологий параллельных распределенных вычислений MPI и CORBA. Сравнение производительности различных видов промежуточного программного обеспечения MPI и CORBA, определение уровня независимости от аппаратно-программных платформ. Исследование методов разработки параллельных распределенных объектно-ориентированных программ на промежуточном программном обеспечении MPI и CORBA.

Создание технологии построения параллельных распределенных объектно-ориентированных моделей на основе обычных объектно-ориентированных моделей и промежуточного программного обеспечения. Разработка параллельной распределенной объектно-ориентированной вычислительной среды для конечно-элементного анализа.

Исследование возможностей совместного использования промежуточного программного обеспечения CORBA и MPI. Интеграция MPI пакетов линейной алгебры в вычислительную среду для конечно-элементного анализа.

Проведение численных исследований напряженно-деформированного состояния трехмерных тел методом подструктур на многопроцессорных вычислительных системах.

Научная новизна работы. Предложенная методика построения программных комплексов для численного моделирования, основанная на объектно-ориентированном анализе и технологиях CORBA и MPI, позволяет разрабатывать гибкое, независимое от аппаратно-программных платформ, высоко производительное прикладное программное обеспечение.

Проведен анализ парадигм структурного, объектно-ориентированного и компонентного программирования. Сравнение языков программирования С, С++, CORBA IDL на примере решения задач математического моделирования показало лучшие возможности объектно-ориентированных языков. Новым является применение компонентного программирования при разработке прикладных программ для вычислительной математики и механики.

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

Проведенный анализ технологий параллельных распределенных вычислений MPI и CORBA показал, что MPI имеет незначительное преимущество в плане производительности, но значительно уступает CORBA в поддержке объектно-ориентированного программирования.

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

Разработана вычислительная среда для конечно-элементного анализа, которая обеспечивает разработку, реализацию и запуск прикладных расчетных программ. В основе комплекса лежит параллельная распределенная объектно-ориентированная модель метода конечных элементов и метода декомпозиции области, созданная с помощью технологии параллельных распределенных компонентов. Распределенная модель метода декомпозиции построена в соответствии с разделением области на подобласти: удаленными объектами заданы подобласть и узел, перемещаемыми — элементы, узлы, граничные условия, матрицы, векторы. В параллельной модели реализованы классы, обеспечивающие асинхронный вызов методов удаленных объектов класса подобласть, и модифицирована модель решения, связанная с разделенной областью. Созданы компоненты метода декомпозиции, описывающие процессы вычислений в подобластях и в области. В вычислительную среду подключен MPI пакет линейной алгебры. Комплекс программ ориентирован на проведение междисциплинарных расчетов.

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

Достоверность и обоснованность. Достоверность результатов работы обеспечивается применением объектно-ориентированного анализа к задачам математического моделирования, использованием языка программирования С++ и технологий CORBA, MPI. Обоснованность обеспечивается сравнением существующих технологий разработки программного обеспечения и технологий параллельных распределенных вычислений, анализом существующих объектно-ориентированных моделей метода конечных элементов и метода декомпозиции области, тестированием программ.

На защиту выносится. Новый подход к построению комплекса программ для конечно-элементного анализа с использованием объектно-ориентированного программирования и промежуточного программного обеспечения CORBA и MPI.

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

Технология включения MPI кода в параллельные распределенные объекты CORBA. Объектно-ориентированная модель интеграции пакетов прикладных программ, основанных на MPI.

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

Результаты численных исследований напряженно-деформированного состояния трехмерных тел методом подструктур на многопроцессорной вычислительной системе.

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

Предлагаемый механизм интеграции MPI приложений в виде параллельных распределенных объектов CORBA обеспечивает возможность повторного использования прикладных MPI пакетов в составе сложных многокомпонентных программных комплексов для гетерогенных аппаратно-программных платформ.

Разработанная вычислительная среда для конечно-элементного анализа является открытой программной системой и обеспечивает процесс быстрой разработки высокопроизводительных платформонезависимых прикладных программ. Данный комплекс программ позволяет решать задачи с различными видами конечных элементов, содержит аппарат для решения систем линейных уравнений, дает возможность включить новые параллельные алгоритмы решения. Вычислительная среда может быть использована в научно-исследовательских и конструкторских организациях.

Апробация работы. Основные положения диссертационной работы обсуждались на следующих научных конференциях:

1) XI Международная конференция по вычислительной механике и современным прикладным программным системам, 2-6 июля 2001, Истра.

2) III Всероссийская молодежная школа «Суперкомпьютерные вычислительно-информационные технологии в физических и химических исследованиях», 31 октября-1 ноября 2001, Черноголовка.

3) Workshop "Grid Generation: Theory and Applications", June 24-28, 2002, Dorodnicyn Computing Center RAS, Moscow.

4) Международная конференция "СуперЭВМ и многопроцессорные вычислительные системы", 26-30 июня 2002, Таганрог.

5) V International Congress on Mathematical Modeling, September 30-0ctober 6, 2002, Dubna.

6) Всероссийская конференция "Актуальные проблемы прикладной математики и механики", 3-7 февраля 2003, Екатеринбург.

7) Parallel Computational Fluid Dynamics, May 13-15, 2003, Moscow.

8) 15th International Conference on Domain Decomposition Methods, July 2125, 2003, Berlin.

9) Всероссийская конференция "Прикладная геометрия, построение расчетных сеток и высокопроизводительные вычисления", 28 июня-1 июля 2004, Вычислительный центр им. A.A. Дородницына РАН, Москва. Публикации. По теме диссертации опубликовано 17 печатных работ. Благодарности. Диссертационная работа выполнена при финансовой поддержке РФФИ (гранты №02-07-90265, №03-07-90002, MAC №03-0706120) и УрО РАН (грант для научных проектов молодых ученых и аспирантов, трэвел-грант для участия молодых ученых в зарубежных конференциях).

Структура и объем диссертационной работы. Диссертация состоит из введения, четырех глав, заключения, общим объемом 122 страниц, содержит 39 рисунков и 16 таблиц, включает список литературы из 82 наименований и 2 приложений на 13 страницах.

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

Основные результаты работы

1. Предложена новая методика построения комплекса программ для численного моделирования методом конечных элементов, основанная на обът ектно-ориентированном анализе и технологиях CORBA, MPI. Использование объектно-ориентированного программирования обеспечивает моделирование в естественных терминах и повторное использование кода, применение промежуточного программного обеспечения гарантирует независимость от аппаратно-программных платформ и высокую производительность.

2. Разработана трехуровневая объектно-ориентированная модель метода конечных элементов, включающая классы расчетных данных, численные классы и классы решения. Классы метода конечных элементов использованы при проектировании модели метода декомпозиции, в которой подобласть представлена как область расчетной модели и как элемент модели решения.

3. Проведен анализ технологий параллельных распределенных вычислений MPI и CORBA. Тестирование промежуточного программного обеспечения на разных коммуникациях показало приблизительно равную производительность. Исследование методов объектно-ориентированного программирования с помощью этих технологий показало, что для реализации параллельных распределенных объектов в MPI необходимо разработать достаточно большую систему поддержки объектных запросов, которая уже присутствует в CORBA. Кроме того, промежуточное программное обеспечение CORBA обеспечивает взаимодействие разнородных программ в гетерогенных вычислительных системах, что необходимо для построения интегрированных комплексов программ.

4. Созданная технология с помощью параллельных распределенных компонентов на основе промежуточного программного обеспечения CORBA дает возможность расширения прикладных объектно-ориентированных моделей для их использования в высокопроизводительных вычислениях. Технология использована для разработки параллельной распределенной объектно-ориентированной модели метода декомпозиции области.

5. Модель удаленного и перемещаемого объектов, реализованная в технологии, позволяет разрабатывать классы объектов, взаимодействующих между разными процессами и узлами вычислительной системы посредством ССЖВА. Распределенная модель метода декомпозиции построена в соответствии с разделением области на подобласти: удаленными объектами заданы подобласть и узел, перемещаемыми - элементы, узлы, граничные условия, матрицы, векторы.

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

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

8. Исследованы механизмы использования CORBA и MPI в одном приложении. Предложена новая методика интеграции, которая позволяет повторно использовать пакеты прикладных программ, реализованные с помощью MPI, в рамках интегрированных программных комплексов. Метод применен для подключения MPI пакета PETSc в вычислительную среду.

9. С помощью вычислительной среды разработана параллельная распределенная модель метода подструктур, включающая прямые и итерационные схемы решения системы с дополнением Шура. Проведены численные исследования для реальных и модельных задач, выполнена оценка эффективности распараллеливания и масштабируемости программного обеспечения.

ЗАКЛЮЧЕНИЕ

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

Физическая модель

1 ) 1 1

Математическая модель

Дифференциальное уравнение в частных производных

Метод конечных элементов

Система линейных алгебраических уравнений

1) II

Модель вычислений

Алгоритм 11 Параллельные распределенные вычисления

Архитектура вычислительной системы

1 гибкость и эффективность

Рис. 39. Уровни абстракции в вычислительной среде для конечно-элементного анализа

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

Библиография Рычков, Владимир Николаевич, диссертация по теме Математическое моделирование, численные методы и комплексы программ

1. Самарский A.A., Михайлов А.П. Математическое моделирование: Идеи. Методы. Примеры. - М.: Наука, 1997. - 320 с.

2. Арушанян О.Б. Автоматизация конструирования библиотек программ. -М.: Издательство МГУ, 1988. 248 с.

3. Буньков Н.Г. Распределенные интерактивные вычисления в реализации многодисциплинарных проблем расчета летательного аппарата. В кн. "Новое в численном моделировании: алгоритмы, вычислительные эксперименты, результаты." - М.: Наука, 2000. - С.228-246.

4. OMG Specifications. Unified Modeling Language (UML), Version 1.5. -http://www.omg.org/cgi-bin/doc7formal/03-03-01.

5. Ларман К. Применение UML и шаблонов проектирования. М.: Издательский дом "Вильяме", 2001. - 496 с.

6. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е изд. М.: "Бином", СПб: "Невский диалект", 1999.-560 с.

7. Четверушкин Б.Н. Высокопроизводительные многопроцессорные вычислительные системы // Вестник Российской академии наук. 2002. — Т.72. - № 9. - С.786-794.

8. Anderson Е. et al. LAPACK Users' Guide. Third Edition. 1999. -http://www.netlib.org/lapack/lug/lapack lug.html.

9. Balay S. et al. PETSc Users Manual. 2004. - http://www-unix.mcs.anl.gov/petsc/petsc-2/documentation/index.html.

10. Воеводин B.B. Математические модели и методы в параллельных процессах. — М.: Наука, 1986. — 296 с.

11. Lastovetsky A. mpC Tutorial. 2002. - http://www.ispras.ru/~mpc/. - 41 с.

12. Аветисян А.И., Арапов И.В., Гайсарян С.С., Падарян В.А. Параллельное программирование с распределением по данным в системе ParJava // Вычислительные методы и программирование. 2001. - Т.2. - №2. - С.88-108.

13. Крюков В.А. Разработка параллельных программ для вычислительных кластеров и сетей // Информационные технологии и вычислительные системы (в печати).

14. Андрианов А.Н., Ефимкин К.Н., Задыхайло И.Б. Непроцедурный язык Норма и методы его реализации. В сб.: Языки и параллельные ЭВМ. Серия: Алгоритмы и алгоритмические языки. - М.: Наука, 1990. - с.3-37.

15. MPI Forum. MPI: A Message-Passing Interface Standard. http://www.mpi-forum.org.

16. OMG Specifications. CORBA/IIOP Specifications. http://www.omg.org/cgi-bin/doc?formal/04-03-01.

17. Schmidt D.C. and Vinoski S. Programming Asynchronous Method Invocations with CORBA Messaging // С++ Report, SIGS. 1999. - V. 11. - N2.

18. Denis A. et al. Parallel CORBA objects for programming computational grids // IEEE Distributed Systems Online. 2003. - Vol.4. - N2.

19. Вирт H. Алгоритмы=структуры данных+программы M.: Мир, 1989. -406 с.

20. Гайсарян С.С. Объектно-ориентированные технологии проектирования прикладных программных систем. -http://www.citforum.ru/programming/oop rsis/index.shtml.

21. Роджерсон Д. Основы СОМ. 2-е изд., испр. и доп. М.: Издательско-торговый дом «Русская редакция», 2000. — 400 с.

22. Цимбал А. Технология CORBA для профессионалов. СПб: Питер, 2001. -624 с.

23. Орлов С.А. Технологии разработки программного обеспечения. СПб.: Питер, 2002.-464 с.

24. Слама Д., Гарбис Д., Рассел П. Корпоративные системы на основе CORBA.: Пер. с англ.: Уч. пос. М.: Издательский дом "Вильяме", 2000. -368 с.

25. Mello U., Khabibrakhmanov I. On the Reusability and Numeric Efficiency of С++ Packages in Scientific Computing // IBM T.J. Watson Research Center, Yorktown, NY, USA. 27 p.

26. Трофимов C.A. CASE-технологии: практическая работа в Rational Rose. -M.: Бином-Пресс, 2002. 288 с.

27. Воеводин B.B., Воеводин Вл.В. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002. 609 с.

28. Рычков В.Н., Красноперов И.В., Копысов С.П. Параллельные распределенные вычисления и реализующие их технологии. Ижевск, 2001. — 43 с. (Препринт ИПМ УрО РАН, Изд. ИПМ УрО РАН).

29. Рычков В.Н., Красноперов И.В., Копысов С.П. Промежуточное программное обеспечение для высокопроизводительных вычислений // Вычислительные методы и программирование. 2001. — Т. 2. - № 2. - С. 117132.

30. Foster I., Kesselman С., Tuecke S. The Anatomy of the Grid // International J. Supercomputer Applications. 2001. - Vol. 15. - N3.

31. Lopez I., Follen G. J., Gutierrez R., Foster I., Ginsburg В., Larsson O., Martin S., Tuecke S. NPSS on NASA's IPG: Using CORBA and Globus to Coordinate

32. Multidisciplinary Aeroscience Applications I I NASA HPCC/CAS Workshop, February 15, 2000 February 17, 2000, NASA Ames Research Center.

33. Gropp W., Lusk E., Doss N., Skjellum A. A high-performance, portable implementation of the (MPI) message passing interface standard // Parallel Computing. 1996. - Vol. 22. - N6. - P.789-828.

34. TAO Documentation. http://www.cs.wustl.edu/~schmidt/ACEwrappers/ TAO/docs/index.html.

35. Philippsen M. A Survey of Concurrent Object-Oriented Languages // Concurrency: Practice and Experience. 2000. - V.12. - N. 10. - P.917-980.

36. Damm C.H., Thomsen M. A Comparison of MPI and CORBA. -http://www.daimi.au.dk/~pmn/scf00/pro3/index.html.

37. Fenves G. L., Object-Oriented Programming For Engineering Software Development // Engineering With Computers. 1990. - V.6. -N.l. - P. 1-15.

38. Бакулин В.Н. и др. Объектно-ориентированная реализация метода конечных элементов // Математическое моделирование. 2003. - Т. 15. - № 2. -С.77-82.

39. Зенкевич О., Морган К. Конечные элементы и аппроксимация: Пер. с англ. М.: Мир, 1986.-318 с.

40. Галлагер Р. Метод конечных элементов. Основы: Пер. с англ. — М.: Мир, 1984.-428 с.

41. Forde B.W.R., Foschi R.O., Steimer S.F. Object-Oriented Finite Element Analysis // Computers and Structures. 1990. - Vol. 34. -N3. - P.355-374.

42. Zeglinski G. W., Han R. P. S., Aitchison P. Object-Oriented Matrix Classes For Use In A Finite Element Code Using С++ // International Journal For Numerical Methods In Engineering. 1994. - V. 37. - N. 22. - P.3921-3937.

43. Cardona A., Klapka I., Geradin M. Design of a New Finite Element Programming Environment // Engineering Computations. 1994. - V. 11. - N. 4. - P. 921-934.

44. Archer G. Object-Oriented Finite Element Analysis. PhD thesis. University of California, Berkeley, 1996.

45. Zimmermann Т., Dubois-Pelerin Y., Bomme P. Object-Oriented Finite Element Programming: I. Governing Principles // Computer Methods in Applied Mechanics and Engineering. 1992. - V. 98 - N.2. - P.291-303.

46. Dubois-Pelerin Y., Zimmerman T. Object-Oriented Finite Element Programming: III. An Efficient Implementation in С++ // Computer Methods in Applied Mechanics and Engineering. V. 108. - N. 1 -2 - P. 165-183.

47. Dongarra J.J., Pozo R., Walker D. Lapack++ vl.O: High Performance Linear Algebra Users' Guide, Report No. CS-95-290. University of Tennessee, Knoxville, TN, 1995.

48. Scholz S.P. Elements of an Object-Oriented FEM++ Program in С++ // Computers and Structures. 1992. - V. 43. - N. 3. - P. 517-529.

49. Норри Д., де Фриз Ж. Введение в метод конечных элементов: Пер. с англ. М.: Мир, 1981.-304 с.

50. Padaparti R.M.V., Hudl A.V. Dynamic Analysis of Structures using Object-Oriented Techniques // Computers and Structures. V. 49. - N. 1. - P. 149156.

51. Rucki M.D. An Algorithmic Framework for Flexible Finite Element Modelling: PhD thesis. University of Washington, May 1996.

52. Rucki M.D., Miller G.R. An Algorithmic Framework for Flexible Finite Element Element-Based Structural Modeling // Computer Methods in Applied Mechanics and Engineering. V. 136. - N. 3-4. - P. 363-384.

53. Рычков B.H., Красноперов И.В., Копысов С.П. Применение объектно-ориентированного подхода для параллельных распределенных вычислений в МКЭ // Сборник научных трудов "Проблемы механики и материаловедения". Ижевск: Изд. ИПМ УрО РАН, 2001. - С. 147-155.

54. Рычков В.Н., Красноперов И.В., Копысов С.П. Объектно-ориентированная распределенная параллельная система для конечно-элементного анализа // Математическое моделирование. 2002. - Т. 14. -№ 9. - С.81-86.

55. Kopyssov S.P., Rychkov V.N., Ponomaryov А.В. The integration of CADsystems and unstructured mesh generators // Proceedings of the workshop

56. Grid generation: theory and applications", June 24-28, 2002, Dorodnicyn Computing Centre RAS, Moscow. P.218-229.

57. Копысов С.П., Рынков B.H., Пономарев А.Б. Интеграция генераторов сеток и CAD-систем // Тезисы докладов Всероссийской конференции "Актуальные проблемы прикладной математики и механики", 3-7 февраля 2003, Екатеринбург. С.44-45.

58. Копысов С.П. Методы декомпозиции и параллельные схемы метода конечных элементов. Ижевск, 1999. - 49 с. (Препринт ИПМ УрО РАН, Изд. ИПМ УрО РАН).

59. Пржеминицкий А.Н. Матричный метод исследования конструкций на основе подструктур // Ракетная техника и космонавтика. 1963. — №1. -С.165-174.

60. Соболев C.J1. Алгоритм Шварца в теории упругости // ДАН СССР. -1936. Т.4. - №6. - С.235-238.

61. Самарский А.А., Вабищевич П.Н. Аддитивные схемы для задач математической физики. -М.: Наука, 1999. -319 с.

62. McKenna F. T. Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithms and Parallel Computing. PhD thesis. — University of California, Berkeley, 1997. 285 p.

63. Sause R., Song J. Object-Oriented Structural Analysis with Substructures // Computing in Civil Engineering: Proceedings of the First Conference held in Conjunction with A/E/C Systems 1994, Washington, D.C., June 20-22, 1994. -P. 153-160.

64. Rychkov V.N., Krasnopyorov I.V., Kopyssov S.P. Parallel Distributed CORBA-based Components in Mathematical Simulations // V International

65. Congress of Mathematical Modeling, September 30-0ctober 6, 2002, Dubna. -P.78.

66. Kopyssov S.P., Krasnopyorov I.V., Novikov A.K., Rychkov V.N. Parallel Distributed Object-oriented Model of Domain Decomposition // Book of Abstracts 15th International Conference on Domain Decomposition Methods, July 21-25, 2003, Berlin.-P.63-64.

67. Копысов С.П., Красноперов И.В., Рынков B.H. Объектно-ориентированный метод декомпозиции области // Вычислительные методы и программирование. 2003. - Т. 4. - № 1. - С. 176-193.

68. Karypis, G., Kumar, V. Metis: Ustructured Graph Partitioning and Sparse Matrix Ordering Library: Technical Report. Department of Computer Science, University of Minnesota, 1995.

69. Копысов С.П., Красноперов И.В., Рычков В.Н. Реализация объектно-ориентированной модели метода декомпозиции на основе параллельных распределенных компонентов CORBA // Вычислительные методы и программирование. 2003. - Т. 4. - № 1. - С. 194-206.

70. Сегерлинд JI. Применение метода конечных элементов: Пер. с англ. — М.: Мир, 1979.-392 с.