2.1. Общая организация библиотеки Aztec
Множество задач, решаемых на многопроцессорных системах, требуют решения
больших систем линейных уравнений с разреженными матрицами
AX = B, | (2.1) |
где A | - задаваемая пользователем разреженная матрица n x n, |
B | - задаваемый пользователем вектор длины n, |
X | - вектор длины n, который должен быть вычислен. |
В исследовательской лаборатории параллельных вычислений Сандии (США) разработан достаточно эффективный и удобный в использовании пакет подпрограмм Aztec [3] для решения итерационными методами системы уравнений (2.1). Пакет изначально разрабатывался для того, чтобы облегчить перенос приложений с однопроцессорных систем на многопроцессорные. Предоставляемые средства трансформации данных позволяют легко создавать разреженные неструктурированные матрицы для решения как на однопроцессорных, так и на многопроцессорных системах. В суперкомпьютерном центре ЮГИНФО РГУ эта библиотека установлена на всех высокопроизводительных вычислительных системах (nCUBE2, SUN Ultra 60, Alpha DS20E, Linux-кластер), и программы, разработанные с использованием этой библиотеки, без какой-либо модификации выполняются на любой из этих систем.
Aztec включает в себя процедуры, реализующие ряд итерационных методов Крылова:
Все методы используются совместно с различными переобуславливателями
(полиномиальный метод и метод декомпозиции областей, использующий как прямой
метод LU, так и неполное LU разложение в подобластях). Хотя матрица A может
быть общего вида, пакет ориентирован на матрицы, возникающие при
конечно-разностной аппроксимации дифференциальных уравнений в частных
производных (Partial Differential Equations - PDE). Наконец, Aztec может
использовать одно из двух представлений разреженных матриц:
Полный комплект документации можно найти на сервере [4]. В данном пособии приводится краткая инструкция по использованию пакета.