УДК 519.688
ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ ЧИСЛЕННОГО МОДЕЛИРОВАНИЯ ДИСКООБРАЗНОЙ САМОГРАВИТИРУЮЩЕЙ СИСТЕМЫ НЕУПРУГИХ ЧАСТИЦ С МАССИВНЫМ ЦЕНТРОМ
© 2013 В.Е.Баранов, В.Г. Макарян
Самарский государственный аэрокосмический университет им. академика С.П.Королёва (национальный исследовательский университет)
Поступила в редакцию 02.12.2013
В данной работе рассмотрено численное решение гравитационной задачи №ел для дискообразной системы с массивным центром с применением технологии массивно-параллельных вычисленийи автоматизацией численных экспериментов.
Ключевые слова: дискообразные самогравитирующие системы, технология СиОЛ, автоматизация эксперимента, гравитационная задача №гел.
В последние десятилетия наблюдается резкое возрастание внимания к численному моделированию протопланетных дисков и аналогичных им самогравитирующих систем. Это вызвано последними успехами астрономии, связанными с открытиями большого числа внесолнечных планет (экзопланет).К настоящему времени известно более тысячи экзопланет, и с каждым годом их количество увеличивается на несколько сотен.-Согласно современным представлениям, планетные системы вокруг звезд образуются в результате сжатия протопланетных газопылевых дис-ков.Э то делает актуальной задачу всестороннего изучения эволюции систем подобного класса.
Ввиду очевидной сложности непосредственного наблюдения таких систем, а также невозможности точного аналитического решения задачи N тел, особое значение приобретают численные методы. Помимо этого, бурное развитие неграфических вычислений с использованием графических процессоров (GPGPU) открывает широкие возможности для увеличения числа частиц, участвующих в моделировании исследуемых систем, что позволяет получить более точные результаты. В частности, использованная в данной работе архитектура CUDA предоставляет относительно простой и доступный программный интерфейс [1], а также широкие возможности для оптимизации в рамках поставленной задачи. Использование подобного инструментария позволяет ускорить вычисления в десятки и даже сотни раз по сравнению с вычислениями на центральном процессоре.
В основе модели лежит система уравнений, описывающая гравитационное взаимодействие
Баранов Валентин Евгеньевич, аспирант кафедры физики. E-mail: [email protected]
Макарян Владимир Георгиевич, кандидат физико-математических наук, доцент кафедры физики. E-mail: [email protected]
системы N массивных частиц между собой и с центральным массивным точечным телом:
( \
d2 rj dt2
1
■ +
I
m.
i
M
1
\
(1)
рассто-
где r j - радиус-векторj-й частицы, яние между i-й и/-й частицей системы, mi - масса i-й частицы, M-масса центрального тела,
i, j = 1 + N; i Ф j.
Система обыкновенных дифференциальных уравнений решалась с помощью метода Рунге-Кутты 4-го порядка точности. Описанный метод называется методом прямого интегрирования задачи N тел и является наиболее точным, однако вычислительная сложность этого метода оценивается как O(N2), что приводит к серьезным ограничениям на количество частиц в рассматриваемой системе [2].
В результате исследований [3], выполненных для систем описанного класса с использованием технологии CUDA, удалось достичь значения числа частиц порядка 3 . 105 (для трёхмерной задачи). Однако, несмотря на применение параллельных вычислений, порог значения N, за которым вычислительная сложность задачи начинает оказывать существенное влияние на время вычисления, достигается крайне быстро. Уже для N = 3 . 105 время, затрачиваемое на каждый шаг вычисления, составляет около 20с, а учитывая тот факт, что эволюция подобных систем происходит на значительных временных масштабах, этот фактор крайне критичен.
С другой стороны, в рамках данной работы было показано, что для вычислений на архитектуре СРиупрощающие алгоритмы класса Tree-Code (или т.н. древовидные алгоритмы) позволяют существенно снизить вычислительную
2
2
r
r
сложность задачи для большого числа частиц. Целью текущего этапа работы являлась оценка применимости параллельной реализации подобных алгоритмов для дискообразных самограви-тирующих систем.
Было реализовано два алгоритма с использованием сеток: алгоритм с простой прямоугольной сеткой и сетка с разделением на слои. В последнем случае ячейки сетки условно делятся на «ближний» и «дальний» слои. «Ближний» слой составляют 8 ячеек, непосредственно примыкающих к текущей. Для таких ячеек взаимодействие по-прежнему происходит с каждой частицей. «Дальний» слой составляют все остальные частицы сетки. Для них взаимодействия с каждой частицей заменяется взаимодействием с центром масс соответствующей «дальней» ячейки. При этом внутри текущей ячейки обрабатываются взаимодействия между всеми частицами. Подробные описания и схемы этих алгоритмов приведены в работе [4]. Диапазон размерностей сетки рассматривался в пределах от 2х2 до 30х30 ячеек. Численные эксперименты проводились для числа частиц от 103 до 2-104
Для решения задачи указанными методами разрабатывается программный комплекс, описание некоторых модулей которого приведено ниже. Он позволяет учесть следующий ряд особенностей задачи:
1. для максимального приближения к действительности модель должна содержать большое число частиц (от 104 и выше);
2. необходимость проведения численных экспериментов с различными начальными условиями;
3. необходимость постановки большого числа длительных экспериментов с различными параметрами и сценариями;
4. необходимость сбора и хранения данных о состоянии каждой частицы на каждом шаге вы-
числения;
5. необходимость обработки полученных в результате экспериментов данных в автоматическом режиме и представления полученной информации в графическом виде.
Главное окно программы имеет вид, изображённый на иллюстрации (рис. 1). Оно предназначено для отображения состояния системы, перехода к другим модулям приложения, а также минимальным функционалом для ручного управления экспериментом (в основном управление заключается в функциях запуска, паузы, остановки эксперимента и изменении параметров отображения системы, например, масштабировании).
Поддерживается два способа задания начальных условий:
1. автоматическая генерация начальных параметров системы в заданных пределах;
2. возможность использования в качестве входных данных т.н. «среза» состояния системы на определённом шаге вычисления из проведённых ранее экспериментов.
Параметры системы задаются в отдельном окне, вид которого приведен на иллюстрации (рис. 2). Реализована возможность выбора как геометрических характеристик системы, числа частиц и численного метода решения уравнений взаимодействия, так и выбор упрощающих алгоритмов и типы вычислительной архитектуры (CPU или GPU) для увеличения производительности. Также поддерживается включение и отключение записи параметров системы в файл на каждом шаге вычисления.
Для анализа полученных в результате численных экспериментов данных был реализован отдельный программный модуль. Анализ выполняется после завершения эксперимента, что исключает отрицательное влияние на производительность при численном решении задачи. Обработчик по-
Рис. 2. Окно для задания начальных условий
зволяет автоматически выделить из всего массива собранных данных параметры отдельных шагов вычисления с сохранением этих данных в системе поддиректорий. При этом генерируемые имена директорий содержат даты экспериментов и заметки пользователя, что позволяет быстро найти необходимые результаты. Кроме того, поддерживается сортировка данных (с повторяющимися элементами - для построения гистограммы - и без них) и округление. Эти операции являются общими параметрами для всех обрабатываемых данных и задаются в основном окне обработчика (см. рис. 3). Также в этом окне можно задать вычисление полного набора выходных данных, предусмотренных в программе.
Окно для настройки вычисляемых характеристик системы (см. рис. 4) позволяет более подробно указать, какие из выходных данных необходимо получить в результате обработки (например, зависимости числа частиц системы от времени, распределение частиц по массам и т.п.).
При этом для каждой зависимости можно отдельно задать параметры сортировки.
После сохранения всех настроек и запуска анализа система автоматически вычисляет все выбранные типы выходных данных, сохраняет их в соответствующие директории, а в директорию с каждым экспериментом сохраняется файл с начальными параметрами системы. Система также позволяет указать выполнить пропущенные ранее вычисления в уже существующих выходных директориях.
Таким образом, разработанный программный комплекс позволяет выполнять численные эксперименты для описанного выше класса систем, учитывая приведённые особенности моделирования, в автоматическом режиме.
В ближайшее время планируется расширить функциональность приложения путём добавления автоматического построения и сохранения графиков указанных зависимостей (аналогично приведённым на рис. 5), а также отображе-
Рис. 3. Окно общих настроек модуля обработки данных
Рис. 4. Окно для настройки вычисляемых характеристик системы
Рис. 5. Окно для графического отображения полученных данных
ния некоторых типов выходных данных (например, суммарного момента импульса) в координатных осях в реальном времени. Кроме того, планируется адаптировать функционал для возможности использования на суперкомпьютерных системах.
В результате серии проведенных численных экспериментов для различных алгоритмов максимальный прирост производительности был получен для простой прямоугольной сетки размерностью 20х20 ячеек (см. Рис.6), однако сетка с разделением на слои в данных условиях не показала положительных результатов. На следующих
этапах работы планируется исследовать алгоритмы на сетках большей размерности (в текущей реализации общее количество ячеек сетки ограничено размером блока нитей в СиОЛ).
Несмотря на приведённые ограничения эксперимента, уже сейчас можно сделать вывод о том, что параллельная реализация алгоритма с использованием простой прямоугольной сетки позволяет частично снизить вычислительную сложность задачи. Кроме того, для выбранного диапазона размеров сетки эффективность алгоритма возрастает в зависимости от числа частиц системы и количества ячеек сетки.
I Прямой метод ■ Простая прямоугольная сетка I Сетка с разделением на слои
Рис. 6. Зависимость времени вычисления шага от числа частиц для разных алгоритмов
2.
3.
СПИСОК ЛИТЕРАТУРЫ
CUDA C Programming Guide. URL: http:// docs.nvidia.com/cuda/cuda-c-programming-guide/ index.html (дата обращения 23.11.2013). Кинг Айвен Р. Введение в классическую звездную динамику: Учебное пособие. [пер с англ. В.Г. Сурдина и А.С. Расторгуева]. М.: Едиториал УРСС, 2002. 288 с. Баранов В.Е. Численное моделирование бесстолкно-
вительной самогравитирующей дискообразной системы частиц с помощью технологии CUDA // Физическое образование в вузах. 2012. №4. С. П13.
4. Баранов В.Е., Макарян В.Г. Численное моделирование эволюции дискообразной самогравитирующей системы многих тел с применением параллельных вычислений на графических сопроцессорах (GPU) // Сборник трудов Международной молодежной научной конференции «XX Туполевские чтения». 2012. С. 318 - 321.
PROGRAM FOR SIMULATION OF SELF-GRAVITING DISK-LIKE COSMIC SYSTEMS WITH MASSIVE CENTER AND RIGID PARTICLES
1.
© 2013 V.E. Baranov, V.G. Makaryan
Samara State Aerospace University named after Academician S.P. Korolyov (National Research University)
In this paper the numerical simulation of N body problem in case of disk-like cosmic system with massive center is described. To perform the simulations, the massively parallel computing technologies and simulation automation were used.
Key words: self-graviting disk-like systems, CUDA technology, experiment automation, N body problem.
Valentin Baranov, Graduate Student at the Physics Department. E-mail: [email protected]
Vladimir Makaryan, Candidate of Physics and Mathematics, Associate Professor at the Physics Department. E-mail: [email protected]