Научная статья на тему 'КЭШ-ОПТИМИЗАЦИЯ ПРОЦЕССА ВЫЧИСЛЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ НА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ'

КЭШ-ОПТИМИЗАЦИЯ ПРОЦЕССА ВЫЧИСЛЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ НА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
68
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СОБСТВЕННЫЕ ЧИСЛА / СОБСТВЕННЫЕ ЗНАЧЕНИЯ / СОБСТВЕННОЕ РАЗЛОЖЕНИЕ / ПРЕОБРАЗОВАНИЕ ОТРАЖЕНИЯ / ПРЕОБРАЗОВАНИЕ ХАУСХОЛДЕРА / МНОГОЯДЕРНЫЕ ПРОЦЕССОРЫ / МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ / НЕОДНОРОДНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / ЭФФЕКТИВНОСТЬ ПРОГРАММ / УСКОРЕНИЕ РАБОТЫ ПРОГРАММ / КЭШ-ПАМЯТЬ / СИСТЕМЫ С ОБЩЕЙ ПАМЯТЬЮ / EIGENVALUES / SOLUTION EIGENVALUES PROBLEM / REFLECTION TRANSFORMATIONS / HOUSEHOLDER TRANSFORMATIONS / MULTICORE PROCESSORS / MULTIPROCESSOR SYSTEMS / HETEROGENEOUS PARALLEL COMPUTING SYSTEMS / PROGRAM EFFICIENCY / PROGRAM ACCELERATION / CACHE MEMORY / SHARED MEMORY SYSTEMS / LINEAR ALGEBRA / LINEAR ALGEBRA OPERATIONS / VECTOR OPERATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Егунов Виталий Алексеевич

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Егунов Виталий Алексеевич

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

CACHE-OPTIMIZATION OF SOLVING EIGENVALUES PROBLEM FOR PARALLEL COMPUTING SYSTEMS

The reduction of the matrix to Hessenberg form in the framework of the problem of calculating eigenvalues on parallel computing systems with shared memory is considered. Parallel computing systems with shared memory are the most common and affordable type of parallel computing systems. As the base conversion use the conversion reflections of Householder. The article analyzes the solution of the problem of reducing the matrix to Hessenberg form on the target computing architectures, with special attention paid to the optimization of algorithms in terms of efficient use of cache memory. The author's algorithms for solving the problem, which are optimized versions of the classical householder transformation, are presented. The use of these algorithms can significantly reduce the execution time of the program. The conclusions are confirmed by the results of computational experiments.

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

24. Haugen D. Lectures on air pollution and environmental impact analysis. Boston, AMS, 1975. 296 p.

25. Jalali M. S., Kaiser J. P. Cybersecurity in hospitals: a systematic, organizational perspective. Journal of Medical Internet Research, 2018, no. 20 (5), p. 10059.

26. Kusheleva E., Rezchikov A., Kushnikov V., Ivaschenko V., Kushnikova E., Samartsev A. Mathematical Model for Prediction of the Main Characteristics of Emissions of Chemically Hazardous Substances into the Atmosphere. Recent Research in Control Engineering and Decision Making, 2019, vol. 199, pp. 594-607.

27.Pasquill F. Atmospheric diffusion. London, Van Nostr. Co. Ltd., 1962. 298 p.

28. Ragland K. W. Forecast ambient air consentration from point sources using the Gaussian plume model. Atm. Env, 1976, vol. 10, no. 5, pp. 371-374.

29. Rahmandad H. Connecting strategy and system dynamics: an example and les-sons learned. System Dynamics Review, 2015. no. 31 (3), pp. 149-172.

30. Rahmandad H, Repenning N. P. Capability erosion dynamics. Strategic Management Journal, 2016, no. 37 (4), pp. 649-672.

31. Sekaran U., Bougie R. Research methods for business: a skill-building approach. 7th ed. Chichester, Wiley,

2016.

32. Shavelson R. J. An approach to testing and modeling competence. Modeling and Measuring Competencies in Higher Education: Tasks and Challenges. Frankfurt, Springer, 2013, pp. 29-43.

УДК 004.42, 004. 021

КЭШ-ОПТИМИЗАЦИЯ ПРОЦЕССА ВЫЧИСЛЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ НА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ1

Статья поступила в редакцию 10.03.2019, в окончательной версии 07.04.2019.

