Эффективность алгоритма LU-разложения с двухмерным циклическим распределением матрицы для параллельного решения упругопластической задачи

Интеллектуальные системы: Коллектив. моногр. Вып 4. М.: Физматлит, 2010. С. 222-252.

6. Allen J.F., Maintaining knowledge about temporal intervals, Communications of the ACM, 1983, Vol. 26, no. 11, pp. 832-843.

7. Еремеев А.П., Королев Ю.И. Средства моделирования на основе темпоральных сетей Петри для интеллектуальных систем поддержки принятия решений / КИИ-2012: тр. 13-й нац. конф. по искусственному интеллекту с междунар. участием (16-20 октября 2012 г., Белгород, Россия). Белгород: Изд-во БГТУ. 2012. Т. 3. С. 105-112.

8. Еремеев А.П., Гречкина П.В., Чибизова Н.В. Конструирование интеллектуальных систем поддержки принятия решений на основе инструментального комплекса G2: учеб. пособие. М.: Издат. дом МЭИ, 2012. 92 с.

Referenses

1. Bashlykov A.A., Eremeev A.P., Ekspertnye sistemy pod-derzhki prinyatiya resheny v energetike [Decision support expert systems in power engineering], Moscow, Izdatelstvo MEI, 1994.

2. Vagin V.N., Eremeev A.P., Journal of Computer and Systems Sciences International, 2001, no. 6, pp. 114-123.

3. Jensen K., Coloured Petri nets. basic concepts, analysis methods and practical use, Springer-Verlag, 1992-1997, Vol. 1-3.

4. Szpyrka M., Szmuc T., Software Engineering Techniques: Design for Quality, IFIP Int. Federation for Information Proc. NY, 2006, Vol. 227, pp. 115-120.

5. Eremeev A.P., Kurilenko I.E., Intellektualnye sistemy. Kollektivnaya monografiya [Intelligent systems. Multi-author book], Vol. 4, Moscow, Fizmatlit, 2010, pp. 222-252.

6. Allen J.F., Communications of the ACM, 1983, Vol. 26, no. 11, pp. 832-843.

7. Eremeev A.P., Korolev Y.I., Trudy XIII nats. konf. po is-kusstvennomu intellektu s mezhdunar. uchastiem KII-2012 [Proc. of XIII national conf. on artifical intelligence with int. participants], Belgorod, Izd-vo BGTU, 2012, Vol. 3, pp. 105-112.

8. Eremeev A.P., Grechkina P.V., Chibizova N.V., Konstru-irovanie intellektualnykh sistem podderzhki prinyatiya resheny re-alnogo vremeni na osnove instrumentalnogo kompleksa G2: ucheb. posobie [Decision support intelligent systems design based on G2 instrumental complex: study guide], Moscow, Izd. dom MEI, 2012.

УДК 539.3: 519.6

ЭФФЕКТИВНОСТЬ АЛГОРИТМА LU-РАЗЛОЖЕНИЯ С ДВУХМЕРНЫМ ЦИКЛИЧЕСКИМ РАСПРЕДЕЛЕНИЕМ МАТРИЦЫ ДЛЯ ПАРАЛЛЕЛЬНОГО РЕШЕНИЯ УПРУГОПЛАСТИЧЕСКОЙ ЗАДАЧИ

(Работа выполнена при поддержке Программы фундаментальных исследований Президиума РАН № 15,

проект 12-П-1-1025)

А.В. Толмачев, аспирант; А.В. Коновалов, д.т.н., зав. лабораторией; А.С. Партин, к.т.н., старший научный сотрудник (Институт машиноведения УрО РАН, ул. Комсомольская, 34, г. Екатеринбург, 620049, Россия,

tolmachev.arseny@gmail.com, avk@imach.uran.ru)

При решении упругопластических задач с большими пластическими деформациями методом конечных элементов требуется многократно решать систему линейных алгебраических уравнений с ленточной матрицей жесткости. Для распараллеливания решения данной системы уравнений применена адаптация параллельного алгоритма решения систем линейных уравнений с заполненной матрицей с двухмерным циклическим распределением матрицы по процессорам для случая ленточной матрицы. В отличие от традиционного алгоритма для заполненных матриц в рассмотренном алгоритме предусмотрено хранение только тех блоков, в которых могут находиться ненулевые элементы. Это обеспечивает значительную экономию памяти по сравнению с алгоритмом для заполненной матрицы с одновременным сохранением возможности двухмерного циклического распределения блоков матрицы по процессорам для сокращения объема и количества операций передачи данных между процессорами. Производительность алгоритма протестирована на решениях осесимметричной упругопластической задачи сжатия цилиндра и трехмерной упругопластической задачи сжатия параллелепипеда. Выполнен анализ эффективности метода для регулярных сеток разной размерности. Решение производилось на кластерной системе UMT Института математики и механики УрО РАН (г. Екатеринбург) с использованием MPI для передачи данных между процессорами.

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

