Научная статья на тему 'Параллельный алгоритм обращения целочисленной матрицы: результаты экспериментов'

Параллельный алгоритм обращения целочисленной матрицы: результаты экспериментов Текст научной статьи по специальности «Математика»

CC BY
491
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ / ПРИСОЕДИНЕННАЯ МАТРИЦА / ОПРЕДЕЛИТЕЛЬ / СИСТЕМА MATHPARTNER / КТО / НЕРАВЕНСТВО АДАМАРА / МЕТОД НЬЮТОНА / PARALLEL ALGORITHM / ADJOINT MATRIX / DETERMINANT / SYSTEM MATH PARTNER / CRT / INEQUALITY OF HADAMARD / METHOD OF NEWTON

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

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

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

PARALLEL INVERSION OF INTEGER MATRIX: THE RESULTS OF THE EXPERIMENTS

We focuses on results of experiments of the parallel algorithm for finding the inverse matrix through the adjoint matrix and determinant. A parallel algorithm based on the use of the Chinese remainder theorem and sequential algorithms implemented in the computer algebra system MathPartner. Graph of algorithm has a two-tier structure, achieved a uniform distribution between processors.

Текст научной работы на тему «Параллельный алгоритм обращения целочисленной матрицы: результаты экспериментов»

Том 23, № 121

2018

УДК 519.61, 519.688

DOI: 10.20310/1810-0198-2018-23-121-100-108

ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ОБРАЩЕНИЯ ЦЕЛОЧИСЛЕННОЙ МАТРИЦЫ: РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТОВ

^ С. А. Хворов

ФГБОУ ВО «Тамбовский государственный университет им. Г.Р. Державина» 392000, Российская Федерация, г. Тамбов, ул. Интернациональная. 33 E-mail: [email protected]

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

Ключевые слова: параллельный алгоритм; присоединенная матрица; определитель; система MathPartner: КТО; неравенство Адамара: метод Ньютона

1. Описание параллельного алгоритма

Пусть дана целочисленная квадратная матрица А порядка п. Матрицу А* , транспонированную к матрице (Ау) алгебраических дополнений, называют присоединенной. Если матрица А - невырожденная, то есть ее определитель не равен 0, то обратная к ней имеет вид: А~1 = -¿¡^¿А* , где detA - определитель матрицы А.

Таким образом, чтобы для квадратной матрицы порядка п найти обратную матрицу, надо вычислить один определитель порядка п и составить присоединенную матрицу, то есть вычислить п2 определителей порядка п 1. Последовательный метод присоединенной матрицы имеет сложность тг5а2 , где а = log т., т - наибольший по абсолютной величине коэффициент в матрице, модулярно же он имеет сложность п4а2. Для нахождения матрицы А~1 предлагается параллельный алгоритм, использующий китайскую теорему об остатках. Она позволяет найти обратную матрицу в простых полях, а затем получить ответ в рациональных числах. При этом, сложность вычислений в 71 раз уменьшается и становятся доступны параллельные потоки вычислений: в каждом простом поле вычисления происходят независимо. Общее количество арифметических машинных операций в таком алгоритме будет | (iTm1+log2' + п2т2). Если

Работа выполнена при поддержке Российского фонда фундаментальных исследований (проект № 16-07-00420)

число процессоров порядка п(т/М) , где М - разрядность машинного слова, то общее время вычислений на кластере будет оцениваться величиной | nlog2 7 .

Теорема 1.1. (Китайская теорема об остатках). Пусть числа т.\, т.п...rrik - попарно взаимно простые, ¿i, Ь'2,..., bk целые числа и М = miQn2Q.mk . Тогда система

х > bi(mod rrii), х > b2{mod та),

(1.1)

......................>

х > bk{mod т^).

имеет единственное решение по модулю М, и это решение может быть представлено в виде:

х = х\(mod М), при xi = + j^b2y2 + + ^ЬкУк и Уг обозначающим число,

обратное числу относительно умножения по модулю тг : {mod mi) .

Для выяснения достаточного числа модулей необходимо знать, какое наибольшее число может появиться в результате. Обозначим евклидову норму вектора, образованного строкой i матрицы А через сц:

^ с1-2)

