ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
НАУКА- ИННОВАЦИИ. ТЕХНОЛОГИИ, №1, 2017
удк004.272+514.743.2 Макоха А.Н. [Makokha A.N.], Тышляр Т.Е. [Tyshlyar Т.Е.]
ПОСТРОЕНИЕ И АНАЛИЗ АЛГОРИТМОВ РАСПАРАЛЛЕЛИВАНИЯ ТЕНЗОРНЫХ ОПЕРАЦИЙ
Constructing and analyzing algorithms of tensor operation paralleling
В данной статье алгоритмы сложения, умножения и свертки тензоров рассмотрены с точки зрения возможности их распараллеливания. Разработаны графы этих алгоритмов и проведен их анализ с точки зрения прогнозируемых величин ускорения и эффективности. Предполагается, что время выполнения любых вычислительных операций является одинаковым и равно некоторой единице времени, а передача данных между вычислительными устройствами выполняется мгновенно без каких-либо затрат времени (что допустимо, например, для параллельной вычислительной системы с общей разделяемой памятью). В частности, показано, что для операции сложения тензоров время наиболее быстрого исполнения алгоритма при неограниченном числе процессоров будет равно длине максимального пути графа, то есть минимальное время выполнения алгоритма будет достигнуто при количестве процессоров, равном количеству компонент тензора. Аналогичный анализ проведен для алгоритмов выполнения операций умножения и свертки тензоров. Все результаты исследований подтверждены соответствующими математическими выкладками и наглядно проиллюстрированы на соответствующих графах.
The algorithms of tensors' summing, multiplying and collapsing are observed in that issue from the perspectives of those paralleling possibilities. The graphs of these algorithms are developed and analyzed from the point of the forecasted values of the acceleration and efficiency. It is assumed that the time of execution for all computing operations is same and equal to a unit of time, and data transfer between computer devices is performed instantaneously without any time consuming (it is acceptable, for example, a parallel computing systems with shared memory). In particular, it is shown that for the tensors' addition the time of the fastest execution of algorithm for an unlimited number of processors is equal to the length of the maximum path in the graph. In other words, the minimum time of the algorithm will be achieved when the number of processors is equal to the number of components of the tensor. A similar analysis was performed for the algorithms of multiplication and convolution of tensors.
Ключевые слова: тензорные операции, параллельные вычисления граф алгоритма, ускорение, эффективность.
Key words: tensor operations, paralleling calculations, graph of the algorithm, acceleration, efficiency.
ВВЕДЕНИЕ
Тензорные вычисления имеют широкую область применения. Они являются необходимым инструментом в различных естественнонаучных направлениях, таких как геометрия, физика, механика, квантовая химия, кристаллофизика и многих других. В частности, разработка квантовой теории относительности, теории объединенных полей, теории наноструктур ведется главным образом методами тензорного исчисления [4].
Использование тензорного аппарата подразумевает большие объемы вычислений, которые крайне сложно производить вручную, поэтому необходима
автоматизация при выполнении тензорных операций. Чаще всего при проведении исследований используются следующие подходы к автоматизации тензорных вычислений: разработка программных комплексов с использованием языков высокого уровня; использование специализированных математических пакетов; моделирования операций над тензорами на нейронных сетях.
Разработка программных комплексов обычно используется для решения какой-то конкретной задачи (либо класса задач) и не подразумевает универсальности. Все сведения об используемых тензорах и выполняемых над ними операциях вводятся на этапе разработки, а пользователь только задает определенные параметры для вычислений. Примерами подобных комплексов могут послужить: программный комплекс для автоматизации моделирования нестационарных процессов в механических системах и системах иной физической природы PRADIS (модуль «Элементы сплошной среды», в котором для вычисления интенсивности напряжений используется расчет значений компонент тензора напряжений); ЭСПРИ 2013 (разделы «Стальные конструкции» и «Железобетонные конструкции»), в которых на основании значений тензора напряжений определяются значения главных деформаций, углы наклона главных напряжений к текущим осям, а также угол наклона плоскости трещины к осиХ.
Для получения более универсальных вычислительных средств необходима автоматизация основных операций над тензорами: сложения, умножения, умножения на число, свертки, симметрирования, альтернирования и ко-вариантного дифференцирования тензоров. Для выполнения подобных операций возможно применение математических пакетов.
Наиболее популярными программными пакетами для работы с многомерными объектами являются Maple, Mathcad, Matlab и Mathematica. В пакетах Mathcad, Matlab и Mathematica нет специализированных средств для работы с тензорами, однако тензор может быть представлен как многоиндексный (вложенный) массив, и операции над ним производятся как операции над матрицами.
Выполнение операций над тензорами, особенно в многомерных пространствах, делает актуальным вопрос об их распараллеливании. Как одна из возможностей для распараллеливания в работах [5]-[8] рассматривались модели нейронных сетей для реализации операций тензорной алгебры: сложения, умножения тензоров, умножения тензора на скаляр, симметрирования и альтернирования тензора.
МАТЕРИАЛЫ И МЕТОДЫ ИССЛЕДОВАНИЙ
Рассмотрим алгоритмы выполнения некоторых алгебраических операций над тензорами с точки зрения из распараллеливания. Одним из важнейших моментов при разработке параллельных вычислительных алгоритмов, является оценка получаемого ускорения процесса вычислений (уменьшения времени выполнения вычислений).
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Построение и анализ алгоритмов распараллеливания тензорных операций
Будем представлять алгоритмы в виде ациклического ориентированного графа алгоритма G= (К R), где V- множество вершин графа, R - множество дуг графа [1, 3]. Вершинам графа соответствуют операции алгоритма. Дуга г = (/, /) принадлежит графу только в том случае, если операция j использует результат операции i. Для простоты модели будем предполагать, что время выполнения любых вычислительных операций является одинаковым и равно некоторой единице времени. Кроме того примем, что передача данных между вычислительными устройствами выполняется мгновенно без каких-либо затрат времени (что допустимо, например, для параллельной вычислительной системы с общей разделяемой памятью).
Операции алгоритма, между которыми нет пути в рамках выбранной схемы вычислений, могут быть выполнены параллельно. Зададим множество Н,, = {(/', I]. t¡) :/е V} (где р - количество используемых процессоров), в котором для каждой операции i е ( указывается номер используемого для операции процессора Р. и время начала операции При этом один процессор не может выполнять разные операции в один и тот же момент времени, и к назначенному времени выполнения операции все используемые для нее данные должны быть вычислены.
Граф G совместно с множеством H¡ может рассматриваться как модель параллельного алгоритма, исполняемого с использованием р процессоров. При этом можно говорить о следующих оценках:
— Т (G,H ) = max(í¡ +1) - время выполнения параллельного
ií V
алгоритма;
— Тр (Cr) = min Тр (G, Нр ) - минимальное время исполнения алгоритма для выбранной схемы вычислений при использовании оптимального расписания //,,:
— Тр= min Тр (G) - минимальное время исполнения алгоритма при использовании наилучшей вычислительной схемы;
— Ta¡ = min Т - минимально возможное время выполнения па-
ра 1
раллельного алгоритма при использовании неограниченного количества процессоров;
— Щ — время выполнения алгоритма при использовании одного процессора (время выполнения последовательного алгоритма решения задачи).
Ускорение, получаемое при использовании параллельного алгоритма для р процессоров, по сравнению с последовательным вариантом выполнения вычислений определяется величиной Sp=^1/f, т.е. как отношение времени последовательного решения задачи к времени выполнения параллельного алгоритма.
пя+р _
" раз йля г, э,..., /,У,... = з,п
Рис. 1.
Граф алгоритма для операции сложения тензоров.
Средняя доля времени выполнения алгоритма, в течение которой процессоры реально задействованы для решения задачи, называется эффективностью использования параллельным алгоритмом процессоров при решении задачи и определяется соотношением
Е = ^ [3]
р рт„ Р
РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЙ И ИХ ОБСУЖДЕНИЕ
1. Операция сложения тензоров
Сложение тензоров определяется формулой
«гаК — пгзК р.гзК с уК "<УК 1 и(/К ,
где с^ - тензоры, валентности g + д, где g - число нижних индек-
сов, g - верхних, при этом каждый из индексов принимает значение от 1 до п, где п - размерность пространства, в котором заданы тензоры.
Таким образом, при сложении двух тензоров складываются их соответствующие компоненты. Результатом будет тензор той же валентности, что и тензоры-слагаемые. Вычисление каждой из компонент тензора выполняется независимо от остальных компонентов.
Количество компонентов такого тензора, и, соответственно, необходимое количество операций сложения компонентов тензора для выполнения сложения, равно п'~' ''.
Граф алгоритма для выполнения данной операции предст авлен на рис. 1.
Проанализируем предложенную вычислительную схему.
Время последовательного выполнения данного алгоритма будет равно количеству вершин схемы без учета вершин ввода, т.е. Т = п я ''.
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ > >
. Построение и анализ алгоритмов распараллеливания тензорных операций -' '
Время наиболее быстрого исполнения алгоритма при неограниченном числе процессоров будет равно длине максимального пути графа, т.е. / , I.
Времени выполнения алгоритма, сопоставимого с минимальным временем, можно достичь при количестве процессоров р > Щ/^ [3], в данном случае р > и ^ 9 = иг+г. То есть минимальное время выполнения алгоритма будет достигнуто при количестве процессоров, равном количеств}' компонент тензора.
Когда количество процессоров меньше количества компонент тензора, время выполнения алгоритма может быть оценено равенством Тр = | пр |, где знак | означает ближайшее сверху целое число.
Тогда величина ускорения алгоритма
„8+9 "--------
Р
При п й+г' кратном р ускорение при использовании параллельных вычислений будет равно р. в противном случае - будет близко к числу р. то есть будут выполняться неравенства
е+а и < 8 < р . 4 +р р и
Эффективность выполнения алгоритма может быть оценена неравенствами
п"
пв+" + р р
<Еп <1.
Для сравнения, основываясь на проведении моделирования операции сложения тензоров на нейронной сети, при вычислении суммы тензоров удается сократить время в 2пр раз, где р - валентность складываемых тензоров, п - размерность пространства.
2. Операция умножения тензоров
Операция умножения тензоров определяется формулой
ЩЩ ауТИ
тензор валентности /?, тензор валентности /, тензор валентности И + 1.
где а'Щ -
где
п -
При этом каждый из индексов принимает значение от 1 до п, размерность пространства, в котором заданы тензоры.
Ч:
п
А+/
раз для г, я,..., ¡,],..., ... к,... = 1, п
Рис. 2.
Граф алгоритма для операции умножения тензоров.
То есть операция умножения двух тензоров сводится к умножению каждой компоненты первого тензора на каждую компоненту второго тензора.
Таким образом, количество вершин ввода графа должно соответствовать количеству компонент двух тензоров-сомножителей, то есть равно пЬ + п1. а количество операций умножения будет соответствовать числу компонент искомого тензора, то есть равно пЬ + 1.
Граф алгоритма для выполнения данной операции представлен на рис. 2.
Проанализируем предложенную вычислительную схему. Поскольку алгоритм по структуре распараллеливания аналогичен алгоритму для операции сложения, то будут получены аналогичные оценки.
Время последовательного выполнения алгоритма будет равно = п'! '.
Минимальное время исполнения алгоритма при неограниченном числе процессоров '/', = 1.
Времени выполнения алгоритма, сопоставимого с минимальным временем, можно достичь при количестве процессоров р > пш.
Время выполнения алгоритма при использованиир процессоров может быть вычислено как
Ускорения алгоритма соответствует неравенствам
Я-,*'*
а эффективность - неравенствам
пь+1
<Е< 1.
пш + р р
Операция умножения тензора на число является частным случаем операции умножения тензоров.
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Построение и анализ алгоритмов распараллеливания тензорных операций
При моделировании операции умножения тензоров над полем комплексных чисел на нейронной сети количество входов сети должно в два раза превышать количество компонент двух тензоров-сомножителей, то есть должно быть равно 2(rf + rfl), где р - общая валентность первого тензора, q - общая валентность второго тензора, п размерность пространства. Количество входов сети равно 2np+q.
Отметим частный случай, когда один из двух перемножаемых тензоров один, например первый, имеет нулевую валентность, то есть является просто числом (скаляром). Тогда операция умножения этого скаляра на второй тензор сводится к умножению всех координат второго тензора на скаляр. Из этого следует, что операция вычитания тензоров одинакового строения сводится к умножению вычитаемого тензора на (-1) и последующему сложению компонент этих тензоров.
3. Свертка тензора
Тензор a'j ". полученный из тензора а"'" по формуле
„Is... „as... " г-\ i «га...
а — а. , называется сверткой тензора а.. 121, где а.. - тензор валент-
J... ty--- У--- ' У---
ности q. Операция свертки смешанного тензора по одному верхнему и одному нижнему индексам заключается в суммировании соответствующих компонент тензора и приводит к уменьшению его валентности на 2.
Таким образом, для выполнения свертки тензора необходимо рассчитать гР'г сумм, в каждой из которых по rfl'2 слагаемых.
Рассмотрим сначала алгоритм распараллеливания операции сложения т чисел.
При последовательном выполнении операции суммирования на каждом шаге к сумме прибавляется одно из слагаемых. Для сложения т чисел понадобиться /77-1 единица времени. Данный алгоритм не допускает распараллеливания, поэтому для параллельного вычисления суммы необходимо использовать другой алгоритм, например, алгоритм сдваивания. Этот алгоритм заключается в том, что на первом шаге его выполнения исходные данные разбиваются на пары и между ними выполняется операция сложения. На следующих шагах все полученные суммы также разбиваются на пары, и выполняется очередное суммирование. Данная вычислительная схема основана на свойстве ассоциативности операции сложения.
Графы для последовательного алгоритма и для алгоритма сдваивания сложения чисел при т = 8 представлены на рисунке 3.
При использовании одного процессора время выполнения операций будет равно
7i= 2 + 4+"' + 1 = m_1
Очевидно, что для параллельной реализации такого алгоритма необходимо количество процессоров р=Щ-. Минимальное время ис-
Рис. 3. Графы для последовательного алгоритма и для алгоритма
сдваивания.
полнения алгоритма ТР = | т~\. В этом случае показатели ускорения и эффективности алгоритма сдваивания для суммирования можно оценить выражениями
5 Ж~1
' Г10§2т]
И
Е„ -
т-1
т-1
р\\о%2т~\ т
Г1о§2
соответственно. Таким образом, алгоритм показывает высокое ускорение, но при увеличении т эффективность использования процессоров будет снижаться (так как Нт Е —> 0). Для улучшения данной ситуации может быть использован модифицированный алгоритм сдваивания [3].
Вернемся к задаче свертки тензора. Для каждой из сумм т = гР~2. Кроме того количество таких сумм равно п',л.
Тогда
Тх = {пч~2 — 1)пд~2;
.1-2
.9-2 _
¡-2(д-2)
2 2 Тр=\1о§2п"-2]
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Построение и анализ алгоритмов распараллеливания тензорных операций
останется неизменным, так как увеличится количество операций на каждом этапе вычислительной схемы, но количество этапов не изменится. Ускорение алгоритма свертки можно оценить выражением
5 1)
[log2«"-2l
а эффективность - выражением
nq~\n9~2-1) nq-2(nq~2-\) 2(nq~2-I)
EP =
При моделировании данной операции на нейронной сети необходимо спроектировать сеть таким образом, чтобы количество ее входов было в два раза больше количества компонент тензора. Количество выходов сети и, соответственно, количество нейронов в слое будет в два раза больше различных компонент искомого тензора. Основываясь на проведенном моделировании, можно утверждать, что использование нейронной сети для свертки тензора общей валентности р в комплексном я-мер ном пространстве позволит сократить время вычислений в Ът раз.
ВЫВОДЫ
Проанализировав предложенные алгоритмы, можно сделать вывод о том, что операции сложения и умножения тензоров хорошо поддаются распараллеливанию и показывают высокое ускорение при сохранении эффективности использования вычислительных элементов. Операция свертки тензора при распараллеливании дает высокое ускорение, однако при увеличении валентности тензора и размерности пространства, эффективность использования вычислительных элементов будет невысока.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Воеводин В.В. Параллельные вычисления / В.В. Воеводин, Вл. В. Воеводин. СПб.: БХВ-Петербург, 2002. 599 с.
2. Гельфанд И.М. Лекции по линейной алгебре / И.М. Гельфанд. М.: Добросает, Московский центр непрерывного математического образования, 1998. 320 с.
3. Гергель В.П. Теория и практика параллельных вычислений. [Электронный ресурс] URL: http://www.intuit.ru/goods_store/ebooks/8321 (дата обращения: 11.06.2016).
4. Димитриенко Ю.И. Тензорное исчисление: Учебное пособие для вузов / Ю.И. Димитриенко. М.: Высш. шк., 2001. 575 с.
5. Макоха А.Н. Имитационные модели нейронных сетей, реализующих операции тензорной алгебры над полем комплексных чисел / А.Н. Макоха, Т.Е. Тыш-ляр // Нейрокомпьютеры: разработка и применение. М.: Изд-во «Радиотехника», 2010. №9. С. 64-70.
6. Макоха А.Н. Моделирование операций тензорной алгебры на базе нейронных сетей / А.Н. Макоха, Т.Е. Тышляр // Международная школа-семинар по геометрии и анализу памяти Н.В. Ефимова, Абрау-Дюрсо, 9-15 сентября 2008 г. Ростов-на-Дону: Изд-во Северо-Кавказского научного центра высшей школы. 2008. С. 187-189.
7. Макоха А.Н. Построение нейронной сети, реализующей операции симметрирования и альтернирования тензорной алгебры / А.Н. Макоха, Т.Е. Тышляр // Научно-инновационные достижения ФМФ в области физико-математических и технических дисциплин: Материалы 53-й научно-методической конференции преподавателей и студентов Ставропольского государственного университета «Университетская наука - региону». Ставрополь: Изд-во СГУ. 2008. С. 19-22.
8. Макоха А.Н. Построение нейронной сети для классификации точек линейного комплекса плоскостей общего типа / А.Н. Макоха, Т.Е. Тышляр // Вестник Северо-Кавказского федерального университета, 2013. №2 (35). С. 20-23.
REFERENCES
1. Voevodin V.V., Voevodin VI.V. Parallel'nye vychisleniya (Parallel computing). SPb.: BHV-Peterburg, 2002. 599 s. (rus)
2. Gelfand I.M. Lekcii po linejnoj algebre (Lectures on linear algebra). M.: Dobros-vet, Moskovskij centr nepreryvnogo matematicheskogo obrazovaniya, 1998. 320 s. (rus).
3. Gergel V.P Teoriya i praktika parallel'nyh vychislenij (Theory and practice of parallel computing). [EHIektronnyj resurs] URL: http://www.intuit.ru/goods_store/eb-ooks/8321 (data obrashcheniya: 11.06.2016) (rus).
4. Dimitrienko Yu.l. Tenzornoe ischislenie: Uchebnoe posobie dlya vuzov (The tensor calculus: A manual for the high school). M.: Vysch. schk., 2001. 575 s. (rus).
5. Makokha A.N., TyshlyarT.E. Imitacionnye modeli nejronnyh setej, realizuyushchih operacii tenzornoj algebry nad polem kompleksnyh chisel (Simulation models of neural networks, realizing the operation of the tensor algebra over the field of complex numbers) / Nejrokomp'yutery: razrabotka i primenenie. M.! Izdstel'stvo «R3-diotekhnika», 2010. №9. S. 64-70 (rus).
6. Makokha A.N., Tyshlyar Т.Е. Modelirovanie operacij tenzornoj algebry na baze nejronnyh setej (Modeling of operations of the tensor algebra based on neural networks) / Mezhdunarodnaya shkola-seminar po geometrii i analizu pamyati N.V. Efi-mova, Abrau-Dyurso, 9-15 sentyabrya 2008 g. Rostov-na-Donu: Izdatel'stvo Seve-ro-Kavkazskogo nauchnogo centra vysshej shkoly. 2008. S. 187-189 (rus).
7. Makokha A.N., Tyshlyar Т.Е. Postroenie nejronnoj seti, realizuyushchej operacii simmetrirovaniya i al'ternirovaniya tenzornoj algebry (Building a neural network that implements the operation balancing and the alternation of the tensor algebra) / auchno-innovacionnye dostizheniya FMF v oblasti fiziko-matematicheskih i tekh-nicheskih disciplin: Materialy 53-j nauchno-metodicheskoj konferencii prepoda-vatelej i studentov Stavropol'skogo gosudarstvennogo universiteta «Universitets-kaya nauka - regionu». Stavropol': Izd-vo SGU. 2008. S. 19-22 (rus).
8. Makokha A.N., Tyshlyar Т.Е. Postroenie nejronnoj seti dlya klassifikazii tochek lineynogo kompleksa ploskostej obschego tipa (Construction of neural networks for classification points of linear complex of planes of general type) / Vestnik Severo-Kavkazskogo universiteta , 2013. №2 (35). S. 20-23 (rus).