EFFICIENCY OF LU-DECOMPOSITION ALGORITHM WITH TWO-DIMENSIONAL CYCLIC MATRIX DISTRIBUTION FOR PARALLEL SOLUTION OF ELASTO-PLASTIC PROBLEM

Tolmachev A. V., postgraduate; Konovalov A. V., Ph.D., head of laboratory; Partin A.S., Ph.D., senior research associate

Abstract. The solution of large elastic-plastic problems using finite element method requires solving large linear system with banded stiffness matrix multiple times. For a parallel solution we used an adaptation of a LU-decomposition algorithm for dense matrices with 2d cyclic matrix distribution to the case of banded matrices. Compared to traditional algorithm for dense matrices, banded version of the algorithm stores only blocks that can have non-zero elements. This allows for the algorithm to have a significant reduction in memory requirements and in the same time makes it possible for the algorithm to have characteristics to reduce the volume and the quantity of inter-process communication like the dense version of the algorithm does. The algorithm performance was tested on a solution of an axisymmetric elastic-plastic problem of cylinder com-

pression and a 3d elastic-plastic problem of tetrahedron compression. Efficiency analysis of algorithm was performed for regular grids of different dimensions. Solution was performed on the UMT cluster system of Institute of Mathematics and mechanics UB RAS. MPI was used for inter-process communication.

Keywords: elastic-plastic problem, finite element method, LU-factorization, banded stiffness matrix, parallel solution.

Упругопластическая задача с большими пластическими деформациями физически и геометрически существенно нелинейная [1]. Для ее решения методом конечных элементов требуется значительное количество времени и возникает задача решения системы линейных алгебраических уравнений (СЛАУ) Ах=Ь с матрицей жесткости А и вектором Ь правой части относительно искомого вектора х обобщенной скорости в узлах конечно-элементной сетки.

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

Матрица А имеет ленточный вид с относительно небольшой шириной ленты. Ширина зависит как от типа аппроксимирующей расчетную область сетки, так и от способа нумерации ее узлов и является единственной основной характеристикой матрицы СЛАУ. В данной работе для рассматриваемого алгоритма решения системы уравнений с целью упрощения анализа результатов используются только регулярные сетки с одинаковым числом ячеек d вдоль каждой из сторон. Для таких сеток отношение полуширины ленты р к размерности п вектора х (к количеству переменных в задаче) для двухмерных и трехмерных задач приблизительно одинаково и, например, равно 0,01, 0,005 и 0,0033 для d=100, 200 и 300 соответственно.

В работе [2] была рассмотрена производительность трехдиагонального алгоритма Ци-разложе-ния при решении двухмерной упругопластической задачи. Использование его в трехмерной задаче приводит к появлению большого заполнения при вычислении Ци-разложения, и алгоритм показывает плохую производительность. В работе [3] описан алгоритм решения СЛАУ с полностью заполненной матрицей с использованием Ци-разло-жения с двухмерным циклическим распределением матрицы по процессорам, а в [4] дано описание модификации данного алгоритма для ленточной матрицы системы. Он базируется на алгоритме блочного Ци-разложения [5] с использованием распределения матрицы по процессорам согласно работе [6]. Модификация алгоритма заключается в том, что происходит хранение в памяти лишь тех блоков, в которых могут находиться ненулевые элементы матрицы.

Целью работы является исследование эффективности распределенного параллельного алгоритма решения СЛАУ с двухмерным циклическим распределением матрицы в упругопластической задаче.

Алгоритм параллельного решения СЛАУ

Использование блочной формы хранения позволяет получить меньший объем передачи данных для каждого процессора и большую эффективность использования процессорного кэша [7]. При инициализации алгоритма строится структура данных, хранящая индекс первого столбца блочной строки в массиве блоков, номер столбца первого ненулевого блока и количество ненулевых блоков в строке. В рассматриваемом алгоритме распределение матрицы производится на двухмерную процессорную сетку g=nrxnc с nr и nc, равными соответственно количеству строк и столбцов. Каждый процессор в процессорной сетке должен иметь возможность выполнять массовые операции внутри своей строки или столбца. Это реализовано пользовательскими коммуникаторами MPI [8], в которых находятся только процессоры из конкретного столбца или строки процессорной сетки.

