Научная статья на тему 'РЕАЛИЗАЦИЯ И ОЦЕНКА СХОДИМОСТИ ИТЕРАЦИОННЫХ CG И PCG РЕШАТЕЛЕЙ МНОГОКРАТНОЙ ТОЧНОСТИ ДЛЯ ГРАФИЧЕСКИХ ПРОЦЕССОРОВ'

РЕАЛИЗАЦИЯ И ОЦЕНКА СХОДИМОСТИ ИТЕРАЦИОННЫХ CG И PCG РЕШАТЕЛЕЙ МНОГОКРАТНОЙ ТОЧНОСТИ ДЛЯ ГРАФИЧЕСКИХ ПРОЦЕССОРОВ Текст научной статьи по специальности «Математика»

CC BY
73
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
разреженная линейная алгебра / метод сопряженных градиентов / арифметика многократной точности / система остаточных классов / CUDA / sparse linear algebra / conjugate gradient method / multiple-precision arithmetic / residue number system / CUDA

Аннотация научной статьи по математике, автор научной работы — Исупов Константин Сергеевич, Князьков Владимир, Коржавина Анастасия Сергеевна

Для решения систем линейных алгебраических уравнений с разреженными матрицами коэффициентов широко применяются итерационные методы подпространства Крылова. Однако сходимости этих методов может ухудшаться из-за ошибок округления, возникающих при выполнении вычислений в арифметике фиксированной разрядности. Снизить влияние ошибок округления позволяет использование арифметики многократной точности, обеспечивающей выполнение операций с числами повышенной разрядности. В статье представлены реализации итерационных решателей многократной точности на базе метода сопряженных градиентов без предобуславливания и с диагональным предобуславливанием для графических процессоров видеокарт. Для поддержки вычислений с числами повышенной разрядности используется система остаточных классов. Матрично-векторное произведение реализовано в виде гибридного ядра, в котором матрица двойной точности, представленная в формате CSR, умножается на вектор многократной точности. Параллельное скалярное произведение вычисляется с использованием двухэтапного алгоритма. Результаты экспериментов с разреженными матрицами различных размеров показывают, что повышенная точность арифметики позволяет ускорить сходимость итерационных методов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Исупов Константин Сергеевич, Князьков Владимир, Коржавина Анастасия Сергеевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPLEMENTATION AND PERFORMANCE EVALUATION OF MULTIPLE PRECISION SPARSE MATRIX-VECTOR MULTIPLICATION ON CUDA USING THE RESIDUE NUMBER SYSTEM

To solve systems of linear equations with sparse coefficient matrices, iterative Krylov subspace methods such as conjugate gradients (CG) and preconditioned conjugate gradients (PCG) are widely used. The convergence rate and numerical reliability of these methods may suffer from rounding errors. One way to reduce the impact of rounding errors is to use arithmetic over numbers with increased word length, which is called multiple-precision arithmetic. In the paper, we consider multiple-precision iterative CG and PCG solvers for graphics processing units (GPUs) and evaluate their convergence rate. The preconditioned implementation uses a diagonal preconditioner, which is well suited for parallel computing. The residue number system is employed to support multiple-precision floating-point arithmetic. The matrix-vector product is implemented as a hybrid kernel, in which a double-precision matrix, represented in the CSR storage format, is multiplied by a dense multiple-precision vector. A two-stage algorithm is used to compute the parallel multiple-precision dot product. Experimental results with sparse matrices of different sizes show that higher arithmetic precision improves the convergence rate of iterative methods.

Текст научной работы на тему «РЕАЛИЗАЦИЯ И ОЦЕНКА СХОДИМОСТИ ИТЕРАЦИОННЫХ CG И PCG РЕШАТЕЛЕЙ МНОГОКРАТНОЙ ТОЧНОСТИ ДЛЯ ГРАФИЧЕСКИХ ПРОЦЕССОРОВ»

IMPLEMENTATION AND PERFORMANCE EVALUATION OF

MULTIPLE PRECISION SPARSE MATRIX-VECTOR MULTIPLICATION ON CUDA USING THE RESIDUE NUMBER

SYSTEM

