Использование технологии OpenCL для моделирования сейсмических процессов сеточно-характеристическим методом А. М. Иванов, Н. И. Хохлов Московский физико-технический институт (государственный университет) Россия, 141701, г. Долгопрудный, Институтский пер., 9 В работе рассматривается применение технологии OpenCL для моделирования сейсмических про- цессов. Решается двумерная задача распространения сейсмических волн. Для этого находится численное решение волнового уравнения упругости. Решение данного уравнения находится с использованием се- точно-характеристического метода. Он применим в случае, если система уравнений гиперболическая, а значит, результаты данной работы применимы и к другим задачам, которые сводятся к решению гипер- болических систем. Было произведено сравнение производительности численного метода на централь- ном процессоре (CPU) и на графическом процессоре (GPU). На GPU тесты с использованием технологии OpenCL сравнивались с теми же тестами с использованием технологии CUDA. Производительность ал- горитма при использовании технологии OpenCL отличается незначительно от производительности при использовании технологии CUDA, но OpenCL позволяет писать программы для более широкого ряда графических устройств. Вычисления производились как с двойной точностью, так и с одинарной. По сравнению с одним ядром центрального процессора Intel Xeon E5-2697 удалось получить ускорение в 44 раза при использовании графической карты GeForce GTX 780 Ti в вычислениях с одинарной точностью. При этом производительность была равна 460 ГФлопсам. Для вычислений с двойной точностью наи- большее ускорение – в 55 раз на GPU Tesla K80. Полученная производительность – 138 ГФлопс. На GPU серии Tesla была достигнута большая производительность при расчетах с двойной точностью, на GPU Geforce – при расчетах с одинарной точностью. Однако GPU серии Radeon показали средний результат по сравнению с другими картами. Кроме производительности в ГФлопсах и ускорения по сравнению с центральным процессором, для каждого графического устройства была определена доля от пиковой про- изводительности, теоретически достижимой на данном GPU. Использование технологии OpenCL для реализации сеточно-характеристического метода позволило задействовать до 32% от пиковой произво- дительности графических карт, что намного больше, чем удается достичь большинству реализаций рас- четных алгоритмов. Ключевые слова: математическое моделирование, сеточно-характеристический метод, гиперболи- ческие уравнения, параллельное программирование, GPU, OpenCL Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 15-07-01931 A. © 2016 Иванов Андрей Михайлович, Хохлов Николай Игоревич 535 1. Введение В настоящее время существует множество задач геофизики и сейсмики, достаточно точное решение которых может быть получено только методами математического моделирования. В большинстве случаев для численного решения этих задач используется большое количество вычислительных ресурсов [Petrov, Khokhlov, 2014]. С развитием технологий параллельного программирования удается все более эффективно задействовать возможности графических уст- ройств (GPU). Большинство работ в области численного моделирования рассматривает приме- нение технологии CUDA [Castro et al., 2013; Khanna, 2013]. В данной работе рассматривается применение технологии OpenCL, причем эффективность ее использования сравнивается с технологией CUDA, а также с расчетами на CPU. Рассматри- вается сеточно-характеристический метод [Muratov, 2014] с явной схемой, который относи- тельно просто поддается распараллеливанию. 2. Математическая модель Для описания поведения среды использовалась модель идеального изотропного линейно- упругого материала. Распространение сейсмических волн в упругой среде описывается сле- дующей системой уравнений:       T ,     T = (   ) I + (   +  ).  Здесь  ‒ плотность среды,  ,  ‒ параметры Ламе, T ‒ тензор напряжений,  ‒ вектор скорости. Данная система дифференциальных уравнений в частных производных описывает состояние элементарного объёма упругого материала в приближении малых деформаций. В двумерном случае она имеет вид:          x  xx  xy ,  y  xy  yy ,  t x y t x y  (1)   xx  (  2 )  x   y ,  yy    x  (  2 ) y ,  xy     x  y  .  t    x y t x y t  x y  Здесь vx и v y ‒ горизонтальная и вертикальная составляющие скорости частиц среды;  xx ,  yy , xy ‒ компоненты тензора напряжения. Систему (1) можно переписать в матричной форме: u p uq u q  Apq  B pq  0, (2) t x y T  где u ‒ вектор из 5 независимых переменных u   xx ,  yy ,  xy , vx , v y  . Явный вид матриц Apq , B pq представлен в [LeVeque, 2002]. Здесь и далее подразумевается суммирование по по- вторяющимся индексам. Собственные значения матриц Apq и B pq таковы: s1  c p , s2  cs , s3  0, s4  cs , s5  c p , где c p и cs ‒ скорости распространения продольных и поперечных волн в среде. 536 3. Численный метод Применяя покоординатное расщепление, можно свести задачу построения разностной схемы для системы уравнений (2), к задаче построения разностной схемы для системы вида: u p uq  Apq  0. (3) t x Для гиперболической системы уравнений (3) матрицу A можно представить в виде A  RR 1 , где  ‒ диагональная матрица, элементы которой — собственные значения матри- цы A , а R ‒ матрица, состоящая из правых собственных векторов матрицы A . Введём новые переменные: w  R 1u (так называемые инварианты Римана). Тогда система уравнений (3) све- дётся к системе из 5 независимых скалярных уравнений переноса. Далее для каждого скалярного уравнения переноса выписывается разностная схема чис- ленного решения, находится значение на следующем шаге wn 1 из значения на предыдущем ша- ге wn . После этого восстанавливается решение: u n 1  Rwn 1 . 3. Тесты производительности Графическое уст- Количество Частота, ГФлопс (SP) SP:DP ГФлопс (DP) ройство ядер МГц GeForce GT 640 384 900 691 24 29 GeForce GTX 480 480 1401 1345 8 168 GeForce GTX 680 1536 1006 3090 24 129 GeForce GTX 760 1152 980 2258 24 94 GeForce GTX 780 2304 863 3977 24 166 GeForce GTX 780 Ti 2880 876 5046 24 210 GeForce GTX 980 2048 1126 4612 32 144 Tesla M2070 448 1150 1030 2 515 Tesla K40m 2880 745 4291 3 1430 Tesla K80 2496 562 2806 1.5 1870 Radeon HD 7950 1792 800 2867 4 717 Radeon R9 290 2560 947 4849 8 606 Таблица 1. Характеристики графических устройств для тестовых расчетов. Для проведения тестов производительности рассматривалась двумерная тестовая задача. Вычисления производились на сетке с размерами 4096×4096. Выполнялось 6500 шагов по вре- мени. В следующей таблице представлены устройства, на которых производился запуск тесто- вой задачи. В таблице 1 изображены характеристики графических процессоров, на которых произво- дились тестовые расчеты. Сокращения SP и DP использованы для обозначения одинарной и двойной точности расчетов. SP:DP – соотношение между числом операций одинарной и двой- ной точности за такт. 537 Рис. 1. Пример решаемой задачи [Golubev, [ 2015] – изображения сейсмических волн. Акустическое реш реше- ние слева и решение, основанное на физически корректных граничных условиях справа. Тестовые расчеты были произведены на центральном процессоре и на графических уско- рителях, производительность алгоритма с использованием технологии OpenCL сравнивалась с производительностью одительностью того же алгоритма написанного с использованием технологии CUDA для GPU фирмы NVIDIA. Рис. 2. Ускорение по сравнению с CPU Intel Xeon E5-2697 Рис. 3. Процент от пиковой производительности Было определено ускорение сравнению с одним ядром центрального процессора (рис. 2). Из характеристик графических устройств, представленных в таблице 1 возможно определить процент от пиковой производительности, достижимой на каждом из GPU ((рис. 3). В дополне- ние, была измерена реальная производительность графического процессора для нашего алг алго- 538 ритма, результат представлен на рис. 4. На рис. 2-4 2 4 представлены результаты расчетов с дво двой- ной точностью. Все представленные расчеты также были выполнены с одинарной точностью точностью. Рис. 4. Производительность в ГФлопсах для рассматриваемого алгоритма 7. Заключение В данной работе удалось получить ускорение по сравнению с CPU на одном графическом устройстве – в 55 раз на GeForce GTX 780 Ti с одинарной точностью остью и в 44 раза на Tesla K80 с двойной точностью (рис. 2). На этих устройствах также было достигнуто и наибольшее знач значе- ние производительности – 460 GFLOPS и 138 GFLOPS (рис. 4). Была продемонстрирована эффективность использования технологии OpenCL для реше- ния такого рода задач. Также стоит заметить, что данная технология применима на более ши- роком классе устройств, чем CUDA, CUDA но при этом производительность отличается несуществен- но. Список литературы LeVeque R. J. Finite volume methods for hyperbolic problems. prob — Cambridgeidge university press, 2002. — Vol. 31. Golubev, V. I., Khokhlov, N. I., Petrov, I. B., Zhdanov, M. S., Velikhov, V. E. E Novel Approach to Mo Mod- elling Elastic Wavefields in Fractured Media // 77th EAGE Conference and Exhibition 2015. — 2015. Petrov I. B., Khokhlov N. I. Modeling 3D seismic problems using high-performance high performance computing sys- tems // Mathematical Models and Computer Simulations. — 2014. — Vol.. 66, No. 4. — P. 342– 350. Castro C.E., Behrens J.. Pelties C. CUDA-C implementation of the ADER-DG DG method for linear hy- perbolic PDEs // Geoscientific Model Development Discussions. — 2013. — Vol. 80, No. 3. — P. 3743–3786. Khanna G. High-Precision Precision Numerical Simulations on a CUDA GPU: Kerr Black Hole Tails // Journal of Scientific Computing. — 2013. — Vol. 56, No. 2. — P. 366–380. Muratov M. V., Petrov I. B., Sannikov I. V., Favorskaya A. V. Grid-characteristic characteristic method on unstructured tetrahedral meshes // Comput. Math. and Math. Phys. — 2014. — Vol.54, No.5. — P. 837–847 539 Applying OpenCL technology for modeling seismic processes with grid-characteristic method A. M. Ivanov, N. I. Khokhlov Moscow Institute of Physics and Technology (State University) 9, Institutskiy lane, Dolgoprudny, 141701, Russia The paper deals with the use of OpenCL technology for modeling seismic processes. We solve the problem of two-dimensional seismic wave propagation. We find numerical solution of elastic wave equation. To find a solution we use grid-characteristic method. It is applicable if the system of equations is hyperbolic, and therefore, the results of this study are applicable to other problems, which are reduced to the solution of hyperbolic systems. We have compared the performance of a numerical method on the central processor (CPU) and graphics processor (GPU). The GPU tests using OpenCL technology compared with the same tests using CUDA technology. The performance of the algorithm using OpenCL technology doesn’t differ significantly from the performance of CUDA implementation, but OpenCL allows writing programs for a wider range of graphics devices. Calculations were carried out both with double-precision and single-precision accuracy. Compared with the single-core CPU Intel Xeon E5-2697 we managed to get the acceleration of 44 times when using the graphics card GeForce GTX 780 Ti with single-precision calculations. This performance was equal to 460 Gflops. For calculations with double-precision accuracy we obtained acceleration up to 55 times on the GPU Tesla K80. The resulting performance was 138 GFlops. Greatest double-precision performance was achieved on the Tesla series GPUs, greatest single-precision – on the Geforce GPUs. However, the Radeon GPUs show average results when compared to other cards. Besides performance and acceleration comparisons with CPU, we determined percentage of peak performance theoretically achievable on each graphics device. Using OpenCL technology for the realization of grid-characteristic method allowed utilizing up to 32% of the peak performance of the graphics card, which is much higher than can be achieved for most implementations of computational algorithms. Keywords: mathematical modeling, grid-characteristic, hyperbolic, parallel programming, GPU, OpenCL The study was financially supported by RFBR as part of a research project number 15-07-01931 A. © 2016 A. M. Ivanov, N. I. Khokhlov 540