Алгоритм параллельного решения СЛАУ можно разделить на несколько стадий: разбиение матрицы на блоки, нумерация блоков матрицы, перестановка блоков матрицы, формирование локальных частей матрицы, вычисление LU-разложения, решение системы с разложенной матрицей.

Разбиение матрицы на блоки. Матрица разбивается на квадратные блоки размерности nkxnk. При вычислении на платформах x86 и x86_64 компании Intel для достижения большей производительности инструкция по оптимизации [9] рекомендует использовать базовые адреса для массивов, кратные 16, и для типа данных double иметь четное количество элементов в строке при использовании схемы хранения матриц с ведущей строкой. Поэтому использована степень 2 в качестве значений nk.

Нумерация блоков матрицы. Каждому блоку матрицы ставится в соответствие номер nb. Данная нумерация в общем случае может быть произвольной. Кроме этого, каждому блоку матрицы дополнительно по простой схеме циклического распределения [6] присваивается номер процессора np, на котором будут производиться вычисления над этим блоком. Пример разбиения матрицы на блоки и нумерации блоков номерами np показан на рисунке 1. В рамку заключен фрагмент, соответствующий одной процессорной сетке g=2x3.

Перестановка блоков матрицы. На базе номеров пь и пр, полученных на этапе нумерации блоков матрицы, формируется список пар (пь, пр). Данные пары на каждом процессоре сортируются по номеру процессора пр для объединения блоков матрицы в группы с одинаковыми номерами процессоров пр. Далее над массивом блоков выполняется операция перестановки, задаваемая номерами пь из отсортированного списка пар (пь, пр). Целью перестановки является создание групп блоков для их пересылки на другие процессоры, номера которых определяются номерами пр.

Формирование локальных частей матрицы. На данном этапе производится пересылка групп блоков, сформированных на предыдущем этапе. Сначала вычисляется количество блоков в каждой из групп, и эти данные передаются процессору с номером пр. Затем передаются сами блоки. Для передачи данной информации используется операция МР!_АШоа!^.

1 2 3 1 2

4 5 6 4 5 6

1 2 3 1 2 3 1

4 5 6 4 5 6 4 5

1 2 3 1 2 3 1 2 3

5 6 4 5 6 4 5 6

3 1 2 3 1 2 3

4 5 6 4 5 6

2 3 1 2 3

Рис. 1. Разбиение матрицы СЛАУ на блоки и нумерация блоков номерами пр

Вычисление LU-разложения. После получения процессорами частей матрицы СЛАУ применяется алгоритм блочного Ци-разложения. Этот алгоритм является обобщением алгоритма Ци-разложения [5]. Пусть матрица СЛАУ А размерности п, кратной пк, разбита на блоки А,,- размерности пкхпк. Тогда Ци-разложение матрицы А вычисляется повторением следующих 1-х шагов, '=1,

..., Ш, Ш=п/пк:

1. вычисляется разложение А,-,^,-^,-,-;

2. вычисляются блоки и,,- матрицы и: и,,,^-1 ^А,,, У=/+1, ш;

3. вычисляются блоки Lij матрицы L: LI¡,=AI¡7U-1I¡7, ]=1+1, ..., ш;

4. вычисляется дополнение Шура: А^А,-,^;,^, Л к='+1, ..., ш.

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

блоки, элементом В1,1 которой является блок А,,. На рисунке 2 жирными линиями выделена матрица В, у которой блоком В1,1 является блок А22.

1 2 3 1 2

-4- * 6 4 5 6

1 2 X 1 U 3 1

4 5 6 X 5 6 4 5

1 2 L 1 X 3 1 2 3

5 6 4 5 X 4 5 6

3 1 2 3 1 2 3

4 5 6 4 5 6

2 3 1 2 3

Рис. 2. Выделение в матрице А заполненной матрицы В для иго шага алгоритма

Сначала вычисляется LU-разложение блока Bi i, которое рассылается процессорам, находящимся в одинаковых столбцах и строках процессорной сетки. Внутри столбца процессорной сетки - блоки матрицы L, а внутри строки процессорной сетки - блоки матрицы U. Полученные блоки матрицы L рассылаются по строкам процессорной сетки, а блоки матрицы U - по столбцам процессорной сетки. После получения необходимых данных каждый процессор вычисляет дополнение Шура для оставшихся блоков матрицы B.

