Научная статья на тему 'Анализ параллельного алгоритма умножения многомерных матриц'

Анализ параллельного алгоритма умножения многомерных матриц Текст научной статьи по специальности «Математика»

CC BY
207
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОМЕРНЫЕ МАТРИЦЫ / ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ / ПРОГРАММНО-АППАРАТНЫЕ КОМПЛЕКСЫ

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

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

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

Похожие темы научных работ по математике , автор научной работы — Парфенов Николай Владимирович

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

Текст научной работы на тему «Анализ параллельного алгоритма умножения многомерных матриц»

Парфенов Н.В.

Смоленский государственный университет, г. Смоленск, Россия

АНАЛИЗ ПАРАЛЛЕЛЬНОГО АЛГОРИТМА УМНОЖЕНИЯ МНОГОМЕРНЫХ

МАТРИЦ

АННОТАЦИЯ

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

КЛЮЧЕВЫЕ СЛОВА

Многомерные матрицы; параллельное программирование; программно-аппаратные комплексы.

Parfenov N.V.

Smolensk State University, Smolensk, Russia

THE ANALYSIS OF PARALLEL ALGORITHMS FOR MULTIDIMENSIONAL MATRICES

MULTIPLICATION

ABSTRACT

The paper describes a computational experiment, which was conducted on various software and hardware complexes for the evaluation multidimensional matrix multiplication algorithm with different numbers of dimensions. The experimental results are presented and analyzed.

KEYWORDS

Multidimensional matrix; parallel programming; hardware and software complexes.

Операция умножения многомерных матриц определяется следующим образом. Пусть

матрицы A =

и B =

, p и q-мерные соответственно. Совокупности индексов этих

матриц

/i,...,/ li,...,la

разбиваются на четыре группы, содержащие соответственно к, X, ¡л и у индексов (к, X, ¡¡, у> 0). Причем K+X+x=p, а X+x+y=q. Для полученных групп индексов используются

обозначения: l = (l1,...,lк), 5 = (s1;..., 5X) , С = (c1,...f^) и m = (m1,...mv) . Тогда матрицы A и B

можно представить в виде в виде A = ||а&С|| и B=|^^. Индексы групп s и c в матрицах A и B

полностью совпадают. Так же как в операции свертки, индексы разбиения c называются кэлиевыми. Индексы разбиения s называются скоттовыми, а индексы разбиения m, так же как и индексы

C = 1С; II

