=Paper= {{Paper |id=Vol-1787/535-540-paper-93 |storemode=property |title=Использование технологии OpenCL для моделирования сейсмических процессов сеточно-характеристическим методом (Applying OpenCL technology for modeling seismic processes with grid-characteristic method) |pdfUrl=https://ceur-ws.org/Vol-1787/535-540-paper-93.pdf |volume=Vol-1787 |authors=Andrey Ivanov,Nikolay Khokhlov }} ==Использование технологии OpenCL для моделирования сейсмических процессов сеточно-характеристическим методом (Applying OpenCL technology for modeling seismic processes with grid-characteristic method)== https://ceur-ws.org/Vol-1787/535-540-paper-93.pdf
              Использование технологии 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