Параллельные методы решения систем линейных уравнений
Обновлено
Поделиться
Параллельные методы решения систем линейных уравнений
Кафедра : Э лектронных вычислительных машин
Специальность : Компьютерные системы и сети
Тема выпускной работы :
Параллельные метод ы решения систем линейных алгебраических уравнений на вычислительном кластере
Руководитель : Ладыженский Юрий Валентинович, доцент, к.т.н.
» Параллельные метод ы решения систем линейных алгебраических уравнений на вычислительном кластере «
На сегодняшний день производительность вычислительных систем во многом увеличивается не столько за счет увеличения частоты работы устройств, сколько за счет привлечения параллельной обработки 3. Данный процесс затрагивает как создание аппаратных средств (процессоры с несколькими АЛУ, коммуникационное оборудование для многопроцессорных систем и т.д.), так и разработку эффективных алгоритмов для различных параллельных платформ. Современные параллельные системы весьма дороги и используются для решения задач, требующих больших вычислительных ресурсов: предсказания погоды и климата, построения полупроводниковых приборов, исследования генома человека и т.д.
Как бы то ни было, существует возможность создания достаточно дешевой и относительно эффективной параллельной системы на базе обычных компьютеров, соединенных при помощи коммуникационного оборудования и, таким образом, образующих один вычислительный ресурс. Такие системы называются кластерами и относятся к классу параллельных систем с распределенной памятью [1,3]. Узким местом кластеров является то, что для взаимодействия отдельных узлов привлекается наиболее распространенное и дешевое коммуникационное оборудование (Fast Ethernet), которое использует общую среду передачи данных и обладает не очень большой пропускной способностью (в сравнении со скоростью обработки данных современными процессорами). Поэтому круг задач, решаемых на подобных системах, ограничивается задачами с небольшим числом обменов по сравнению с количеством вычислений. Неоспоримым преимуществом подобных систем является их относительная дешевизна и фактическое наличие больших компьютерных классов во многих учебных заведениях. Для программирования подобных систем применяются системы передачи сообщений, в которых отдельные компьютеры взаимодействуют посредством передачи и приема данных.
На сегодняшний день наиболее популярным стандартом является MPI ( message passing interface — интерфейс передачи сообщений) 2. Конкретные реализации MPI стандарта создаются производителями программного обеспечения и поставляются вместе с оборудованием. Большинство реализаций стандарта MPI называются MPICH . Этот стандарт описывает имена, вызовы и результат работы процедур. Для каждой конкретной параллельной системы с передачей сообщений MPI имеет свою оптимизированную реализацию, а правильно написанная программа переносима между различными MPI системами на уровне исходных кодов. Для написания MPI программ используются современные языки программирования, такие как C/C++ и Fortran.
Исследования в области MPI программирования ведутся в двух направлениях: создание эффективных параллельных алгоритмов и создание эффективных реализаций MPI стандарта для кластерных систем. Параллельные алгоритмы разрабатываются с учетом низкой скорости передачи данных, в связи с этим предпочтение отдается методам с наименьшим числом обменов. Текущая реализация MPI для кластерных систем осуществляет обмены посредством протокола TCP / IP [4], что приводит к невозможности эффективного использования широковещательных обменов, которые в текущей реализации осуществляются посредством парных обменов. Поэтому сегодня ведутся работы по созданию MPI реализации с реальным использованием широковещательных пересылок. Еще одна возможность увеличения производительности MPI программ – совмещение обменов и вычислений, однако для используемой в работе реализации данная техника не приводит к существенным улучшениям.
Данная работа посвящена созданию эффективных параллельных алгоритмов метода сопряженных градиентов для симметрических положительно определенных пятидиагональных систем линейных алгебраических уравнений. Системы подобного рода появляются при конечноразностной аппроксимации дифференциальных уравнений в частных производных. На сегодняшний день разработано большое число эффективных последовательных алгоритмов данного типа [1]. Однако большинство из них неприемлемо для параллельной реализации. Это связано с их рекурсивным характером, а, следовательно, малым параллелизмом.
Целью данной работы является исследование существующих последовательных и параллельных алгоритмов метода сопряженных градиентов, выделение из них, а также создание собственных эффективных алгоритмов метода сопряженных градиентов, пригодных для применения на кластерных системах.
В ходе работы было исследовано большое число алгоритмов метода сопряженных градиентов. При выборе метода для исследования предпочтение отдавалось методам с минимальным числом межпроцессорных обменов. В результате этого было выделено три класса методов: блочно-диагональные методы, полиномиальные методы и методы аппроксимации обратной матрицы.
Результаты исследования показали, что при реализации задачи на кластерах больших размеров целесообразно использовать методы с минимальным числом обменов, а на кластерах малых размеров — методы, обладающие лучшей сходимостью.
Кластер — это связанный набор полноценных компьютеров, используемый в качестве единого вычислительного ресурса [1,2].
В качестве вычислительных узлов кластера используются доступные на рынке одно-, двух- или четырехпроцессорные компьютеры. Каждый узел такой системы работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Windows, Linux, Solaris и т.п. Состав и мощность узлов кластера может меняться, давая возможность создавать неоднородные системы [1,2].
В качестве коммуникационного протокола в таких системах используются стандартные протоколы ЛВС, характеризуемые низкой стоимостью и низкой скоростью передачи данных. Основные характеристики коммуникационных сетей: латентность – время начальной задержки при посылке сообщения и пропускная способность сети, определяющая скорость передачи информации по каналам связи [1,2]. Наличие латентности определяет тот факт, что максимальная скорость передачи данных по сети не может быть достигнута на сообщениях с небольшой длиной. Чаще всего используется сеть Fast Ethernet, основное достоинство которой – низкая стоимость оборудования. Однако большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, которые можно эффективно решать на таком кластере. Если от кластера требуется большая универсальность, то нужно переходить на более производительные коммуникационные сети, например, SCI, Myrinet и т.п.
В качестве средств организации параллельного программирования в кластерах используются различные системы передачи сообщений, посредством которых осуществляется взаимодействие узлов кластера. Наиболее распространенным на сегодняшний день стандартом программирования для систем с передачей сообщений является MPI . Конкретная MPI реализация создается производителями параллельных систем и поставляется вместе с оборудованием.
Кластер кафедры ЭВМ , на котором проводились исследования (рис 1.1)
Рис1. Структура кластера
Структура кластера состоит из :
· 1 главный узел ( head node )
· 11 вычислительных узлов ( compute nodes )
· c етевой интерфейс Gigabit Ethernet , 1 Гбит/ c
· кластерное ПО – Microsot Windows Compute Cluster Server 2003
· Языки программирования – С, С++, Fortran
· Параллельное программирование – MPI
Технические характеристики кластера
Характеристики главного и вычислительных узлов
1. Процессор: Intel Pentium Core2 64bit, 1.86 ГГц
2. Оперативная память: 1 Гб
3. Жесткий диск: 80 Гб
4. Сетевой интерфейс: Gigabit Ethernet , 1 Гбит/с
5. Операционная система : Microsoft Windows Server 2003 Enterprise x64 Edition SP2
2.Интерфейс передачи данных (message passing interface – MPI)
Для организации информационного взаимодействия между процессорами в самом минимальном варианте достаточно операций приема и передачи данных (при этом, конечно, должна существовать техническая возможность коммуникации между процессорами – каналы или линии связи). В MPI существует целое множество операций передачи данных. Они обеспечивают разные способы пересылки данных. Именно данные возможности являются наиболее сильной стороной MPI (об этом, в частности, свидетельствует и само название MPI).
Подобный способ организации параллельных вычислений получил наименование модели «одна программа множество процессов» (single program multiple processes or SPMP1)).
разработкой параллельных программ с применением MPI 4.
· MPI позволяет в значительной степени снизить остроту проблемы переносимости параллельных программ между разными компьютерными системами – параллельная программа, разработанная на алгоритмическом языке C или FORTRAN с использованием библиотеки MPI, как правило, будет работать на разных вычислительных платформах;
· MPI содействует повышению эффективности параллельных вычислений, поскольку в настоящее время практически для каждого типа вычислительных систем существуют реализации библиотек MPI, в максимальной степени учитывающие возможности компьютерного оборудования;
· MPI уменьшает, в определенном плане, сложность разработки параллельных программ, т. к., с одной стороны, а с другой стороны, уже имеется большое количество библиотек параллельных методов, созданных с использованием MPI.
3.Классификация параллельных методов решения СЛАУ
Метод Гаусса–Зейделя . Пусть решаемая система представлена в виде 2
Итерационная схема Гаусса–Зейделя следует из этого представления системы:
Приведем метод Гаусса–Зейделя к стандартному виду:
Стандартная форма метода позволяет выписать его итерационную матрицу и провести над ней очевидные преобразования:
Представим метод Гаусса–Зейделя в координатной форме для системы общего вида:
Координатная форма метода Гаусса–Зейделя отличается от координатной формы метода Якоби лишь тем, что первая сумма в правой части итерационной формулы содержит компоненты вектора решения не на k-й, а на (k+1)-й итерации.
Параллельный алгоритм метода Гаусса–Зейделя
Отличие метода Гаусса–Зейделя от метода простой итерации заключается в том, что новые значения вектора вычисляются не только на основании значений предыдущей итерации, но и с использованием значений уже вычисленных на данной итерации .
Текст последовательной программы для вычисления новых значений компонент вектора представлен ниже.
Рис. 2. Процедура вычисления значений вектора по методу Гаусса-Зейделя
Следующая система уравнений описывает метод Гаусса-Зейделя .
Вычисления каждой координаты вектора зависят от значений, вычисленных на предыдущей итерации, и значений координат вектора вычисленных на данной итерации. Поэтому нельзя реализовывать параллельный алгоритм, аналогичный методу простой итерации: каждый процесс не может начинать вычисления пока, не закончит вычисления предыдущий процесс.
Можно предложить следующий модифицированный метод Гаусса–Зейделя для параллельной реализации. Разделим вычисления координат вектора по процессам аналогично методу простой итерации. Будем в каждом процессе вычислять свое количество координат вектора по методу Гаусса Зейделя, используя только вычисленные значения вектора данного процесса. Различие в параллельной реализации по сравнению с методом простой итерации заключается только в процедуре вычисления значений вектора (вместо процедуры Iter_Jacoby используем процедуру Gauss-Seidel ).
void GaussZeidel(int size, int MATR_SIZE, int first)
/* задана матрица А, размерность матрицы MATR_SIZE, количество
вычисляемых элементов вектора в данном процессе size, вычисляем новые
значения вектора Х с номера first, используя значения вектора Х */
Sum += A[ind(i,j,MATR_SIZE)] * X[j];
for (j = i+1+first; j
Sum += A[ind(i,j,MATR_SIZE)] * X[j];
Рис. 1. Процедура вычисления значений вектора по методу Гаусса–Зейделя(параллельная версия)
• Разработка программной системы для параллельного решения СЛАУ на кластере
• Сравнение эффективности различных параллельных методов решения СЛАУ на кластере
1. Программирование для многопроцессорных систем в стандарте MPI: Пособие / Г. И. Ш паковский, Н. В. Серикова. – Мн.: БГУ, 2002. – 323с.
2. Теория и практика параллельных вычислений: учебное пособие/ В.П.Гергель.- М.: Интернет- Университет Информационных технологий; Бином. Лаборатория знаний, 2007.-423с.
3. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Олифер, Н. А. Олифер. – СПб: Питер, 2001. – 672с.
4. Параллельное программирование с использованием Open MP.-М.: Бином. Лаборатория знаний Интуит., 2008.- 118с.
5. Group W, Lusk E, Skjellum A. Using MPI. Portable Parallel Programming with the Message-Passing Interface. — MIT Press, 1994. (http://www.mcs.anl.gov/mpi/index.html)
6. Параллельные информационные технологии: учебное пособие/ А.Б. Барский- M .: Интернет- Университет Информационных технологий; Бином. Лаборатория знаний, 2007.-504с.
7. Корнеев В.Д. Параллельное программирование в MPI. — Москва-Ижевск: Институт компьютерных исследований, 2003. — 304 с.
8 . Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы: Общий подход. — М.: БИНОМ. Лаборатория знаний, 2006. — 406 с.
Видео:ПОСМОТРИ это видео, если хочешь решить систему линейных уравнений! Метод ПодстановкиСкачать
Методы решения систем линейных алгебраических уравнений (СЛАУ) с примерами
Содержание:
Видео:Матричный метод решения систем уравненийСкачать
Методы решения систем линейных алгебраических уравнений (СЛАУ)
Метод Крамера
Определение: Системой линейных алгебраических уравнений (СЛАУ) называется выражение
Определение: Определитель, составленный из коэффициентов при неизвестных, называется главным определителем системы
Крамер предложил следующий метод решения СЛАУ: умножим главный определитель на для этого умножим все элементы первого столбца на эту неизвестную:
Второй столбец умножим на третий столбец — на -ый столбец — на и все эти произведения прибавим к первому столбцу, при этом произведение не изменится:
Согласно записи СЛАУ первый столбец получившегося определителя представляет собой столбец свободных коэффициентов, т.е.
Определение: Определитель называется первым вспомогательным определителем СЛАУ.
Поступая аналогично тому, как описано выше, найдем все вспомогательные определители СЛАУ:
31. Для того чтобы найти вспомогательный определитель i, надо в главном определителе СЛАУ заменить столбец i на столбец свободных коэффициентов.
Определение: Полученные выше соотношения называются формулами Крамера. Используя формулы Крамера, находят неизвестные величины Проанализируем полученные формулы:
если главный определитель системы отличен от нуля (), то система имеет единственное решение;
если главный определитель системы равен нулю (), а хотя бы один из вспомогательных определителей отличен от нуля ( или , или, . или ), то система не имеет решений (деление на нуль запрещено);
если все определители системы равны нулю (), то система имеет бесчисленное множество решений.
Пример:
Решить СЛАУ методом Крамера
Решение:
Прежде всего, обращаем внимание на то, что в последнем уравнении переменные записаны в неправильном порядке, в этом случае говорят, что СЛАУ записана в ненормализованном виде. Нормализуем СЛАУ, для чего запишем неизвестные в последнем уравнении системы в правильном порядке, чтобы одноименные неизвестные были записаны друг под другом
Найдем главный определитель СЛАУ (раскрываем по первой строке)
Так как главный определитель системы отличен от нуля, то СЛАУ имеет единственное решение. Найдем три вспомогательных определителя
Воспользуемся формулами Крамера
Замечание: После нахождения решения СЛАУ надо обязательно провести проверку, для чего найденные числовые значения неизвестных подставляется в нормализованную систему линейных алгебраических уравнений.
Выполним проверку Отсюда видно, что СЛАУ решена верно.
Матричный способ решения СЛАУ
Для решения СЛАУ матричным способом введем в рассмотрение матрицу, составленную из коэффициентов при неизвестных матpицы-столбцы неизвестных и свободных коэффициентов
Тогда СЛАУ можно записать в матричном виде Матричный способ решения СЛАУ состоит в следующем: умножим слева матричное уравнение на обратную матрицу к матрице А, получим в силу того, что произведение найдем Таким образом, для нахождения неизвестных матричным способом, надо найти обратную к А матрицупосле чего надо умножить эту матрицу на матрицу-столбец свободных коэффициентов.
Пример:
Решить СЛАУ матричным способом
Решение:
Введем в рассмотрение следующие матрицы
Найдем матрицу (см. Лекцию № 2): найдем детерминант матрицы А.
Пример:
Решение:
Найдем алгебраические дополнения всех элементов Запишем обратную матрицу (в правильности нахождения обратной матрицы убедиться самостоятельно). Подействуем пай денной матрицей на матрицу-столбец свободных коэффициентов В:
Отсюда находим, что х = 1; y = l; z = l.
Метод Гаусса
Метод Гаусса или метод исключения неизвестных состоит в том, чтобы за счет элементарных преобразований привести СЛАУ к треугольному виду. Покажем использование расширенной матрицы, составленной из коэффициентов при неизвестных и расширенной за счет столбца свободных коэффициентов, для приведения СЛАУ к треугольному виду на примере системы, рассматриваемой в этой лекции. Расширенная матрица для СЛАУ имеет вид:
Замечание: В методе Гаусса желательно, чтобы первая строка расширенной матрицы начиналась с единицы.
Обменяем в расширенной матрице первую и вторую строки местами, получим Приведем матрицу к треугольному виду, выполнив следующие преобразования: умножим элементы первой строки на (-2) и прибавим к соответствующим элементам второй строки Разделим все элементы второй строки на (-5), получим эквивалентную матрицу
Умножим элементы первой строки на (—1) и прибавим к соответствующим элементам третьей строки Разделим все элементы третьей строки на (-3), получим Таким образом, эквивалентная СЛАУ имеет вид (напомним, что первый столбец это коэффициенты при неизвестной х, второй — при неизвестной у, третий — при неизвестной z, а за вертикальной чертой находится столбец свободных коэффициентов):
Из первого уравнения находим, что х = 1.
Вывод: Из вышеизложенного материала следует, что вне зависимости от
способа решения СЛАУ всегда должен получаться один и тот же ответ.
Замечание: После нахождения решения СЛАУ надо обязательно выполнить проверку, то есть подставить полученные значения неизвестных в заданную СЛАУ и убедиться в тождественности левой части всех равенств системы соответствующим правым частям. Отметим, что задание СЛАУ всегда верно, то есть, если проверка показывает нарушение оговоренной тождественности, то надо искать ошибку в проведенных вычислениях.
Ранг матрицы. Теорема Кронекера-Капелли
Определение: Рангом матрицы называется наивысший порядок отличного от нуля минора этой матрицы.
Если то среди всевозможных миноров этой матрицы есть хотя бы один минор порядка r, который отличен от нулю, а все миноры порядков больших, чем r, равны нулю.
При вычислении ранга необходимо начинать вычислять миноры 2 порядка, затем миноры 3 порядка и так далее, пока не будут найдены миноры, обращающиеся в нуль. Если все миноры порядка p равны нулю, то и все миноры, порядок которых больше p, равны нулю.
Пример:
Найти ранг матрицы
Решение:
Очевидно, что среди миноров второго порядка есть миноры отличные от нуля, например, среди миноров третьего порядка также есть миноры, которые не равны нулю, например, Очевидно, что определитель четвертого порядка равен нулю, так как он будет содержать строку, состоящую из одних нулей (см. свойство для определителей). Следовательно, ранг матрицы А равен 3.
Теорема Кронекера-Капелли (критерий совместности СЛАУ). Для совместности системы линейных алгебраических уравнений (СЛАУ) необходимо и достаточно, чтобы ранг расширенной матрицы совпадал с рангом основной матрицы, составленной из коэффициентов при неизвестных величинах.
Видео:Метод Крамера за 3 минуты. Решение системы линейных уравнений - bezbotvyСкачать
Следствия из теоремы Кронекера — Капелли
Следствие: Если ранг матрицы совместной системы равен числу неизвестных, то система имеет единственное решение (то есть она определенная).
Следствие: Если ранг матрицы совместной системы меньше числа неизвестных, то система имеет бесчисленное множество решений (т.е. она неопределенная).
В случае неопределенной системы решения ищут следующим образом: выбираются главные неизвестные, число которых равно рангу, а остальные неизвестные считаются свободными; далее главные неизвестные выражаются через свободные и получают множество решений, зависящих от свободных неизвестных. Это множество решений называется общим решением системы. Придавая свободным неизвестным различные произвольные значения, получим бесчисленное множество решений, каждое из которых называется частным решением системы.
Рекомендую подробно изучить предметы:
Математика
Алгебра
Линейная алгебра
Векторная алгебра
Высшая математика
Дискретная математика
Математический анализ
Математическая логика
Ещё лекции с примерами решения и объяснением:
Скалярное произведение и его свойства
Векторное и смешанное произведения векторов
Преобразования декартовой системы координат
Бесконечно малые и бесконечно большие функции
Критерий совместности Кронекера-Капелли
Формулы Крамера
Матричный метод
Экстремум функции
При копировании любых материалов с сайта evkova.org обязательна активная ссылка на сайт www.evkova.org
Сайт создан коллективом преподавателей на некоммерческой основе для дополнительного образования молодежи
Сайт пишется, поддерживается и управляется коллективом преподавателей
Whatsapp и логотип whatsapp являются товарными знаками корпорации WhatsApp LLC.
Cайт носит информационный характер и ни при каких условиях не является публичной офертой, которая определяется положениями статьи 437 Гражданского кодекса РФ. Анна Евкова не оказывает никаких услуг.