Егунов Виталий Алексеевич, Волгоградский государственный технический университет, 400005, Российская Федерация, г. Волгоград, пр. им. Ленина, 28,

кандидат технических наук, доцент, e-mail: vegunov@mail.ru

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

Ключевые слова: собственные числа, собственные значения, собственное разложение, преобразование отражения, преобразование Хаусхолдера, многоядерные процессоры, многопроцессорные системы, неоднородные параллельные вычислительные системы, эффективность программ, ускорение работы программ, кэш-память, системы с общей памятью

CACHE-OPTIMIZATION OF SOLVING EIGENVALUES PROBLEM FOR PARALLEL COMPUTING SYSTEMS

The article was received by editorial board on 10.03.2019, in the final version — 07.04.2019.

Egunov Vitaly A., Volgograd State Technical University, 28 Lenin Ave., Volgograd, 400005, Russian Federation

Cand. Sci. (Engineering), e-mail: vegunov@mail.ru

The reduction of the matrix to Hessenberg form in the framework of the problem of calculating eigenvalues on parallel computing systems with shared memory is considered. Parallel computing systems with shared memory are the most common and affordable type of parallel computing systems. As the base conversion use the conversion reflections of Householder. The article analyzes the solution of the problem of reducing the matrix to Hessenberg form on the target computing architectures, with special attention paid to the optimization of algorithms in terms of efficient use of cache memory. The author's algorithms for solving the problem, which are optimized versions of the classical householder transformation, are presented. The use of these algorithms can significantly reduce the execution time of the program. The conclusions are confirmed by the results of computational experiments.

1 Исследование выполнено при финансовой поддержке РФФИ и Администрации Волгоградской области в рамках научного проекта № 18-47-340010 р_а.

Key words: eigenvalues, solution eigenvalues problem, reflection transformations, Householder transformations, multi-core processors, multiprocessor systems, heterogeneous parallel computing systems, program efficiency, program acceleration, cache memory, shared memory systems, linear algebra, linear algebra operations, vector operations

Graphical annotation (Графическая аннотация)

Введение. Задачи линейной алгебры играют огромную роль в современных научных исследованиях и при решении большого числа прикладных проблем. Причем часто именно на матричные преобразования, такие как решение систем линейных алгебраических уравнений, поиск собственных значений и системы собственных векторов, поиск сингулярного разложения, обращение матриц и т.д., приходится основная часть операционной сложности решения. Одной из ключевых задач линейной алгебры является выполнение собственного разложения. Данная статья посвящена разработке модификаций известных алгоритмов выполнения собственного разложения с целью их эффективной программной реализации на параллельных вычислительных системах с общей памятью. Данная работа продолжает исследования, отраженные в работе [2], и в некоторой степени опирается на полученные в ней выводы.

Постановка задачи. Высокая вычислительная сложность задачи поиска собственных чисел и системы собственных векторов матриц большой размерности делает данную задачу объектом исследований математиков и специалистов в области разработки программного обеспечения. Сама задача хорошо известна и описана, например, в [6, 7, 11] - она заключается в поиске векторов и чисел, удовлетворяющих условию (1):

Ау = Ху, (1)

Вектор у в данном случае называется собственным вектором линейного оператора А, число Х -собственным значением. В общем случае и Х и у могут быть комплексными - даже в случае вещественного А. Алгоритмы решения задачи (1) можно разделить на алгоритмы поиска всех собственных значений (и, возможно, системы собственных векторов) и алгоритмы поиска нескольких собственных чисел, возможно одного. Данные алгоритмы широко описаны в литературе, например, в [5]. Наибольшее распространение получили итеративные алгоритмы, заключающиеся в построении последовательности преобразований, сходящейся к собственным значениям, а также в построении последовательности векторов, сходящихся к собственным векторам линейного оператора. Не существует относительно простых прямых алгоритмов поиска собственных чисел и системы собственных векторов. Однако такие алгоритмы известны для матриц специального вида. В качестве примера можно привести треугольные матрицы, у которых собственные числа располагаются на главной диагонали.

Используемые методы. Одним из приемов ускорения процесса вычисления собственных чисел является приведение исходной матрицы общего вида к «почти треугольной» форме, в которой кроме элементов треугольной матрицы сохраняется диагональ под или над главной диагональю. Матрицы такого