K. Isupov, V. Knyazkov*, A. Korzhavina

Vyatka State University,

Kirov 610000, Russia * Penza State University, Penza 440026, Russia

DOI: 10.24412/2073-0667-2022-1-17-27

To solve systems of linear equations with sparse coefficient matrices, iterative Krvlov subspaee methods such as conjugate gradients (CG) and preconditioned conjugate gradients (PCG) are widely used. The convergence rate and numerical reliability of these methods may suffer from rounding errors. One way to reduce the impact of rounding errors is to use arithmetic over numbers with increased word length, which is called multiple-precision arithmetic. In the paper, we consider multiple-precision iterative CG and PCG solvers for graphics processing units (GPUs) and evaluate their convergence rate. The preconditioned implementation uses a diagonal preconditioner, which is well suited for parallel computing. The residue number system is employed to support multiple-precision floating-point arithmetic. The matrix-vector product is implemented as a hybrid kernel, in which a double-precision matrix, represented in the CSR storage format, is multiplied by a dense multiple-precision vector. A two-stage algorithm is used to compute the parallel multiple-precision dot product. Experimental results with sparse matrices of different sizes show that higher arithmetic precision improves the convergence rate of iterative methods.

Key words: sparse linear algebra, conjugate gradient method, multiple-precision arithmetic, residue number system, CUDA.

References

1. Saad Y. Iterative Methods for Sparse Linear Systems, 2nd ed. Philadelphia: SIAM, 2003. 547 p.

2. Barrett R. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods (2nd Edition) / R. Barrett et al. Philadelphia: SIAM, 1994. 107 p.

3. Saito T., Ishiwata E., Hasegawa H. Analysis of the GCR method with mixed precision arithmetic using QuPAT /7 .Journal of Computational Science. 2012. Vol. 3, N 3. P. 87 91. DOI: 10.1016/j.joes.2011.05.001.

4. Cools S., Yet kin E.F., Agullo E., Giraud L., Vanroose W. Analyzing the Effect of Local Rounding Error Propagation on the Maximal Attainable Accuracy of the Pipelined Conjugate Gradient Method /7 SIAM .Journal on Matrix Analysis and Applications. 2018. Vol. 39, N 1. P. 426 450. DOI: 10.113 7/17M1117872.

This research was funded by the Russian Science Foundation grant number 20-71-00046. (q) K. Isupov, V. Knyazkov, A. Korzhavina, 2022

5. Kouva T. A highly efficient implementation of multiple precision sparse matrix-vector multiplication and its application to product-type Krvlov subspace methods // International Journal of Numerical Methods and Applications. 2012.' Vol. 1, N 2. P. 107-119.

6. Hishinuma T., Hasegawa H., Tanaka T. SIMD Parallel Sparse Matrix-Vector and Transposed-Matrix-Vector Multiplication in DD Precision // Lecture Notes in Computer Science. 2017. Vol. 10150. P. 21-34.

7. Hasegawa H. Utilizing the quadruple-precision floating-point arithmetic operation for the Krvlov subspace methods. 2003. [Electron. Res.]: http://www.slis.tsukuba.ac.jp/~hasegawa.hidehiko. ga/GYOSEKI/hhasegaw.pdf (accessed 17 January 2022).

8. Masui K. Ogino M. Research on the Convergence of Iterative Method Using Mixed Precision Calculation Solving Complex Symmetric Linear Equation // IEEE Transactions on Magnetics. 2020. Vol. 56, N 1. Article no. 7503604. DOI: 10.1109/TMAG.2019.2951280.

9. Mukunoki D., Takahashi D. Using Quadruple Precision Arithmetic to Accelerate Krvlov Subspace Methods on GPUs // Lecture Notes in Computer Science. 2014. Vol. 8384. P. 632-642. DOI: 10.1007/978-3-642-55224-3^59.

10. Isupov K., Knvazkov V. Multiple-Precision BLAS Library for Graphics Processing Units // Communications in Computer and Information Science. 2020. Vol. 1331. P. 37-49. DOI: 10.1007/978-3-030-64616-5^4.

