Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация и исследование эффективных вычислений для решения задач аэроакустики на кластерных архитектурах (магистерская диссерта / Буренков С. Организация и исследование эффективных вычислений для решения задач аэроакустики на кластерных архитектурах.doc
Скачиваний:
92
Добавлен:
28.06.2014
Размер:
2.27 Mб
Скачать

3.6. Особенности параллельной модификации методаGmres

В разделе 2.3 были приведены основные подзадачи перезапускаемого метода обобщенных минимальных невязок. В разработанной модификации алгоритма основное внимание уделено организации параллельных вычислений для выполнения выделенных подзадач.

3.6.1. Распределение данных по исполнителям

При выполнении параллельного алгоритма решения систем линейных алгебраических уравнений необходимо распределить входные данные наиболее рациональным способом. Матрица коэффициентов разбивается на непрерывные горизонтальные полосы. Распределение вектора правой части и начального приближения выполнено по принципу дублирования, т.е. все элементы векторов скопированы на все процессоры. Для рассматриваемой задачи решения СЛАУ такой подход распределения допустим, т.к. векторы содержат столько же элементов, сколько и одна строка или один столбец матрицы коэффициентов. Если процессор хранит строку матрицы и одиночные элементы векторов правой части и начального приближения, то общее число сохраняемых элементов имеет порядок . Если же процессор хранит строку матрицы и все элементы векторов, то общее число сохраняемых элементов также порядка. Таким образом, при дублировании и при разделении векторов требования к объему памяти из одного класса сложности.

3.6.2. Выполнение параллельных операций

Подзадачи, приведенные в разделе 2.3, можно разделить на 2 группы: операции между матрицей и вектором (например, умножение матрицы на вектор) и операции между двумя векторами (например, скалярное умножение, взвешенная сумма векторов и пр.). Подзадачи умножения константы на вектор и определение нормы вектора будем относить ко второй группе, так как их трудоемкость одного порядка.

Особенности выполнения операций между матрицей и вектором определены способом распределения входных данных. На рис. 3.7 схематично изображен процесс параллельного умножения матрицы на вектор на трех процессорах.

Рис. 3.7. Схема параллельного выполнения операции между матрицей и вектором

Заштрихованные участки соответствуют данным, расположенным в памяти процессора исполнителя. Каждый исполнитель получает свою часть результата выполнения операции.

По схожему принципу организовано параллельное выполнение операций между двумя векторами. Несмотря на то, что каждому процессу доступна полная информация о векторах, вычисления производятся лишь над участком, соответствующим процессу-исполнителю. На рис. 3.8 изображен пример параллельного выполнения операций между двумя векторами.

Рис. 3.8. Схема параллельного выполнения операции между двумя векторами

Таким образом, параллельное выполнение любой из выделенных подзадач привело к распределению вычислительной нагрузки между всеми исполнителями.

3.6.3. Объединение результатов расчетов

Результатом выполнения рассматриваемых операций является, чаще всего, вектор, части которого расположены на участвовавших в вычислениях процессорах. Согласно принятому в пункте 3.6.1 способу хранения векторов, для объединения результатов расчета и получения полного вектора на каждом процессоре вычислительной системы необходимо выполнить операцию сбора данных. На основании исследования видов обменных взаимодействий в модели с распределенной памятью, проведенных в разделе 3.5, в качестве таких операций будут выступать операции массовых коммуникационных обменов. С их помощью каждый процессор передаст свой вычисленный элемент вектора всем остальным процессорам (см. рис. 3.9).

Рис. 3.9. Принцип сбора результатов вычислений