разбиения l, - свободными. Матрица 11 sm11, элементы которои вычисляются по формуле С = у а х и , называется (X, ¡¡-свернутым произведением матриц A и B и обозначается

lsm ^^ lsc scm

(С)

Х х (A х B) [1].

Для умножения использовался блочныи параллельныи алгоритм умножения многомерных матриц, полное описание которого приведено в [2, 3, 5].

Эксперимент проводился для трехмерных (Aisc, Bscm) и четырехмерных ( a b )

v ls 15 2 c 9 5i 5 2 cm '

числовых матриц. Далее приводится описание работы алгоритма для трехмерных матриц при разбиении на 27 потоков.

В случае разбиении на 27 потоков процессорная матрица представляет собои трехмерную матрицу с тремя процессорными слоями и девятью потоками на каждом из слоев (таблица 1).

i... .p

Таблица 1. Слои процессорной решетки

P000 P100 P200 P010 P110 P210 P020 P120 P220

P001 P101 P201 P011 P111 P211 P021 P121 P221

P002 P102 P202 P012 P112 P212 P022 P122 P222

На первом этапе производится "обнуление" (заполнение значениями нейтрального элемента) блоков матрицы Clsm в соответствующих процессорах решетки и распределение блоков матриц Alse и Bscm по процессорам решетки. Каждому слою процессорнои решетки соответствуют свои сечения матриц Alse, Bscm и Clsm. Индекс процессора совпадает с индексом вычисляемого им блока. Для вычислении процессоры s-слоя получают блоки сечения матрицы Alse и Bscm, после чего блоки этих сечении подвергаются циклическим сдвигам между процессорами по следующим правилам:

• Блоки Aisс (i=0, ..., q-1) циклически сдвигаются в порядке убывания номеров строк на i позиции.

• Блоки Bsq ( j=0, ..., q-1) циклически сдвигаются в порядке убывания номеров столбцов на j позиции.

Таблица 2. Начальное размещение блоков матриц A и B

P000 С000 A000 B000 P100 C100 A101 B010 P200 C210 A202 B020

P001 С001 A001 B011 P101 C101 A102 B021 P201 C211 A200 B001

P002 С002 A002 B022 P102 C102 A100 B002 P202 C212 A201 B012

P010 С010 A010 B100 P110 C110 A111 B110 P210 C210 A212 B120

P011 С011 A011 B111 P111 C111 A112 B121 P211 C211 A210 B101

P012 С012 A012 B122 P112 C112 A110 B102 P212 C212 A211 B112

P020 С020 A020 B200 P120 C120 A121 B210 P220 C220 A222 B220

P021 С021 A021 B211 P121 C121 A122 B221 P221 C221 A220 B201

P022 С022 A022 B222 P122 C122 A120 B202 P222 C222 A221 B212

Второи этап состоит из q итерации, на каждои из которых выполняются три деиствия:

• Каждьш процессор Plsm выполняет умножение соответствующих ему блоков матриц Alsc и Bscm и складывает результат умножения с соответствующим ему блоком матрицы Clsm.

• Блоки Aisс (i=0, ..., q-1) циклически сдвигаются в порядке убывания номеров строк на i позиции.

• Блоки Bsq ( j=0, ..., q-1) циклически сдвигаются в порядке убывания номеров столбцов на j позиции.

На последнеи итерации выполняется только пункт 1.

Результаты итерации показаны в таблицах.

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

Таблица 3. Результат первой итерации

P000 С000 A001 B010 P100 C100 A102 B020 P200 C200 A200 B000

P001 С001 A002 B021 P101 C101 A100 B001 P201 C201 A201 B011

P002 С002 A000 B002 P102 C102 A101 B012 P202 C202 A202 B022

P010 С00 A011 B110 P110 C110 A112 B020 P210 C210 A210 B100

P011 С011 A012 B121 P111 C111 A110 B001 P211 C211 A211 B111

P012 С012 A010 B102 P112 C112 A111 B012 P212 C212 A212 B122

P020 С020 A021 B210 P120 C120 A122 B020 P220 C220 A220 B200

P021 С021 A022 B221 P121 C121 A120 B001 P221 C221 A221 B211

P022 С022 A020 B202 P122 C122 A121 B012 P222 C222 A222 B222

Таблица 4. Результат второй итерации

P000 С000 A002 B020 P100 C100 A100 B000 P200 C200 A201 B010

P001 С001 A000 B001 P101 C101 A101 B011 P201 C201 A202 B021

P002 С002 A001 B012 P102 C102 A102 B022 P202 C202 A200 B002

P010 С010 A012 B120 P110 C110 A110 B000 P210 C210 A211 B110

P011 С011 A010 B101 P111 C111 A111 B011 P211 C211 A212 B121

P012 С012 A011 B112 P112 C112 A112 B022 P212 C212 A210 B102

P020 С020 A022 B220 P120 C120 A120 B000 P220 C220 A221 B210

P021 С021 A020 B201 P121 C121 A121 B011 P221 C221 A222 B221

P022 С022 A020 B212 P122 C122 A122 B022 P222 C222 A220 B202

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

При проведении экспериментов выполнялись следующие условия:

• Эксперимент проводился для трехмерных и четырехмерных числовых матриц.

• Для трехмерных матриц выполнялось (1, 1)-свернутое произведение (Alse, Bscm)

• Для четырехмерных выполнялось (2, 1)- свернутое произведение (Als1s2c, Bs1s2cm)

• Индексы трехмерных матриц принимали значения от 10 до 300 с шагом 10.

• Индексы четырехмерных матриц принимали значения 10 до 70 с шагом 2.

• На каждом шаге эксперимента выполнялись последовательное и параллельное (8 и 27 потоков, как 23 и 33) умножение многомерных матриц.

Таким образом, для трехмерных матриц выполнялось (1, 1)-свернутое произведение где один келлиев и один скотов индексы, а для четырехмерных - (2, 1)- свернутое произведение - два скоттовых и один келлиев. Все индексы имели одинаковую размерность.

Программно-аппаратные комплексы создавались как виртуальные машины Microsoft Azure на основе процессора Xeon E5-2673. Использовались конфигурации с восьмью и шестнадцатью ядрами.

Результаты эксперимента, приведенные на рисунке 1, показывают, что с увеличением размерности индексов возрастает эффективность параллельного алгоритма при разделении на 8 потоков как для трехмерных, так и для четырехмерных матриц.

350,000 300,000 250,000 200,000 150,000 100,000 50,000 0,000

140 160 180 200 220 240 260 280 300

— — последовательно 8 потоков

160,000 140,000 120,000 100,000 80,000 60,000 40,000 20,000 0,000

40424446485052545658606264666870 • последовательно 8 потоков

А) трехмерные матрицы Б) четырехмерные матрицы