11. Omondi A., Premkumar B. Residue Number Systems: Theory and Implementation. Imperial College Press, 2007. 402 p.

РЕАЛИЗАЦИЯ И ОЦЕНКА СХОДИМОСТИ ИТЕРАЦИОННЫХ CG И PCG РЕШАТЕЛЕЙ МНОГОКРАТНОЙ ТОЧНОСТИ ДЛЯ ГРАФИЧЕСКИХ

ПРОЦЕССОРОВ

К. С. Исупов, B.C. Князьков*, A.C. Коржавина

Вятский государственный университет, 610000, Киров, Россия * Пензенский государственный университет, 440026, Пенза, Россия

УДК 004.222^004.272.25

DOI: 10.24412/2073-0667-2022-1-17-27

Для решения систем .линейных алх'ебраичееких уравнений с разреженными матрицами коэффициентов широко применяются итерационные методы подпространства Крылова. Однако сходимость этих методов может ухудшаться из-за ошибок округления, возникающих при выполнении вычислений в арифметике фиксированной разрядности. Снизить влияние ошибок округления позволяет использование арифметики мншхжратной точности, обеспечивающей выполнение операций с числами повышенной разрядности. В статье представлены реализации итерационных решателей мншхжратной точности на базе метода сопряженных градиентов без предобуславливания и с диагональным предобуславливанием для графических процессоров видеокарт. Для поддержки вычислений с числами повышенной разрядности используется система остаточных классов. Матрично-векторное произведение реализовано в виде гибрид-ншх) ядра, в котором матрица двойной точности, представленная в формате CSR, умножается на вектор мншхжратной точности. Параллельное скалярное произведение вычисляется с использованием двухэтапншх) алгоритма. Результаты экспериментов с разреженными матрицами различных размеров показывают, что повышенная точность арифметики позволяет ускорить сходимость итерационных методов.

Ключевые слова: разреженная линейная алгебра, метод сопряженных градиентов, арифметика мншхжратной точности, система остаточных классов, CUDA.

Введение. Системы линейных алгебраических уравнений (СЛАУ) часто возникают из дискретизации дифференциальных уравнений в частных производных методами конечных элементов, конечных разностей или конечных объемов. Матрицы из этих приложений обычно большие и разреженные — существенная часть их элементов представлена нулями. В настоящее время одними из самых успешных методов решения разреженных линейных систем являются итерационные методы подпространства Крылова, такие как метод сопряженных градиентов (CG, PCG), обобщенный метод минимальных невязок (GMRES), BiCG, BiCGSTAB, CGS и MIXRES |1|, Эти методы состоят в выполнении ряда матрично-векторных и векторных операций, таких как Ax, ATx, rTr, r + [3p и др., а их сходимость

Исследование выполнено за счет гранта Российского научного фонда (проект № 20-71-00046). (с) К. С. Исупов, В. С. Князьков, А. С. Коржавина, 2022

зависит от спектральных свойств матрицы коэффициентов A Часто свойства матрицы A не обеспечивают приемлемую скорость сходимости итераций, поэтому вместо исходной линейной системы Ax = b решают систему M~lAx = M-1b, где M — предобуславлива-тель. Выбор эффективного предобуславливателя играет важнейшую роль в применении итерационных методов [2].

С другой стороны, даже при тщательном выборе предобуславливателя сходимость и надежность итерационных методов может быть довольно плохой из-за ошибок округления, возникающих при выполнении вычислительных операций в арифметике фиксированной разрядности [3]. В частности, в [4] рассмотрены вопросы влияния погрешностей вычислений на эффективность итерационных линейных решателей на базе CG метода и показано, что в ряде случаев локальные ошибки округления могут существенно замедлять сходимость итераций, в особенности в алгоритмах, оптимизированных для параллельных архитектур. Иногда проблема сходимости не решается даже тщательным подбором предобуславливателя, Более того, многие обладающие хорошими математическими свойствами предобуславливатели (например, основанные на неполном LU разложении) включают существенную часть последовательных вычислений, что затрудняет их эффективную реализацию на параллельных системах, В связи с этим важную роль приобретают подходы, позволяющие снизить влияние ошибок округления на результат вычислений. Одним из таких подходов является увеличение точности (разрядности) компьютерной арифметики, В настоящее время имеется ряд работ в данном направлении:

1) В [5] представлены реализации высокоточных итерационных решателей на базе различных вариантов метода сопряженных градиентов: BiCG, CGS, BiCGSTAB и GPBiCG, Показано, что для обеспечения сходимости итерационных методов в ряде случаев требуется точность более 2000 бит (даже при использовании предобуславливателей),

