Лабораторная работа №3
Параллельные методы решения систем линейных
алгебраических уравнений с разреженными матрицами. Цель работы.
Изучение и реализация методов решения СЛАУ с разреженной матрицей на многопроцессорных ЭВМ. Изучение форматов хранения разреженных распределённых матриц. Исследование эффективности параллельной реализации. Теоретическая часть.
Пусть дана система линейных алгебраических уравнений , которая получается в результате конечно-элементной, конечно-разностной, конечно-объёмной аппроксимации. В результате такой аппроксимации матрица имеет большое количество нулевых элементов, поэтому матрицу необходимо хранить в каком-либо разреженном формате. Такой формат будет выбираться из вида итерационного метода решения СЛАУ.
Основной матрично-векторной операцией в итерационных методах является умножение матрицы на вектор. Поэтому для хранения матрицы будем выбирать такой формат, чтобы матрицу хранить по строкам, так как этот вариант разрезания матрицы наиболее перспективен для параллельной реализации умножения матрицы на вектор. Хранить мы будем только ненулевые элементы для каждой строки. Поясним формат на примере следующей матрицы размером N = 5:
Для хранения матрицы определим следующие массивы:
row_ptr[6] – массив номеров первых элементов в каждой строке в общей нумерации ненулевых элементов матрицы,
val[12] – массив значений элементов матрицы,
col_ind[12] – массив номеров столбцов для каждого элемента.
Таким образом, для данной матрицы получим следующие массивы: real val[12] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0}; integer col_ind[12] = {0, 1, 4, 0, 1, 2, 1, 2, 4, 3, 0, 4}; integer row_ptr[6] ={0, 3, 6, 9, 10, 12}; Для примера будем рассматривать стационарную задачу распределения температуры в области, куда помещён инородный объект с отличной от области теплопроводности. Таким образом, решаемое уравнение имеет вид: , в расчётной области , с областью объекта , где коэффициенты теплопроводности имеют значения: для области, для объекта, объект выделяет тепло с интенсивностью , краевые условия , , . Решение задачи можно проиллюстрировать следующим рисунком:
Рисунок 2. Распределение темепературы, полученной в результате моделирования . Практическая часть.
Реализовать заданный метод решения СЛАУ для однопроцессорной архитектуры с использованием описанного в теоретической части разреженного формата хранения матриц,
Провести тестирование реализации на матрице, полученной в результате конечно-элементной аппроксимации приведённой в теоретической части задачи.
Реализовать заданный метод решения СЛАУ для многопроцессорной архитектуры с использованием описанного в теоретической части разреженного формата хранения матриц,
Исследовать эффективность параллельной реализации.
Варианты заданий.
Метод сопряжённых градиентов,
Локально-оптимальная схема,
Метод бисопряженных градиентов,
Обобщённый метод минимальных невязок (GMRES),
Метод Гаусса – Зейделя.
|