¿=0

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

п

det(A) ^ JJ a¿ .

г=1

Так как может быть произвольный знак у определителя, то будем вычислять удвоенное выражение, стоящее справа. Учитывая, что некоторые строки могут оказаться нулевыми, мы будем вычислять такое выражение:

Hada = 2 ТТ где ^ = i 1 eC™ ¡¡ . (1.3)

AJ- I «г если G!j > U

г=1 4

Пусть дан набор всех простых чисел pi < р2 < *** < Pk-i < Pk, размер которых не превышает 32 бит. Выбираются простые числа, начиная с конца, до тех пор пока их произведение не станет удовлетворять неравенству (1.4).

к

~ Had2.

i=g

(1.4)

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

В итоге получится следующий набор простых чисел: рк:рк+1, ■ ■ ■ ,Pm-i,Pm ■

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

Метод Ньютона. Пусть »у - это элемент, обратный к тг по модулю rrij . Следовательно, riij Qrrii = 1 mod rrij . Пусть C\ = ; ~c[ = C\ mod m2 ; c2 = Ci + (62 Cj) Oil Oi,2 ; C2=C2 mod ra3 ; C3 = c2 + (f>3 ci)mi (Jn.2 Oi,3 Ог2,з / c^ = c3 mod mA ;

Cn = Cn-1 + (bn C^)mi От-2 О- ОПп Cni,n Ог2,п О■■■

Тогда искомое число х = сп mod М , где М = т^ Qfn2 0-mn произведение всех простых модулей.

Параллелизм обеспечивается простым двухуровневым деревом алгоритма «корень -листья» и равномерным распределением простых модулей по листовым процессорам. Для восстановления присоединенной матрицы производится обмен строк модулярных матриц между всеми процессорами. Нулевой процессор собирает определители, полученные в конечных полях. Затем каждый процессор восстанавливает несколько строк присосдиненой матрицы, помимо этого нулевой процессор восстанавливает определитель. После завершения процесса восстановления, все процессоры пересылают восстановленные строки нулевому для сборки искомой присоединенной матрицы. Выполняется деление присоединенной матрицы на определитель и в результате получается обратная матрица к исходной матрице А.

Таким образом в алгоритме используется три вида пересылок данных между процессорами:

1. Рассылка исходной матрицы с нулевого всем процессорам.

2. Рассылка строк матриц, которые получены в конечных полях, между всеми процессорами для последующего восстановления.

3. Рассылка определителей и восстановленных строк присоединенной матрицы, полученных в конечных полях, от каждого процессора нулевому.

2. Результаты экспериментов

На основе разработанного алгоритма был написан программный код на языке java в системе комепьютерной алгебры MathPartner. Все эксперименты проводились на кластере МВС-10П, который располагается в МСЦ РАН.

Данный кластер имеет 207 вычислительных узлов. Каждый из узлов имеет по 2 процессора, оснащенных 8 ядрами каждый. Общее количество оперативной памяти на одном узле равно 64 гигабайтам.

В таблице указано время вычисления присоединенной матрицы и определителя, p (по горизонтали) - число ядер, n (по вертикали) - размер матрицы, S - программная реализация последовательного алгоритма вычисления присоединенной матрицы и определителя, реализованная в MathPartner, время измеряется в секундах. Исходные матрицы имели 100% плотность и 8-битные коэффициенты.

Таблица 1: Результаты тестирования программной реализации алгоритма

п/р Б 4 8 16 32 64 128 256 512 1024

8 0.1 0.2 0.1

16 0.1 0.3 0.2 0.1

32 0.2 0.4 0.3 0.3 0.1

64 1 0.9 0.8 0.7 0.5 0.2

128 20 4.5 4 2.3 2 1.3 1

256 557 50 28 16 10 7 6 3.7

512 4О03 768 415 213 110 59 36 24 17

1024 104 4О03 зоо3 1.5 О 103 103 868 445 275 189 137

Исходя из результатов, представленных в таблице, можно сделать вывод, что для матриц порядка, не превышающего 32, время выполнения параллельного алгоритма вычисления обратной матрицы больше, чем время выполнения последовательного алгоритма, программно реализованного в системе компьютерной алгебры Ма1;КРат1«г. Для матриц порядка от 32 до 64 включительно, время выполнения примерно одинаково. Для матриц порядка выше 64, параллельный алгоритм работает значительно быстрее последовательного.

X

3 400

¿¡50

Число ядер

График 1. Зависимость времени выполнения параллельного алгоритма от количества ядер для плотной матрицы, размер которой равен 512x512.

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

Для сравнения использовалось время выполнения параллельного алгоритма на 4 ядрах, р (по горизонтали) - число ядер, п (по вертикали) - размер матрицы, оценка масштабируемости измеряется в процентах. Исходные матрицы имели 100% плотность

и 8-битные коэффициенты.

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

Таблица 2: Масштабируемость параллельного алгоритма

8 16 32 64 128 256 512 1024

8 100

16 75 50

32 67 33 50

64 56 32 23 28

128 56 49 28 22 14

256 89 78 62 45 26 21

512 92 90 87 81 67 50 35

1024 67 67 50 29 28 23 16 11

> 9990 9620 9250 время выполнения послед

8140 7770 7400 7030 66» 6290

/

5550 5150

/

/

4440 4070 3700 3330 2960 2590 /

/ па рал.

/

/

/

/

/

1850 14В® 1110 740 370 /

/

/

/

азме] матриць

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

5 110 165 220 275 330 385 440 495 550 605 660 715 770 825 880 935 990

График 2. Рост времени вычисления присоединенной матрицы и определителя с увеличением порядка матрицы.

Первый кривая представляет собой программную реализацию последовательного алгоритма, реализованного в проекте MathParner, второй кривая отвечает за параллельную реализацию, запущенную на 4 процессорах. Как видно из графика, рост вре-

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

СПИСОК ЛИТЕРАТУРЫ

1. Малашонок Г.И. Дискретная математика с элементами компьютерной алгебры. Тамбов: Изд-во ТГУ им. Г.Р. Державина, 2005.

2. Малашонок Г.И. Матричные методы вычислений в коммутативных кольцах. Тамбов: Изд-во Тамб. ун-та, 2002.

3. Малашонок Г.И. О вычислении ядра оператора, действующего в модуле // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2008. Т. 13. Вып. 1. С. 129-131.

4. Хворов С.А. Параллельный алгоритм обращения матрицы: результаты экспериментов // Компьютерная алгебра: материалы Междунар. конф. М., 2016. С. 63-65.

5. Хворов С.А. Параллельный алгоритм обращения целочисленной матрицы: эксперименты на кластере МВС-10П // International Conference on Mathematical Partnership, Parallel Computing and Computer Algebra: MathParCA-2017. Ierusalim, 2017. P. 43-48.

6. Малашонок Г.И. Компьютерная математика для вычислительной сети // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2010. Т. 15. Вып. 1. С. 322-327.

7. Малашонок Г.И. Управление параллельным вычислительным процессом // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2009. Т. 14. Вып. 1. С. 269-274.

Поступила в редакцию 23 января 2018 г.

Прошла рецензирование 14 февраля 2018 г.

Принята в печать 20 февраля 2018 г.

Хворов Сергей Александрович, Тамбовский государственный университет им. Г. Р. Державина, г. Тамбов, Российская Федерация, аспирант, кафедра функционального анализа, e-mail: [email protected]

Для цитирования: Хворов С.А. Параллельный алгоритм обращения целочисленной матрицы: результаты экспериментов // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2018. Т. 23. № 121. С. 100-108. БОТ: 10.20310/1810-0198-2018-23-121-100-108

DOI: 10.20310/1810-0198-2018-23-121-100-108

PARALLEL INVERSION OF INTEGER MATRIX: THE RESULTS OF THE EXPERIMENTS

^ S.A. Khvorov

Tambov State University named after G.R.. Derzhavin 33 Internatsionalnaya St., Tambov 392000, Russian Federation E-mail: [email protected]

Abstract. We focuses on results of experiments of the parallel algorithm for finding the inverse matrix through the adjoint matrix and determinant. A parallel algorithm based on the use of the Chinese remainder theorem and sequential algorithms implemented in the computer algebra system MathPartner. Graph of algorithm has a two-tier structure, achieved a uniform distribution between processors. Keywords: parallel algorithm; adjoint, matrix; determinant; system Math Partner; CRT; inequality of Hadamard; method of Newton

REFERENCES

1. Malaschonok G.I. Diskretnaya matematika s elementami komp'yutemoy algebry [Discrete Mathematics with Elements of Computer Algebra]. Tambov, Publishing of Tambov State University, 2005. (In Russian).

2. Malaschonok G.I. Matrichnye metody vychisleniy v kommutativnykh kol'tsakh [Matrix Methods of Computations in Commutative Rings]. Tambov, Publishing House of Tambov State University, 2002. (In Russian).

3. Malaschonok G.I. O vychislenii yadra operatora. deystvuyushchego v module [On the calculation of the kernel of the operator acting in the module]. Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Reports. Series: Natural and Technical Sciences, 2008, vol. 13. no. 1. pp. 129-131. (In Russian).

4. Khvorov S.A. Parallel'nyy algoritm obrashcheniya matritsy: rezul'taty eksperimentov [Parallel algorithm of matrix inversion: the results of the experiments]. Materialy Mezhdunarodnoy konferen-tsii: «Komp'yuternaya algebra» [Proceedings of International Conference: «Computer Algebra»]. Moscow. 2016. pp. 63-65. (In Russian).

5. Khvorov S.A. Parallel'nyy algoritm obrashcheniya tselochislennoy matritsy: eksperimenty na klastere MVS-10P [Parallel algorithm for inversion of an integer matrix: the experiments on the MVS-10P cluster]. International Conference on Mathematical Partnership, Parallel Computing and Computer Algebra: MathParCA-2017. Ierusalim. 2017, pp. 43-48. (In Russian).

6. Malaschonok G.I. Komp'yuternaya matematika dlya vychislitel'noy seti [Computer mathematics for the computer network]. Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Reports. Series: Natural and Technical Sciences, 2010, vol. 15, no. 1, pp. 322-327. (In Russian).

The work is partially supported by the Russian Fund for Basic Research (project № 16-07-00420)

7. Malaschonok G.I. Upravlenie parallel'nym vychislitel'nym protsessom [Management of parallel computing process]. Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki -Tambov University Reports. Series: Natural and Technical Sciences, 2009, vol. 14, no. 1, pp. 269-274. (In Russian).

Received 23 January 2018 Reviewed 14 February 2018 Accepted for press 20 February 2018

Khvorov Sergey Aleksandrovich, Tambov State University named after G.R. Derzhavin, Tambov, the Russian Federation, Post-Graduate Student, Functional Analysis Department, e-mail: [email protected]

For citation: Khvorov S.A. Parallel'ny algoritm obrashcheniya tselochislennoy matritsy: rezul'taty eksperimentov [Parallel inversion of integer matrix: the results of the experiments]. Vestnik Tambovskogo universiteta,. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Reports. Series: Natural and Technical Sciences, 2018, vol. 23, no. 121, pp. 100—108. DOI: 10.20310/1810-0198-2018-23-121-100-108 (In Russian, Abstr. in Engl.).

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