Решение системы с разложенной матрицей. Решение системы состоит из шагов прямой и обратной подстановок. Эти шаги симметричны друг другу с учетом того, что в случае прямой подстановки используется поддиагональная часть L,, блока, стоящего на главной диагонали матрицы L, а в случае обратной - наддиагональная часть U,;, матрицы U.

Прямая и обратная подстановки состоят из вычисления произведений A^x,-, объединения их результатов на процессоре, имеющем блок A, ,, и вычисления одной из подстановок с этим блоком:

i-1 n

Lu(b - Z Ai,j y j ) и u-i (У - Z Ai,j xj ) для прямот

J=1 J=i+1

и обратной подстановок соответственно.

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

Вычислительные эксперименты проводились на кластере UMT Института математики и механики УрО РАН (г. Екатеринбург). Каждый из 208 вычислительных узлов был оборудован двумя 4-ядерными процессорами Intel Xeon E5450 и 16 ГБ оперативной памяти. Узлы соединены меж-

B

A

2,2

ду собой Infiniband для передачи сообщений и Gigabit Ethernet для ввода-вывода. Для компиляции использовался компилятор Intel 11.1 20100414, для передачи сообщений - OpenMPI.

Анализ эффективности применения параллельных вычислений проводился на примере решения методом конечных элементов трехмерной задачи сжатия параллелепипеда и двухмерной задачи сжатия цилиндра плоскими плитами из упругопластического изотропного и изотропно-упрочняемого материала с определяющими соотношениями, полученными в работе [10] и удовлетворяющими закону Гука, ассоциированному закону пластического течения и условию текучести Мизеса с функцией текучести k=400(1+50sp)a28, где k - напряжение текучести; sp - степень пластической деформации. Решение основано на принципе виртуальной мощности в скоростной форме [1].

Относительно контакта с плитами было принято условие прилипания металла к ним. Нагрузка в виде перемещения плиты прикладывалась малыми шагами Ah. Шаг Ah выбирался таким, чтобы отношение Ah/h (h - высота параллелепипеда или цилиндра) не превышало предел упругости по деформации, в данном случае 0,002, что обеспечивает устойчивость вычислительной процедуры. Величина относительного сжатия параллелепипеда и цилиндра принята равной 0,5.

На каждом шаге нагрузки задача рассматривалась как квазистатическая, а вариационное равенство принципа виртуальной мощности в скоростной форме с помощью конечно-элементной аппроксимации сводилось к СЛАУ.

При распараллеливании формирования глобальной матрицы жесткости конечные элементы распределялись слоями между процессорами. При этом операция объединения матрицы жесткости осуществлялась только с соседними процессорами. При таком распараллеливании количество процессоров не может превышать количество слоев конечных элементов.

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

Таблица 1

Параметры сеток в вычислительных экспериментах в задаче сжатия параллелепипеда

Зависимость ускорения вычисления LU-разло-жения и решения СЛАУ в упругопластической задаче сжатия параллелепипеда от размера процессорной сетки показана на рисунке 3. Здесь и далее ар=^2 - ускорение; t - время, затраченное на вычисление на процессорной сетке размером g=nrxnc; ^ - время, затраченное на вычисление на процессорной сетке размером ,§=1x2.

Из рисунке 3 а видно, что при увеличении количества процессоров наблюдается ускорение на всех сетках, кроме сетки с числом разбиений ¿=10. На ней время, затрачиваемое на передачу данных, начинает превышать время, затрачиваемое на вычисления, и наблюдается замедление при использовании 8 процессоров. При вариации неквадратных сеток, то есть замены, например, 1x2 на 2x1 и 2x4 на 4x2, не происходит существенное изменение ускорения. Отсюда можно заключить, что ориентация неквадратных процессорных сеток практически не влияет на производительность LU-разложения. На сетке с количеством разбиений ¿=25 при увеличении количества процессоров с 2 до 16 происходит ускорение практически в 7 раз, что показывает хорошую масштабируемость алгоритма на данном участке.

Количество разбиений d Полуширина ленты матрицы СЛАУ в Число неизвестных n k/n

5 131 648 0,202

10 401 3993 0,100

15 821 12288 0,067

20 1391 27783 0,050

25 2111 52728 0,040

1x2 2x1 2x2 2x4 4x2 --10 - 15---20 -а)

/Ч I /

—\ / /