2) В [6] реализовано оптимизированное умножение разреженной матрицы двойной точности на вектор четверной точности с использованием набора расширений AVX2, Для достижения четверной точности использован арифметический формат double-double, в котором число хранится в виде певычислеппой суммы двух стандартных (double) чисел с плавающей точкой, что обеспечивает приблизительно 106 бит мантиссы,

3) В [7] исследована сходимость BiCG метода при решении плохо обусловленных линейных систем с матрицами Теплица, Показано, что реализация решателя без предобуславливателя, но с использованием расширенной (четверной) точности позволяет добиться сходящегося итерационного процесса, в отличие от реализации на основе стандартной арифметики,

4) В [8] реализован итерационный CG решатель четверной и смешанной (double + double-double) точности, использованный при решении симметричных линейных систем, возникающих в анализе высокочастотных электромагнитных полей. Представленные результаты показывают, что применение смешанной точности позволяет сократить число итераций и время решения по сравнению со стандартной арифметикой двойной точности,

5) В [9] показано, что CUDA-реализации CG и BiCGSTAB методов в double-double арифметике без предобуславливания оказываются быстрее и точнее при решении некоторых задач, чем реализации в стандартной арифметике двойной точности с предобуслав-ливанием на базе неполного LU разложения,

В данной статье исследуется влияние точности компьютерной арифметики на сходимость итерационных методов на примере параллельной реализации CG и PCG решателей многократной точности для графических процессоров видеокарт (GPU), Рассматривав-

Итерационные линейные решатели (CG, PCG, ...)

O

BLAS (DOT, AXPY, GEMV, SYMV, GEMM...) Sparse (SpMV: CSR, JAD, ELLPACK, DIA, ♦.mtx-reader)

0

Арифметика с плавающей точкой многократной точности (+, -, х) для CPU и GPU

О

Вычисления в системе остаточных классов Интервальная арифметика

Рис. 1. Обобщенная структура библиотеки MPRES-BLAS

мые решатели входят в состав библиотеки подпрограмм линейной алгебры MPRES-BLAS [10].

1. Библиотека MPRES-BLAS. MPRES-BLAS — это библиотека операций линейной алгебры многократной точности для GPU с поддержкой CUDA. Для представления чисел с плавающей точкой библиотека использует систему остаточных классов (СОК) [11]. СОК обладает рядом преимуществ перед позиционными системами счисления, главным из которых является отсутствие переносов между цифрами числа, что позволяет заменить многоразрядные операции группами покомпонентных операций небольшой разрядности, которые выполняются независимо друг от друга. Общая структура MPRES-BLAS представлена на рис. 1.

Библиотека реализует ряд плотных матричных, матрично-векторных и векторных операций линейной алгебры, подобных BLAS, а также поддерживает разреженное матрично-векторное умножение в форматах CSR, ELLPACK, JAD и DIA. Кроме этого, MPRES-BLAS может выступать в качестве универсальной арифметической библиотеки, так как предоставляет базовые арифметические операции многократной точности на CPU и GPU.

При использовании MPRES-BLAS точность вычислений определяется набором модулей {m1,m2,... ,mn}. Модули должны быть попарно взаимно простыми целыми числами. Если M — произведение всех модулей, то точность арифметических операций в битах определяется значением p = |_log2 л/Mj — 1. В библиотеке имеется несколько предопределенных наборов модулей, обеспечивающих различные уровни точности, но пользователь также может самостоятельно задать новый набор.

