Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2014, № 3 (1), с. 150-155
УДК 519.6
ОЦЕНКА ВОЗМОЖНОСТЕЙ ГРАФИЧЕСКОГО ПРОЦЕССОРА ВИДЕОКАРТЫ ПРИ РЕШЕНИИ ЗАДАЧИ КОНВЕКТИВНОГО ТЕПЛОПЕРЕНОСА
© 2014 г. Ю.С. Цивинская, М.Ю. Цивинский, В.Н. Попов
Институт теоретической и прикладной механики им. С.А. Христиановича СО РАН, Новосибирск
popov@itam.nsc.ru
Поступила в редакцию 30.01.2014
На примере решения нестационарной двумерной тестовой задачи конвективного теплопереноса рассмотрены возможности параллельных вычислений на персональном компьютере с видеокартой NVIDIA при реализации систем линейных алгебраических уравнений, полученных в случае неявной аппроксимации исходной модели на структурированных пространственных сетках.
Ключевые слова: СЛАУ, итерационные методы, параллельные вычисления, графические процессоры.
Введение
Для решения современных задач механики жидкости и тепломассопереноса ресурсов персонального компьютера часто оказывается недостаточно. В настоящее время всё более широко используется новое направление в ускорении вычислений - применение графических процессорных устройств (GPU - graphics processing units). Для расчетов на GPU компанией NVIDIA представлена унифицированная архитектура компьютерных вычислений CUDA (Compute Unified Device Architecture), которую можно применять при решении широкого круга задач с организацией параллельных вычислений. В связи с этим разработка алгоритмов для быстрой параллельной реализации систем линейных алгебраических уравнений (СЛАУ) является актуальной проблемой, так как доля таких расчетов, как правило, значительно преобладает по сравнению с остальными вычислениями при решении нестационарных задач распределения тепла и движения жидкости [1-3].
Применительно к задачам линейной алгебры для операций над матрицами и векторами уже существуют алгоритмы вычислений с использованием GPU, позволяющие ускорить расчеты с плотными матрицами в десятки и сотни раз [4]. Наряду с этим разрабатываются алгоритмы для решения итерационными методами разреженных систем линейных алгебраических уравнений [5-9], получаемых при численной реализации широкого класса задач математической физики, которые описываются дифференциальными уравнениями в частных производных. В одной из первых работ, посвященных реализации алгоритмов решения СЛАУ с разреженной матрицей на GPU [5], была предложена концепция
использования итерационных методов. Позднее в [9] сделан вывод, что ввиду отсутствия единого метода, подходящего для любого класса задач, поскольку один и тот же алгоритм может сходиться или не сходиться к решению в зависимости от типа матрицы, необходимо иметь библиотеку программ с реализацией различных итерационных методов.
В настоящей работе на примере решения нестационарной двумерной тестовой задачи конвективного теплопереноса рассмотрены возможности параллельных вычислений для реализации СЛАУ, полученных при неявной аппроксимации исходной модели методом конечных разностей. При расчетах использовался персональный компьютер, оснащенный дополнительной видеокартой NVIDIA GeForce GTX 285, являющейся 240-ядерным процессором GPU. При численной реализации исходной задачи сравнивалось использование CPU и CPU+GPU при решении систем уравнений различными итерационными методами для оценки общего затраченного времени. Вычисления проводились с одинарной точностью, что, с одной стороны, увеличивало число требуемых для сходимости итераций, а с другой - уменьшало суммарное время работы программы за счёт более эффективного использования вычислительных блоков GPU. Дополнительным доводом было и то, что даже на последних версиях ускорителей NVIDIA Tesla переход от одинарной точности к двойной заметно уменьшает итоговую производительность расчетов [10].
Модельная задача и её аппроксимация
С целью разработки и анализа алгоритмов, позволяющих применять графический процес-
У
x „
Рис. 1. Распределение температурного поля Т при 1= 1, а=0.5 (а) и линии тока в расчетной области (б)
сор видеокарты для параллельных вычислении при реализации моделеИ, описываемых уравнениями конвективноИ теплопроводности, была рассмотрена следующая тестовая задача:
дТ дТ дТ т11
— + м — + V— = аДТ + f, t,х,у е[0,1], (1)
д1 дх ду
где
5 2е
5 2е
5е 5е 5е
j (t, x, y) =--+ u--+ v--a—- - a—-,
5t 5x 5y 5x 5y
e(t, x, y) = exp (ai[sin(2^x) + sm(2rcy)]},
u(x,y) = 8(x4 - 2x3 + x2)(-16y3 + 30y2 -12y),
v(x, y) = -8(4x3 - 6x2 + 2x)(-4y4 +10y3 - 6y2),
max|u|, |v| }= 1.
Начальные условия
П=0 =е(0, x, y). Граничные условия
55T_ 5x
„ n 5T = 2a?^e, —
5y
y=0,1
на п-м временном шаге в момент времени 1п в расчетной области описывалось в узлах сетки
Т'П
значениями Т j.
Разностные уравнения строились посредством аппроксимации (1) и граничных условий (3). Так как для конвективных членов используется противопоточная схема, то погрешность аппроксимации задачи имеет порядок 0(т,,hy). Разностное уравнение для узла (у) при t = tn запишем в виде
е Тп - а Тп - Ь Тп - С Тп - d Тп = Р Ч/<, j "<,/<-1, j Ч/<,j-1 Ч/<+1,j "<,/<,j+1 Л, п
где
аи = 0, Сг = 0, j = 1,..., J ;
(2)
= 2a?^e. (3)
Рисунок 1 иллюстрирует функцию Т и структуру течения в расчетной области при 1=1 и значении а=0.5, используемом в вычислениях.
Для решения задачи (1)—(3) применялся конечно-разностный алгоритм. В расчетной области использовалась равномерная пространственная сетка вида
х = к(I -1), I = 1,...,I, ъх = 1/(1 -1), у = Ку у = 1,..., J , ку = 1/^ -1).
Вдоль временной переменной использовался постоянный шаг т. Распределение температуры
Ъц = 0, d.j = 0, i = 1,...,I.
Получаемую систему линейных алгебраических уравнений можно представить как
AT = f, (4)
где матрица A является пятидиагональной, монотонной, обладает строгим диагональным преобладанием ( eUj > ai,j + bi,j + ci,j + di,j ), а T = {T"j }, f = {fij} - векторы.
Таким образом, при численной реализации задачи на каждом временном шаге необходимо находить решение системы (4), что и осуществлялось различными итерационными методами [11, 12] до получения на k-й итерации результата с заданной точностью max T ' - T ' <s ,
i,j I i,j i,j I
s=10-6.
1
0
б
а
152
Ю.С. Цевенакая, М.Ю. Цевенакей, В.Н. Попов
Таблеца 1.1
IxJ 51 x 51 101 x 101 201 x201 401 x401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 6.0 (49-61) (1.1610-2 ) 51.0 (136-182) (6.64-10-3) 524.0 (328-565) (1.2310-2 ) 5036.0 (521-1473) (3.55-10-2 )
ЦП+видеокарта 7.9 (49-61) (1.1510-2 ) 30.6 (136-185) (7.67-10-3 ) 170.5 (329-559) (1.4610-2 ) 1443.9 (515-1489) (3.79-10-2 )
Таблеца 1.2
IxJ 51 x 51 101 x 101 201 x201 401 x401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.0 (4) (9.57-10-2) 4.0 (5) (4.92-10-2) 18.0 (6-7) (2.49-10-2 ) 96.0 (11-13) (1.25-10-2 )
ЦП+видеокарта 0.7 (4) (9.58-10-2 ) 1.0 (5) (4.92-10-2 ) 2.8 (6-7) (2.47-10-2 ) 15.9 (11-13) (1.23-10-2 )
Таблеца 2.1
IxJ 51 x 51 101 x 101 201 x201 401 x401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 2.0 (24-34) (1.18 -10-2 ) 16.2 (65-104) (7.36-10-3) 291.5 (329-421) (1.22-10-2 ) 3214.5 (762-1229) (4.15 -10-2 )
ЦП+видеокарта 7.0 (24-31) (1.19 -10-2 ) 20.5 (63-100) (6.3610-3 ) 124.3 (329-443) (8.05-10-3 ) 600.5 (613-1257) (2.72-10-2 )
Таблеца 2.2
IxJ 51 x 51 101 x 101 201 x201 401 x401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.0 (3) (9.57-10-2) 3.7 (3) (4.92-10-2) 13.9 (3-4) (2.48-10-2 ) 57.1 (4-5) (1.22-10-2 )
ЦП+видеокарта 1.0 (3) (9.58-10-2 ) 1.0 (3) (4.91-10-2 ) 1.6 (3-4) (2.46-10-2 ) 3.1 (4-5) (1.20-10-2 )
Численные результаты
В данном разделе представлены результаты решения описанной задачи с использованием различных итерационных методов. Тестирование проводилось на персональном компьютере, оснащенном CPU 2.67 ГГц и дополнительной видеокартой NVIDIA GeForce GTX 285. Время решения на CPU сравнивалось c временем решения задачи на CPU+GPU. Расчеты проводились на сетках с различным количеством узлов при постоянном временном шаге т = 10-3. В таблицах приведены полученные результаты при a = 1 (N, 1) и a = 0.001 (N, 2), где N - номер таблицы. Основной целью было определить время в секундах, необходимое для расчета каждого варианта решения задачи, и проанализировать полученные данные. В скобках указано количество итераций, затрачиваемых на различных временных шагах для достижения требуемой точности получаемого результата, либо их минимальное и максимальное количество на различных временных шагах. Наряду с этим определялась погрешность решения задачи сравнением рассчитанных результатов с точными зна-
чениями при tn=1 (max-T(xt,yt,1) ). Про-
i,j 1 ,j J 1
граммы реализованы на C, использовался компилятор для 64-битной операционной системы. Метод Якоби (метод простой итерации)
T = D-\LTk-1 + UTk-1 + f). Здесь A = -L + D - U, D = [etj} - диагональная матрица, L = {a, , bt }, U = {c, , d, } - неотрицательные нижняя и верхняя треугольные матрицы, k - номер итерации. Результаты вычислений представлены в табл. 1.1, 1.2. Метод наискорейшего спуска
rk = f - ATk
т, =-
(rk-1, rk-1) (Ark-1, rk-1)
^ = ^-1 + т,г к-1. Результаты вычислений представлены в табл. 2.1, 2.2.
Метод сопряженных градиентов
г 0 = f - АГ, p0 = г 0, Tk = Tk-1 -ак _1pk-1,
(rk, rk) k (pk, Apk)
a, =
Таблица 3.1
IxJ 51 х 51 101 х 101 201 х201 401 х401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.5 (13-15) (1.1910-2 ) 7.3 (23-28) (5.46-10-3) 51.5 (42-49) (2.60-10-3 ) 443.4 (73-84) (1.38-10-3 )
ЦП+видеокарта 4.6 (13-15) (1.21 -10-2 ) 8.6 (23-28) (6.43-10-3 ) 18.4 (42-49) (6.41-10-3 ) 57.1 (73-78) (1.70-10-2 )
Таблица 3.2
IxJ 51 х 51 101 х 101 201 х201 401 х401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.0 (3) (9.57-10-2 ) 3.8 (3) (4.92-10-2) 14.0 (3) (2.48-10-2 ) 63.9 (3-4) (1.22-10-2 )
ЦП+видеокарта 1.2 (3) (9.58-10-2 ) 1.2 (3) (4.91-10-2 ) 1.6 (3) (2.46-10-2 ) 3.7 (3-4) (1.20-10-2 )
Таблица 4.1
Ы 51 х 51 101 х 101 201 х201 401 х401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.5 (13-17) (1.19-10-2 ) 11.3 (23-26) (5.49-10-3) 70.6 (40-47) (2.63-10-3 ) 709.6 (71-85) (1.46-10-3 )
ЦП+видеокарта 5.4 (13-17) (1.21-10-2 ) 9.9 (23-26) (6.45-10-3 ) 21.5 (40-47) (6.44-10-3 ) 73.2 (71-80) (1.71-10-2 )
Таблица 4.2
Ы 51 х 51 101 х 101 201 х201 401 х401
Время расчетов в с (Кол-во итераций) (Погрешность)
ЦП 1.0 (3) (9.56-10-2 ) 4.1 (3) (4.92-10-2) 15.6 (3) (2.48-10-2 ) 78.2 (4) (1.23-10-2 )
ЦП+видеокарта 1.2 (3) (9.58-10-2 ) 1.3 (3) (4.91-10-2 ) 1.8 (3) (2.46-10-2 ) 4.8 (4) (1.20-10-2 )
чества неизвестных. В ходе численных экспериментов при использовании видеокарты NVIDIA GeForce было получено ускорение расчетов в пределах 3-18 раз в зависимости от количества точек аппроксимации, решаемой СЛАУ и применяемого итерационного метода.
Надо отметить, что с увеличением количества узлов пространственной сетки выявлено расхождение в точности получаемых результатов (не превышающее 3%) при расчетах на ЦП и при использовании видеокарты. Были предприняты попытки улучшить результаты либо уменьшением временного шага, либо повышением точности реализации итерационного процесса. В табл. 5 представлены результаты, полученные при решении задачи методом сопряженных градиентов.
Из полученных данных следует, что такое изменение условий расчётов не привело к улучшению решения и, возможно, объясняется тем, что CUDA-совместимые устройства не полностью реализуют стандарт IEEE-754 представления чисел с десятичной точкой.
Заключение
Представлены результаты решения разреженных СЛАУ, полученных на структуриро-
rk = rk-1 -ak-Apk1, pk = rk-1 + PkV-1,
В = (r k, r k) Pk (rk-1■, rk-1■).
Полученные результаты представлены в табл. 3.1, 3.2.
Метод бисопряженных градиентов
r0 = f - AT0, r0 = r0, p0 = r0, p0 = r0,
a = (rk,rk) Tk = Tk-1 +a pk-1 ak (Apk, pk ),T 1 +ak-1P ,
rk = rk-1 - ak 1Apk-1, rk = rk-1 - ak 1ATpk-1,
В = (rk, rk) Pk (rk-1, Г^У
pk = rk-1 + Pk-1pk-1, pk = rk-1 +Pk-1pk-1.
Результаты представлены в табл. 4.1, 4.2.
На рис. 2 представлены величины ускорения вычислений, которые подсчитывались делением времени решения задачи на CPU на время решения с использованием GPU.
Из представленных результатов следует, что в случаях небольшого количества узлов пространственной сетки (51x51) выигрыш при применении параллельных расчетов фактически отсутствует. Эффективность GPU начинает проявляться и возрастает с увеличением коли-
154
Ю.С. Цивинская, М.Ю. Цивинский, В.Н. Попов
Таблица 5
/xj=401x401 т=10-4, 8= 10 6 Т=10-3, 8 = 10-7
Время расчетов в с (погрешность)
ЦП 963 (2.12-10-3 ) 1150 (1.1910-3 )
ЦП+видеокарта 79 (2.45-10-2 ) 99 (1.75 10-2 )
51 x 51 101 x 101 201 x 201 401 x 401 Размер сетки
□ Метод простой итерации
□ Метод наискорейшего спуска
□ Метод сопряженных градиентов
В Метод бисопряженных градиентов
51x51 101 x101201 x201401x401 Размер сетки
□ Метод простой итерации
□ Метод наискорейшего спуска
□ Метод сопряженных градиентов
В Метод бисопряженных градиентов
Рис. 2. Величины ускорения расчетов при различных значениях параметра а
ванных пространственных сетках, различными итерационными методами на ПК с графическим процессором NVIDIA. Определено, что такой подход при реализации задач позволяет значительно повысить производительность расчетов при относительно невысоких затратах, а эффективность применения графического процессора растёт с увеличением размерности СЛАУ.
Работа выполнена в рамках проекта РФФИ № 10-01-00575-a.
Список литературы
1. Максимов Д.Ю., Кудряшов И.Ю., Марченко Н.А. Суперускорение гидродинамических расчетов с помощью применения графических процессоров NVIDIA и технологий программирования CUDA // Вестник ЦКР Роснедра. 2010. № 1. С. 67-69.
2. Коньшин В.Н. Применение программного комплекса FlowVision для решения прикладных задач на терафлопных вычислительных системах // Параллельные вычислительные технологии (ПаВТ'2008): Труды Международной научной конференции (Санкт-Петербург, 28 января-1 февраля 2008 г.). Челябинск: Изд-во ЮУрГУ, 2008. С. 124-129.
3. Попов В.Н. Моделирование затвердевания металлической капли на холодной подложке // Математическое моделирование. 2001. Т. 13. № 9. C. 119-127.
4. Volkov V., Demmel J.W. Benchmarking GPUs to tune dense linear algebra // http://mc.stanford.edu/cgi-bin/images/6/65/SC08_Volkov_GPU.pdf.
5. Bell N., Garland M. Efficient Sparse Matrix Vector Multiplication on Cuda // NVIDIA Technical Report NVR-2008-004. December 11, 2008.
6. Baskaran M., Bordawekar R. Optimising sparse matrix-vector multiplication on GPUs // IBM Tech. Rep. 2009. (http://www.nvidia.com/docs/IO/66889/nvr-2008-004.pdf).
7. Buatois L., Cauman G., Levy B. Concurrent Number Cruncher: An Efficient Sparse Linear Solver on GPU // High Performance Computation Conference (HPCC). Springer Lecture Notes in Computer Sciences. 2008.
8. Чадов С.Н. Реализация алгоритма решения несимметричных систем линейных уравнений на графических процессорах // Вычислительные методы и программирование. 2009. Т.10. С. 321-326.
9. Губайдуллин Д.А., Никифоров А.И., Садовников Р.В. Использование графических процессоров для решения разреженных СЛАУ итерационными методами подпространств Крылова с предобусловливанием на примере задач теории фильтрации // Вестник Нижегородского университета им. Н.И. Лобачевского. 2011. № 1. С. 205-212.
10. Кривов М.А., Казеннов А.М. Сравнение вычислительных возможностей графических ускорителей при решении различных классов задач // Труды Всероссийской научно-практической конференции «Применение гибридных высокопроизводительных вычислительных систем для решения научных и инженерных задач». Н. Новгород. 2011. С. 18-24.
11. Самарский A.A., Николаев T.C. Методы решений сеточных уравнений. М.: Наука, 1978. 592 c.
12. Ильин В.П. Методы неполной факторизации для решения алгебраических систем. М.: Физматлит, 1995. 288 с.
ASSESSMENT OF VIDEO CARD'S GPU PERFORMANCE CAPABILITIES WHEN SOLVING THE PROBLEM OF CONVECTIVE HEAT TRANSFER
Yu.S. Tsivinskaya, M.Yu. Tsivinsky, V.N. Popov
Performance capabilities of parallel computing on a PC with NVIDIA graphics card are considered for SLAEs obtained in implicit approximation of the original model on structured spatial grids, an example test case being the solution of a non-stationary two-dimensional convective heat transfer problem.
Keywords: system of linear algebraic equations (SLAE), iterative methods, parallel computing, graphics processors.
References
1. Maksimov D.Yu., Kudryashov I.Yu., Marchenko N.A. Superuskorenie gidrodinamicheskih raschetov s pomoshch'yu primeneniya graficheskih processorov NVIDIA i tekhnologij programmirovaniya SUDA // Vestnik CKR Rosnedra. 2010. № 1. S. 67-69.
2. Kon'shin V.N. Primenenie programmnogo kom-pleksa FlowVision dlya resheniya prikladnyh zadach na teraflopnyh vychislitel'nyh sistemah // Parallel'nye vy-chislitel'nye tekhnologii (PaVT'2008): Trudy Mezhduna-rodnoj nauchnoj konferencii (Sankt-Peterburg, 28 yan-varya-1 fevralya 2008 g.). Chelyabinsk: Izd-vo YUUr-GU, 2008. S. 124-129.
3. Popov V.N. Modelirovanie zatverdevaniya metal-licheskoj kapli na holodnoj podlozhke // Matemati-cheskoe modelirovanie. 2001. T. 13. № 9. C. 119-127.
4. Volkov V., Demmel J.W. Benchmarking GPUs to tune dense linear algebra // http://mc.stanford.edu/cgi-bin/images/6/65/SC08_Volkov_GPU.pdf.
5. Bell N., Garland M. Efficient Sparse Matrix Vector Multiplication on Cuda // NVIDIA Technical Report NVR-2008-004. December 11, 2008.
6. Baskaran M., Bordawekar R. Optimising sparse matrix-vector multiplication on GPUs // IBM Tech. Rep.
2009. (http://www.nvidia.com/docs/I0/66889/nvr-2008-004.pdf).
7. Buatois L., Cauman G., Levy B. Concurrent Number Cruncher: An Efficient Sparse Linear Solver on GPU // High Performance Computation Conference (HPCC). Springer Lecture Notes in Computer Sciences. 2008.
8. Chadov S.N. Realizaciya algoritma resheniya ne-simmetrichnyh sistem linejnyh uravnenij na graficheskih processorah // Vychislitel'nye metody i programmirova-nie. 2009. T.10. S. 321-326.
9. Gubajdullin D.A., Nikiforov A.I., Sadovnikov R.V. Ispol'zovanie graficheskih processorov dlya reshe-niya razrezhennyh SLAU iteracionnymi metodami pod-prostranstv Krylova s predobuslovlivaniem na primere zadach teorii fil'tracii // Vestnik Nizhegorodskogo univer-siteta im. N.I. Lobachevskogo. 2011. № 1. S. 205-212.
10. Krivov M.A., Kazennov A.M. Sravnenie vy-chislitel'nyh vozmozhnostej graficheskih uskoritelej pri reshenii razlichnyh klassov zadach // Trudy Vserossijs-koj nauchno-prakticheskoj konferencii «Primenenie gi-bridnyh vysokoproizvoditel'nyh vychislitel'nyh sistem dlya resheniya nauchnyh i inzhenernyh zadach». N. Novgorod. 2011. S. 18-24.
11. Samarskij A.A., Nikolaev T.C. Metody reshenij setochnyh uravnenij. M.: Nauka, 1978. 592 c.
12. Il'in V.P. Metody nepolnoj faktorizacii dlya reshe-niya algebraicheskih sistem. M.: Fizmatlit, 1995. 288 s.