Параллелизация операций решения систем алгебраических уравнений методом многомерной скалярной прогонки

Д.А. Вайнер, В.Д. Корнеев, Н.М. Покрышкина,  А.Ю. Слюняев, А.В. Танасейчук,  А.Г. Тарнавский , Г.А. Тарнавский (Новосибирск)

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