Для представления чисел с плавающей точкой в MPRES-BLAS определен тип данных mp_float_t. Переменные этого типа могут быть объявлены и определены как на стороне хоста, так и непосредственно из кода устройства. Обмен данными между хостом и устройством осуществляется путем вызова стандартных функций CUDA API. Помимо типа данных mp_f loat_t, в библиотеке также определены два векторных типа, mp_array_t и mp_collection_t. предназначенные для эффективных вычислений с массивами многоразрядных чисел на GPU. Тип mp_array_t хранит массив в разложенной форме, то есть как набор массивов, представляющих отдельные части чисел многократной точности. В свою

очередь, mp_collection_t можно рассматривать как „облегченный" вариант mp_array_t. Векторные типы хорошо подходят для плотных ядер линейной алгебры с регулярным доступом к памяти, но не дают существенных преимуществ при реализации разреженных ядер с нерегулярным паттерном доступа. Поэтому в рассматриваемых далее реализациях линейных решателей CG и PCG используется тип данных mp_float_t,

2. Решатели CG и PCG многократной точности, В алгоритмах 1 и 2 представлен псевдокод итерационного метода сопряженных градиентов без предобуславливания (CG) и с диагональным предобуславливанпем (PCG) для решения симметричных положительно определенных СЛАУ, Предобуславливатель M = diag(1/an, 1/а22,..., 1/ann) предварительно вычисляется на хосте и копируется в память GPU перед выполнением метода. Несмотря на то, что выбранный предобуславливатель обычно уступает по числу итераций более классическим вариантам, таким как неполное разложение Холецкого, он обладает рядом достоинств. Прежде всего, он очень просто вычисляется и подходит для параллельной реализации.

Алгоритм 1, CG решатель многократной точности.

1 k ^ 1

2 r ^ b — Ax0 > mp spmv csr, mp diff (GPU)

3 IIr0 || ^ ||r|| > mp norm2 (CPU + GPU)

4 while ||r | > tol • ||r01| and k ^ Nmax do > mp^norm2 (CPU + GPU)

5 Pk ^ rT r > mp^dot (GPU)

6 if k =1 then

7 p ^ r

8 else

9 в = Pk /Pk-1 > mp_div (CPU)

10 p ^ r + в'Р > mp_axpy (GPU)

11 end if

12 q ^ Ap > mp_spmv_csr (GPU)

13 a ^ pk /pT q > mp^dot, mp_div (CPU + GPU)

14 x ^ x + ap > mp_axpy (GPU)

15 r ^ r — aq > mp_axpy (GPU)

16 end while

В комментариях к псевдокоду указаны используемые функции библиотеки MPRES-BLAS, а также платформы на которых они выполняются. Описание функций представлено в таблице 1, Поскольку ряд операций, таких как деление и извлечение квадратного корня, являются сложными для СОК, в настоящее время они реализованы в виде обертки над функциями библиотеки MPFR1 и выполняются на CPU,

Операция разреженного матрично-векторного умножения (SpMV) является ключевым вычислительным ядром итерационных методов. Рассматриваемые реализации используют ядро смешанной точности mp_spmv_csr, которое умножает матрицу двойной точности (double) на вектор многократной точности. Для хранения матрицы используется формат сжатых строк (CSR), и каждый поток GPU обрабатывает одну строку, генерируя один элемент выходного вектора. Для эффективного доступа к промежуточным результатам используется разделяемая память,

1https://www.mpfr.org/

Алгоритм 2, PCG решатель многократной точности.

1 k ^ 1

2 r ^ b — Ax о > mp spmv csr, mp diff (GPU)

3 IIr0II ^ ||r|| > mp norm2 (CPU + GPU)

4 while ||r | > tol • ||r01| and k ^ Nmax do > mp_norm2 (CPU + GPU)

5 z ^ Mr > mp prod d (GPU)

6 Pk ^ rT z > mp_dot (GPU)

7 if k =1 then

8 p ^ z

9 else

10 в = Pk /Pk-i > mp_div (CPU)

11 p ^ z + вр > mp_axpy (GPU)

12 end if

13 q ^ Ap > mp_spmv_csr (GPU)

14 a ^ Pk /pT q > mp^dot, mp_div (CPU + GPU)

15 x ^ x + ap > mp_axpy (GPU)

16 r ^ r — aq > mp_maxpy (GPU)