вида называются верхней или нижней матрицей Хессенберга соответственно. Существует конечная последовательность преобразований, приводящая матрицу произвольного вида к Хессенберговой форме [9, 11, 13] с сохранением ее собственных значений. Подобные матрицы, наряду с трехдиагональными матрицами, являются исходными для многих алгоритмов поиска собственных чисел, таких как, например, QR-алгоритм [4, 6] или метод Якоби, усиливающих главную диагональ, т.е. выполняющих приближение матрицы к диагональному или треугольному виду, а элементов главной диагонали - к собственным значениям матрицы. Соответственно, можно сделать вывод, что приведение матрицы произвольного вида к Хессенберговой, а симметричной матрицы - к трехдиагональной форме, является неотъемлемой частью большого числа алгоритмов поиска собственных чисел линейного оператора. Повышение эффективности методов решения данной задачи приводит к уменьшению времени поиска собственных чисел в целом.

В данной работе будет рассмотрена задача приведения матрицы общего вида к Хессенберговой форме с целью дальнейшего получения ее собственных значений. В качестве базового метода будем использовать метод отражения Хаусхолдера [3, 9, 10, 13]:

А = QRQT, (2)

где А - исходная матрица; R - Хессенбергова матрица; Q - ортогональная матрица, представляющая собой произведение матриц отражения Хаусхолдера, каждая из которых однозначно определяется вектором отражения. В работе [10] анализируется выполнение QR-разложения методом Хаусхолдера на параллельных вычислительных системах с общей памятью. В частности, рассматривается умножение на матрицу отражения справа (QR-разложение) и слева (LQ-разложение). В первом случае вектор отражения определяется столбцами исходной матрицы, обнуляются также столбцы, во втором случае вектор отражения определяется строками исходной матрицы, обнуляются строки. Вариант LQ-разложения в данном случае оказывается более предпочтительным из-за меньшей вероятности кэш-промахов. Кэш-промах происходит в том случае, когда микропроцессор пытается обратиться к данным, которые отсутствуют в кэш-памяти. В этом случае их необходимо подгружать из основной памяти. Если необходимые данные находятся в кэш-памяти, они быстро извлекаются. Такое событие называется кэш-попаданием. Повышение быстродействия вычислительной системы достигается в том случае, когда кэш-попадания реализуются намного чаще, чем кэш-промахи. Данный эффект подробно рассмотрен в работе [2].

В случае приведения матрицы к Хессенберговой форме ситуация не столь однозначна, так как необходимо выполнять умножение на матрицу Хаусхолдера с двух сторон для сохранения собственных значений (2). Для приведения матрицы размерности «п х п» к верхней Хессенберговой форме необходимо выполнить «п-2» шага. В рамках каждого шага необходимо:

• вычислить элементы вектора отражения по элементам очередного столбца исходной матрицы;

• умножить исходную матрицу на матрицу отражения справа;

• умножить исходную матрицу на матрицу отражения слева.

Алгоритм выполнения к-го шага преобразования можно записать следующим образом:

Бк= - 515п(ак+1,к) ( ^ а?к I , (рк = - Бкак+1к) 1

ик = ■■■, 0, ак+1,к — 5к, ак+2,к, ■■■, апк)

Для j = к до п ^ = <РкиткЦ

а1 = а1 - Х)ик (3)

Для j = к до п Х] = фкЬ]Щ Ь; = Ь; - Х}иТк

Здесь а - столбцы исходной матрицы, Ь - ее строки. Процесс выполнения преобразования проиллюстрирован на рисунке 1.

На рисунке 1 представлены два шага преобразования. На первом шаге, имеющем в (3) номер к = 0, обнуляется первый столбец матрицы. Для этого:

• определяется вектор отражения из значений элементов первого столбца матрицы, находящихся под главной диагональю;

• осуществляется умножение на матрицу умножения справа, в результате которого обнуляются элементы первого столбца (рис. 1б), изменяются (п-1) элементов всех остальных столбцов, начиная с первого;

• осуществляется умножение на матрицу умножения слева, в результате чего изменяются (п-1) элементов всех строк матрицы.

Рисунок 1 - Процесс приведения матрицы к верхней Хессенберговой форме

После выполнения (п-2) шагов матрица будет приведена к верхней Хессенберговой форме.

