Оптимизация алгоритма расчета термогидродинамических полей Ладожского озера.

Баклагин В. Н.

Институт водных проблем Севера КарНЦ РАН

 

Для возможности прогнозирования водных экосистем в настоящее время широко используются математические модели, описывающие процессы гидротермодинамических величин, а также включающие блок переноса примеси. Такие трехмерные модели показывают адекватные результаты при достаточном дроблении по сеточной области для возможности воспроизводства особенностей батиметрии котловины, а также необходимым временным шагом моделирования. Количество узлов сетки может достигать 105-106, а временной шаг, как правило, сводится к синоптическому интервалу. Поэтому становится ясно, что получение адекватных результатов при условном водообмене озера 10-20 лет становится возможным при более чем 1000 временных шагов.

В связи с этим возникают проблемы с трудоемкостью расчетов дифференциальных уравнений, поставленных задачами гидротермодинамики, в каждом из узлов сеточной области для нахождения полей проекций скоростей на оси (v, u, w), температур (T), а также отклонений уровня воды от среднего (Ksi).

Разработанная модель экосистемы Ладожского озера авторами Л. А. Руховцом, В. В. Меншуткиным, Г. П. Астраханцевым и другими включает целый комплекс математических моделей гидротермодинамики и переноса примесей. Модель позволяет решать задачи управления водопользования, сохранения природных ресурсов озера и, прежде всего, качества воды.

В основу модели положены уравнения Навье-Стокса: уравнения движения жидкости и уравнение неразрывности. Относительно этих уравнений численными методами решена задача с учетом краевых условий. Поэтому решение дифференциальных уравнений даже на современном персональном компьютере становится затруднительным в связи с большими затратами времени, необходимыми для вычислений. Решение задачи одного временного шага по всей сеточной области модели экосистемы Ладожского озера составляет более двух часов на современном персональном компьютере (с процессором i5).

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

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

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

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

Были проведены исследования оценки времени расчетов каждого блока в отдельности. Результаты представлены в таблице 1.

Таблица 1

Оценка времени расчетов блоков алгоритма модели экосистемы Ладожского озера (сетка – 316 Х 212 Х 37)

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

Оценка времени счета

Блок расчета правых частей для уравнения движения

2-5 сек

Блок отклонения уровня воды от среднего (Ksi)

90-110 мин

Блок расчета скоростей течений (v, u, w)

1-3 сек

Блок расчета коэффициентов для уравнения температуры

1-3 сек

Блок расчета температуры (Т)

1-10 мин

Блок перемешивания

<1 сек

 

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

Рисунок 1 – Блок-схема расчета отклонения уровня воды от среднего (Ksi)

 

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

Оценка времени расчетов каждого блока по отдельности показала, что 98 % времени работы процессора затрачивается на осуществления прямого хода матричной прогонки, который включает формулу:

 

                                                                                             (1)

 

Размерности матриц достигают больших величин, что резко увеличивает время расчетов на персональном компьютере.

Прямая матричная прогонка осуществляется для каждой строчки сеточной области (i), принадлежащей в установленной сетки от 0 до 316. Расчеты для каждой строчки сеточной области проходят независимо друг от друга, что дало возможность распараллелить вычислительные потоки. Предложенный интервал блок-схемы представлен на рисунке 2.

Рисунок 2 – Распараллеливание алгоритма по строчкам сеточной области

 

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

Приведенная схема позволила сократить время расчетов моделирования экосистемы Ладожского озера более чем в 2,5 раза, что существенно облегчит возможности получения адекватных результатов моделирования.