17 k ^ k + 1

18 end while

bcsstmlO

plbuckle

CG-double CG-106 CG-212 CG-424 PCG-diag-double PCG-diag-106 PCG-diag-212 PCG-diag-424

CG-double CG-106 CG-212 CG-424 PCG-diag-double PCG-ichol-double PCG-diag-106 PCG-diag-212 PCG-diag-424

0 2000 4000 6000 8000 Число итераций

bcsstk27

10000 12000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

300

600

Число итераций

900

1200

CG-double CG-106 CG-212 CG-424 PCG-diag-double PCG-ichol-double PCG-diag-106 PCG-diag-212 PCG-diag-424

0

CG-double CG-106 CG-212 CG-424 PCG-diag-double PCG-ichol-double PCG-diag-106 PCG-diag-212 PCG-diag-424

500

1000 1500

Число итераций aftOl

2000

2000

4000 6000 Число итераций

8000

10000

Рис. 2. Число итераций различных реализаций CG и PCG решателей

Таблица 1

Используемые функции многократной точности из библиотеки MPRES-BLAS

Функция

Описание

mp_spmv_csr

mp_prod_d

Разреженное матрично-векторное умножение (SpMV)

Ненулевые элементы матрицы представлены в формате двойной точности, входной и выходной векторы — в формате многократной точности. Каждая строка матрицы обрабатывается одним потоком GPU.

mp_dif f Вычитание векто- Каждый поток GPU выполняет вычисление одного эле-

ров мента вектора-разности. Операция полностью парал-

лельна.

mp_norm2 Евклидова норма Сумма квадратов элементов вектора вычисляется на

вектора GPU в арифметике многократной точности с использо-

ванием двухэтапного алгоритма суммирования. Вычисленная сумма далее копируется в RAM, и квадратный корень вычисляется на CPU с использованием высокоточной библиотеки MPFR. Результатная норма преобразуется в формат двойной точности.

Умножение вектора двойной точности на вектор многократной точности

Каждый поток GPU выполняет вычисление одного элемента вектора-произведения. Операция полностью параллельна.

mp_dot

Скалярное произведение векторов

Используется двухэтапный алгоритм на GPU. Первое ядро выполняет вычисления с множеством блоков потоков, сохраняя промежуточные результаты в глобальную память. Второе ядро использует один блок потоков для суммирования промежуточных результатов.

mp_div

Деление двух чисел с плавающей точкой

Операнды копируются в RAM, выполняется деление с использованием высокоточной библиотеки MPFR, результат копируется обратно в память GPU.

тр_ахру Масштабированное

сложение векторов

Каждый поток GPU выполняет вычисление одного элемента результатного вектора многократной точности. Операция полностью параллельна.

Таблица, 2

Рассматриваемые реализации итерационных решателей

Обозначение Описание

CG-double CG-106 CG-212 CG-424 PCG-diag-double PCG-diag-106 PCG-diag-212 PCG-diag-424 PCG-ichol-double Двойная точность (double), без предобуславливания (GPU) Точность 106 бит, без предобуславливания (GPU) Точность 212 бит, без предобуславливания (GPU) Точность 424 бит, без предобуславливания (GPU) Двойная точность (double), диагональное предобуславливание (GPU) Точность 106 бит, диагональное предобуславливание (GPU) Точность 212 бит, диагональное предобуславливание (GPU) Точность 424 бит, диагональное предобуславливание (GPU) Двойная точность (double), неполное разложение Холецкого (MATLAB peg)

Таблица 3

Разреженные матрицы для экспериментов

Матрица Строк Ненулевых Приложение

bcsstmlO 1086 22 092 Динамический анализ в проектировании конструкций

plbuckle 1282 30 644 Структурная механика

bcsstk27 1224 56126 Динамический анализ в проектировании конструкций

aft 01 8 205 125 567 Моделирование акустического излучения

3. Эксперименты, Мы оценили влияние точности на скорость сходимости итерационных CG и PCG решателей, В таблице 2 перечислены рассмотренные реализации.