В соответствии с законом Амдала ускорение программы с параллельной реализацией любого алгоритма ограничено частью программы, не подлежащей распараллеливанию. Для рассматриваемого алгоритма очевидно, что, во-первых, три этапа преобразования на каждом его шаге (рис. 1) выполняются строго последовательно. Кроме того, первый этап (определение вектора отражения) выполняется последовательно, так как его распараллеливание не даст ощутимого ускорения из-за невысокой вычислительной сложности. Во-вторых, из рисунка 2 видно, что первые два этапа выполняются как операции со столбцами матрицы, в то время как матрицы хранятся по строкам, из-за этого генерируется большое число кэш-промахов [2]. Эти два обстоятельства существенно снижают эффективность программ, основанных на распараллеливании алгоритма (3).

Для приведения матрицы к нижней Хессенберговой форме на каждом шаге преобразования необходимо выполнить следующие действия:

Фк

С

5как,к+1

-1

ик = (А ■■■, ак,к+1 — Бк, ак,к+2, ■■■, акп) Для j = к до п

= ^кЬ]ик

Ь] = Ь; — Х]иТк

(4)

Для j = к до п Л] = ФъЦкЪ

ау- = ау — \^ик

На рисунке 2 представлен процесс приведения матрицы к нижней Хессенберговой форме.

Определение

вектора Преобразование

отражения (1) строк (2)

Преобразование столбцов (3)-

х

рсхххххххххЦ

1

(1) (2)

ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх ххххххххххх

(3)

Есххххххххх!

[ххххххххххх ххххххххххх ххххххххххх X ххххххххххх х ххххххххххх х ххххххххххх X ххххххххххх X ххххххххххх х ххххххххххх х Ххххххххххх

Рисунок 2 - Процесс приведения матрицы к верхней Хессенберговой форме.

В целом выполняются те же действия с учетом следующих замечаний:

• вектора отражения формируются на базе элементов строк матриц;

• сначала преобразуются строки, затем столбцы матриц.

Предлагаемые решения. В обоих алгоритмах, представленных на рисунках 1 и 2, осуществляются одни и те же преобразования над столбцами и строками матрицы, меняется только порядок выполнения действий. Поэтому данные этапы на параллельных вычислительных системах будут выполняться за одно и то же время. Существенным отличием этих алгоритмов является схема формирования вектора отражения. И с этой точки зрения более предпочтительным оказывается алгоритм приведения матрицы к нижней Хессенберговой форме, представленный на рисунке 2. Это связано с тем, что формирование вектора отражения осуществляется на основе элементов строк матрицы, в отличие от алгоритма, представленного на рисунке 1, где вектор отражения формируется на основе элементов столбцов. Дело в том, что при использовании элементов столбцов матрицы на параллельных вычислительных системах с общей памятью будет генерироваться большее число промахов. Однако, в силу того, что доля определения элементов вектора отражения в общем объеме вычислений достаточно мала, оба алгоритма будут иметь схожую вычислительную эффективность.

Рассмотрим данные алгоритмы с точки зрения увеличения их эффективности на параллельных системах с общей памятью. Можно выделить несколько узких мест.

1. В данных алгоритмах присутствуют три последовательных этапа на каждом шаге преобразования. Одним из этапов является вычисление элементов вектора отражения. Однако существуют реализации, в которых осуществляется предварительное вычисление элементов вектора отражения для следующего шага преобразования, описанные, например, в [10].

2. При умножении на матрицу отражения справа осуществляется обработка столбцов матрицы. Это существенно снижает эффективность по сравнению с вариантом вычислений, основанным на обработке строк матрицы.

В данной работе будет рассмотрена модернизация данных алгоритмов, направленная на повышение эффективности, связанная с ускорением обработки столбцов исходной матрицы.

В соответствии с (3) в процессе приведения исходной матрицы к верхней Хессенберговой форме при умножении на матрицу отражения справа, в процессе которого обнуляется очередной столбец исходной матрицы, выполняются следующие действия:

• определяются элементы вектора отражения на основе значений соответствующего столбца исходной матрицы;

• вычисляются новые значения столбцов матрицы; столбцы могут обрабатываться как последовательно, так и параллельно, так как в данном случае отсутствуют информационные зависимости.

При этом в процессе пересчета значений столбцов выполняются следующие вычисления:

• определяются значения скалярных произведений столбцов и вектора отражения;

• на основе полученных значений скалярных произведений вычисляются новые значения элементов столбцов.

Оба этих этапа хорошо распараллеливаются. Однако, в силу того, что данные обрабатываются вдоль столбцов, генерируется достаточно большое значение кэш-промахов, что сильно замедляет процесс вычислений.

Для устранения негативного влияния кэш-промахов предлагается следующий алгоритм вычисления новых значений столбцов матрицы:

• на первом этапе вычисляются все необходимые скалярные произведения вектора отражения и столбцов матрицы;

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

Данный процесс можно записать следующим образом.

Бк= — 515п(ак+1,к) ( ^ а?к I , фк = ^ - 5как+1к) 1

ик = ■■■, 0, ак+1,к — 5к, ак+2,к, ■■■, апк)