Рис. 1. Зависимость производительности алгоритма от размерности индексов

На рисунке 2 приведены результаты анализа производительности алгоритма параллельного умножения многомерных матриц в зависимости от соотношения числа потоков и числа вычислителеи (ядер). Как можно заметить графики различаются. Разделение на 8 потоков более эффективно на восьми ядернои машине, а разделение на двадцать семь потоков более эффективно на шестнадцати ядернои машине.

45,000 40,000 35,000 30,000 25,000 20,000 15,000 10,000 5,000 0,000

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

8 ядер

40,000 35,000 30,000 25,000 20,000 15,000 10,000 5,000 0,000

40424446485052545658606264666870

40424446485052545658606264666870

8 потоков

27 потоков

8 потоков

27 потоков

Рис. 2. Зависимость производительности алгоритма от числа вычислителей

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

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

Таким образом, можно утверждать, что получена архитектура программно-аппаратного комплекса, которая позволяет решать проблему массовои параллельнои обработки больших

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

Данная статья написана под руководством В. И. Мунермана.

Литература

1. Мунерман В.И. Многомерно-матричная модель массовой обработки данных. - Системы высокой доступности, № 3, 2012, т.8, с. 19-22.

2. Захаров В.Н., Мунерман В.И. Параллельная реализация обработки интенсивно используемых данных на основе алгебры многомерных матриц // Аналитика и управление данными в областях с интенсивным использованием данных: XVII Международная конференция DAMDID/RCDL'2015 (Обнинск, 13 - 16 октября 2015 года, Россия): Труды конференции - Обнинск: ИАТЭ НИЯУ МИФИ, 2015, с. 217 - 223. ISBN 978-5-9530-0398.

3. Захаров В.Н., Мунерман В.И. Параллельньш алгоритм умножения многомерных матриц. - Современные информационные технологии и ИТ-образование. Т. 2 (№ 11), 2015. -614 с. - с. 384-391. (ISSN 2411-1473).

4. Мунерман В.И. Построение архитектур программно-аппаратных комплексов для повышения эффективности массовои обработки данных. - Системы высокои доступности, № 4, 2014, т.10, с. 3-16.

5. Мунерман В.И., Парфенов Н.В. Анализ параллельного алгоритма умножения многомерных матриц. Системы компьютернои математики и их приложения: материалы XVII Международнои научнои конференции. - Смоленск: Изд-во СмолГУ 2016. - Вып. 17. - 268 с. ISBN 978-5-88018-445-3, продолжающееся издание. - с. 68-71.

References

1. V.I. Munerman. A multidimesional matrix model of mass data processing. - Highly available systems, № 3, 2012, t.8, s. 1922.

2. Zakharov V. N., Munerman V. I. Parallel realization of processing of intensively used data on the basis of algebra of multidimensional matrixes//Analytics and data management in areas with intensive use of data: XVII International conference DAMDID/RCDL'2015 (Obninsk, on October 13 - 16, 2015, Russia): Works of a conference - Obninsk: IATE NIYaU MEPhI, 2015, page 217 - 223. ISBN 978-5-9530-0398.

3. Zakharov V. N., Munerman V. I. Parallel algorithm of multiplication of multidimensional matrixes. - Modern information technologies and IT education. T. 2 (No. 11), 2015. -614 pages - with. 384-391. (ISSN 2411-1473).

4. V.I. Munerman. Construction of hardware-software complexes architecture to improve massively data processing. - Highly available systems, № 4, 2014, t.10, s. 3-16.

5. V.I. Munerman, N.V. Parfenov. The analysis of parallel algorithms for multidimensional matrices multiplication. Systems of computer mathematics and their application: materials XVII of the International scientific conference. - Smolensk: Smolgu's publishing house, 2016. - Issue 17. - 268 pages of ISBN 978-5-88018-445-3, the proceeding edition. - page 68-71.

Поступила: 12.09.2016

Об авторе:

Парфенов Николай Владимирович, студент физико-математического факультета Смоленского государственного университета, npzxcf@gmail.com.

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