Решение задач оптимизационного анализа с использованием параллельной обработки данных с применением технологии MPI
Бондарев А.Е., Галактионов В.А., Михайлова Т.Н., Рыжова И.Г.
Институт прикладной математики им. М.В. Келдыша РАН bond@keldysh. ru, vlgal @gin.keldysh. ru
Аннотация. В данной работе рассматривается разработка подхода к оптимальному распараллеливанию алгоритма оптимизационного анализа. Процесс распараллеливания рассматривается с точки зрения таких критериев, как эффективность, простота реализации и инвариантность от разнообразных вариаций алгоритма, что в итоге должно обеспечивать получение надежного результата. На основании рассмотренных критериев описано построение интерфейса, позволяющего организацию многозадачного расчета в параллельном режиме с использованием технологии MPI для задач оптимизации. Приведены результаты тестовых расчетов.
Ключевые слова: оптимизационный анализ, параллельные вычисления, технология MPI
1 Введение
Современное развитие вычислительных средств, появление возможностей проведения параллельных вычислений и интенсивное развитие параллельных алгоритмов, методов и программных средств неуклонно ведут к изменению существующих приоритетов в задачах математического моделирования.
Существующие вычислительные мощности на сегодняшний день позволяют решать практически любую прямую задачу математического моделирования. В то же время нельзя не отметить тот факт, что во многих направлениях математического моделирования, как сугубо научного, так и прикладного плана, сложилась ситуация определенного перепроизводства расчетных мощностей. Иными словами, вычислительные возможности превышают количество задач, заслуживающих применения этих мощностей. В научной среде не стихают дискуссии на тему наиболее разумного и выгодного применения появившихся вычислительных возможностей и наиболее важных направлений исследований в этой области.
В этой связи особую актуальность приобретает концепция создания прикладного математического и программного обеспечения, ориентированного на широкие слои конечных пользователей супер-МВС, миссия которых состоит в массовом внедрении моделирования во всевозможные сферы человеческой деятельности.
В работе [Ильин, 2012], посвященной стратегии и тактике экстремального параллелизма, указывается, что на первый план среди других численных исследований выходят междисциплинарные и обратные задачи. Междисциплинарность означает необходимость одновременного расчета процессов различной природы. Обратные задачи предполагают наличие параметризованных исходных и определяющих параметров задачи, которые определяются посредством нахождения требуемого экстремума некоторого целевого функционала. Подобная постановка задачи требует многократного решения прямых задач и применения алгоритмов оптимизации.
До сих пор большинство современных постановок проблем численного моделирования относится к классу прямых задач, в которых решение вычисляется при полностью заданных граничных и начальных условиях. Согласно [Ильин, 2012], для решения конкретных практических научно-технических проблем наиболее важно решать обратные задачи, включающие формальные параметры, которые надо оптимизировать по условию минимизации некоторого целевого функционала при известных дополнительных линейных и/или нелинейных ограничениях на входные данные [Алифанов, 1988; Веек е1 а1., 1985]. Решение обратной задачи методами оптимизации производится с помощью направленного перебора прямых задач, количество которых может измеряться сотнями и тысячами. Ситуация может усложняться при наличии большого количества локальных экстремумов и необходимости поиска глобального экстремума.
Развитие параллельных вычислений позволяет не только преодолеть вычислительные трудности, возникающие при решении обратных задач, но и открывают новые, гораздо более заманчивые перспективы. Следует заметить, что обратная задача - это всего лишь одна конкретная задача с фиксированными определяющими параметрами. Современные параллельные вычисления позволяют находить решение для класса задач, или, другими словами, решать задачу оптимизационного анализа. Класс задач задается набором определяющих параметров задачи, в которые входят: геометрические параметры, характерные параметры (характеризующие физическую модель), вычислительные параметры (определяемые применяемым численным методом) и др. В задачах вычислительной механики жидкости и газа характерными параметрами задачи (параметрами подобия) являются такие величины как числа Маха, Эйлера, Фруда, Рейнольдса, Струхаля, характеризующие конкретную прямую задачу. При решении прямой задачи эти параметры, как правило, фиксированы. Также они фиксированы при решении обратной задачи. Решить задачу оптимизационного анализа - это значит решить обратную задачу во всех диапазонах возможного изменения определяющих параметров. Только тогда можно говорить о полученном решении для
класса задач. Очевидно, что при этом вычислительные трудности и затраты вырастают на порядки. Однако, благодаря интенсивному развитию вычислительных средств, именно решение задач оптимизационного анализа является основной перспективной целью применения параллельных вычислений и многопроцессорных вычислительных систем.
Решение задач оптимизационного анализа на сегодняшний день является одним из ключевых разделов прикладных вычислений.
В качестве примеров можно привести работы [Бондарев, 2009; Бондарев, 2011 ; Бондарев & Галактионов, 2012; Бондарев и др., 2013; Bondarev, 2013; Bondarev & Galaktionov,2013; Bondarev&Galaktionov,2014], посвященные различным аспектам решения задач оптимизационного анализа, в том числе, методам, алгоритмам и средствам интерпретации полученных результатов.
Задачи оптимизационного анализа обладают большими преимуществами при организации параллельных расчетов, так как предполагают массовое решение однотипных задач с разными входными параметрами. Естественно, при этом становятся актуальными вопросы построения простых и эффективных параллельных алгоритмов решения задач оптимизационного анализа.
Данная работа ставит своей целью описание выработки подхода к оптимальному распараллеливанию алгоритма оптимизационного анализа. Процесс распараллеливания рассматривается с точки зрения таких критериев, как эффективность, простота реализации и инвариантность от разнообразных вариаций алгоритма, что в итоге должно обеспечивать получение надежного результата. На основании рассмотренных критериев строится интерфейс, позволяющий организацию многозадачного расчета в параллельном режиме с использованием технологии MPI. Приведены результаты тестовых расчетов.
2 Общая постановка задачи оптимизационного анализа и алгоритма решения
Приведем постановку задачи оптимизационного анализа в наиболее общем виде. Согласно [Bondarev & Galaktionov, 2013] формальную общую постановку задачи оптимизационного анализа можно изложить следующим образом:
Предположим, что имеется математическая модель нестационарного процесса и надежный численный метод для решения этой модели. В этом случае мы можем решать прямую задачу численного моделирования нестационарного процесса. Допустим, что в моделируемом процессе происходит некое событие (явление, эффект). Численное решение F - F(x,xv...,xn) выбранной задачи формируется в процессе математического моделирования и определяется управляющим параметром х и конечным набором определяющих параметров задачи
(*р...,*„), где каждый определяющий параметр х{ имеет свой диапазон изменения х1 в [х*,х**].
Обозначим X = {х,х1,...,хп) и введем функционал события ФСР(Х)), который на решении задачи принимает, подобно логической переменной, два значения: 1 - если событие, интересующее исследователя, наступило (независимо от рода события) и 0 - если событие не наступило. Ф(Р(Х)) = 0- событие не наступило
(1.1) _
Ф(Р(Х)) = 1 - событие наступило.
Пусть х - значение управляющего параметра, при котором наступает изучаемое явление.
Тогда общую постановку задачи можно сформулировать следующим образом:
- найти тт /(Ах) для всех значений определяющих параметров
Ах
внутри диапазонов их изменения, т.е. \/хг е [х*,х**], где /(Ах) - функционал следующего вида
/(Ах) = 1-Ф^(Х)), Ах = х - х' (1.2)
Таким образом, наша задача формально состоит в минимизации функционала /(Ах) при помощи вариации управляющего параметра. А в реальности, варьируя Ах, мы должны с приемлемой точностью отыскать значение х , то есть то значение управляющего параметра, при котором событие наступает.
Решая одну обратную задачу, мы получаем одно значение х для управляющего параметра при фиксированных определяющих параметрах. Это решение одной конкретной задачи. Однако нашей целью является получение решения для целого класса задач. Класс задач определяется диапазонами изменения определяющих (характерных) параметров задачи.
Итоговая цель исследования состоит в том, чтобы построить зависимость х'(х13...,х„) для всех возможных значений определяющих параметров. Таким образом, если мы имеем в диапазоне разбиения каждого определяющего параметра М точек, то для того чтобы найти значения х управляющего параметра во всей многомерной области определяющих параметров, необходимо решить М" однотипных обратных задач. В результате решения этого набора задач находятся все точки в исследуемом пространстве определяющих параметров, где происходит событие.
Для того чтобы выразить общую постановку задачи оптимизационного анализа более строго с математической точки зрения, необходимо применить понятие многомерных пространств.
Рассматривая (Х,...,^) как набор базисных векторов, можно представить пространство определяющих параметров Цх,,...,*„), имеющее размерность п.
Тогда в общем случае задачу оптимизационного анализа можно сформулировать как нахождение в пространстве Ь всех подобластей где наблюдается изучаемое событие, т.е. Ф(£*) = 1.
Данная постановка задачи одновременно предполагает фильтрацию тех точек пространства определяющих параметров, где ожидаемое событие не наступает. Мы не можем гарантировать при выборе диапазона изменения определяющих параметров, что искомое событие наступит в каждой точке внутри выбранного диапазона. Поэтому, если для конкретной точки х„) пространства определяющих параметров для любых значений управляющего параметра х, событие не наступает, данная конкретная точка изымается из рассмотрения.
Исходя из того факта, что для решения общей задачи оптимизационного анализа, согласно [В опёаге у&Са1акИопо V ,2013], необходима организация массового численного решения однотипных обратных задач, различающихся лишь входными параметрами, строится алгоритм решения.
На рис. 1 представлена схема алгоритма решения задачи оптимизационного анализа.
Рис.1. Схема алгоритма решения задачи оптимизационного анализа
Данная схема построена на предположении, что решение обратной задачи для фиксированного набора определяющих параметров уже имеется. Теперь мы можем организовать массовое решение обратных задач для всех наборов определяющих параметров в диапазоне их изменения. В начале задается сеточное разбиение по каждому определяющему параметру, рассматриваемому как соответствующее
координатное направление в многомерном пространстве. В итоге получаем соответствующие наборы определяющих параметров, рассматриваемые как точки в многомерном пространстве. Далее организуется цикл по всем точкам, где в каждой точке решается обратная задача. По результатам работы данного цикла формируется итоговый многомерный массив результатов, содержащий искомую функциональную зависимость управляющего параметра от определяющих параметров класса задач, представленную в дискретном виде. Организация обработки, анализа и визуального представления итогового многомерного массива является отдельной проблемой. Действительно, полученный в результате подобного расчета массив результатов является многомерным, причем размерность его превышает число три. Таким образом, полученные данные ведут к необходимости организации анализа многомерного массива. Тема такого анализа, как численного, так и визуального, является весьма актуальной, но не входит в рамки данной работы.
3 Построение параллельного алгоритма решения задачи оптимизационного анализа
Основная задача данной работы заключается в наиболее оптимальном распараллеливании схемы алгоритма решения задачи оптимизационного анализа, представленной в последовательном варианте вычислений на рис. 1. На сегодняшний день существует огромное количество методов и подходов к организации параллельных вычислений. Большинство этих подходов и методов представлено в работах [Воеводин & Воеводин, 2002; Соболев, 2007]. Различные методы и подходы к распараллеливанию алгоритмов имеют свои собственные преимущества и недостатки, подробный анализ которых выходит за рамки настоящей работы. Тем не менее, актуальной остается задача выбора метода и технологий распараллеливания, наиболее простым, быстрым и эффективным способом обеспечивающих получение результатов.
Для осуществления такого выбора необходимо руководствоваться набором критериев, призванных обеспечивать получение надежного результата, т.е. результативность распараллеливания и последующих параллельных расчетов. К необходимому набору критериев, в первую очередь, следует отнести эффективность. Это подразумевает, что полученный в результате параллельный алгоритм должен делать в точности то же самое, что и последовательный, на порядки быстрее. Другим не менее важным критерием является простота построения параллельного алгоритма. Не является секретом, что многие методы и подходы организации параллельных расчетов представляются очень сложными с точки зрения программной реализации, что неявно подразумевает высочайшую квалификацию специалистов, использующих эти методы и подходы. А это, в свою очередь, резко снижает массовость и
доступность организации параллельных расчетов в научных исследованиях и инженерно-технических приложениях. Таким образом, простота построения и программной реализации алгоритма является необходимым условием. Третьим важнейшим критерием является инвариантность, т.е. независимость метода распараллеливания от конкретного распараллеливаемого алгоритма. Необходимость этого критерия очевидна. Если при каждой незначительной вариации основного алгоритма задачи необходимо менять алгоритм распараллеливания, вся программная система становится крайне неудобной в практическом использовании.
Рассмотрим общую схему последовательного варианта алгоритма решения задачи оптимизационного анализа, выделив наиболее интересные узлы для распараллеливания данного алгоритма римскими цифрами (Рис.1).
На предварительном этапе задается сеточное разбиение пространства определяющих параметров (ОП), формируя всевозможные фиксированные
наборы ОП (х1*,...,х„*). Далее в цикле по всем заданным наборам (х^,...,^*)
для каждого набора проводится решение обратной задачи (03).
Обратная задача для каждого набора решается путем вариации управляющего параметра х, вплоть до нахождения с заданной точностью значения х , т.е. наступления искомого события. В процессе вариации управляющего параметра х на каждом шаге решается прямая задача моделирования при заданном значении х. В результате работы алгоритма формируется многомерный массив результатов, представляющий собой дискретную зависимость х/(х1,...,х„). Далее к массиву результатов могут применяться методы обработки многомерных данных, рассматриваемые в следующем разделе.
Данный алгоритм в целом предполагает решение очень большого количества обратных задач численного моделирования Мп, (при задании М точек в диапазоне разбиения каждого определяющего параметра), каждая из которых предполагает, в свою очередь решение большого количества прямых задач. Это обстоятельство делает реализацию вышеизложенного алгоритма весьма затруднительной с точки зрения временных затрат. Естественно в данной ситуации применить параллельные вычисления, что и является нашей конечной целью.
Рассмотрим наиболее интересные узлы для распараллеливания данного алгоритма, выделенные на рис. 1 римскими цифрами. Будем оценивать пригодность данных узлов к распараллеливанию, прежде всего с точки зрения инвариантности или независимости от конкретного алгоритма, реализуемого в данном узле.
В первую очередь рассмотрим алгоритм решения прямой задачи математического моделирования (узел I) при заданном значении х.
Данный узел полностью зависит от конкретного алгоритма решения прямой задачи, а этот алгоритм может быть непригоден для распараллеливания. Так, например, при использовании конечно-разностной схем для численного решения прямой задачи могут быть выбраны явные или неявные схемы. Явные схемы при вычислении значения в точке используют данные сеточного шаблона только с предыдущего временного слоя, неявные схемы оперируют данными с различных временных слоев, включая тот, где находится вычисляемая точка. Известный парадокс заключается в следующем. Явные схемы идеально пригодны для распараллеливания, однако при измельчении сетки по пространству имеют ограничения на шаг по времени - он также уменьшается, что приводит к увеличению вычислительных и временных затрат. Неявные схемы не имеют подобных ограничений на шаг по времени, однако непригодны для распараллеливания. Именно такой вариант алгоритма (неявная конечно-разностная схема) использовался в работе [Вопёагеу & Оа1ак1юпоу, 2013] для конкретных расчетов. Разумеется, существуют паллиативные варианты: так, например, при решении многомерных задач можно применять методы расщепления схемы по пространственным переменным и рассчитывать направления по этим переменным параллельно. Это дает определенный выигрыш, однако в целом с точки зрения инвариантности алгоритм решения прямой задачи математического моделирования (узел I) не является оптимальным объектом для распараллеливания.
Второй узел - это организация решения обратной задачи для фиксированного набора ОП (узел II). Он сводится к поиску значения х с заданной точностью. Здесь решается оптимизационная задача и, аналогично предыдущему узлу, имеется зависимость от выбора конкретного алгоритма решения оптимизационной задачи.
Зато третий узел обладает естественной полной инвариантностью и здесь вне зависимости от алгоритмов возможна организация параллельных вычислений однотипных обратных задач (03) с разными входными данными, представляющими собой фиксированные наборы определяющих параметров (ОП) по принципу «один вариант ОП - один процессор» (Рис.2.).
Общая схема параллельного варианта решения задачи оптимизационного анализа представлена на рис.2. При реализации на многопроцессорной вычислительной системе она сводится к заданию разбиения по всем определяющим параметрам, формированию таким образом входных данных для однотипных обратных задач, заданию числа процессоров и раздаче заданий каждому процессору со своими входными параметрами. По завершении работы всех процессоров проводится сбор данных и формирование массива результатов для последующей обработки.
В силу того, что процессы решения однотипных обратных задач происходят фактически без обменов информацией между процессорами, распараллеливание здесь сводится к организации интерфейса, управляющего распределением вариантов по процессорам и сбором данных в единый массив результатов.
Рис.2. Параллельный вариант решения задачи оптимизационного анализа
Данный вариант является наиболее легким в программной реализации и позволяет ускорить расчет во столько раз, сколько процессоров может быть выделено одновременно. Идеология параллельных вычислений в данном случае принимает форму «многозадачного параллелизма». Таким образом, организация решения рассматриваемой оптимизационной задачи в параллельном режиме с помощью вышеописанного подхода позволяет быстро и эффективно получить дискретную зависимость управляющего параметра от определяющих параметров задачи jt'(jt,,...,jcn) в виде
многомерного массива.
Данный вариант распараллеливания алгоритма решения задачи оптимизационного анализа является эффективным, простым в реализации и полностью инвариантным относительно внутренних алгоритмов, так как алгоритмы решения прямой и обратной задач не затрагиваются при распараллеливании. Следовательно, данный вариант полностью удовлетворяет необходимым требованиям получения надежного результата, перечисленным выше. Отсюда можно сделать следующий вывод: из всех возможных методов и подходов параллелизации алгоритма предложенный вариант может быть наиболее легко и просто реализован с помощью технологии MPI (Message-Passing Interface) [Pacheco&Ming,2001; Антонов, 2004].
4 Практические результаты
Данный подход был применен к конкретной практической задаче [Вопёагеу & Оа1акйопоу, 2013]. Рассматриваемая здесь задача оптимизационного анализа основана на массовом решении обратных задач при задании различных наборов определяющих параметров. В свою очередь, решение каждой обратной задачи основано на многократном решении прямой задачи математического моделирования о течении вязких теплопроводных сред в каналах. Согласно [Вопёагеу & Са1акйопоу, 2013], в качестве обратной задачи рассматривалась задача нахождения оптимального значения весового коэффициента применяемой гибридной разностной схемы. В качестве варьируемых определяющих (характерных) класс задач параметров при решении задачи оптимизационного анализа выбирались характерные числа Маха и Прандтля. В качестве математической модели прямой задачи использовалась полной системы нестационарных уравнений Навье-Стокса для движения сплошной среды с учетом эффектов вязкости, теплопроводности и сжимаемости.
При проведении тестовых расчетов конкретной практической задачи применялась гибридная неявная конечно-разностная схема, подробно представленная в [Бондарев и др., 2013]. Данная конечно-разностная схема на каждом направлении обладает вторым порядком аппроксимации по времени и пространству с добавочным членом, выполняющим функции искусственной вязкости.
В качестве прямой задачи моделирования была использована задача математического моделирования течения вязких теплопроводных сред в каналах с фиксированными граничными условиями. Тестирование расчетов прямой задачи [Вопс1агеу & Оа1акйопоу, 2013] показало достаточно хорошее согласование с известными качественными и количественными параметрами подобных течений. В качестве обратной задачи была использована задача оптимизации вычислительных свойств гибридной неявной конечно-разностной схемы. Необходимо было найти минимальный весовой коэффициент разностной схемы, не допускающий возникновения нежелательных осцилляций. Реализации обратной связи при решении обратной задачи проводилась с помощью анализатора решения, основанного на анализе и контроле количества локальных экстремумов в полученном численном решении.
В качестве теста в режиме последовательных вычислений проводились расчеты задачи оптимизационного анализа в варианте с двумя выбранными определяющими параметрами характерным числом Маха прямой задачи и характерным числом Прандтля Рг. В качестве диапазонов изменения были выбраны 2.0<Моо <3.0 и 0.72 <Рг< 1.0. В качестве сеточного разбиения для числа Маха были взяты 5 точек, а для числа Прандтля - 4 точки. Таким образом, тестовый вариант потребовал
проведения решения 20 обратных задач. Данные тестовые расчеты были проведены в последовательном режиме вычислений, что потребовало значительных временных затрат. Для реализации аналогичных расчетов в параллельном режиме в рамках настоящей работы были использованы вычислительные возможности многопроцессорного гибридного вычислительного кластера К-100, разработанного в Институте прикладной математики им. М.В. Келдыша РАН.
Проведенные в параллельном режиме расчеты тестов позволили получить искомый результат в виде четких ограничений для весового коэффициента разностной схемы для широкого диапазона чисел и Рг в таком классе задач как вязкие теплопроводные течения в канале. Решение было представлено в виде численного массива, представляющего собой решение задачи оптимизационного анализа и пригодного для визуального представления. В результате проведения тестовых расчетов был получен итоговый численный массив , представляющий зависимость управляющего параметра от определяющих параметров рассматриваемой задачи Б к(М„,Рг)в дискретной форме.
Данный массив представлен на рис.3 в виде изолиний. Этот же массив представлен на рис.4 в виде трехмерной поверхности. Результаты показывают, что с точки зрения качественного решения, в результате расчетов в параллельном режиме решения задачи оптимизационного анализа удалось получить искомую зависимость.
Рис.3. Массив результатов в виде изолиний.
Применение параллельного подхода к построению алгоритма решения задачи оптимизационного анализа с пом помощью технологии MPI позволило получить существенный выигрыш с точки зрения временных затрат на проведение вычислений. Временные затраты представлены в сравнительной таблице 1.
По результатам проведенных в параллельном режиме вычислений можно утверждать, что в результате работы построен прототип параллельного алгоритма в виде надстройки для организации многозадачного режима, удовлетворяющий перечисленным выше критериям результативности
Рис.4. Массив результатов в виде трехмерной поверхности.
Данный подход построения параллельного алгоритма с помощью технологии MPI достаточно эффективен, так как позволяет получать искомое численное решение. Вышеописанный подход является простейшим вариантом распараллеливания, доступным для массового пользователя. Также следует отметить, что предложенный подход является полностью инвариантным относительно как алгоритма и численного метода решения прямой задачи, так и алгоритма оптимизации решения обратной задачи. Следовательно, предложенный подход может быть применен для организации параллельных вычислений любой задачи оптимизационного анализа, как исследовательского, так и практического назначения.
Таблица 1.
Способ организации расчетов Временные затраты
Расчеты на персональном компьютере в последовательном режиме вычислений Около 19 часов
Расчеты на многопроцессорной вычислительной системе К-100 в последовательном режиме вычислений 47 минут 17секунд
Расчеты на многопроцессорной вычислительной системе К-100 в параллельном режиме вычислений 2 минуты 22 секунды
Удовлетворяя всем критериям обеспечения надежности результата, данный простой прототип может служить основой для организации массовых параллельных расчетов практических задач оптимизационного анализа.
Необходимо также отметить, что данный вариант программного средства является простейшим прототипом. В целях дальнейшего развития данного прототипа с целью удобства практического применения пользователем необходима разработка удобного интерфейса, позволяющего пользователю подставлять программу решения оптимизационной задачи, задавать определяющие параметры и диапазоны их изменения, определять управляющий параметр.
Заключение
В данной работе описана выработка подхода к оптимальному распараллеливанию алгоритма решения задачи оптимизационного анализа. Процесс распараллеливания рассмотрен с точки зрения таких критериев, как эффективность, простота реализации и инвариантность от разнообразных вариаций алгоритма, что в итоге должно обеспечивать получение надежного результата.
При реализации на многопроцессорной вычислительной системе предложенный поход сводится к заданию разбиения по всем определяющим параметрам, формированию входных данных для однотипных обратных задач, заданию числа процессоров и раздаче заданий каждому узлу со своими входными параметрами. По завершении работы всех процессоров проводится сбор данных и формирование массива результатов для последующей обработки.
В силу того, что процессы решения однотипных обратных задач происходят фактически без обменов информацией между процессорами, распараллеливание здесь сводится к организации интерфейса, управляющего распределением вариантов по процессорам и сбором данных в единый массив результатов. На основании рассмотренных критериев построен интерфейс, позволяющий организацию многозадачного расчета в параллельном режиме с использованием технологии MPI. Приведены результаты тестовых расчетов.
Таким образом, организация решения рассматриваемой оптимизационной задачи в параллельном режиме с помощью вышеописанного подхода позволяет быстро и эффективно получить дискретную зависимость управляющего параметра от определяющих параметров задачи в виде многомерного массива, пригодного для дальнейшего анализа, обработки и визуализации.
Благодарности
Данная работа выполнена при частичной поддержке РФФИ (проекты 13-01-00367а и 14-0100769а).
Список литературы
[Алифанов, 1988] Алифанов О.М. Обратные задачи в теплопередаче. М, Машиностроение, 1988.
[Антонов, 2004] Антонов А.С. Параллельное программирование с использованием технологии MPI. -М.: Изд.МГУ. - 2004. - 72 с.
[Бондарев, 2009] Бондарев А.Е. Оптимизация гибридной разностной схемы с учетом влияния вязкости и турбулентности на основе решения обратных задач // Сборник трудов конференции «Высокопроизводительные вычисления в задачах механики и физики», Москва, 2009.
[Бондарев, 2011] Бондарев А.Е. Оптимизационный анализ нестационарных пространственно-временных структур с применением методов визуализации / Научная визуализация, М., 2011, Т.З, № 2, с.1-11.
[Бондарев & Галактионов, 2012] Бондарев А.Е., Галактионов В.А. Анализ многомерных данных в задачах многопараметрической оптимизации с применением методов визуализации / Научная визуализация. Т.4, № 2, с.1-13, 2012, ISSN 2079-3537.
[Бондарев и др., 2013] Бондарев А.Е., Бондаренко А.В., Галактионов В.А., Михайлова Т.Н., Рыжова И.Г. Разработка программного комплекса BURGERS2 для оптимизации и визуализации вычислительных свойств гибридных разностных схем / Научная визуализация. Т.5, № 1, с. 26-37, 2013.
[Воеводин & Воеводин, 2002] В.В.Воеводин, Вл.В.Воеводин "Параллельные вычисления" - СПб.: БХВ-Петербург, 2002. - 608 с.
[Ильин, 2012] Ильин В.П. Стратегии и тактики экстремального параллелизма / Наука в Сибири,- 09.02.2012. - № 6. - http://www.sbras.ru/HBC/article.phtml?nid=622&id=ll
[Соболев, 2007] Соболев С.И. Использование распределенных компьютерных ресурсов для решения вычислительно сложных задач // Системы управления и информационные технологии. 2007, №1.3 (27), с. 391-395.
[Beck et al., 1985] Beck J.V., Blackwell В., St.Clair С. Inverse Heat Conduction. Ш-posed Problems. John Wiley&Sons, USA, N.Y., 1985.
[Bondarev, 2013] Bondarev A.E. Analysis of Space-Time Flow Structures by Optimization and Visualization Methods // Transactions on Computational Science XIX, LNCS 7870, pp. 158-168. Springer, Heidelberg (2013).
[Bondarev & Galaktionov, 2013] Bondarev A.E, Galaktionov V.A. Parametric Optimizing Analysis of Unsteady Structures and Visualization of Multidimensional Data // International Journal of Modeling, Simulation and Scientific Computing, 2013, V.04, N suppOl, 13 p., DOI 10.1142/S1793962313410043
[Bondarev & Galaktionov, 2014] Bondarev A.E., Galaktionov V.A. Current Visualization Trends in CFD Problems / Applied Mathematical Sciences, Vol.8, 2014, N 28, pp.1357-1368.
[Pacheco&Ming,2001] Pacheco P., Ming W. MPI User's Guide in Fortran, http://parallel.ru/ftp/mpi/guide/MPI ug in FORTRAN.zip