ЧЕЛОВЕК И ОКРУЖАЮЩАЯ СРЕДА
www.volsu.ru
УДК 004.421.2 ББК 32.973.26
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ПРИ МОДЕЛИРОВАНИИ БЕССТОЛКНОВИТЕЛЬНОЙ ГРАВИТИРУЮЩЕЙ СИСТЕМЫ
Крылов Иван Владимирович
Магистрант кафедры информационных систем и компьютерного моделирования,
Волгоградский государственный университет
просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация
Ключевые слова: моделирование ^-тел, графические процессоры, параллельное программирование, ускорение вычислений, CUDA.
Введение. Задача ^-тел. Модель ^-тел активно используется для решения широкого круга задач, в которых важную роль играют коллективные процессы. Взаимодействие в задаче ^-тел определяется между парами частиц. Сила, действующая на одну /-частицу, является суммой вкладов от всех остальных частиц. Каждое тело системы характеризуется набором параметров (масса, скорость, положение в пространстве). Для определения закона движения всех частиц необходимо уметь рассчитывать ускорения, обусловленные силовым влиянием на нее других частиц:
N F
j=1 m
(1)
где Fj.- сила, с которой/-частица действует на / -частицу.
Примеры потенциалов взаимодействия приведены в [2; 4]. Для гравитационного взаимодействия, на основании формулы (1), имеем
о
(N
PQ
К «
Si з
£
= G X
г(о - ri)
(2)
Непосредственные вычисления по формуле (2) являются достаточно ресурсоемкими: для N частиц объем вычислений растет как О(^). Поэтому помимо прямых методов
для эффективного моделирования используются и более сложные схемы, позволяющие сократить объем вычислений до O(NlogN) [5].
Альтернативным способом сокращения времени расчетов является использование технологий параллельных вычислений на графических процессорах. Наиболее продвинутой в настоящее время считается технология CUDA.
Параллельная реализация построена с учетом выравнивания и использованием разделяемой памяти [3]. Механизм взаимодействия нитей друг с другом в CUDA реализован при помощи встроенной функции _syncthreads() [1].
Были проведены тесты параллельной реализации задачи N-тел на графических процессорах GeForce GTX 850, Tesla C2070. Ускорение оценивалось по отношению к последовательному алгоритму исполняемом на CPU Intel Core i7 (см. рисунок).
Заключение. Параллельные вычисления при моделировании эволюции гравитирующей системы с использованием технологии CUDA показывают свою эффективность и могут варьироваться в зависимости от вычислительной мощности, размерности и специфики задачи, оптимальности написанного кода. Для специализированных графических процессоров в задаче N-тел ускорение вычислений может достигать порядка 100 и более раз.
Вестник ВолГУ. Серия 9. Вып. 13. 2015
29
a
m
a
j=1, j*i r
ЧЕЛОВЕК И ОКРУЖАЮЩАЯ СРЕДА l
Результаты моделирования
Ускорение в зависимости от размерности задачи
СПИСОК ЛИТЕРА ТУРЫ
1. Боресков, А. В. Основы работы с технологией СПЭА / А. В. Боресков, А. А. Харламов. - М. : ДМК Пресс, 2010. - 232 с.
2. Морозов, А. Г. Физика дисков / А. Г. Морозов, А. В. Хоперсков. - Волгоград : Изд-во ВолГУ, 2005. - 415 с.
3. Сандерс, Дж. Технология CUDA в примерах: введение в программирование графических процессоров / Дж. Сандерс, Э. Кэндрот. - М., 2011. - 232 с.
4. Фридман, А. М. Физика галактических дисков / А. М. Фридман, А. В. Хоперсков. - М., 2011. - 645 с.
5. Barnes, J. A hierarchical O (N log N) force-calculation algorithm / J. Barnes, P. Hut // Nature. -1986. - Т. 324. - P. 446-449.
RESEARCH OF PARALLEL COMPUTATION EFFICIENCY WHEN MODELING COLLISIONLESS GRAVITATING SYSTEM
Krylov Ivan Vladimirovich
Master Student, Department of Informational Systems and Machine Simulation,
Volgograd State University
Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation
Key words: V-body simulation, GPU, parallel programming, acceleration of calculations, CUDA.
30
И.В. Крылов. Исследование эффективности параллельных вычислений