2С = ФкКА

Для г = к+1 до п

Для с = к до п

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

Для j = к до п

Xj = (pkbjUk bj = bj — AjUTk

Перед обработкой столбцов вычисляется вектор скалярных произведений se как произведение вектора отражения на исходную матрицу A c учетом масштабного коэффициента фк. Далее осуществляется вычисление новых значений столбцов матрицы, причем вычисление осуществляется построчно, что гораздо эффективнее с точки зрения использования кэш-памяти микропроцессора. Необходимо отметить, что в (5) используются следующие обозначения: b - строки матрицы; аг с - элементы матрицы А.

Алгоритм приведения матрицы к нижней Хессенберговой форме с использованием строчно-ориентированной схемы обработки столбцов матрицы приведен в (6):

sk= — sign(akk+1) ( ^ a£jj , çk = - skakk+1) 1

uk = , 0, ak,k+l — sk, ak,k+2, ■■■ , akn)

Для j = k до n Àj = cpkbjUk

bj = bj — AjUk (6)

se = VkKA

Для r = k+1 до n

Для c = k до n

Результаты вычислительных экспериментов. В качестве объекта исследований была выбрана параллельная вычислительная система с общей памятью [1], построенная на базе многоядерных микропроцессоров Xeon E5-2650v3(x2) 2.3 GHz. Эта система входит в состав вычислительного кластера кафедры ЭВМ и систем Волгоградского государственного технического университета.

В таблице 1 приведены результаты, полученные для последовательных алгоритмов приведения матрицы произвольного вида к Хессенберговой форме. Программы были написаны на языке C, в качестве базового типа использовался вещественный тип с двойной точностью double.

Таблица 1 - Время приведения исходной матрицы к Хессенберговой форме с использованием последовательных вычислений, с

Размерность 500 1000 1500 2000 2500 3000 3500 4000

матриц

Алгоритм 1 0,13 1,36 4,82 13,2 29,8 53,7 87 173

Алгоритм 2 0,13 1,34 4,7 12,8 26,5 48,4 79,8 155,2

Алгоритм 3 0,1 0,87 3,22 8,3 19,4 35 59,9 113,2

Алгоритм 4 0,1 0,8 2,96 8,23 18,1 34,7 59,5 113,1

Размерность 4500 5000 5500 6000 6500 7000 7500 8000

матриц

Алгоритм 1 224,5 329,4 449,6 646,1 779,9 933,3 1106,2 1308,6

Алгоритм 2 201,6 285,2 381,8 553,2 673,6 858,3 1064,3 1347,4

Алгоритм 3 142,8 205,2 283,1 400 490,3 613 730,6 872,1

Алгоритм 4 142,6 205 282,5 396 484,4 617,1 766,4 940,2

Алгоритмы в таблице 1 обозначены следующим образом:

• Алгоритм 1 - приведение матрицы к верхней Хессенберговой форме с использованием традиционного преобразования Хаусхолдера (3);

• Алгоритм 2 - приведение матрицы к нижней Хессенберговой форме с использованием традиционного преобразования Хаусхолдера (4);

• Алгоритм 3 - приведение матрицы к верхней Хессенберговой форме с использованием предложенного строчно-ориентированного преобразования Хаусхолдера (5);

• Алгоритм 4 - приведение матрицы к нижней Хессенберговой форме с использованием предложенного строчно-ориентированного преобразования Хаусхолдера (6).

Анализируя данные, представленные в таблице 1, можно сделать следующие выводы:

• вычислительные схемы, в которых вычисление вектора отражения основано на элементах строк, оказываются более эффективными по сравнению со схемами, в которых вычисление вектора отражения основано на элементах столбцов; алгоритм (4) эффективнее алгоритма (3), алгоритм (6) эффективнее алгоритма (5);

• с увеличением размерности обрабатываемых матриц эффективность строчных и столбцовых схем становится примерно одинаковой, на больших размерностях (свыше 8000) более эффективными оказываются столбцовые схемы;

• алгоритмы, основанные на предложенном строчно-ориентированном преобразовании Хаусхолдера (5) и (6) эффективнее алгоритмов, основанных на традиционном преобразовании Хаусхолдера (3) и (4).

Для наглядности результаты, представленные в таблице 1, приведены на рисунке 3.

Рисунок 3 - Время приведения исходной матрицы к Хессенберговой форме с использованием последовательных вычислений, с

Все приведенные алгоритмы хорошо распараллеливаются. В таблице 2 приведены результаты, полученные для программ, реализующих алгоритмы приведения матрицы произвольного вида к Хессен-берговой форме с использованием параллельных вычислений.

Таблица 2 - Время приведения исходной матрицы к Хессенберговой форме с использованием параллельных вычислений, с

Размерность 500 1000 1500 2000 2500 3000 3500 4000

матриц

Алгоритм 1 0,06 0,39 1,35 3,19 6,71 12 19,78 39,6

Алгоритм 2 0,1 0,59 1,69 3,65 8 14,6 23,84 47,5

Алгоритм 3 0,06 0,47 1,26 2,83 5,53 9,94 15,8 28,8

Алгоритм 4 0,09 0,46 1,37 3,3 6,54 11,2 16,7 32,7

Размерность 4500 5000 5500 6000 6500 7000 7500 8000

матриц

Алгоритм 1 50,4 72,9 98,82 147,9 185,7 227,6 275,9 327,1

Алгоритм 2 62,2 89 123 171 209,5 267 320 396,8

Алгоритм 3 34,5 43,9 56,2 75,4 92,4 109,5 133,9 167,7

Алгоритм 4 34,5 62,4 88,2 129,2 159,2 191,9 233,8 289,7

Данные, приведенные в таблице 2, получены с использованием распараллеливания вычислений на 5 параллельных потоках. Интерес представляет полученное ускорение с использованием каждого алгоритма, по отношению к базовой вычислительной схеме - приведению матрицы к верхней Хессенбер-говой форме с использованием традиционного преобразования Хаусхолдера, выполняемого в виде последовательных вычислений. Данные по ускорению приведены в таблице 3. Стоит отметить, что для па-

раллельных реализаций по-прежнему лучшими оказались алгоритмы, основанные на строчно-ориентированной вычислительной схеме. Однако в каждой паре алгоритмов на этот раз более эффективными оказались алгоритмы приведения матриц к верхней Хессенберговой форме.

Таблица 3 - Ускорение полученных программ с параллельными вычислениями по отношению к базовому алгоритму приведения матрицы к верхней Хессенберговой форме с использованием традиционного преобразования Хаусхолдера_

Размерность 500 1000 1500 2000 2500 3000 3500 4000

матриц

Алгоритм 1 2,26 3,49 3,56 4,15 4,44 4,46 4,4 4,37

Алгоритм 2 1,26 2,35 2,86 3,62 3,7 3,68 3,65 3,64

Алгоритм 3 2,06 2,9 3,83 4,68 5,38 5,4 5,5 6

Алгоритм 4 1,42 2,96 3,52 4 4,55 4,79 5,2 5,3

Размерность 4500 5000 5500 6000 6500 7000 7500 8000

матриц

Алгоритм 1 4,46 4,52 4,55 4,37 4,2 4,1 4,01 4

Алгоритм 2 3,61 3,7 3,65 3,78 3,72 3,5 3,46 3,3

Алгоритм 3 6,5 7,50 8 8,56 8,44 8,52 8,26 7,8

Алгоритм 4 5,3 5,28 5,1 5 4,9 4,86 4,73 4,52

Для большей наглядности результаты полученных ускорений приведены на рисунке 4.

9

О Н-1-:-г-г---;---;-"-;-;-;-г-;-;-.

О О О о о о о о о о о о о о о

О о О о о о о о о о о о о о о

о ш О ш о 1_Л о 1.Л о ш о 1.Л о ш о

