каждого выбранного дискретного направления, сведя тем самым мно-
гомерное интегродифференциальное уравнение (7) к множеству одно-
мерных обыкновенных дифференциальных уравнений (если интеграл
рассеяния учитывается итерационно):
dI
(
η, ω
)
dη
+
k
(
η
)
I
(
η, ω
) =
S
(
η, ω
)
,
где
η
— параметр, имеющий смысл расстояния вдоль луча, проходя-
щего через данный узел пространственной сетки;
S
(
η, ω
)
— источник
рассеянного излучения.
Для каждой точки сетки
x
i
необходимо провести трассировку лу-
чей, приходящих в нее вдоль векторов
ω
j
сферы направлений, выбран-
ной с учетом удаленности точки
x
i
от границы. Аккуратный учет гра-
ничных условий для поля излучения приводит к выбору своего набора
(и своего количества) дискретных направлений для каждой точки, что
серьезно увеличивает требования к вычислительным ресурсам, пре-
жде всего к памяти. При этом наличие цилиндрической симметрии
приводит к необходимости трассировать направления распростране-
ния излучения в трехмерной области. Эту задачу легко свести к трас-
сировке кривой второго порядка (гиперболы) в плоской области
D
.
Реализация МДН, а также процедуры трассировки лучей и инте-
грирования вдоль них УПИ предъявляет высокие требования к ре-
сурсам памяти вычислительного модуля. В этом случае наиболее це-
лесообразно именно использование SMP-модулей с максимальным
доступным на данном узле кластера числом процессорных ядер и мак-
симально доступной памятью.
Изложенный в настоящей работе численный метод реализован в
виде программного комплекса, написанного на языках программиро-
вания Фортран-90 и C++. Комплекс использует следующие технологии
программирования для SMP-машин:
•
технология OpenMP применена для параллельного выполнения
интегрирования УПИ вдоль протрассированных и сохраненных в опе-
ративной памяти лучей, соответствующих данному узлу сетки, осу-
ществляемого независимо для каждого узла;
•
технология nVidia CUDA использована для параллельного вычи-
сления интеграла рассеяния (учет интеграла в (7) проводится итера-
ционно) в разных пространственных узлах расчетной области, причем
вычисление всей совокупности интегралов рассеяния в данном про-
странственном узле выполняется в рамках блока тредов одного графи-
ческого мультипроцессора, а каждый отдельный интеграл вычисляется
в рамках одного треда в указанном блоке.
Использование этих технологий позволило существенно ускорить
работу программного комплекса. В частности, процедура трассировки
ISSN 1812-3368. Вестник МГТУ им. Н.Э. Баумана. Сер. “Естественные науки”. 2015. № 2
87