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

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

При моделировании крупномасштабной циркуляции Онежского озера в качестве временного масштаба выбрано характерное время эволюции элементов глобальной динамики озера. При этом временной интервал составляет 5–7 суток, что соответствует синоптическому масштабу. Для описания крупномасштабной циркуляции и термического режима Онежского озера использована декартовая система координат, поскольку протяженность озера позволяет пренебречь кривизной Земли и считать невозмущенную поверхность водоема плоской. В основу модели положены уравнения Навье-Стокса: уравнения движения жидкости и уравнение неразрывности. Относительно этих уравнений численными методами решена задача с учетом краевых условий.

Необходимо отметить, что такие трехмерные модели показывают адекватные результаты только при достаточном дроблении по сеточной области для возможности воспроизводства особенностей батиметрии котловины, а также достаточно малом временном шаге моделирования. Количество узлов сетки может достигать 105-106, а временной шаг, как правило, сводится к синоптическому интервалу. В связи с этим получение адекватных результатов становится возможным при более тысячи временных шагов.

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

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

В настоящее время алгоритм разработанной гидротермодинамической модели Онежского озера реализован на языке программирования С++, программа была откомпилирована в Borland Builder 6.0, актуальность которого на сегодняшний день потеряна.

Можно выделить следующие недостатки, относящиеся к моральному устареванию компьютерной реализации данной модели:

  • Компилятор Borland Builder 6.0 на настоящий момент уже потерял свою актуальность, поэтому становится затруднительной перекомпиляция этой модели для адаптации ее к другим озерам при их моделировании, а также в связи с математической доработки уже имеющейся модели.
  • Алгоритмические конструкции, относящиеся к устаревшей платформе увеличивают время реализации алгоритма и способствуют его усложнению.
  • Точность расчетов в реализуемом алгоритме достигает 15-го знака после запятой, то есть старая платформа выдает некоторую погрешность при простых математических операциях. Может показаться, что такая точность вполне удовлетворяет условиям задачи, однако при дифференцировании полученных значений по узлам трехмерной сетки точность существенно падает, и погрешность имеет уже значительное влияние на конечные результаты расчетов.

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

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

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

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

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

Алгоритм был реализован в среде Visual studio 2010 и скомпилирован с помощью компилятора платформы .NET 4, которая имеет огромное количество встроенных библиотек, позволяющих существенно упростить алгоритм. В моделирующем алгоритме можно выделить четыре последовательных блока: блок расчетах правых частей для уравнения движения, блок расчета отклонения уровня воды от среднего, блок расчета скоростей движения воды, а также блок расчета температуры. Наиболее емким по расчету является блок расчета отклонения уровня воды от среднего. При перепрограммировании на язык C sharp этот блок выполнен таким образом, чтобы имелась возможность его дальнейшего распараллеливания на многоядерных процессорах в целях увеличения производительности счета, поскольку эта проблема стоит достаточно остро.

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

Были проведены исследования оценки времени расчетов каждого блока в отдельности. Результаты представлены в таблице 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 — Распараллеливание алгоритма по строчкам сеточной области

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

При компиляции программы на языке программирования C sharp необходимым условием для проверки адекватности разработанного алгоритма является сравнение результатов моделирования алгоритма, реализованного на языке C sharp с результатами моделирования алгоритма, реализованного на С++ для аналогичных исходных данных счета.

Результаты моделирования сравнивались по пяти показателям: отклонение уровня воды от среднего, проекции скоростей движения воды на декартовые оси координат и температура в каждом из узлов трехмерной сетки. Сравнительный анализ полученных результатов по всем узлам трехмерной сетки показал небольшую погрешность, связанную с точностью расчетов. Относительная погрешность составила. Таким образом, можно заключить, что результаты счета программы, реализованной на языке C sharp, являются аналогичными с результатами счета программы, реализованной на С++.

Реализация моделирующего алгоритма на языке программирования C sharp позволила добиться следующих преимуществ:

  • Приведенная схема на рисунке 2 позволила сократить время расчетов моделирования экосистемы Онежского озера более чем в 2,5 раза при использовании двуядерного процессора, что существенно облегчит возможности получения адекватных результатов моделирования.
  • Более удобный интерфейс программы, который позволяет детально наблюдать за ходом моделирования в трех проекциях. Рабочее окно разработанного программного продукта представлено на рисунке 3. При моделировании можно изменять параметры визуализируемых проекций с целью наблюдений за динамикой моделирования в любом узле сеточной области.
  • Рисунок 3 — Рабочее окно программного продукта.

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

Таким образом, разработка программного продукта модели экосистемы Онежского озера с использованием современного языка C sharp позволило добиться существенных улучшений в реализации моделирующих алгоритмов, предложенных Л. А. Руховцом и другими.

Библиографическая ссылка

Баклагин В. Н., Разработка программного продукта для реализации модели экосистемы Онежского озера // «Живые и биокосные системы». — 2013. — № 5; URL: http://www.jbks.ru/archive/issue-5/article-7.