т—1 сч сч т (Л 1Л ш ш Г--- (В

Размерность

Рисунок 4 - Ускорение полученных программ с параллельными вычислениями по отношению к базовому алгоритму приведения матрицы к верхней Хессенберговой форме с использованием традиционного преобразования Хаусхолдера

Наиболее интересным результатом является ускорение работы базового алгоритма более чем в пять раз на пяти параллельных потоках в алгоритмах 3 и 4. Это произошло за счет того, что последовательные реализации строчно-ориентированных вычислительных алгоритмов, рассмотренных выше, уже сами по себе работают гораздо быстрее базового алгоритма. Поэтому их распараллеливание приводит к таким хорошим результатам. Если проанализировать данные таблиц 1 и 2, можно сделать вывод, что для одной и той же вычислительной схемы показатель ускорения не будет превышать числа ядер - в данном случае пяти.

Выводы. 1. Предложенные алгоритмы строчно-ориентированных преобразований Хаусхолдера оказываются более эффективными, чем алгоритмы традиционного преобразования Хаусхолдера на параллельных вычислительных системах с общей памятью. 2. Все полученные вычислительные схемы хорошо распараллеливаются. Наилучший алгоритм позволяет получить ускорение по отношению к базовому алгоритму, даже превышающее число ядер микропроцессора.

Библиографический список

1. Андреев А. Е. Технологии программирования многопроцессорных систем : учебное пособие / А. Е. Андреев, В. А. Егунов, О. В. Шаповалов. - Волгоград, 2015.

2. Егунов В. А. О влиянии кэш-памяти на эффективность программной реализации базовых операций линейной алгебры / В. А. Егунов // Прикаспийский журнал: управление и высокие технологии. - 2018. - № 3. - C. 88-96.

3. Егунов В. А. Оценка эффективности программной реализации QR-разложения на многоядерных архитектурах / В. А. Егунов, С. И. Кирносенко, П. Д. Кравченя, О. О. Шумейко // Известия ВолгГТУ Сер. Актуальные проблемы управления, вычислительной техники и информатики в технических системах. - Волгоград, 2017. -№ 1 (196). - C. 56-59.

4. Новак А. Е. Параллельный алгоритм построения QR-разложения разреженных матриц для систем с общей памятью / А. Е. Новак, С. А. Лебедев // Суперкомпьютерные дни в России : труды Международной конференции. -2018. - С. 841-847.

5. Уилкинсон Райнш. Справочник алгоритмов на языке АЛГОЛ: Линейная алгебра : пер. с англ. / Райнш Уилкинсон ; под общ. рук. С. П. Забродина ; под ред. Ю. И. Топчеева. - Москва : Машиностроение,1976. - 390 с.

6. Anderson M. Communication-avoiding QR decomposition for GPUs / M. Anderson, G. Ballard, J. Demmel, K. Keutzer // Proceedings of the 25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011. -2011. - Art. no. 6012824. - P. 48-58.

7. Baker C. G. Anasazi software for the numerical solution of large-scale eigenvalue problems / C. G. Baker, U. L. Hetmaniuk, R. B. Lehoucq, H. K. Thornquist // ACM Transactions on Mathematical Software. -2009. - № 36 (3). -Art. no. 13. - DOI: 10.1145/1527286.1527287.

8. Bogoya J. M. Extreme individual eigenvalues for a class of large hessenberg toeplitz matrices / J. M. Bogoya, S. M. Grudsky, I. S. Malysheva // Operator Theory: Advances and Applications. - 2018. - № 271. - P. 119-143.

9. Bujanovic Z. A householder-based algorithm for hessenberg-triangular reduction / Z. Bujanovic, L. Karlsson, D. Kressner // SIAM Journal on Matrix Analysis and Applications. - 2018. - № 39 (3). - P. 1270-1294.

10. Egunov V. A. Implementation of QR and LQ decompositions on shared memory parallel computing systems / V. A. Egunov, A. E. Andreev // 2nd International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM) (Chelyabinsk, Russia, 19-20 May 2016). - 2016. - 5 p. - DOI: 10.1109/ICIEAM.2016.7911607.

11. Eljammaly M. On the tunability of a new Hessenberg reduction algorithm using parallel cache assignment / M. Eljammaly, L. Karlsson, B. Kagstrom // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - 2018. - 10777 LNCS. - P. 579-589.

12. Polizzi E. Density-matrix-based algorithm for solving eigenvalue problems / E. Polizzi // Physical Review B-Condensed Matter and Materials Physics. - 2009. - № 79 (11). - Art. no. 115112. - DOI: 10.1103/PhysRevB.79.115112.

13. Salam A. An upper J-Hessenberg reduction of a matrix through symplectic Householder transformations / A. Salam, H. B. Kahla // Computers and Mathematics with Applications. - 2019.

References

1. Andreev A. E., Egunov V. A., Shapovalov O. V. Tekhnologii programmirovaniya mnogoprocessornykh system [Programming technologies for multiprocessor systems]. Volgograd, 2015.

2. Egunov V. A. O vliyanii kesh-pamyati na effektivnost programmnoy realizatsii bazovykh operatsiy lineynoy alge-bry [On the influence of cache memory on the effectiveness of software implementation of basic operations of linear algebra]. Prikaspiyskiy zhurnal: upravleniye i vysokiye tekhnologii [Periodical: Control and High Technologies], 2018, no. 3, pp. 88-96.

3. Egunov V. A., Kirnosenko S. I., Kravchenya P. D., Shumeyko O. O. Otsenka effektivnosti programmnoy reali-zatsii QR-razlozheniya na mnogoyadernykh arkhitekturakh [Evaluating the effectiveness of software implementation of QR-decomposition on multicore architectures]. Izvestiya VolgGTU. Ser. Aktualnyeproblemy upravleniya, vychislitelnoy tekhniki i informatiki v tekhnicheskikh sistemakh [News of Volgograd State Technical University. Series: Actual problems of control, computer engineering and Informatics in technical systems]. Volgograd, 2017, no. 1 (196), pp. 56-59.

4. Novak A. E., Lebedev S. A. Parallelnyy algoritm postroyeniya QR-razlozheniya razrezhennykh matrits dlya sis-tem s obshchey pamyatyu [Parallel algorithm for constructing QR-decomposition of sparse matrices for systems with shared memory]. Superkompyuternyye dni v Rossii : trudy Mezhdunarodnoy konferentsii [Supercomputer days in Russia : Proceedings of the International Conference], 2018, pp. 841-847.

5. Uilkinson Raynsh. Spravochnik algoritmov na yazyke ALGOL: Lineynaya algebra [Handbook for Automatic Computation Linear Algebra]. Moscow, Mashinostroyeniye Publ., 1976. 390 p.

6. Anderson M., Ballard G., Demmel J., Keutzer K., Communication-avoiding QR decomposition for GPUs. Proceedings of the 25th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2011, (2011) art. no. 6012824, pp. 48-58.

7. Baker C. G., Hetmaniuk U. L., Lehoucq R. B., Thornquist H. K., Anasazi software for the numerical solution of large-scale eigenvalue problems. ACM Transactions on Mathematical Software, 2009, no. 36 (3), art. no. 13. DOI: 10.1145/1527286.1527287.

8. Bogoya J. M., Grudsky S. M., Malysheva I. S. Extreme individual eigenvalues for a class of large hessenberg toeplitz matrices. Operator Theory: Advances and Applications, 2018, no. 271, pp. 119-143.

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

9. Bujanovic Z., Karlsson L., Kressner D. A householder-based algorithm for hessenberg-triangular reduction. SI-AM Journal on Matrix Analysis and Applications, 2018, no. 39 (3), pp. 1270-1294.

10. Egunov V. A., Andreev A. E. Implementation of QR and LQ decompositions on shared memory parallel computing systems. 2nd International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM) (Chelyabinsk, Russia, 19-20May 2016). 2016. 5 p. DOI: 10.1109/ICIEAM.2016.7911607.

11. Eljammaly M., Karlsson L., Kagstrom B. On the tunability of a new Hessenberg reduction algorithm using parallel cache assignment. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2018, 10777 LNCS, pp. 579-589.

12. Polizzi E. Density-matrix-based algorithm for solving eigenvalue problems. Physical Review B-Condensed Matter and Materials Physics, 2009, no. 79 (11), art. no. 115112. DOI: 10.1103/PhysRevB.79.115112.

13. Salam A., Kahla H. B. An upper J-Hessenberg reduction of a matrix through symplectic Householder transformations. Computers and Mathematics with Applications, 2019.

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