- •Аннотация
- •Abstract
- •Глава 1. Проекционные методы решения слау 8
- •Глава 2. Перезапускаемый метод gmres 20
- •Глава 3. Разработка параллельной модификации метода gmres 28
- •Глава 4. Исследование параллельной модификации перезапускаемого gmres 47
- •Введение
- •Глава 1. Проекционные методы решения слау
- •1.1. Принцип построения проекционных методов
- •1.2. Методы подпространства Крылова
- •1.2.1. Метод полной ортогонализации
- •1.2.2. Метод сопряженных градиентов
- •1.2.3. Метод минимальных невязок
- •1.2.3. Метод обобщенных минимальных невязок
- •1.3. Сравнение проекционных методов
- •1.4. Постановка задачи магистерской диссертации
- •1.5. Выводы по главе 1
- •Глава 2. Перезапускаемый методGmres
- •2.1. Ортогонализация Арнольди
- •2.2. Метод вращений Гивенса
- •2.3. Декомпозиция алгоритмаGmres
- •2.4. Предобуславливание в методеGmres
- •2.5. Выводы по главе 2
- •Глава 3. Разработка параллельной модификации методаGmres
- •3.1. Основные классы параллельных вычислительных систем
- •3.2. Классификация моделей параллельного программирования
- •3.3. Формат хранения разреженных матриц
- •3.4. Разделение данных
- •3.5. Исследование обменных взаимодействий в модели передачи сообщений
- •3.6. Особенности параллельной модификации методаGmres
- •3.6.1. Распределение данных по исполнителям
- •3.6.2. Выполнение параллельных операций
- •3.6.3. Объединение результатов расчетов
- •3.7. Теоретическая оценка трудоемкости
- •3.8. Выводы по главе 3
- •Глава 4. Исследование параллельной модификации перезапускаемогоGmres
- •4.1. Задача аэродинамического обтекания профиля
- •4.2. Исследование эффективности параллельной модификации перезапускаемогоGmres
- •4.3. Выводы по главе 4
- •Заключение
- •Список литературы
- •Приложение
3.3. Формат хранения разреженных матриц
Формат для хранения разреженных матриц – CompressedSparseRow (CSR) – одна из наиболее широко используемых схем для хранения разреженных матриц. Он был предложен в 1969 году. Эта схема предъявляет минимальные требования к памяти и в то же время оказывается очень удобной для нескольких важных операций над разреженными матрицами: сложения, умножения, перестановок строк и столбцов, транспонирования, решения линейных систем с разреженными матрицами коэффициентов как прямыми, так и итерационными методами и т.д. [14]
Разреженная матрица хранится с использованием следующих массивов:
aelem, который содержит все ненулевые элементы матрицы, перечисленные в строчном порядке;
jptr, который содержит столько же элементов, сколькоaelemи для каждого из них указывает, в каком столбце находится данный элемент;
iptr, который хранит число элементов, равное увеличенной на единицу размерности СЛАУ. Егоi-й элемент указывает, с какой позиции в массивахaelemиjptrначинаетсяi-я строка матрицы. Соответственноiptr[i+1] – iptr[i]равно числу ненулевых элементов вi-й строке. Последний элементiptr[n+1]равен числу элементов вaelem, увеличенному на единицу.
Данный способ представления разреженной матрицы называют полным, поскольку представлена вся матрица, иупорядоченным, поскольку элементы каждой строки хранятся в соответствии с возрастанием столбцовых индексов [14]. Массивыiptrиjptrпредставляют портрет матрицы, задаваемый как множество списков смежности ассоциированного с матрицей графа.
В 1972 году был предложен еще один вариант строчной схемы хранения, приспособленный для приложений, где приходится выполнять операции над строками и столбцами. Матрицу хранят по строкам, как описано выше; кроме того, определяют портрет транспонированной матрицы и также хранят по строкам. Строчное представление портрета транспонированной матрицы равносильно столбцовому представлению портрета матрицы. Его можно получить транспонированием строчного портрета исходной матрицы [14].
Для несимметричных матриц была предложена и другая, гораздо более простая строчная схема. Ненулевые элементы хранят в двумерном массиве с размерами , гдеn– порядок матрицы,m– максимальное число ненулевых элементов в строке. Эта схема допускает простую обработку; недостаток ее в том, чтоmможет быть неизвестно заранее, а может оказаться слишком большим.
Для хранения матрицы коэффициентов при решении СЛАУ с помощью разрабатываемой модификации перезапускаемого метода обобщенных минимальных невязок был выбран CSRформат. Выигрыш по используемой оперативной памяти в процессе решения системы изNуравнений от использованияCSRформата в сравнении с хранением всех коэффициентов матрицы с долейdненулевых элементов в двумерном массиве может быть посчитан по формуле
, (3.1)
где – объем, который занимает в памяти ЭВМ вещественная переменная,– объем, который занимает в памяти ЭВМ целочисленная переменная.
3.4. Разделение данных
Способность параллельного алгоритма эффективно использовать процессоры является важной характеристикой выполняемых расчетов. Параллельный алгоритм называют масштабируемым, если при росте числа процессоров он обеспечивает увеличение ускорения при сохранении постоянного уровня эффективности использования процессоров [11]. Результатом применения параллельных вычислений стало не только уменьшение времени выполнения расчетов, но и обеспечение возможности решения более сложных вариантов задач или их постановок, решение которых не представляется возможным при использовании однопроцессорных вычислительных систем.
Хранение вектора правой части системы, вектора начального приближения и вспомогательных векторов на всех процессорах целиком не является критичным: затраты памяти на хранение матрицы размерности nсущественно больше, чем затраты на вектор изnэлементов, особенно, если речь идет о больших размерностях. Главная трудность в распределении данных при решении больших СЛАУ – распределить матрицу коэффициентов таким образом, чтобы затратить при этом минимальное количество памяти. Поэтому для хранения матрицы коэффициентов был использован форматCSR, описанный в разделе 3.3, а также использован подход ленточного распределения матрицы по процессорам «на лету», что исключает возможность расположения матрицы целиком в памяти одного процессора даже во время чтения. Матрица представляется непрерывными наборами строк, как показано на рис. 3.2.
Рис. 3.2. Организация распределения данных при выполнении модификации алгоритма GMRES
Каждый исполнитель располагает информацией о части матрицы коэффициентов, а также хранит вектор начального приближения и вектор правой части. Для объединения результатов расчета после выполнения итерации и получения на исполнителях фрагментов уточненного решения (см. рис. 3.2), выполняется операция передачи, после которой вектор начального приближения будет заменен очередным приближением к решению.
В модели передачи сообщений существует два типа обменных взаимодействий: массовые обменные взаимодействия и точечные обмены. В разделе 3.5 представлено исследование двух этих типов. На примере классической задачи матричного умножения.