Вестник РУДН Серия Математика. Информатика. Физика. № 3 (2). 2010. С. 101-104
УДК 519.684.6
Программный комплекс для моделирования с помощью современных многопроцессорных систем задач механики сплошной среды
С. В. Поляков, Э. М. Кононов, О. А. Косолапов, Т. А. Кудряшова
Институт математического моделирования РАН Миусская пл., 4а, Москва, 125047, Россия
В данной работе представлен программный комплекс для решения задач механики сплошной среды. Данный комплекс содержит инструменты, позволяющие пользователю решить конкретную задачу от начала (проектирование расчётной области, задание граничных условий) до конца (просмотр конечных результатов). Эти инструменты ориентированы на использование современных многопроцессорных систем. Комплекс состоит из 4 основных компонентов: редактор геометрии, генератор сеток, визуализатор результата и оболочка, которая объединяет 3 остальных компонента в едином интерфейсе и управляет передачей данных между ними и многопроцессорной системой. Пользователь напрямую взаимодействует только с оболочкой, т.е. ему не нужно знать, как компоненты взаимодействуют между собой и с вычислительной системой. Решение любой задачи состоит из 4 основных этапов: проектирование расчётной области и задание граничных условий в редакторе, создание подходящей сетки с помощью генератора сеток, запуск расчёта на вычислительном кластере, просмотр результатов во встроенном визуализа-торе. Все эти этапы могут быть пройдены с помощью оболочки
Ключевые слова: параллельные вычисления, моделирование, вычислительные кластеры, механика сплошных сред.
1. Введение
В настоящей работе представлены возможности программного комплекса для моделирования задач механики сплошной среды. Этот комплекс содержит набор инструментов, позволяющих решить определённую задачу от начала (задание геометрии области решения, граничных условий) до конца (просмотр результата). Эти инструменты ориентированы на использование параллельных алгоритмов и современных многопроцессорных систем, но могут работать и на персональном компьютере. Комплекс состоит из 4 компонентов: редактор для задания геометрии расчётной области и граничных условий, генератор сеток, визуализатор для удобного представления результатов вычислений в разных формах и оболочка, которая объединяет 3 других компонента в одном интерфейсе и управляет передачей данных между клиентской машиной и многопроцессорной системой. Пользователь напрямую взаимодействует только с оболочкой, т.е. ему не нужно знать, как остальные компоненты взаимодействуют между собой и с многопроцессорной системой. Схема взаимодействия компонентов приведена на рис. 1. Возможности комплекса были проверены на решении задач, описанных в [1]. Решение задач производилось итерационными параллельными методами [2] с использованием реализации MPICH [3] стандарта MPI [4] и библиотеки PETSc [5]. Разбиение расчётной области на вычислительные домены производилось пакетом METIS [6].
2. Проектирование геометрии расчётной области
и построение сетки
Проектирование геометрии расчётной области происходит в редакторе геометрии (рис. 2), который позволяет создавать или изменять геометрию двумерной или трёхмерной области решения, выполнять с ней различные операции. Позволяет как создавать объекты самому, так и использовать импортированные из
Рис. 1. Схема взаимодействия компонентов комплекса
внешних файлов (поддерживается несколько популярных форматов файлов: .3ds, .mesh, .plt и др.). В редакторе есть инструменты, позволяющие производить различные операции с объектами, чтобы в результате придать им требуемый для конкретной задачи вид. Поддерживается экспорт объектов в различные популярные форматы. Для построения подходящих для решения задачи сеток есть генератор сеток Tetgen [7], используемый по умолчанию. Он позволяет строить сетки с различной степенью детализации, которая определяется значениями входных параметров, а также строить сетки используя не только ресурсы локальной машины, но и на кластере.
¿росс CtjK4 -«ь -.lai-^
- Я г: О ф $ а- "-j'j кг ; tm Vw ^ m^i ■ и Em
£ 1 Fteputn ff К
I
о
X
+
£ г £ <1 1 •
moi ff я
s
2
Ш П ■ -t
г 1 г ••Ясна 1
1
uad [
5jve 1
Рис. 2. Редактор геометрии
Программный комплекс для моделирования с помощью современных .
103
3. Оболочка и просмотр результатов
Оболочка организует процесс решения конкретной задачи от начала до конца. На первом этапе работы необходимо определить геометрию расчётной области. Её можно или построить самому с помощью встроенного редактора, или выбрать уже существующий файл, в котором она определена. Следующий этап — построение сетки, подходящей для решения задачи. В оболочке есть встроенный генератор сеток, который используется по умолчанию, но помимо него можно зарегистрировать дополнительные генераторы и использовать любой из них. Построенную сетку можно просматривать во встроенном редакторе и, если она по каким-то причинам не подходит для дальнейших расчётов, изменить параметры генерации и сгенерировать её заново.
Для работы с кластерами оболочка предоставляет интерфейс для их регистрации. Также необходимо зарегистрировать в оболочке расчётные модули кластера — программы, которые производят вычисления и сохраняют результат в файлах. После того как расчётная сетка окончательно построена, можно выбрать один из доступных кластеров и запустить на нём расчёт. Пока производятся вычисления на кластере, их можно в любой момент остановить или узнать состояние задачи, оболочка все это позволяет сделать. После окончания расчёта пользователь может получить список результатов и отобразить желаемый результат во встроенном визуализаторе (рис. 3). Визуализатор отображает на экране результаты расчётов в наглядном виде, которые поступают к нему от расчётного модуля в виде файла РЬТ.
I
Рис. 3. Отображение результатов расчётов в визуализаторе
4. Выводы
В настоящей работе был разработан комплекс программ, позволяющий произвести решение задачи механики сплошной среды от начала до конца. Была проверена его работоспособность при расчёте параметров течения газа вокруг спускаемого аппарата. Отличительной особенностью данного комплекса является его
ориентированность на параллельные вычисления и многопроцессорные системы.
Весь программный код написан на языке СН—Н с использованием библиотеки Qt и
может быть скомпилирован как на компьютерах под управлением Windows, так
и на компьютерах, где используется Linux.
Литература
1. Кудряшова Т. А, Поляков С. В., Свердлин А. А. Расчет параметров течения газа вокруг спускаемого аппарата // Математическое моделирование. — 2008. — Т. 20, № 10. — С. 119-128.
2. Saad Y. Iterative Methods for Sparse Linear Systems. — PWS, 1996.
3. MPICH-A Portable Implementation of MPI. — http://www-unix.mcs.anl.gov/ mpi/mpich1/.
4. The Message Passing Interface (MPI) Standard. — http://www-unix.mcs.anl. gov/mpi/.
5. PETSc Web page. — 2001. — http://www.mcs.anl.gov/petsc.
6. Metis - Serial Graph Partitioning and Fill-reducing Matrix Ordering. — http: //glaros.dtc.umn.edu/gkhome/metis/metis/overview.
7. Tetgen: A Quality Tetrahedral Mesh Generator. — http://tetgen.berlios.de.
UDC 519.684.6
Software Complex for Modelling Problems of Continuum Mechanics with the Help of Modern Multiprocessor Systems
S.V. Polyakov, E. M. Kononov, O.A. Kosolapov, T.A. Kudryashova
Institute of Mathematical Modeling of RAS Miusskaya sq., 125047, Moscow, Russia
This work presents a program complex for solving problems arising in continuum mechanics. The complex contains the tools allowing the user to solve a specific problem from the beginning (design of computational domain, formulation of boundary conditions) up to the end (viewing end results). These tools are focused on using modern multiprocessor systems. The complex comprises 4 basic components: geometry editor, grid generator, a visual analyzer of result and a shell which unites 3 remaining components in a uniform interface and controls data transfer between each other and the multiprocessor system. The user directly cooperates only with the shell, i.e. the user does not need to know how the components in-teroperate and operate with the computing system. The solution of any problem consists of 4 basic stages: design of computational domain, formulation of boundary conditions in the editor, creation of a suitable grid with the help of the grid generator, start-up of calculation on a computing cluster, viewing of results in the built-in visual analyzer. All these stages can be prformed with the help of the shell.
Key words and phrases: parallel computing, modelling, computing clusters, continuum mechanics.