» ✓ — ч " '

1x2 2x1 2x2 2x4 4x2 4x4 --10 - 15 ----20 ---

g 25

б)

Рис. 3. Зависимость ускорения ар при вычислении LU-разложения (а) и решении СЛАУ (б) от размера процессорной сетки g в задаче сжатия параллелепипеда

4x4

g

а

р

1,8

1,4

0,6

Из рисунка 3б видно, что производительность алгоритма решения СЛАУ зависит от количества столбцов в процессорной сетке. Зубчатый характер рисунка обусловлен тем, что происходит чередование сеток с большим и меньшим количеством столбцов в процессорной сетке.

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

Таблица 2

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

Зависимость ускорения при вычислении LU-разложения и решении СЛАУ в этой задаче показана на рисунке 4.

Из него видно, что при увеличении количества разбиений увеличивается ускорение при вычислении как LU-разложения, так и решения СЛАУ. Полуширина матриц в двухмерной задаче невелика (см. табл. 2), и при увеличении процессорной сетки требуется уменьшать размеры блоков и локальных частей матрицы. В экстремальных точках графиков ускорений имеет место преобладание времени, затрачиваемого на передачу данных, над временем, затрачиваемым на вычисления. Паде-

ние всех линий графика для решения СЛАУ (см. рис. 4б) определяется тем, что на процессорной сетке 2x2 появляется передача данных внутри столбцов сетки.

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

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

На основании изложенного можно сделать следующие выводы. При решении СЛАУ в трехмерной упругопластической задаче алгоритм LU-разложения с двухмерным циклическим распределением матрицы показал рост производительности с увеличением числа процессоров. В двухмерной задаче алгоритм показал рост производительности лишь на процессорных сетках меньше 4x4. Это было обусловлено небольшим размером полуширины ленты матрицы жесткости, из-за чего пересылка блоков между процессорами занимала больше времени, чем вычисления над блоками.

Литература

1. Поздеев A.A., Трусов П.В., Няшин Ю.И. Большие уп-ругопластические деформации. М.: Наука, 1986. 232 с.

2. Коновалов A.B., Толмачев A.B., Партин A.C. Параллельное решение упругопластической задачи с применением трехдиагонального алгоритма LU-разложения из библиотеки SCALAPACK // Вычислительная механика сплошных сред. 2011. Т. 4. № 4. С. 34-41. URL: http://www.icmm.ru/joumal/ download/CCMv4n4a4.pdf.

3. Choi J., Dongarra J.J., Ostrouchov S., Petitet A.P., Walker D.W., Whaley R.C., The Design and Implementation of the ScaLAPACK LU, QR, and Cholesky Factorization Routines. Sc. Progr., 1996, pp. 173-184.

4. Walker D.W., Aldcroft T., Cisneros A., Fox G.C., Furman-ski W., LU decomposition of banded matrices and the solution of linear systems on hypercubes. In Proceedings of the third confer-

ap

2,5 2 1,5 1

0,5

a)

Ap

1 -

0,75 -0,5 -0,25 -0

100

•200

•300

б)

Рис. 4. Зависимость ускорения при вычислении LU-разложения (а) и решении СЛАУ (б) от размера процессорной сетки g в задаче сжатия цилиндра

0

g

Количество разбиений d Полуширина ленты матрицы СЛАУ ß Число неизвестных n k/n

100 205 20402 0,0100

200 405 80802 0,0050

300 605 181202 0,0033

ence on Hypercube concurrent computers and applications, ACM, NY, USA, 1989, Vol. 2, pp. 1635-1655.

5. Watkins D.S., Fundamentals of Matrix Computations. 2nd ed. John Wiley and Sons, 2002, 618 p.

6. Hendrickson B.A., Womble D.E., The Torus-Wrap Mapping For Dense Matrix Calculations On Massively Parallel Computers, SIAM J. Sci. Stat. Comput., 1994, Vol. 15, pp. 1201-1226.

7. Lam M.S., Rothberg E.E., Wolf M.E., The Cache Performance and Optimization of Blocked Algorithms. Proc. 4th Intern. Conf. on Architectural Support for Programming Languages and Operating Systems, 1991, pp. 63-74.

8. MPI: A Message-Passing Interface Standard Version 2.2. URL: http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf (дата обращения: 12.11.2012).

9. Intel 64 and IA-32 Architectures Optimization Reference Manual. URL: http://www.intel.com/content/www/us/en/architectu-re-and-technology/64-ia-32-architectures-optimization-manual.html (дата обращения: 12.11.2012).