Эксперименты проводились на системе, оснащенной NVIDIA RTX 2080 GPU (46 потоковых мультипроцессоров, 8 Гб памяти GDDR6, аппаратная совместимость 7,5), Intel Core i5 7500 (3,40 GHz), 32 Гб памяти DDR4, Программное обеспечение: Ubuntu 20,04,2 LTS, CUD A Toolkit 11.1 / NVIDIA Driver 455.32.00.

Для экспериментов использовались симметричные положительно определенные тестовые матрицы из коллекции SuiteSparse (https://sparse.tamu.edu/). Описание матриц представлено в таблице 3,

Параметры эксперимента:

— Начальное приближение: x0 = (0,0,0,... ,0)T;

— Правая часть: b = (1,1,1,... ,1)T;

— Точность: tol = 10-8;

— Максимальное число итераций: 15 000,

Результаты экспериментов представлены на рис, 2, Мы видим, что для решателей без предобуславливапия наблюдается ярко выраженная зависимость числа итераций от точности. Например, для матрицы bcsstmlO решателю двойной точности CG-double потребовалось 11210 итераций, в то время как решателю CG-424 потребовалось только 1420 итераций. Таким образом, увеличение точности в 8 раз привело к пропорциональному снижению числа итераций, необходимых для решения системы с заданной точностью. Для решателей с диагональным предобуславливанием наиболее существенное влияние точности на скорость сходимости наблюдается также в случае матрицы bcsstmlO, а для других матриц оно выражено в меньшей степени. В целом эфективпость диагонального предобу-славливания сравнима с эффективностью предобуславливателя Холецкого для всех рассмотренных примеров.

Для матрицы aft01 фактическая погрешность решения (||b — Ax||/||b||), полученного с использованием стандартной арифметики двойной точности (CG-double), составила 1.02 х 10-8, и таким образом оказалась выше заданного предела tol = 10-8, Это вызвано ошибками округления, которые накапливаются при вычислении невязки r = r — aq на каждой итерации метода, В свою очередь, в реализациях многократной точности фактическая ошибка решения находится в допустимых пределах для всех тестовых случаев. Таким образом, использование арифметики многократной точности не только улучшает сходимость итерационных методов, но также повышает их надежность.

Заключение, В работе рассмотрены итерационные CG и PCG решатели многократной точности для графических процессоров видеокарт, являющиеся частью библиотеки высокоточных подпрограмм линейной алгебры MPRES-BLAS, Результаты экспериментов показывают, что влияние точности арифетики на скорость сходимости итерационных методов зависит от решаемой задачи и может быть весьма существенным. Кроме этого, при повышенной точности улучшается надежность решателей.

Важную роль играет подбор оптимального предобуелавливателя. Для рассмотренных тестовых матриц неполное разложение Холецкого обеспечивает наименьшее число итераций (за исключением матрицы besstmlO), Вместе с тем, его построение и применение включает существенную часть последовательных вычислений, и поэтому реализация на параллельных системах оказывается затруднительной, В этом отношении мы полагаем, что использование арифметики многократной точности совместно с „мягким" параллельным предобуелавливателем, таким как диагональный предобуелавливатель, может оказаться более эффективным подходом для некоторых классов задач.

Список литературы

1. Saad Y. Iterative Methods for Sparse Linear Systems, 2nd ed. Philadelphia: SIAM, 2003. 547 p.

2. Barrett R. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods (2nd Edition) / R. Barrett et al. Philadelphia: SIAM, 1994. 107 p.

3. Saito Т., Ishiwata E., Hasegawa H. Analysis of the GCR method with mixed precision arithmetic using QuPAT // Journal of Computational Science. 2012. Vol. 3, N 3. P. 87-91. DOI: 10.1016/j.joes.2011.05.001.

4. Cools S., Yetkin E.F., Agullo E., Giraud L., Vanroose W. Analyzing the Effect of Local Rounding Error Propagation on the Maximal Attainable Accuracy of the Pipelined Conjugate Gradient Method // SIAM Journal on Matrix Analysis and Applications. 2018. Vol. 39, N 1. P. 426-450. DOI: 10.1137/17M1117872.

5. Kouva T. A highly efficient implementation of multiple precision sparse matrix-vector multiplication and its application to product-type Krvlov subspace methods // International Journal of Numerical Methods and Applications. 2012. Vol. 7, N 2. P. 107-119.

6. Hishinuma Т., Hasegawa H., Tanaka T. SIMD Parallel Sparse Matrix-Vector and Transposed-Matrix-Vector Multiplication in DD Precision // Lecture Notes in Computer Science. 2017. Vol. 10150. P. 21-34.

7. Hasegawa H. Utilizing the quadruple-precision floating-point arithmetic operation for the Krvlov subspace methods. 2003. [Electron. Res.]: http://www.slis.tsukuba.ac.jp/~hasegawa.hidehiko. ga/GYOSEKI/hhasegaw.pdf (accessed 17 January 2022).

8. Masui K. Ogino M. Research on the Convergence of Iterative Method Using Mixed Precision Calculation Solving Complex Symmetric Linear Equation // IEEE Transactions on Magnetics. 2020. Vol. 56, N 1. Article no. 7503604. DOI: 10.1109/TMAG.2019.2951280.

9. Mukunoki D., Takahashi D. Using Quadruple Precision Arithmetic to Accelerate Krvlov Subspace Methods on GPUs // Lecture Notes in Computer Science. 2014. Vol. 8384. P. 632-642. DOI: 10.1007/978-3-642-55224-3^59.

10. Isupov K., Knvazkov V. Multiple-Precision BLAS Library for Graphics Processing Units // Communications in Computer and Information Science. 2020. Vol. 1331. P. 37-49. DOI: 10.1007/978-3-030-64616-5^4.

11. Omondi A., Premkumar B. Residue Number Systems: Theory and Implementation. Imperial College Press, 2007. 402 p.

Исупов Константин Сергеевич — канд. техн. наук, доцент кафедры электронных вычислительных машин Вятского государственного университета, e-mail: ks_isupov@vyatsu.ru.

Область профессиональных интересов: вычисления многократной точности, система остаточ-

ных классов, компьютерная арифметика, параллельные алгоритмы, программирование для графических процессоров, СИОА. Является автором и соавтором более 30 научных работ в указанных областях.

Konstantin Isupov

PhD in Computer Science, assistant professor at the Department of Electronic Computing Machines, Vyatka State University, e-mail: ks_ isupov@vyatsu.ru. His research interests include high-precision computation, residue number system, computer arithmetic, parallel algorithms, GPU programming, CUDA. He has authored or coauthored more than 30 papers in these ЭХбШЗ.

Князьков Владимир Сергеевич — д-р техн. наук, профессор, главный научный сотрудник научно-исследовательского института фундаментальных и прикладных исследований Пензенского государственного университета, e-mail: kniazkov@pnzgu.ru. Является автором более 50 свидетельств на изобретения и патентов, опубликовал более 100 научных работ в области параллельных архитектур, высокопроизводительных вычислений и реконфигурируемых вычислительных систем.

Vladimir Knyazkov — Dr. Sci. in Computer Sciences and Engineering, principal research

scientist at the Research Institute of Fundamental and Applied Studies, Penza State University, e-mail: kniazkov@pnzgu.ru. He is the author of 50 invention certificates and patents, and published over 100 papers in the fields of parallel architectures, high-performance computing and reconfigurable computing systems.

Коржавина Анастасия Сергеевна — канд. техн. наук, доцент кафедры электронных вычислительных машин Вятского государственного университета, e-mail: as_korzhavina@ vyatsu.ru. Область научных интересов: высокоточные вычисления, компьютерная арифметика, рекон-фигурируемые вычислительные системы. Является автором и соавтором более 20 научных работ. Контактный номер телефона:-?^) 674-39-02

Anastasia Korzhavina PhD in Computer Science, assistant professor at the Department of Electronic Computing Machines, Vyatka State University, e-mail: as_korzhavina@vyatsu.ru. Her research interests include high-precision computation, computer arithmetic, reconfigurable computer systems. She has authored or coauthored more than 20 papers.

Дата поступления — 01.02.2022

i Надоели баннеры? Вы всегда можете отключить рекламу.