§41. Результаты распараллеливания

Таблица 15

Размерность задачи

Чтение данных

Вычисление интегралов

Решение СЛАУ

400

0,03

0,45

1,49

800

0,05

1,92

13,14

1200

0,08

4,34

31,29

1600

0,10

7,97

54,49

2000

0,13

13,02

97,55

 

Таблица 16

Название блока

Имя подпрограммы, реализующей данный блок

Стационарная задача

Нестационарная задача

Ввод исходных данных

CMGE (рис. 65)

CMGE (рис. 66)

Вычисление интегралов

METOD (рис. 67)

METOD (рис. 67)

Решение СЛАУ

ITERATION (рис. 68)

ITERATION (рис. 68)

Построение результирующей функции

CMGE (рис. 65)

CMGE (рис. 66)

Вычисление скоростей

-

VELOXY (рис. 69)

Выбор шага по времени

-

VELOXY (рис. 69)

Вычисление интегральных характеристик

-

ENER (рис. 70)

Перестройка свободной границы

CMGE (рис. 65)

CMGE (рис. 66)

Печать результатов

CMGE (рис. 65)

CMGE (рис. 66)

Проверка условия останова

CMGE (рис. 65)

CMGE (рис. 66)

 

В таблице 15 приведены временные затраты в секундах на реализацию каждого блока последовательного алгоритма при выполнении одной итерации решения стационарной задачи. Время для реализации блоков, отсутствующих в таблице, для всех приведенных размерностей задачи не превышало 0,01 секунды. Анализируя табличные данные, можно утверждать, что из всех блоков алгоритма наиболее дорогостоящими по времени являются блок вычисления интегралов и блок решения СЛАУ.

На рис. 65-70 приведены листинги Фортран-программ, реализующие параллельные алгоритмы для решения стационарной и нестационарных задач (программы, реализующие последовательные алгоритмы, не приведены). Соответствие блоков алгоритмов и названий подпрограмм приведено в таблице 16.

Построение стационарных уединенных волн

Для анализа эффективности распараллеливания алгоритма решения стационарной задачи была выбрана задача о построении уединенных волн (солитонов), ранее уже решаемая авторами и опубликованная в работах [9, 11], основной упор в которых был направлен на исследование самого процесса волнообразования в зависимости от параметров задачи. В данной же работе, в отличие от цитируемых, ставилась задача о получении значительного ускорения реализации алгоритма на кластерной системе.

Расчетная область была взята следующая: , где (положение свободной границы) - требовалось найти в процессе решения задачи. Основным параметром задачи является безразмерный параметр , характеризующий отношение скорости в вершине волны к скорости на бесконечности (см. §37).

Для проведения нестационарных расчетов о движении уединенной волны амплитуды по бассейну с ровным дном был выполнен расчет с безразмерным параметром .

Для анализа параллельных свойств алгоритма был проведен ряд серий расчетов для разного количества узлов на границе расчетной области (от 400 до 2000 с шагом 200) и разного количества задействованных в расчете процессоров (1, 2, 4, 8).

Под одной серией расчетов подразумевается решение задачи для всего спектра безразмерного параметра . Дискретизация параметра производилась от 0,99 до 0 с шагом -0,01. Для параметра 0,99 положение свободной границы задавалось , исключение составляла окрестность точки , в которой начальное значение .

На рис. 71 приведены графики временных затрат на реализацию одного расчета при фиксированном параметре для решения стационарной задачи на 1, 2, 4 и 8 процессорах, соответственно.

 

Рис. 71. Временные затраты на реализацию параллельного алгоритма при фиксированном параметре V

 

Рис. 72. Временные затраты на реализацию серии расчетов

 

На рис. 72 приведены графики временных затрат на реализацию серии расчетов для решения стационарной задачи на 1, 2, 4 и 8 процессорах, соответственно.

На рис. 73 - 74 приведены ускорение и эффективность параллельного алгоритма при его реализации на 1, 2, 4 и 8 процессорах, соответственно.

 

Рис. 73. Ускорение параллельного алгоритма

 

Рис. 74. Эффективность параллельного алгоритма

Движение уединенной волны по бассейну с ровным дном

Для анализа эффективности распараллеливания алгоритма решения нестационарной задачи была решена тестовая задача о движении уединенной волны амплитуды по бассейну постоянной глубины . В этом тесте важным является то, что уединенные волны в процессе движения не изменяют амплитуду и скорость,  сохраняют форму и полную энергию (использовалось для проверки работоспособности алгоритма решения задачи). Для расчета была взята область , где описывает уединенную стационарную волну. Вершина волны при находилась в точке . Расчет проводился до момента безразмерного времени , когда вершина волны перешла в точку с абсциссой . К этому моменту времени волна прошла путь, равный 1,3 длины волны, определяемой длиной отрезка по оси , на котором выполняется условие:

, .

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

 

Рис. 75. Тестовый расчет по движению солитона амплитуды А=0,5 по ровному дну

 

Отсутствие диспергирующего хвоста из волн малой амплитуды позади основной волны объясняется достаточно точным заданием начальной поверхности солитона и распределения потенциала на ней, полученным на основе численного решения стационарной задачи об уединенной волне. Использование в качестве начальных условий известных приближений уединенных волн дает заметный диспергирующий след. Эта волновая рябь, бегущая за основной волной, несомненно оказывает влияние как на характеристики основной волны, так и на волны, образованные вследствие взаимодействия с какими-либо препятствиями. Это обстоятельство изучено в работе [2].

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

Для анализа параллельных свойств алгоритма была проведена серия расчетов для разного количества узлов на границе расчетной области (от 400 до 2000 с шагом 200) и разного количества задействованных в расчете процессоров (1, 2, 4, 8).

На рис. 76 приведены графики временных затрат на реализацию одного итерационного шага параллельного алгоритма для решения нестационарной задачи на 1, 2, 4 и 8 процессорах, соответственно.

 

Рис. 76. Временные затраты на реализацию одного итерационного шага параллельного алгоритма

 

На рис. 77 приведены графики временных затрат на реализацию параллельного алгоритма для решения нестационарной задачи о движении уединенной волны до момента безразмерного времени 8,28 на 1, 2, 4 и 8 процессорах, соответственно.

Рис. 77. Временные затраты на реализацию всего расчета

 

На рис. 78 - 79 приведены ускорение и эффективность параллельного алгоритма КМГЭ при его реализации на 1, 2, 4 и 8 процессорах, соответственно.

Большая эффективность служит подтверждением того, что при программировании не была нарушена степень параллелизма алгоритмов.

Проведенный анализ реализации параллельного алгоритма для решения стационарных и нестационарных задач позволяет сделать вывод о том, что на кластере из обычных ПК можно получить значительное ускорение на реальных задачах с эффективностью более 90% даже с сетевой инфраструктурой Fast Ethernet. Алгоритм, реализующий КМГЭ, легко распараллеливается и имеет среднюю степень параллелизма, близкую к идеальной.

Рис. 78. Ускорение параллельного алгоритма

 

Рис. 79. Эффективность параллельного алгоритма