10. Konovalov A.V., Constitutive relations for an elastoplastic medium under large plastic deformations. Mechanics of Solids, 1997, Vol. 32, no. 5, pp. 117-124.

References

1. Pozdeev A.A., Trusov P.V., Nyashin Yu.I., Bolshie uprugo-plasticheskie deformatsii [Big elasto-plastic deformations], Moscow, Nauka, 1986.

2. Konovalov A.V., Tolmachev A.V., Partin A.S., Computational Continuum Mechanics, 2011, Vol. 4, no. 4, pp. 34-41, available at: http://www.icmm.ru/joumal/download/CCMv4n4a4.pdf (accessed 21 April 2013).

3. Choi J., Dongarra J.J., Ostrouchov S., Petitet A.P., Walker D.W., Whaley R.C., Scientific Programming, 1996, pp. 173-184.

4. Walker D.W., Aldcroft T., Cisneros A., Fox G.C., Furmanski W., Proc. of the 3rd conf. on Hypercube concurrent computers and applications, Vol. 2. ACM, 1989, NY, USA, pp. 1635-1655.

5. Watkins D.S., Fundamentals of Matrix Computations, 2nd ed., John Wiley and Sons, 2002.

6. Hendrickson B.A., Womble D.E., SIAM Journ. on Stat. Computing, 1994, Vol. 15, pp. 1201-1226.

7. Lam M.S., Rothberg E.E., Wolf M.E., Proc. of the 4th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, 1991, pp. 63-74.

8. MPI: A Message-Passing Interface Standard Version 2.2, available at: http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report. pdf (accessed 12 November 2012).

9. Intel 64 and IA-32 Architectures Optimization Reference Manual, available at: http://www.intel.com/content/www/us/en/ar-chitecture-and-technology/64-ia-32-architectures-optimization-ma-nual.html (accessed 12 November 2012).

10. Konovalov A.V., Mechanics of Solids, 1997, Vol. 32, no. 5, pp. 117-124.

УДК 004.42+004.9

РАСПРЕДЕЛЕННАЯ ПЛАТФОРМА ДЛЯ ПАРАЛЛЕЛЬНОГО ОБУЧЕНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ DisANN

Нгуен Занг Зуи Чыонг, аспирант; А.А. Краснощекое, аспирант

В данной работе описан процесс проектирования, реализации и внедрения системы распределенного обучения нейронных сетей на основе алгоритма learning-by-block для нейронных сетей прямого распространения. Распределение происходит в рамках массива обучающих векторов, который разделяется на несколько блоков, а блоки в свою очередь передаются вычислительными узлами. Таким образом, обучение нейронной сети распараллеливается в рамках одной эпохи. Так как нейронные сети по принципу своей работы устойчивы к ошибкам, то потери блоков не критичны. Для избежания узких мест в момент синхронизации в конце каждой эпохи обучение может проводиться с потерями. При синхронизации и переходе к следующей эпохе необходимо и достаточно определенного процента использованных для обучения блоков или заданного объема процессорного времени. В рамках каждой эпохи потери в обучении компенсируются взвешенным значением последнего успешного результата. Система базируется на созданной ранее open-source платформе для проведения grid-вычислений Anthill. Применение концепции grid-вычислений, возможность управления через web-интерфейс и свободного выбора библиотек для моделирования нейронных сетей позволили создать систему, обладающую высокой степенью гибкости и простоты использования.

Ключевые слова: распределенные вычисления, grid-вычисления, искусственные нейронные сети, параллельное обучение нейронных сетей, алгоритм обратного распространения ошибки, алгоритмы обучения нейронных сетей, слабосвязанные задачи, Python, Django.

A DISTRIBUTED PLATFORM FOR PARALLEL TRAINING OF DISANN ARTIFICIAL NEURAL NETWORKS

Nguyen Duy Truong Giang, postgraduate; Krasnoschekov A.A, postgraduate (Don State Technical University, Gagarin Sq., 1, Rostov-on-Don, 344000, Russia, giangvmu@gmail. com, akrasnoschekov@gmail. com) Abstract. The article describes the process of design, development and implementation of distributed neural network learning system based on learning-by-block algorithm for feed-forward neural networks. Distributing occurs in the array of training vectors which is divided into several blocks, transmitted to computing nodes. Thus, the neural network training is parallelized within the same epoch. Since neural networks are resistant to errors, losses are not critical. To avoid synchroniza-