.../Структура/ЛДО

Ускорение вычислений при разностном решении уравнений дифракционной оптики

1. Разработан численный метод решения сеточных уравнений явных разностных схем, основанный на использовании векторов с длиной, равной количеству узлов сеточной области и ориентированный на производство векторных вычислений на графических процессорах. Реализация векторного алгоритма, основанного на операции gaxpy, позволила добиться ускорения вычислений (от 1,2 до 1,4 раз в диапазоне от 250 до 1000 тысячи узлов сеточной области по одному пространственному направлению) при разностном решении уравнений Максвелла по сравнению с пакетом B-CALM Калифорнийского технологического института.

Предложенное правило формирования векторов на двумерной сеточной области

Сравнение длительности вычислений по B-CALM (прерывистая линия) и новому длинновекторныму алгоритму (сплошная)


2. Разработан численный метод совместного разностного решения волнового уравнения и системы уравнений Максвелла, характеризующийся по сравнению с FDTD-методом сокращением на четверть объема используемой памяти ЭВМ и в 2,6 раза длительности вычислений. Последний результат практически не зависит от марки процессора серии Intel Core (сравнивались Intel Core i3, i5 и i7), версии операционной системы Linux (сравнивались Ubuntu и CentOS), компилятора (использовались gfortran, PGI Fortran и Intel Fortran) и совпадает с разработанной теоретической оценкой, основанной на сравнении коммуникаций между оперативной памятью ЭВМ и кэш-памятью процессора в ходе расчетов по двум упомянутым методам. Выдвинуто и подтверждено предположение о решающем влиянии указанных коммуникаций на общую длительность расчетов, практически не зависящую от вычислительной сложности алгоритмов решения явных сеточных уравнений.

процессор

операционная система и компилятор

алгоритмы и пакеты

MEEP+PML

FDTD+PML

JS+PML

i7-3770

Ubuntu и GCC

122,68

109,16

42,43

Cent OS и PGI Fortran

 

108,53

43,18

i5-4200M

Ubuntu и GCC

206,40

173,60

66,09

Ubuntu и Intel Fortran

 

173,56

65,96

i3-4150

Ubuntu и GCC

186,2

157,99

59,79

Сравнение длительности вычислений (в секундах) для пакета MEEP разработки Массачусетского технологического университета, FDTD - программы Susan C. Hagness, прилагающейся к текстам фундаментальных монографий Allen’а Taflove и JS – совместного разностного решения

3. Синтезированы блочные алгоритмы совместного разностного решения волнового уравнения и уравнений Максвелла, отличающиеся от традиционного подхода к решению сеточных уравнений (послойное нахождение значений сеточных функций) переходом к другому порядку вычислений на пространстве итераций, связанному с производством расчетов внутри локальной подобласти (блока), пересекающей несколько временных слоев сеточной области. Найдена форма блока, обеспечивающая наилучшее ускорение вычислений по сравнению тривиальным подходом. На упомянутой ранее аппаратной и системой базе оно достигало 1,9 раза по отношению к не блочной реализации авторского численного метода и 5,88 и 4,99 раз по сравнению с программными реализациями Массачусетского технологического университета и Susan C. Hagness соответственно. Сформулирована и подтверждена теоретическая оценка размера блока, обеспечивающего наименьшую длительность расчетов, связанная с ёмкостью уровня кэш-памяти L3 процессора.

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

Публикации:

  1. Golovashkin, D.L. Solving finite-difference equations for diffractive optics problems using graphics processing units / D.L. Golovashkin, D.G. Vorotnokova, A.V. Kochurov, S.A. Malysheva // Optical Engineering, 2013. - Vol. 52(9). – P. 091719.
  2. Vorotnikova, D.G. CUBLAS-aided Long Vector Algorithms/ D.G. Vorotnikova, D.L. Golovashkin// Journal of Mathematical Modelling and Algorithms in Operations Research, 2014. - V.13(4). – P. 425-431.
  3. Kochurov, A.V. GPU implementation of Jacobi Method and Gauss-Seidel Method for Data Arrays that Exceed GPU-dedicated Memory Size/ A.V. Kochurov, D.L. Golovashkin // Journal of Mathematical Modelling and Algorithms in Operations Research, V.14, Iss 4, 2015, pp 393-405.
  4. Яблокова, Л.В. Блочные алгоритмы совместного разностного решения уравнений Даламбера и Максвелла / Л.В. Яблокова, Д.Л. Головашкин // Компьютерная оптика. – 2018. – Т. 42, No 2. – С. 320-327.