Программный комплекс для численного моделирования дискообразной самогравитирующей системы неупругих частиц с массивным центром

Автор: Баранов Валентин Евгеньевич, Макарян Владимир Георгиевич

Журнал: Известия Самарского научного центра Российской академии наук @izvestiya-ssc

Рубрика: Механика и машиностроение

Статья в выпуске: 6-3 т.15, 2013 года.

Бесплатный доступ

В данной работе рассмотрено численное решение гравитационной задачи Nтел для дискообразной системы с массивным центром с применением технологии массивно-параллельных вычислений и автоматизацией численных экспериментов.

Дискообразные самогравитирующие системы, технология cuda, автоматизация эксперимента, гравитационная задача nтел

Короткий адрес: https://sciup.org/148202595

IDR: 148202595

Текст научной статьи Программный комплекс для численного моделирования дискообразной самогравитирующей системы неупругих частиц с массивным центром

системы N массивных частиц между собой и с цен-

тральным массивным точечным телом:

d2 r j dt2

1 ,y mi    1

2 ^ " Irjl5 /

r j

i

к

где r j – радиус-вектор j -й частицы, r ij – расстояние между i -й и j -й частицей системы, mi – мас-

са i -й частицы, M –масса центрального тела, i, j = 1 - N ; i + j .

Система обыкновенных дифференциальных

уравнений решалась с помощью метода Рунге-Кутты 4-го порядка точности. Описанный метод

называется методом прямого интегрирования задачи N тел и является наиболее точным, одна-

ко вычислительная сложность этого метода оценивается как O ( N 2) , что приводит к серьезным ограничениям на количество частиц в рассматриваемой системе [2].

В результате исследований [3], выполненных для систем описанного класса с использованием технологии CUDA, удалось достичь значения числа частиц Nпорядка 3 . 10 5 (для трёхмерной задачи). Однако, несмотря на применение параллельных вычислений, порог значения N, за которым вычислительная сложность задачи начинает оказывать существенное влияние на время вычисления, достигается крайне быстро. Уже для N = 3 105 время, затрачиваемое на каждый шаг вычисления, составляет около 20с, а учитывая тот факт, что эволюция подобных систем происходит на значительных временных масштабах, этот фактор крайне критичен.

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

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

Было реализовано два алгоритма с использованием сеток: алгоритм с простой прямоугольной сеткой и сетка с разделением на слои. В последнем случае ячейки сетки условно делятся на «ближний» и «дальний» слои. «Ближний» слой составляют 8 ячеек, непосредственно примыкающих к текущей. Для таких ячеек взаимодействие по-прежнему происходит с каждой частицей. «Дальний» слой составляют все остальные частицы сетки. Для них взаимодействия с каждой частицей заменяется взаимодействием с центром масс соответствующей «дальней» ячейки. При этом внутри текущей ячейки обрабатываются взаимодействия между всеми частицами. Подробные описания и схемы этих алгоритмов приведены в работе [4]. Диапазон размерностей сетки рассматривался в пределах от 2х2 до 30х30 ячеек. Численные эксперименты проводились для числа частиц от 103 до 2 . 104

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

  • 1.    для максимального приближения к действительности модель должна содержать большое число частиц (от 104 и выше);

  • 2.    необходимость проведения численных экспериментов с различными начальными условиями;

  • 3.    необходимость постановки большого числа длительных экспериментов с различными параметрами и сценариями;

  • 4.    необходимость сбора и хранения данных о состоянии каждой частицы на каждом шаге вы-

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

Главное окно программы имеет вид, изображённый на иллюстрации (рис. 1). Оно предназначено для отображения состояния системы, перехода к другим модулям приложения, а также минимальным функционалом для ручного управления экспериментом (в основном управление заключается в функциях запуска, паузы, остановки эксперимента и изменении параметров отображения системы, например, масштабировании).

Поддерживается два способа задания начальных условий:

  • 1.    автоматическая генерация начальных параметров системы в заданных пределах;

  • 2.    возможность использования в качестве входных данных т.н. «среза» состояния системы на определённом шаге вычисления из проведённых ранее экспериментов.

Параметры системы задаются в отдельном окне, вид которого приведен на иллюстрации (рис. 2). Реализована возможность выбора как геометрических характеристик системы, числа частиц и численного метода решения уравнений взаимодействия, так и выбор упрощающих алгоритмов и типы вычислительной архитектуры (CPU или GPU) для увеличения производительности. Также поддерживается включение и отключение записи параметров системы в файл на каждом шаге вычисления.

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

Рис. 1. Главное окно программы

Рис. 2. Окно для задания начальных условий

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

Окно для настройки вычисляемых характеристик системы (см. рис. 4) позволяет более подробно указать, какие из выходных данных необходимо получить в результате обработки (например, зависимости числа частиц системы от времени, распределение частиц по массам и т.п.).

При этом для каждой зависимости можно отдельно задать параметры сортировки.

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

Таким образом, разработанный программный комплекс позволяет выполнять численные эксперименты для описанного выше класса систем, учитывая приведённые особенности моделирования, в автоматическом режиме.

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

Рис. 3. Окно общих настроек модуля обработки данных

Рис. 4. Окно для настройки вычисляемых характеристик системы

Рис. 5. Окно для графического отображения полученных данных

ния некоторых типов выходных данных (например, суммарного момента импульса) в координатных осях в реальном времени. Кроме того, планируется адаптировать функционал для возможности использования на суперкомпьютерных системах.

В результате серии проведенных численных экспериментов для различных алгоритмов максимальный прирост производительности был получен для простой прямоугольной сетки размерностью 20х20 ячеек (см. Рис.6), однако сетка с разделением на слои в данных условиях не показала положительных результатов. На следующих этапах работы планируется исследовать алгоритмы на сетках большей размерности (в текущей реализации общее количество ячеек сетки ограничено размером блока нитей в CUDA).

Несмотря на приведённые ограничения эксперимента, уже сейчас можно сделать вывод о том, что параллельная реализация алгоритма с использованием простой прямоугольной сетки позволяет частично снизить вычислительную сложность задачи. Кроме того, для выбранного диапазона размеров сетки эффективность алгоритма возрастает в зависимости от числа частиц системы и количества ячеек сетки.

■ Прямой метод ■ Простая прямоугольная сетка ■ Сетка с разделением на слои

Рис. 6. Зависимость времени вычисления шага от числа частиц для разных алгоритмов

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

  • 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.
  • Баранов В.Е., Макарян В.Г. Численное моделирование эволюции дискообразной самогравитирующей системы многих тел с применением параллельных вычислений на графических сопроцессорах (GPU)//Сборник трудов Международной молодежной научной конференции «XX Туполевские чтения». 2012. С. 318 -321.
Статья научная