МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет радиофизики и электроники Кафедра информатики РАЗРАБОТКА И РЕАЛИЗАЦИЯ ЭФФЕКТИВНЫХ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ В СТАНДАРТЕ MPI Магистерская диссертация ШКУРКО Александра Анатольевича Руководитель: доцент кафедры информатики, к.т.н. Шпаковский Г. И. Рецензент: в. н. с. кафедры физической электроники, к.ф.- м.н. Жевняк О.Г. "Допустить к защите" Зав. кафедрой информатики профессор Мулярчик С.Г. "___" _____________ 2003 г. Минск, 2003 2 СОДЕРЖАНИЕ Введение .......................................................................................................... 3 1. Программирование в стандарте MPI .................................................... 6 1.1. Вычислительный кластер..................................................................... 6 1.2. Сетевой закон Амдала .......................................................................... 8 1.3. Стандарт передачи сообщений MPI ................................................. 10 2. Параллельная реализация метода сопряженных градиентов ....... 13 2.1. Метод сопряженных градиентов ....................................................... 13 1.2. Параллельный алгоритм метода сопряженных градиентов ........... 15 1.3. Результаты работы параллельного алгоритма на кластере ............ 19 3. Предобусловленный метод сопряженных градиентов .................... 23 3.1. Понятие и методы предобуславливания .......................................... 23 3.2. Требование к параллельному предобуславливателю ..................... 30 4. Параллельные предобуславливатели ................................................. 32 4.1. Блочный метод Якоби с неполной факторизацией Холецкого ...... 32 4.2. Предобуславливание при помощи усеченных рядов ...................... 44 4.3. Предобуславливатели на основе обратной матрицы ...................... 49 4.4. Сравнительный анализ рассмотренных методов ............................ 55 Заключение ................................................................................................... 58 Список использованных источников ..................................................... 60 3 ВВЕДЕНИЕ На сегодняшний день производительность вычислительных систем во многом увеличивается не столько за счет увеличения частоты работы устройств, сколько за счет привлечения параллельной обработки [1-4]. Данный процесс затрагивает как создание аппаратных средств (процессоры с несколькими АЛУ, коммуникационное оборудование для многопроцессорных систем и т.д.), так и разработку эффективных алгоритмов для различных параллельных платформ. Современные параллельные системы весьма дороги и используются для решения задач, требующих больших вычислительных ресурсов: предсказания погоды и климата, построения полупроводниковых приборов, исследования генома человека и т.д. Как бы то ни было, существует возможность создания достаточно дешевой и относительно эффективной параллельной системы на базе обычных компьютеров, соединенных при помощи коммуникационного оборудования и, таким образом, образующих один вычислительный ресурс. Такие системы называются кластерами и относятся к классу параллельных систем с распределенной памятью [1,4]. Узким местом кластеров является то, что для взаимодействия отдельных узлов привлекается наиболее распространенное и дешевое коммуникационное оборудование (Fast Ethernet), которое использует общую среду передачи данных и обладает не очень большой пропускной способностью (в сравнении со скоростью обработки данных современными процессорами). Поэтому круг задач, решаемых на подобных системах, ограничивается задачами с небольшим числом обменов по сравнению с количеством вычислений. Неоспоримым преимуществом подобных систем является их относительная дешевизна и фактическое наличие больших компьютерных классов во многих учебных заведениях. Для 4 программирования подобных систем применяются системы передачи сообщений, в которых отдельные компьютеры взаимодействуют посредством передачи и приема данных. На сегодняшний день наиболее популярным стандартом является MPI (message passing interface - интерфейс передачи сообщений) [1-4]. Конкретные реализации MPI стандарта создаются производителями программного обеспечения и поставляются вместе с оборудованием. Большинство реализаций стандарта MPI называются MPICH. Этот стандарт описывает имена, вызовы и результат работы процедур. Для каждой конкретной параллельной системы с передачей сообщений MPI имеет свою оптимизированную реализацию, а правильно написанная программа переносима между различными MPI системами на уровне исходных кодов. Для написания MPI программ используются современные языки программирования, такие как C/C++ и Fortran. Исследования в области MPI программирования ведутся в двух направлениях: создание эффективных параллельных алгоритмов и создание эффективных реализаций MPI стандарта для кластерных систем. Параллельные алгоритмы разрабатываются с учетом низкой скорости передачи данных, в связи с этим предпочтение отдается методам с наименьшим числом обменов. Текущая реализация MPI для кластерных систем осуществляет обмены посредством протокола TCP/IP [6], что приводит к невозможности эффективного использования широковещательных обменов, которые в текущей реализации осуществляются посредством парных обменов. Поэтому сегодня ведутся работы по созданию MPI реализации с реальным использованием широковещательных пересылок. Еще одна возможность увеличения производительности MPI программ – совмещение обменов и вычислений, однако для используемой в работе реализации данная техника не приводит к существенным улучшениям. 5 Данная работа посвящена созданию эффективных параллельных алгоритмов метода сопряженных градиентов для симметрических положительно определенных пятидиагональных систем линейных алгебраических уравнений. Системы подобного рода появляются при конечноразностной аппроксимации дифференциальных уравнений в частных производных. На сегодняшний день разработано большое число эффективных последовательных алгоритмов данного типа [7]. Однако большинство из них неприемлемо для параллельной реализации. Это связано с их рекурсивным характером, а, следовательно, малым параллелизмом. Целью данной работы является исследование существующих последовательных и параллельных алгоритмов метода сопряженных градиентов, выделение из них, а также создание собственных эффективных алгоритмов метода сопряженных градиентов, пригодных для применения на кластерных системах. В ходе работы было исследовано большое число алгоритмов метода сопряженных градиентов. При выборе метода для исследования предпочтение отдавалось методам с минимальным числом межпроцессорных обменов. В результате этого было выделено три класса методов: блочно-диагональные методы, полиномиальные методы и методы аппроксимации обратной матрицы. Результаты исследования показали, что при реализации задачи на кластерах больших размеров целесообразно использовать методы с минимальным числом обменов, а на кластерах малых размеров методы, обладающие лучшей сходимостью. 6 1. ПРОГРАММИРОВАНИЕ В СТАНДАРТЕ MPI 1 .1 . В ыч ис л ит е л ь ны й кл а с т е р Кластер - это связанный набор полноценных компьютеров, используемый в качестве единого вычислительного ресурса [1,4]. В качестве доступные на вычислительных рынке одно-, узлов двух- кластера или используются четырехпроцессорные компьютеры. Каждый узел такой системы работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Windows, Linux, Solaris и т.п. Состав и мощность узлов кластера может меняться, давая возможность создавать неоднородные системы [1,4]. В качестве коммуникационного протокола в таких системах используются стандартные протоколы ЛВС, характеризуемые низкой стоимостью и характеристики низкой скоростью коммуникационных передачи сетей: данных. латентность Основные – время начальной задержки при посылке сообщения и пропускная способность сети, определяющая скорость передачи информации по каналам связи [1,8]. Наличие латентности определяет тот факт, что максимальная скорость передачи данных по сети не может быть достигнута на сообщениях с небольшой длиной. Чаще всего используется сеть Fast Ethernet, основное достоинство которой – низкая стоимость оборудования. Однако большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, которые можно эффективно решать на таком кластере. Если от кластера требуется большая универсальность, то нужно переходить на более производительные коммуникационные сети, например, SCI, Myrinet и т.п. 7 В качестве средств организации параллельного программирования в кластерах используются различные системы передачи сообщений, посредством которых осуществляется взаимодействие узлов кластера. Наиболее распространенным на сегодняшний день стандартом программирования для систем с передачей сообщений является MPI. Конкретная MPI реализация создается производителями параллельных систем и поставляется вместе с оборудованием. Кластер кафедры информатики, на котором проводились исследования, состоит из шести компьютеров с процессорами Intel PIII 1000MHz, 128 MB RAM соединенных в локальную вычислительную сеть при помощи сети Fast Ethernet 100Mbit/Sec (рис. 1.1). PIII 1000MHz PIII 1000MHz Fast Ethernet Hub PIII 1000MHz PIII 1000MHz PIII 1000MHz PIII 1000MHz Рис. 1.1. Структура кластера На каждом узле установлена операционная система Windows 2000, а в качестве системы передачи сообщений используется MPICH 1.2.0.4 реализация стандарта MPI. 8 1 .2 . С е т е во й з а ко н А м да л а Одной из главных характеристик параллельных систем является ускорение R параллельной системы [1-4,9], которое определяется выражением: R T1 / Tn , (1.1) где T1 - время решения задачи на однопроцессорной системе; Tn - время решения той же задачи на n - процессорной системе. Пусть W Wск Wпр , где W - общее число операций в задаче, W пр число операций, которые можно выполнить параллельно, Wск - число скалярных (нераспараллеливаемых) операций. Обозначим через t время выполнения одной операции. Тогда из (1.1) получаем известный закон Амдала [1]: R W t 1 1 n , 1 a W a Wск пр t a n n (1.2) где a Wск / W - удельный вес скалярных операций. Закон Амдала определяет принципиально важные для параллельных вычислений положения: 1. Ускорение зависит от потенциального параллелизма задачи (величина 1 a ) и параметров аппаратуры (число процессоров n ). 2. Предельное ускорение определяется свойствами задачи. Данный вариант закона Амдала не отражает потерь времени на межпроцессорный обмен сообщениями. Эти потери могут не только снизить ускорение вычислений, но и замедлить вычисления по 9 сравнению с однопроцессорным вариантом. Поэтому необходима некоторая модернизация выражения (1.2). Перепишем (1.2) следующим образом [1]: Rc W t 1 1 , 1 a Wc tc 1 a Wпр a c Wск t Wc tc a n W t n n (1.3) где Wc - количество передач данных; t c - время одной передачи данных; c - коэффициент сетевой деградации вычислений. Выражение Rc 1 1 a a c n (1.4) и является сетевым законом Амдала. Этот закон определяет следующие две особенности многопроцессорных вычислений [1]: 1. Коэффициент сетевой деградации вычислений c : c Wc t c c A cT W t (1.5) определяет объем вычислений, приходящихся на одну передачу данных (по затратам времени). При этом c A - определяет алгоритмическую составляющую коэффициента деградации, обусловленную свойствами алгоритма, а cT - техническую составляющую, которая зависит от соотношения технического быстродействия процессора и аппаратуры сети. Таким образом, для повышения скорости вычислений следует 10 воздействовать на обе составляющие коэффициента деградации. Для многих задач и сетей коэффициенты c A и cT могут быть вычислены аналитически и заранее, хотя они определяются множеством факторов: алгоритмом задачи, размером данных, реализацией функций обмена библиотеки MPI, использованием разделяемой памяти и техническими характеристиками коммуникационных сред и протоколов. 2. Даже если задача обладает идеальным параллелизмом, сетевое ускорение определяется величиной Rc 1 1 c n n n 1 n c c0 (1.6) и уменьшается при увеличении числа процессоров. Следовательно, сетевой закон Амдала должен быть основой оптимальной разработки алгоритма и программирования задач, предназначенных для решения на многопроцессорных ЭВМ. В некоторых случаях используется еще один параметр для измерения эффективности вычислений – коэффициент утилизации z [1]: z Rc 1 1 n 1 c n c0 (1.7) 1 .3 . С т а н да р т пе р е да ч и с о о б щ е н и й M PI Система программирования MPI относится к классу MIMD ЭВМ с индивидуальной памятью, т.е. к многопроцессорным системам с обменом сообщениями. MPI имеет следующие особенности [1,4]: 1. MPI – библиотека, а не язык. Она определяет имена, вызовы процедур и результаты их работы. MPI программы пишутся на 11 языках C, C++, FORTRAN, компилируются обычными компиляторами и компонуются с MPI библиотекой. – 2. MPI описание, а не реализация. Все поставщики параллельных компьютерных систем предлагают реализации MPI для своих машин. Правильная MPI программа должна выполняться на всех реализациях без изменения. 3. MPI – соответствует модели многопроцессорной ЭВМ с передачей сообщений. В модели передачи сообщений параллельно, имеют раздельные процессы, выполняющиеся адресные пространства. Связь происходит, когда часть адресного пространства одного процесса скопирована в адресное пространство другого процесса. Эта операция совместная и возможна только тогда, когда первый процесс выполняет операцию передачи сообщения, а второй процесс – операцию его получения. Процессы в MPI принадлежат группам. Если группа содержит n процессов, то процессы нумеруются внутри группы номерами, которые являются целыми числами от 0 до n 1 . Таким образом, отправитель или получатель, определенные в операции посылки или приема, всегда обращается к номеру процесса в группе. Все операции взаимодействия, описанные в MPI, можно разделить на две группы: парные и коллективные. Операции взаимодействия могут быть как синхронные, так и асинхронные. Парные операции взаимодействия осуществляются только между двумя процессами. При этом взаимодействие осуществляется, только если один процесс инициализировал пересылку (вызовом функции MPI_Send), а второй инициализировал прием (вызовом функции MPI_Recv). В MPI используются коллективные операции, которые можно разделить на два вида: 12 Операции перемещения данных между процессами. Самый простой из них широковещание (broadcast). MPI имеет много и более сложных коллективных операций передачи и сбора сообщений. Операции коллективного вычисления (минимум, максимум, сумма и другие, в том числе и определяемые пользователем операции). В обоих случаях библиотеки функций коллективных операций строятся с использованием знания о преимуществах структуры машины, чтобы увеличить параллелизм выполнения этих операций. Часто предпочтительно представлять процессы в проблемно- ориентированной топологии, для этого в MPI содержится ряд функций для описания виртуальных топологий процессов при помощи графовых структур и решеток. 13 2. ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ МЕТОДА СОПРЯЖЕННЫХ ГРАДИЕНТОВ 2.1. Ме т о д с о пр яж е н ных г р а д ие н т о в Рассмотрим СЛАУ Ax y , x, y R N (2.1) с действительной, симметрической, строго положительно определенной матрицей A , т.е. A AT и x T Ax 0 при любых x 0 .Пусть матрица A имеет всего пять диагоналей (рис. 2.1). Матрицы такого рода появляются при дискретизации дифференциальных уравнений в частных производных на непрерывной прямоугольной сетке. Рис. 2.1. Вид матрицы СЛАУ Диагонали матрицы A обозначим a, b, c (считая от центральной). Длина главной диагонали N . Диагонали b, c находятся от главной диагонали на расстоянии 1 и m и имеют длину соответственно N 1и N m . Для решения таких систем могут применяться методы минимизации выпуклых квадратичных функций [7,10]. Действительно, необходимым и достаточным условием минимума квадратичной 14 функции f ( x) 1 T x Ax y T x const , 2 матрица A которой обладает перечисленными выше свойствами, является равенство нулю в точке экстремума её градиента, т.е. f Ax y 0 . Это условие выполняется лишь в решении системы (2.1) [7,10]. К эффективным методам решения подобных задач относятся методы сопряженных градиентов [7,10], которые позволяют находить решение за число шагов, не превосходящее порядка СЛАУ. Процедура поиска решения в этих методах является итерационной. Её рассматривают как последовательный процесс построения точек xi 1 xi i pi i 0,1,..., N 1 (2.2) где i - номер итерации; N - порядок системы; pi - вектор сопряженного направления; i - коэффициент, значение которого на данной итерации выбирается из условия f ( xi i p i ) min f ( xi i pi ) и в случае минимизации квадратичной функции имеет вид i (ri , pi ) /( Api , pi ) (2.3) В этом соотношении ri - вектор невязок системы (2.1) в точке x i , т.е. ri y Axi f i . Алгоритм метода сопряженных градиентов представлен на рис. 2.2. (2.4) 15 Выбрать x 0 r0 y 0 Ax0 p 0 r0 (r0 , r0 ) ( pi , Api ) / xi 1 xi i pi ri 1 ri i Api Проверка условия завершения процесса (ri 1 , ri 1 ) / p i 1 ri 1 i p i Выход x i x i 1 p i p i 1 Рис. 2.2. Алгоритм метода сопряженных градиентов 1 .2 . П а р а л л е л ь н ы й а л г о р ит м м е т о да с о пр я же н н ых г р а д ие нт о в В рассмотренном алгоритме метода сопряженных градиентов присутствуют четыре вида макроопераций: умножение вектора на число, сложение векторов, скалярное произведение векторов и умножение вектора на матрицу. 16 Параллельная реализация этих операций зависит от способа распределения данных между компьютерами. Наиболее простой и, в то же время, наиболее универсальный и эффективный способ распределения данных для данного алгоритма - слоистая схема распределения данных, представленная на рис. 2.3. Proc1 Proc2 = * Proc3 A x y Рис. 2.3. Способ распределения данных между компьютерами Пусть при этом k -ый компьютер получает N k последовательных строк матрицы A и N k последовательных элементов всех векторов, начиная с k 1 N j 1 j . Макрооперации, такие как сложение векторов, умножение вектора на число и скалярное умножение векторов выполняются точно так же, как и на одном компьютере, за исключением того, что, либо до, либо после их выполнения на каждом компьютере необходимо произвести обмен скалярными данными. В случае большого размера векторов пересылками можно пренебречь, а значит ускорение на этих операциях будет близко к числу компьютеров. 17 Рассмотрим параллельную реализацию произведения вектора на матрицу при описанном выше распределении данных. Для этого рассмотрим формулу произведения рассматриваемой матрицы на вектор ( Ap) i ci m pi m bi 1 pi 1 ai pi bi pi 1 ci pi m Из формулы (2.4) следует, что для (2.4) вычисления своей части произведения в каждом компьютере необходимо переслать правому и левому соседу по m элементов с конца и начала своей части вектора p (рис. 2.4) m N1 N1 m m m N2 N3 Рис. 2.4. Пересылки при умножении матрицы на вектор Таким образом, при наличии K процессоров общий объем пересылок составляет 2(2K 2) N x элементов на каждой итерации. Суммируя все выше сказанное, параллельная версия метода сопряженных градиентов отображена рис. 2.5. 18 Выбрать x 0k Выбрать x 0k Выбрать x 0k Обмен x 0k Обмен x 0k Обмен x 0k r0k y 0k Ax 0k r0k y 0k Ax 0k r0k y 0k Ax 0k p 0k r0k p 0k r0k p 0k r0k k (r0k , r0k ) k (r0k , r0k ) k (r0k , r0k ) k k Обмен p ik Обмен p ik Обмен p ik k ( p ik , Apik ) k ( p ik , Apik ) k ( p ik , Apik ) k k k ( pi , M pi ) k k k ( pi , M pi ) i k k k k ( pi , M pi ) k xik1 xik i pik xik1 xik i pik xik1 xik i pik ri k1 ri k i Apik ri k1 ri k i Apik ri k1 ri k i Apik Да Проверка условия завершения процесса k (ri k1 , ri k1 ) k (ri k1 , ri k1 ) i k (ri k1 , ri k1 ) k k Выход p ik1 ri k i p ik p ik1 ri k i p ik p ik1 ri k i p ik x ik x ik1 x ik x ik1 x ik x ik1 p ik p ik1 p ik p ik1 p ik p ik1 Рис. 2. 5. Параллельный алгоритм метода сопряженных градиентов 19 1 .4 . Р е з у л ь т а т ы р а бо т ы па р а л л е л ь н о г о а л г о р ит м а н а кл а с т е р е Описанный выше алгоритм был опробован на вычислительном кластере кафедры информатики при помощи тестовой системы линейных алгебраических уравнений, полученной при дискретизации уравнения Лапласа. Размерность тестовой системы: N 1361424 , m 1506 . Результаты тестов представлены в табл. 2.1. Таблица 2.1. Результаты тестирования параллельной реализации метода сопряженных градиентов Число процессоров Время, с Ускорение 1 2 3 4 5 6 855 432 296 226 187 160 1 1,97 2,89 3,78 4,57 5,34 основании полученных На Ускорение на итерации 1 1,97 2,89 3,78 4,57 5,34 данных можно Число итераций 1752 1752 1752 1752 1752 1752 провести приблизительный анализ зависимости ускорения данного алгоритма от числа компьютеров. Для этого положим, что все вычисления можно выполнять параллельно на каждом компьютере, а все пересылки выполняются последовательно. Если пренебречь всеми скалярными операциями и пересылками, то время выполнения программы на K компьютерах будет даваться формулой: TK ( T1 (2 K 2)TC ) N K , K N1 (2.5) 20 где TK - время работы алгоритма на K компьютерах; T1 - время работы алгоритма на одном компьютере; N1 - число итераций при выполнении алгоритма на одном компьютере; NK - число итераций при выполнении алгоритма на K компьютерах; - время, необходимое для пересылки одного блока данных TC длиной m . Анализируя полученные данные, можно оценить время пересылки одного блока данных длиной m , которое получается TC 0,000999сек . Графики зависимости времени выполнения, ускорения и коэффициента утилизации от числа компьютеров представлены на рис. 2.6-2.8. 900 800 Время, с 700 600 500 400 300 200 100 0 1 4 7 10 13 16 19 22 25 28 31 34 37 Число компьютеров Рис. 2.6. Зависимость времени выполнения от числа компьютеров 40 21 12 Ускорение 10 8 6 4 2 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 37 40 Число компьютеров Рис. 2.7. Зависимость ускорения от числа компьютеров Коэффициент утилизыции 1 0,5 0 1 4 7 10 13 16 19 22 25 28 31 34 Число компьютеров Рис. 2.8. Зависимость коэффициента утилизации от числа компьютеров Из анализа формулы (2.5) следует, что максимальное ускорение обратно пропорционально TC , и для данной тестовой системы достигается при числе компьютеров около 20, при этом ускорение составляет 10,5. Далее, как ускорение, так и время 22 выполнения начинает убывать, это связанно с тем, что при увеличении числа компьютеров объем вычислений на каждом из них уменьшается, а объем обменов между компьютерами растет. Таким образом, систему линейных уравнений данного размера нецелесообразно решать на кластере, число компьютеров в котором больше 20. При увеличении размерности системы линейных уравнений возрастет и максимально допустимый размер кластера. 23 3. ПРЕДОБУСЛОВЛЕННЫЙ МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ 3 .1 . П о нят ие и м е т о д ы п р е до б ус л а вл и ва н и я Анализ скорости сходимости метода сопряженных градиентов показывает, что изменение ошибки на итерациях характеризуется неравенством [9,10] 2i 1 x0T Ax0 xiT Axi 1 (3.1) где x 0 , x i - исходная погрешность и ее величина на i -й итерации решения; xiT Axi - энергетическая A -норма погрешности; - число обусловленности матрицы A . Чем больше приближается к единице, тем выше скорость сходимости метода. Число обусловленности матрицы cond 2 A A 2 A 1 2 max / min , где символ A 2 определяется, как обозначает спектральную норму матрицы; переменные max , min - ее максимальное и минимальное собственные числа. Для улучшения сходимости метода сопряженных градиентов правую и левую часть системы (2.1) умножают на матрицу M [7,11]. MAx My Данный процесс называется (3.2) предобуславливанием. Матрицу M выбирают таким образом, чтобы cond 2 (MA) было как можно ближе к единице. Например, если M A 1 , то число обусловленности 24 результирующей матрицы будет равно единице, и одна итерация такого метода сопряженных градиентов приведет к верному результату. Более тонкий анализ методов сопряженных градиентов показывает, что их скорость сходимости зависит от всех отношений собственных чисел матрицы MA . Для увеличения скорости сходимости методов матрицу M необходимо выбирать таким образом, чтобы матрица MA имела групп собственных значений, причем величина должна быть значительно меньше числа уравнений системы. Тогда сходимость метода будет достигнута за количество итераций порядка [10]. Структура методов сопряженных градиентов такова, что матрицу M для них необходимо определить до начала итерационного цикла решения. Следовательно, формирование матрицы M и реальные и итерационные вычисления могут быть выделены как самостоятельные объекты исследования и, в итоге, как разные модули программного обеспечения. Для обеспечения условий сходимости метода сопряженных градиентов матрица M 1 должна иметь вид, допускающий факторизацию Холецкого [10], т.е. должна быть симметрической и положительно определенной. Алгоритм предобусловленного метода сопряженных градиентов может быть записан таким образом, что он практически не будет отличаться от метода сопряженных градиентов (рис 3.1). 25 Выбрать x 0 r0 y 0 Ax0 p0 Mr0 ( r0 , p0 ) ( pi , Api ) / xi 1 xi i pi ri 1 ri i Api Проверка условия завершения процесса ( ri 1 , Mri 1 ) / pi 1 Mri 1 i pi Выход xi xi 1 pi pi 1 Рис. 3.1. Алгоритм предобусловленного метода сопряженных градиентов Алгоритм предобусловленного метода сопряженных градиентов отличается от алгоритма метода сопряженных градиентов тем, что на каждой итерации необходимо выполнять операцию Mri 1 . Поэтому при построении M приходится руководствоваться следующими критериями: простота и экономичность вычисления M, M должна хорошо аппроксимировать A 1 , простота и экономичность вычисления Mri 1 . Все методы предобуславливания можно разделить на два класса, каждый из которых, в свою очередь, может быть разделен еще на два (рис. 3.2) 26 Прямые Обратные Построение матрицы M 1 . Необходимость решать систему линейных уравнений на каждой итерации. Построение матрицы M . Необходимость вычисления произведения матрицы на вектор. Явные Неявные Явные Неявные Явное задание матрицы M 1 Задание M 1 как произведения других матриц или другим неявным образом Явное задание матрицы M Задание M как произведения других матриц или другим неявным образом Рис. 3.2. Классификация методов предобуславливания В прямых методах в качестве предобуславливателя используется матрица M 1 , при этом на каждой итерации возникает необходимость решения системы линейных уравнений с этой матрицей. Поэтому к методам данного класса предъявляются два, зачастую противоречивых требования. Во-первых, матрица M 1 должна быть хорошей аппроксимацией матрицы A . Во-вторых, система уравнений с матрицей M 1 должна быть гораздо проще, чем исходная система. Прямые явные методы используются весьма редко. Это связанно с тем, что если M 1 хорошо аппроксимирует матрицу A , то решение системы с этой матрицей требует больших вычислительных затрат, а если M 1 плохо аппроксимирует A , то возрастает число итераций метода сопряженных градиентов. Обычно используется два вида таких предобуславливателей: диагональный (3.3) и блочно-диагональный (3.4) метод Якоби [7]. 27 ai , j ( M 1 ) i , j 0 i j (3.3) i j Пусти множество индексов S 1,2,..., N разделено на непересекающиеся подмножества S i , такие что S i S i , тогда a i , j i и j принадлежат одному и тому же ( M 1 )ij подмножеству индексов 0 в ином случае (3.4) В случае (3.4) матрица M 1 является блочно-диагональной. Диагональный предобуславливатель практически не приводит к уменьшению числа итераций, поэтому он не используется. Блочный предобуславливатель заменяет необходимость решения большой системы линейных уравнений на каждой итерации метода сопряженных градиентов необходимостью решения некоторого числа меньших независимых систем. Однако его трудно использовать непосредственно, потому что, хоть матрицы составляющие диагональ M 1 и меньше по размеру чем матрица A , однако они повторяют ее структуру и требуют больших вычислительных затрат при решении. Плюсом этого метода является возможность его легкого распараллеливания. Косвенные неявные методы строятся на возможности аппроксимации симметрической положительно определенной матрицы при помощи произведения нижней и верхней диагональной матрицы [7,10]. A LLT (3.5) 28 Данные методы базируются на неполной факторизации Холецкого и различаются способом построения предобуславливатели являются треугольных матриц. Такие одними из лучших, ввиду того, что позволяют значительно уменьшить число итераций метода сопряженных градиентов и при этом требуют решения двух треугольных сильно разряженных систем на каждой итерации, что является весьма быстрой операцией. К недостаткам данных методов можно отнести плохую степень параллелизма ввиду рекурсивного характера методов решения треугольных систем. Обратные предобуславливатели аппроксимируют матрицу A 1 . В этом случае на каждой итерации метода сопряженных градиентов необходимо производить умножение матрицы M на вектор. Явные вычислении обратные матрицы методы M. строятся Обычно это на непосредственном делается посредством минимизации соотношения [12-14] AM I 2 F N ( AM I )ek k 1 2 2 (3.6) Оптимизация ведется по матрице M , структура которой задается до начала оптимизации или определяется динамически в процессе в зависимости от структуры матрицы A . Данные методы обладают значительным параллелизмом, так как, во-первых, из (3.6) видно, что возможно независимо определить каждый столбец матрицы M , а вовторых, они требуют вычисления произведения матрицы на вектор на каждой итерации метода сопряженных градиентов, что обладает большой степенью параллелизма. К недостаткам такого метода относятся значительные затраты памяти, требуемые для хранения M и сложность вычисления матрицы M . 29 Неявные обратные методы строятся на возможности факторизации матрицы M [15-17] A1 M ZDZ T , (3.7) где Z - верхняя треугольная матрица; D - диагональная матрица. И на представлении M в виде M ( 0 I 1 H ... m 1 H m 1 ) P 1 (3.8) при этом A P Q такое расщепление матрицы A , что P невырожденная и наибольший из модулей собственных значений P 1Q не превосходит единицы, а H P 1Q [7,9]. При таком подходе на каждой итерации метода сопряженных градиентов необходимо использовать вспомогательный итерационный процесс r i 1 Hr i P 1r (3.9) Этот метод называется полиномиальным предобуславливанием. Ввиду дополнительного итерационного процесса данные методы приводят к дополнительным накладным расходам, как в вычислениях, так и в пересылках. 30 3 .2 . Т р е б о ва н ие к па р а л л е л ь но м у п р е до б у с л а вл ива т е л ю При параллельной реализации метода сопряженных градиентов на предобуславливатель накладываются дополнительные ограничения, которые сужают спектр пригодных для использования методов. К таким требования относятся: Матрица M должна быть хорошей аппроксимацией матрицы A1 или матрица M 1 - аппроксимацией A. Это требование обеспечивает значительное уменьшение числа итераций метода сопряженных градиентов. Решение системы M 1 x y или вычисление произведения M 1 x не должно требовать больших вычислительных затрат. Для этого предобуславливатель по возможности должен быть как можно более разряженным, что вступает в противоречие с первым пунктом. Простота вычисления предобуславливателя, т.е. его вычисление, должно быть на порядок проще и быстрее, чем решение исходной системы. В противном случае его применение теряет смысл. Желательно, чтобы каждый компьютер мог независимо от других рассчитать необходимую ему часть предобуславливателя. Решение системы M 1 x y должно обладать хорошими параллельными свойствами и требовать небольшого числа обменов. Это требование накладывает дополнительные ограничения на структуру матрицы M 1 . Предобуславливатель должен обеспечивать масштабируемость метода сопряженных градиентов, т.е. метод, по возможности, не должен зависеть от числа компьютеров в кластере. 31 Первые три требования совпадают с требованиями в последовательном случае [10], а три последних необходимы для создания эффективных параллельных алгоритмов. На основе данных требований возможно определить, какие методы предобуславливания могут быть использованы при создании параллельного метода сопряженных градиентов. Из прямых, наиболее подходящим является блочный метод Якоби. Он вообще не требует дополнительных затрат на вычисление предобуславливателя и дополнительной памяти для его хранения. Однако с ростом числа компьютеров качество аппроксимации падает, а следовательно, число итераций будет зависеть от числа компьютеров. Все обратные предобуславливатели обладают потенциально большим параллелизмом, однако их вычисление связанно с большими накладными расходами, а хранение требует большого объема памяти. 32 3. ПАРАЛЛЕЛЬНЫЕ ПРЕДОБУСЛАВЛИВАТЕЛИ 4 .1 . Бл о ч н ы й м е т о д Яко б и с не по л но й ф а кт о р из а ци е й Х о л е цко г о Использование для формирования матрицы M неполной LLT - факторизации [10] исходной симметрической матрицы A приводит к M ( LLT ) 1 , обладающей требуемыми свойствами, к тому же легко обращаемой на этапе итерационного решения методом сопряженных градиентов. Сущность неполной факторизации сводиться к LLT следующему [10]. Произвольную действительную неособенную матрицу можно представить в факторизованном виде как произведение нижней L и верхней U треугольных матриц. Это представление единственно с точностью до выбора диагональных элементов матрицы L . В случае симметрических положительно определенных матриц такое разложение всегда устойчиво, причем существует U LT . Поэтому, любая матрица из класса рассматриваемых представима в виде A LLT . Расчетные соотношения для определения элементов треугольной матрицы L легко получить, приравнивая элементы в A соответствующим элементам в LLT . Они имеют вид: j 1 l jj ( a jj l 2jk )1 / 2 k 1 (4.1) j 1 lij ( aij lik l jk ) / l jj i j 1,..., N k 1 Существует другая форма разложения симметрической положительно определенной матрицы, в которой удается избежать операции ~ извлечения квадратного корня. Положим L LD1/ 2 , где D - диагональная матрица, все элементы которой положительны. Тогда рассмотренная 33 факторизация L~L~T преобразуется к новому симметрическому виду LDLT . Элементы преобразованной матрицы также можно определять по столбцам j 1 lij ai , j lik d kk l jk i j,..., N (4.2) k 1 d jj 1 / l jj Каждая из рассмотренных факторизаций обладает свойствами симметричности и положительной определенности и поэтому может использоваться для построения M в виде M ( LLT ) 1 , либо M ( LDLT ) 1 . Однако хранение большой полосовой матрицы в факторизованном виде требует значительных объемов памяти, так как L - матрица содержит ненулевые элементы в пределах всей полосы ширины m 1, даже если исходная матрица была сильно разреженной внутри нее. Наибольший интерес представляют такие способы факторизации, которые не приводят к значительному увеличению объемов памяти. Указанным свойством обладают методы неполных LLT и LDLT - факторизаций. При построении матриц сомножителей этими методами ненулевыми считаются лишь те члены, которые расположены на выбранных местах. Пусть P (i, j ), aij 0 - множество пар индексов, характеризующих местоположение ненулевых элементов в A . В методах неполной факторизации симметрических матриц априорно выбирается местоположение ненулевых элементов в L и LT - матрицах, т.е. P (i, j ), lij 0, причем P P . Матрица L вычисляется согласно соотношениям (4.1) и (4.2) , при этом, по определению lij 0 , если только (i, j ) P . 34 При выборе P приходиться руководствоваться двумя, вообще говоря, противоречивыми критериями: с одной стороны, близостью разряженности L LT и A , обеспечивающей, во-первых, экономичность расчета элементов L на этапе формирования M 1 , во-вторых, что более важно, - экономичность решения на каждой итерации сопряженного градиента СЛАУ LLT x y ; с другой – спектральной близостью матриц A и LLT . Спектральная близость, как отмечалось ранее, является основным фактором уменьшения количества итераций метода сопряженных градиентов. Она достигается за счет введения дополнительных диагоналей в матрицу L . Далее для краткости изложения будем рассматривать только LDLT факторизацию. Будем обозначать различные неполные факторизации матрицы A как НФ ( p, q) , где p - количество соседних с центральной диагональю полос в L ; q - количество других диагоналей. Наиболее простой формой разложения является неполная LDLT - факторизация нулевого порядка, в основу которой положена идентичность структур матриц L LT и A . Следовательно, такая матрица треугольной, LT - верхней треугольной с L является нижней тремя ненулевыми диагоналями, совпадающими по расположению с соответствующими диагоналями A (Рис. 4.1). LT D L A Рис. 4.1. Вид матриц при неполной факторизации 35 ~, b~, c~ L как a Обозначим диагонали матрицы диагональ матрицы D .Тогда ~ начиная с главной, а d - расчетные соотношения для элементов этих диагоналей будут иметь вид: a~i a i bi 1 / a~i 1 ci m / a~i m ; ~ bi bi ; c~i ci ~ d i 1 / a~i ; В рассмотренном факторизации диагоналей классе осуществляется в L- аппроксимационные матрицу. свойства неполных путем (4.3) разложений введения Оказывается, НФ ( p, q) дополнительных можно лишь уточнение улучшить незначительным изменением расчетных соотношений для элементов главной диагонали [10]. Такую неполную факторизацию называют модифицированной. Модифицированная неполная LDLT - факторизация осуществляется согласно следующему алгоритму. 1. Обнулить массив l ij , т.е. l ij 0, j 1,..., N ; i 1,..., N 2. Положить j 1. j 1 3. Вычислить l jj l jj a jj (l 2jk / l kk ) k 1 4. Положить i j 1. j 1 5. Если (i, j ) P * , то вычислить lij lij aij (lik l jk / l kk ) . В противном k 1 случае положить l ij 0 и скорректировать диагональные элементы j 1 l ii , l jj : l ii l ii ij ; l jj l jj ij , где ij (l ik l jk / l kk ) k 1 6. Если i N , то положить i i 1 и перейти к п. 5. 7. Вычислить d jj 1 / l jj 36 8. Если j N , то положить j j 1 и перейти к п. 3. Иначе остановиться. В основу алгоритма модифицированной неполной LDLT - факторизации положено рекуррентное соотношение (4.2) расчета элементов матрицы L по столбцам. При построении алгоритма используют такой принцип модификации: если на j -м шаге факторизации в позиции (i, j ) P * возникает ненулевой элемент, то им не просто пренебрегают, как в обычной неполной факторизации, а корректируют значения диагональных членов l ii и lii . Величина коррекции строго соответствует появившемуся на этом шаге ненулевому вкладу. Расчетные соотношения для модифицированной неполной LDLT факторизации нулевого порядка будут иметь вид: c~i m ~ ~ ~ a i a i ~ (ci m bi m ) ai m ~ bi 1 ~ ~ (ci 1 bi 1 ) ~ a i 1 (4.4) Даже такое простое и экономичное разложение значительно уменьшает число итераций метода сопряженных градиентов. Однако параллельная реализация данного метода вызывает трудности. Это связанно с тем, что решение треугольной системы носит рекуррентный характер и поэтому обладает малой степенью потенциального параллелизма. А для треугольной матрицы вида (рис. 2.1), ввиду малого числа вычислений в каждой строке, решение может носить только последовательный характер. Рассмотрим блочный предобуславливатель Якоби. Для него наоборот характерна большая степень параллелизма. Это связанно с тем, что необходимость решать глобальную систему M 1 p r подменяется на необходимость решать независимые системы меньшего размера M i1 p r на каждом компьютере. Недостатком данного метода являются большие 37 вычислительные затраты на решение каждой системы M i1 p r . Это связанно с тем, что структура матриц M i1 подобна структуре матрицы A . Это приводит к большим затратам времени и памяти для осуществления каждой итерации метода сопряженных градиентов. Предобуславливатель на основе LDLT - факторизации значительно уменьшает число итераций метода сопряженных градиентов, при этом он прост в реализации и требует незначительных дополнительных вычислительных расходов на итерации сопряженных градиентов, а блочный метод Якоби обладает значительными параллельными свойствами. Для объединения эти качеств в одном предобуславливателе каждая матрица M i1 блочного метода Якоби аппроксимируется при помощи модифицированной неполной LDLT - факторизации. При этом на каждой итерации каждый компьютер решает независимую систему Li Di LTi p r . Параллельный алгоритм данного метода представлен на рис. 4.2. 38 Выбрать x 0k Выбрать x 0k Выбрать x 0k Обмен x 0k Обмен x 0k Обмен x 0k x 0k y 0k Ax0k x 0k y 0k Ax0k x 0k y 0k Ax0k M k1 p 0k r0k M k1 p 0k r0k M k1 p 0k r0k k (r0k , p 0k ) k (r0k , p 0k ) k (r0k , p 0k ) k k Обмен pik Обмен pik Обмен pik k ( pik , Apik ) k ( pik , Apik ) k ( pik , Apik ) k k k ( pi , M pi ) k k k ( pi , M pi ) i k k k k ( pi , M pi ) k xik1 xik i pik xik1 xik i pik xik1 xik i pik rik1 rik i Apik rik1 rik i Apik rik1 rik i Apik Да Проверка условия завершения процесса k ( rik1 , M k rik1 ) k k k ( pi , M pi ) k ( rik1 , M k rik1 ) k k k ( rik1 , M k rik1 ) k k k ( pi , M pi ) k k i k ( pi , M pi ) pik1 M k ri k1 i pik pik1 M k ri k1 i pik pik1 M k ri k1 i pik xik xik1 xik xik1 xik xik1 pik pik1 pik pik1 pik pik1 Выход Рис. 4.2. Параллельный алгоритм метода сопряженных градиентов с блочнодиагональным предобуславливателем 39 Из алгоритма на рис. 4.2 видно, что данный метод не добавляет пересылок, а только увеличивает вычислительные затраты на каждом компьютере, что должно увеличить параллелизм метода. Эксперименты, проведенные для тестовой системы, показывают, что для данного метода число итераций сильно зависит от числа компьютеров (табл. 4.1-4.6). Это объясняется тем, что качество аппроксимации матрицы A зависит от числа компьютеров. Причем, чем меньше число диагоналей, тем больше зависимость числа итераций от числа компьютеров (рис. 4.3-4.4). Таблица 4.1. Аппроксимация при помощи МНФ (1,1) Число процессоров Время Ускорение 1 2 3 4 5 6 69 218 142 115 92 76 1,00 0,32 0,49 0,60 0,75 0,91 Таблица 4.2. Ускорение на итерации 1,00 1,90 2,83 3,83 4,68 5,41 Число итераций 93 557 541 594 580 554 Аппроксимация при помощи МНФ (1,2) Число процессоров Время Ускорение 1 2 3 4 5 6 67 177 119 98 74 63 1,00 0,38 0,56 0,68 0,91 1,06 Ускорение на итерации 1,00 2,13 2,98 3,96 4,90 5,69 Число итераций 80 450 423 463 433 428 40 Таблица 4.3. Аппроксимация при помощи МНФ (1,3) Число процессоров Время Ускорение 1 2 3 4 5 6 62 168 102 90 69 58 1,00 0,37 0,61 0,69 0,90 1,07 Таблица 4.4. Число итераций 70 380 355 390 365 360 Аппроксимация при помощи МНФ (1,4) Число процессоров Время Ускорение 1 2 3 4 5 6 120 66 46 39 34 30 1,00 1,82 2,61 3,08 3,53 4,00 Таблица 4.5. Ускорение на итерации 1,00 2,00 3,08 3,84 4,67 5,50 Ускорение на итерации 1,00 2,05 2,84 3,88 4,68 5,46 Число итераций 126 142 137 159 167 172 Аппроксимация при помощи МНФ (2,3) Число процессоров Время Ускорение 1 2 3 4 5 6 128 67 49 39 34 30 1,00 1,91 2,61 3,28 3,76 4,27 Ускорение на итерации 1,00 2,07 2,83 3,91 4,71 5,53 Число итераций 135 146 146 161 169 175 41 Таблица 4.6. Аппроксимация при помощи МНФ (2,4) Число процессоров Время Ускорение 1 2 3 4 5 6 138 71 53 42 35 31 1,00 1,94 2,60 3,29 3,94 4,45 Ускорение на итерации 1,00 2,10 2,80 3,87 4,83 5,61 Число итераций 134 145 144 158 164 169 Изменение числа итераций и относительное изменение числа итераций в зависимости от числа компьютеров в кластере можно посмотреть на рис. 4.3 и рис. 4.4. соответственно. 600 Число итераций 500 400 300 200 100 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров МНФ(1,1) МНФ(1,2) МНФ(1,3) МНФ(1,4) МНФ(2,3) МНФ(2,4) Рис. 4.3. Зависимость числа итераций от числа компьютеров Относительное число итераций 42 6 5 4 3 2 1 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров МНФ(1,1) МНФ(1,2) МНФ(1,3) МНФ(1,4) МНФ(2,3) МНФ(2,4) Рис. 4.4. Относительное изменение числа итераций в зависимости от числа компьютеров Из графиков на рис. 4.3 - 4.4 видно, что наибольшее изменение числа итераций свойственно факторизациям с меньшим числом диагоналей. Поэтому при реализации данного метода на кластере необходимо использовать факторизации с наибольшим числом диагоналей. С ростом числа диагоналей растет качество аппроксимации матрицы A , и уменьшается зависимость числа итераций от количества компьютеров. Зависимость времени вычислений, коэффициента утилизации представлены на рис. 4.5-4.7. ускорения и 43 250 Время, с 200 150 100 50 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров МНФ(1,1) МНФ(1,2) МНФ(1,3) МНФ(1,4) МНФ(2,3) МНФ(2,4) Рис. 4.5. Зависимость времени выполнения от числа компьютеров 7 6 Ускорение 5 4 3 2 1 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров МНФ(1,1) МНФ(1,2) МНФ(1,3) МНФ(1,4) МНФ(2,3) Рис. 4.6. Зависимость ускорения от числа компьютеров МНФ(2,4) Коэффициент утилизации 44 1 0,5 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров МНФ(1,1) МНФ(1,2) МНФ(1,3) МНФ(1,4) МНФ(2,3) МНФ(2,4) Рис. 4.7. Зависимость коэффициента утилизации от числа компьютеров 4 .2 . П р е до б у с л а вл и ва н ие пр и по м о щи у с е ч е н ных р я до в Если матрица системы A невырожденная, a A P Q такое ее расщепление, что матрица P невырожденная и наибольший из модулей собственных значений матрицы P 1Q не превосходит единицы, то A 1 ( H k ) P 1 (4.5) k 0 где H P 1Q . Основываясь на (4.5), можно рассматривать матрицы M P( I H ... H m1 ) 1 M 1 ( I H ... H m1 ) P 1 (4.6) 45 как аппроксимации матриц A и A 1 соответственно. Таким образом, решение вспомогательной системы можно Mp r найти с использованием p M 1r ( I H ... H m1 ) P 1r (4.7) Для этого не нужно явно формировать матрицы H и указанный усеченный ряд. Вместо этого заметим, что вектор p является результатом m шагов итерационного метода Pr i 1 Qr i r, i 0,1,..., m 1, r 0 0 и положим p rm . Формула (4.8) (4.8) называется вспомогательным итерационным процессом. В качестве вспомогательного итерационного процесса используется методом Якоби или SSOR [9] (матрица P равна диагональной части матрицы A ) с нулевым начальным приближением. С ростом числа вспомогательных итераций увеличивается степень аппроксимации, а следовательно, уменьшается число итераций метода сопряженных градиентов. Рассмотрим симметричных параллельную реализацию пяти-диагональных систем. метода Для Якоби для рассматриваемой матрицы итерационный процесс будет иметь вид: rik 1 rik (ci m pikm bi 1 pik1 bi pik1 ci pikm ) ai (4.9) 46 Из формулы видно, что для параллельной реализации при слоистой схеме распределения данных необходимо производить пересылки по той же схеме, что и методе сопряженных градиентов (рис. 2.2). Метод SSOR непригоден для использования на данной кластерной системе виду того, что он обладает рекурсивным характером, а следовательно, малой степенью параллелизма и большим числом пересылок. Результата экспериментов для данного метода представлены в табл. 4.7-4.10. Таблица 4.7. 2-шаговый метод Якоби Число процессоров Время Ускорение 1 2 3 4 5 6 606 297 215 163 139 124 1 2,04 2,82 3,72 4,36 4,89 Таблица 4.8. Ускорение на итерации 1 2,04 2,82 3,72 4,36 4,89 Число итераций 825 825 825 825 825 825 4-шаговый метод Якоби Число процессоров Время Ускорение 1 2 3 4 5 6 633 324 230 179 153 139 1 1,95 2,75 3,54 4,14 4,55 Ускорение на итерации 1 1,95 2,82 3,54 4,14 4,55 Число итераций 590 590 590 590 590 590 47 Таблица 4.9. 8-шаговый метод Якоби Число процессоров Время Ускорение 1 2 3 4 5 6 761 389 273 215 182 164 1 1,96 2,79 3,54 4,18 4,64 Таблица 4.10. Число итераций 421 421 421 421 421 421 16-шаговый метод Якоби Число процессоров Время Ускорение 1 2 3 4 5 6 958 504 352 281 239 210 1 1,90 2,72 3,41 4,01 4,56 На Ускорение на итерации 1 1,96 2,79 3,54 4,18 4,64 основании полученных Ускорение на итерации 1 1,90 2,72 3,41 4,018 4,56 данных можно Число итераций 301 301 301 301 301 301 провести приблизительный анализ зависимости ускорения данного алгоритма от числа компьютеров. Для этого воспользуемся формулой: TK ( T1 ( p 1)(2 K 2)TC ) N K K N1 (4.10) где TK - время работы алгоритма на K компьютерах; T1 - время работы алгоритма на одном компьютере; N1 - число итераций при выполнении алгоритма на одном компьютере; 48 p - степень полинома; K - число компьютеров; TC - время, необходимое для пересылки одного блока данных длиной m. Графики, в соответствии с формулой (4.10), зависимости времени выполнения от числа компьютеров представлен на рис. 4.7, ускорение на рис. 4.8, а коэффициент утилизации на рис. 4.9. 1000 Время, с 800 600 400 200 40 37 34 31 28 25 22 19 16 13 10 7 4 1 0 Число компьютеров Якоби 2 Якоби 4 Якоби 8 Якоби 16 Рис. 4.7. Зависимость времени выполнения от числа компьютеров 6 4 3 2 1 Число компьютеров Якоби 2 Якоби 4 Якоби 8 Якоби 16 Рис. 4.8. Зависимость ускорения от числа компьютеров 40 37 34 31 28 25 22 19 16 13 10 7 4 0 1 Ускорение 5 Коэффициент утилизации 49 1 0,5 40 37 34 31 28 25 22 19 16 13 10 7 4 1 0 Число компьютеров Якоби 2 Якоби 4 Якоби 8 Якоби 16 Рис. 4.9. Зависимость коэффициента утилизации от числа компьютеров Из приведенных графиков следует, что максимальным ускорением и минимальным временем выполнения обладает метод со второй степенью полинома. Это вызвано тем, что с ростом степени полинома растет число обменов и количество вычислений, причем этот рост, ввиду низкой скорости передачи, оказывает большее влияние на время выполнения, чем уменьшение числа итераций. 4 .3 . П р е до б у с л а вл и в а т е л и на о с но в е о б р а т но й м а т р иц ы Методы данного вида основаны на прямом вычислении матрицы M . Преимущество этих методов в том, что на каждой итерации метода сопряженных умножения градиентов матрицы на необходимо вектор вычислять обладает Mr . Операция большой степенью параллелизма, особенно для разряженных диагональных матриц. На сегодняшний день наиболее распространены и популярны два таких метода [12-17]. 50 Первый метод основан на неполном разложении матрицы A 1 в виде произведения верхней треугольной, диагональной и нижней треугольной матриц. Если A симметрическая положительно определенная матрица, то факторизация матрицы A 1 может быть получена из множества сопряженных направлений z1 , z 2 ,..., z N матрицы A .Если Z [ z1 , z 2 ,..., z N ] матрица чей i -тый столбец z i то p1 0 ... 0 0 p ... 0 2 Z T AZ , .................... 0 0 ... pN (4.11) где p i z iT Az i . Из (4.11) следует A 1 ZD 1 Z T (4.12) Набор сопряженных направлений z i может быть получен посредством процесса A - ортогонализации, примененного к любому набору линейно независимых векторов 1 , 2 ,..., N . Выбор i ei является наиболее удобным для реализации. Результирующая матрица Z является верхней треугольной матрицей. Это следует из того, что Z LT , где A LDLT факторизация Холецкого. Алгоритм факторизации обратной матрицы имеет вид: Алгоритм факторизации обратной матрицы 1. z i0 ei , 1 i N 2. Цикл по i 1,2,..., N 51 2.1. Цикл по j i, i 1,..., N 2.2. p ij1 aiT z ij1 2.2.1 Если i N , то перейти к п.3. 2.3. Цикл по j i 1,..., N 1.3.1. z z 3. z j z ij1 i j i j p ij1 p i 1 i z ii 1 p j p ij1 j 1,..., N Разряженность сохраняется так же, как и в методе неполной факторизации Холецкого, обнулением элементов на выбранных позициях после п. 2.3.1. Различные факторизации будем обозначать НФО( p, q) , где p- количество соседних с центральной диагональю полос в L ; q количество других диагоналей матрицы Z . Второй метод основан на минимизации AM I 2 F . Этот метод обладает большим внутренним параллелизмом, так как столбцы m k матрицы M могут быть рассчитаны независимо друг от друга. Действительно, так как AM I 2 F N ( AM I )ek k 1 2 2 (4.13) то решение задача оптимизации распадается на N независимых задач min Amk ek mk 2 k 1,..., N , (4.14) где ek (0,...,0,1,0,...,0) T . Таким образом (4.14) может быть решена параллельно, что приведет к явному получению M .Основная проблема заключается в определении 52 структуры матрицы M . Если структура M выбрана плохо, то решение (4.14) не приведет к получению эффективного предобуславливателя. При условии, что структура матрицы Z T Z из первого метода идентична структуре матрицы M из второго, то данные два метода будут отличаться только числом итераций, а объем обменов и вычислений будет одинаков. Следовательно, они будут давать одинаковое ускорение. Для того чтобы матрица M из второго метода давала значительное уменьшение числа итераций метода сопряженных градиентов, необходимо динамически определять ее структуру. При этом структура матрицы получается весьма сложной, поэтому данная работа ограничена рассмотрением предобуславливателя первого типа. Результаты для различных вариантов разряженности матрицы Z T Z представлены в табл. 4.11-4.13. Таблица 4.11. Аппроксимация при помощи НФО (1,1) Число процессоров Время, с Ускорение 1 2 3 4 5 6 952 480 329 252 205 178 1 1,98 2,89 3,78 4,65 5,35 Ускорение на итерации 1 1,98 2,89 3,78 4,65 5,35 Число итераций 1119 1119 1119 1119 1119 1119 53 Таблица 4.12. Аппроксимация при помощи НФО(1,2) Число процессоров Время, с Ускорение 1 2 3 4 5 6 944 486 333 245 205 176 1 1,94 2,84 3,85 4,61 5,36 Таблица 4.13. Ускорение на итерации 1 1,94 2,84 3,85 4,61 5,36 Число итераций 1056 1056 1056 1056 1056 1056 Аппроксимация при помощи НФО(1,3) Число процессоров Время, с Ускорение Число итераций 1 1,91 Ускорение на итерации 1 1,94 1 2 864 452 3 4 5 6 289 221 179 154 2,98 3,90 4,81 5,62 2,98 3,90 4,81 5,62 893 893 893 893 893 893 Зависимость времени выполнения от числа компьютеров может быть приближенно рассчитана с использованием следующей формулы TK ( Зависимости времени T1 2(2 K 2)TC ) N K KN1 выполнения, ускорения (4.15) и коэффициента утилизации, полученные при помощи (4.15), представлены на рис 4.104.12 соответственно. 54 1000 Время, с 800 600 400 200 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров НФО(1,1) НФО(1,2) НФО(1,3) Рис. 4.10. Зависимость времени выполнения от числа компьютеров 12 Ускорение 10 8 6 4 2 0 1 4 7 10 13 16 19 22 25 28 31 34 Число компьютеров НФО(1,1) НФО(1,2) НФО(1,3) Рис. 4.11. Зависимость ускорения от числа компьютеров 37 40 55 Коэффициент утилизации 1 0,5 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров НФО(1,1) НФО(1,2) НФО(1,3) Рис. 4.12. Зависимость коэффициента утилизации от числа компьютеров Из приведенных графиков следует, что с ростом числа диагоналей в разложении обратной матрицы уменьшается число итераций, а так же растет ускорение. Это связанно с тем, что увеличивается количество вычислений на итерации, а количество пересылок остается неизменным. Поэтому предпочтение следует отдавать факторизациям с большим числом диагоналей. 4 .4 . С р а в н ит е л ь н ый а на л из р а с с м о т р е нн ых м е т о до в Рассмотренные методы обладают различными характеристиками с точки зрения числа итераций метода сопряженных градиентов, времени выполнения, отношения вычислений и обменов, степени параллелизма, простотой вычисления предобуславливателя, требуемого объема памяти и т.д. Поэтому каждый из рассмотренных методов имеет свои преимущества и недостатки при реализации на том или ином числе компьютеров. Поскольку основной причиной применения параллельной 56 обработки является уменьшения времени вычислений, то рассмотрим зависимость времени вычислений от числа компьютеров для различных методов (рис. 4.13) 900 800 700 Время, с 600 500 400 300 200 100 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров СГ МНФ(2,4) Якоби 2 НФО(1,3) Рис 4.13. Время выполнения Из приведенных графиков следует, что с точки зрения времени выполнения наилучшим является метод МНФ (2,4) . Метод НФО(1,3) практически не отличается от самого метода сопряженных градиентов, однако, исследования показывают, что с ростом дополнительных диагоналей в матрице Z , число итераций метода будет уменьшаться. Метод Якоби увеличивает обмены в три раза, и как следствие, время быстро увеличивается с ростом числа компьютеров. Графики зависимости ускорения для этих методов представлены на рис 4.14. 57 12 Ускорение 10 8 6 4 2 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Число компьютеров СГ МНФ(2,4) Якоби 2 НФО(1,3) Рис 4.14. Зависимость ускорения от числа компьютеров Из графиков следует, что при большом размере кластера предпочтение следует отдать методам, использующим в качестве предобуславливателя аппроксимацию обратной матрицы. При малом размере кластера следует использовать метод, основанный на неполной факторизации матрицы A , так как они обладают приемлемой степенью параллелизма и значительно градиентов. уменьшают число итераций метода сопряженных 58 ЗАКЛЮЧЕНИЕ Данное исследование показало, что для кластерной системы реально разработать эффективные параллельные алгоритмы для решения систем линейных алгебраических уравнений. При этом, предпочтение следует отдавать алгоритмам с наименьшим числом обменов. Это объясняется тем, что данные операции, в силу использования дешевого коммуникационного оборудования, выполняются крайне медленно и только последовательно. Для метода сопряженных градиентов удалось создать алгоритм, максимальное ускорение которого достигает 10 при размере кластера порядка 20 компьютеров. Этот метод основан на предобуславливании при помощи факторизации обратной матрицы. Он обладает незначительным числом межпроцессорных обменов и, при правильном выборе структуры матрицы, значительно уменьшает число итераций метода сопряженных градиентов. Более того, с ростом заполнености матриц, используемых для факторизации, наблюдается не только уменьшение числа итераций, но и рост ускорения. Это связанно с увеличением числа вычислений и постоянством количества обменов. Для методов, основанных на использовании блочно-диагональной аппроксимации матрицы системы линейных уравнений, характерна зависимость числа итераций от числа компьютеров в кластере, что приводит к резкому снижению ускорения на больших кластерах. Однако, данные методы могут быть эффективно использованы на небольших кластерах (порядка десяти компьютеров). Неоспоримым преимуществом этих методов является простота вычисления предобуславливателя и небольшое количество требуемой памяти. Методы, использующие полиномиальные предобуславливатели, обладают наихудшими характеристиками как с точки зрения времени 59 вычислений, так вычислительными и ускорения. затратами на Это связано осуществление с большими вспомогательного итерационного процесса и с большим числом межпроцессорных обменов. В связи с этим применять данные методы на кластерных системах нецелесообразно. 60 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Программирование для многопроцессорных систем в стандарте MPI: Пособие / Г. И. Шпаковский, Н. В. Серикова. – Мн.: БГУ, 2002. – 323с. 2. Arbenz P. Parallel numerical computing. (http://www.wr.inf.ethz.ch/education/pr/). 3. Foster I. Designing and building parallel programs. (http://www-unix.mcs.anl.gov/dbpp/). 4. Многопроцессорные системы и параллельное программирование: Методическое пособие / В.Н. Дацюк, А.А. Букатов, А.И. Жегуло. 5. MPI: The complete reference / M. Snir, S.W. Otto, S. Huss-Lederman, D.W. Walker (http://www.netlib.org/utk/papers/mpi-book/mpi-book.html). 6. Group Management Schemes for Implementing MPI Collective Communication over IP-Multicast / X. Yuan, S. Daniels, A. Faraj, A. Karwande // The 6th International Conference on Computer Science and Informatics, Durham, NC, March 8-14, 2002. 7. Templates for solution the solution of linear systems: Building blocks for iterative methods / R. Barrett, T. Chan, M. Berry, J. Demmel (http://www.netlib.org/linalg/html_templates/Templates.html). 8. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Олифер, Н. А. Олифер. – СПб: Питер, 2001. – 672с. 9. Введение в параллельные и векторные методы решения систем: / Пер. с англ. – М.: Мир, 1991. – 367с. 10. Мулярчик С. Г. Численное моделирование микроэлектронных структур. – Мн.: Университетское, 1989. – 368с. 11. Shewchuk J. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain (http://www-2.cs.cmu.edu/~jrs/jrspapers.html). 61 12. Grote M.J., Huckle T. Parallel Preconditioning with Sparse Approximate Inverses // SIAM J. of Scient. Comput. – 1997. - Vol. 18, № 3. 13. Barnard S.T., Clay R. L. A portable MPI implementation of the SPAI preconditioner in ISIS++ // SIAM Conf. on Parallel Process. 14. Benzi M., Giraud L. Sparse approximate inverse preconditioning for dense linear systems arising in computational electromagnetics (http://www.mathcs.emory.edu/~benzi/Web_papers/fulltext.pdf). 15. Saad C., Saad Y. Approximate inverse preconditioners for general sparse matrixes // Colorado Conference on Iterative Methods - 1994. 16. Benzi M., Meyer C.D., Tuma M. A sparse approximate inverse preconditioning for the conjugate gradient method // SIAM J. Sci. Comput. – 1996. Vol. 17. № 5. - pp. 1135–1149. 17. Benzi M., Cullum J. K., Tuma M. Robust approximate inverse preconditioning for the conjugate gradient method Comput. – 2000. – Vol. 22, № 4. - pp. 1318–1332. // SIAM J. Sci.