<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Новые подходы к построению высокоэффективных парал- лельных алгоритмов для численного решения краевых задач на структурированных сетках*</article-title>
      </title-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>93</fpage>
      <lpage>104</lpage>
      <abstract>
        <p>Рассмотрены новые подходы к построению высокоэффективных параллельных алгоритмов для численного решения краевых задач. В качестве базового алгоритма выбрана Универсальная Многосеточная Технология - односеточный вариант метода Зейделя, позволяющий решать широкий класс прикладных задач с вычислительными усилиями близкими к оптимальным. Исследованы два подхода к распараллеливанию вычислений, основанных на комбинированном и чисто геометрическом построении предобуславливателя. Показаны преимущества данных подходов по сравнению с традиционными методами построения параллельных алгоритмов и получены оценки эффективности параллелизма. Ключевые слова: параллельные вычисления, краевые задачи, многосеточные методы.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>x 1
x 2
x 3
x 4
x 5
x 6
x 7
x 8
x 9
ентов высокого порядка [1]. Именно решение подобных СЛАУ требует наибольших
вычислительных усилий по сравнению с остальными этапами вычислительного эксперимента.</p>
      <p>
        Простейший способ построения параллельных алгоритмов основан на блочных
предобуславливателях. Перепишем задачу (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) в матричной форме
полагая, что граничные условия включены в матрицу коэффициентов , а есть вектор
неизвестных. Если матрица коэффициентов имеет блочную структуру, то сформируем матрицу
, диагональные блоки которой образованы диагональными блокам матрицы . Тогда
итерационный метод решения СЛАУ принимает вид
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
Если матрица состоит из блоков, то решение (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) сводится к решению независимых
СЛАУ меньшей размерности, которое может быть получено при помощи любого
итерационного метода.
      </p>
      <p>Положим, что используемая многопроцессорная система состоит из достаточного
количества отдельных вычислительных устройств (процессоров), соединенных между собой
некоторой коммутационной сетью. Далее не будут рассматриваться существующие или
перспективные архитектуры многопроцессорных систем и способы обменов данными между отдельными
процессорами, а также задержки связанные с коммуникационной сетью. Основной целью
данной работы является формулировка новых подходов к построению высокоэффективных
параллельных алгоритмов для численного решения краевых задач на структурированных сетках. Для
решения данной задачи необходимо переформулировать задачу об итерационном решении
СЛАУ таким образом, чтобы выделить достаточно большое количество независимых подзадач,
которые можно решать параллельно на многопроцессорной системе с минимальными
обменами данных.</p>
      <p>
        Реализация параллельного алгоритма для решения СЛАУ (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) с блочно-диагональной
матрицей на процессорах осуществляется следующим образом: сначала выполняется одна
итерация (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), затем выполняется обмен данными между процессорами.
      </p>
      <p>
        В общем случае матрицу можно построить алгебраическими методами (т.е. без
привлечения информации о вычислительной сетке), но применительно к задаче (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) построение
матрицы означает разделение сетки на подсетки с «перехлестом». На рис. 2 показана
последовательность действий в случае .
Рис. 2. Распараллеливание итераций (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ): А) параллельное решение двух независимых СЛАУ меньшей
размерности, Б) обмен данными.
      </p>
      <p>
        Если исходная СЛАУ состоит из уравнений, то количество блоков на диагонали
матрицу лежит в пределах от 2 до и итерационный метод (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) может быть реализован на
процессорах. Случай соответствует методу Якоби с точечным упорядочением
неизвестных. Применительно к разностной краевой задаче (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) итерации метода Якоби
принимают вид
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
где n есть номер итерации метода Якоби. Если задано некоторое начальное приближение к
решению при , то, согласно (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ), все значения можно вычислить независимо друг от
друга, поэтому метод Якоби иногда рассматривают в качестве прототипа параллельного
алгоритма [2].
      </p>
      <p>
        Следуя [2], введем следующие меры параллелизма:
Определение 1. Ускорением параллельного алгоритма называется отношение времени
выполнения алгоритма на одном процессоре к времени выполнения алгоритма в системе из
процессоров
Определение 2. Эффективностью параллельного алгоритма называется величина
На первый взгляд может показаться, что для метода Якоби ожидается и
(полный параллелизм), однако в действительности этого не происходит. Если
используется достаточно большое количество процессоров , то возрастают издержки, связанные с
обменами данных. Кроме того, скорость сходимости последовательного метода Якоби
невелика. Как следует из (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) скорость распространения информации о граничных условиях внутрь
области составит шаг сетки за одну итерацию при точечном упорядочении неизвестных, т.е.
количество итераций метода Якоби, необходимых для решения разностной краевой задачи (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ),
должно превышать (рис. 3). Поскольку для выполнения одной итерации необходимо
выполнить арифметических операций, то общий объем вычислительной работы,
необходимой для получения численного решения, будет более арифметических операций.
Поэтому даже в параллельном исполнении метод Якоби требует чересчур большого объема
вычислений из-за медленной скорости сходимости последовательного алгоритма. Метод Якоби часто
применяют в параллельных алгоритмах для решения начально-краевых задач, если для их
аппроксимации использована явная разностная схема. Данный эффект, связанный с ухудшением
качества предобуславливания при увеличении количества процессоров, характерен и для
других итерационных методов.
Чем сложнее последовательный алгоритм по своей конструкции, тем сложнее построить
его эффективный параллельный вариант. Поэтому настоящим прорывом можно назвать
многосеточный метод Р.П. Федоренко, в котором используется особенность сходимости простейших
итерационных методов (типа Якоби и Зейделя) для достижения оптимальной (или
неулучшаемой) скорости сходимости последовательного алгоритма [3]. Р.П. Федоренко показал, что
скорость сходимости отдельных итерационных методов не зависит от шага сетки на первых
итерациях. Итерационные методы, обладающие подобным свойством, получили название
сглаживатели. Поэтому если решать разностную краевую задачу на нескольких сетках, причем на
каждой выполнять несколько сглаживающих итераций, то возможно достичь оптимальной
скорости сходимости последовательного алгоритма, т.е. решить разностную краевую задачу
выполнив всего арифметических операций, где N есть количество узлов сетки. На рис. 4
показана самая мелкая сетка и грубые сетки и построенные удвоением шага. Верхний
индекс указывает на принадлежность к сетке. Многосеточные методы подробно описаны в [4].
Рис. 4. Мелкая
и грубые ( и
) сетки многосеточного метода.
Многосеточные методы сразу позволили сформулировать дополнительные меры
параллелизма алгоритмов, предназначенных для решения прикладных задач [2]:
Определение 3. Ускорением параллельного алгоритма по сравнению с наилучшим
последовательным алгоритмом называется отношение
где есть время выполнения быстрейшего последовательного алгоритма на одном
процессоре и есть время выполнения параллельного алгоритма на системе из процессоров.
Определение 4. Эффективностью параллельного алгоритма по отношению к наилучшему
последовательному алгоритму называется величина
      </p>
      <p>Определения 1 и 2 характеризуют ускорение и эффективность параллельного алгоритма и
представляют теоретический интерес, в то время как определения 3 и 4 позволяют оценить
уменьшение времени счета параллельного алгоритма по сравнению с наилучшим
последовательным, т.е. являются теми мерами параллелизма, которые представляют при решении
практических задач. За можно выбрать время выполнения наиболее распространенного
варианта многосеточных методов V-цикла [4].</p>
      <p>Однако и многосеточные методы не позволили построить эффективный параллельный
алгоритм для численного решения краевых задач. Как следует из рис. 4, количество узлов на
грубых сетках уменьшается со скоростью геометрической прогрессии, поэтому по мере перехода к
более грубым сеткам возрастают издержки, связанные с обменом данными. Количество узлов
на самых грубых сетках может быть меньше количества используемых процессоров, поэтому
часть процессоров будет неизбежно простаивать при выполнении сглаживающих итераций на
самых грубых сетках. Все это приводит к снижению эффективности параллельного
многосеточного алгоритма.</p>
      <p>Оптимальная скорость сходимости классических многосеточных методов обусловлена
оптимальной адаптацией их компонент к решаемой задаче. Долгое время не удавалось построить
универсальный (робастный) многосеточный алгоритм, предназначенный для решения
широкого класса (не)линейных краевых задач. В 90-е годы такой алгоритм был разработан и получил
название Универсальная Многосеточная Технология (УМТ) [5]. В основе УМТ лежит
применение основного многосеточного принципа (об аппроксимации длинноволновых компонент
ошибки на грубых сетках) в односеточных алгоритмах. Использование только одной сетки для
отыскания поправки позволило минимизировать количество проблемно-зависимых компонент
технологии, снизить требования к выбору сглаживающей процедуры и избежать простоя
процессоров в параллельном исполнении. Как следствие скорость сходимости УМТ лишь близка к
оптимальной, т.е. для решения разностных краевых задач необходимо выполнять
арифметических операций, где есть количество узлов сетки. Для наглядности и простоты
описания УМТ используют традиционную терминологию, принятую в многосеточных методах,
однако этого можно избежать, поскольку УМТ является односеточным алгоритмом [5].</p>
      <p>
        Отличительной особенностью параллельной УМТ является построение матрицы в (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) не
только алгебраическими (на самой мелкой сетке), но и геометрическими (на грубых сетках)
методами [6,7]. На грубых сетках удалось построить блочно-диагональный предобуславливатель
без «перехлеста» сетки, т.е. достичь почти полного параллелизма.
      </p>
      <p>Целью данной статьи является описание, теоретическое обоснование и экспериментальная
иллюстрация преимуществ параллельной УМТ по сравнению с другими методами построения
параллельных алгоритмов для численного решения краевых задач на структурированных
сетках.
2. Основные компоненты УМТ</p>
      <p>В УМТ самая мелкая сетка состоит из двух множеств точек
рые, если сетка является равномерной, заданы соотношениями:
и</p>
      <p>,
котоТочки и могут быть как узлами сетки, так и гранями контрольных объемов при аппроксимации
краевой задачи интегро-интерполяционным методом [8]. Сетка , построенная при ,
показана на рис. 5.</p>
      <p>
        G f(0;1)
x f1
x f2
x f3
x f4
x f5
x f6
x f7
x f8
G v(0;1) x v
1
x v
2
x v
3
x v
4
x v
5
x v
6
x v
7
x v
8
x v
9
Рис. 5. Вычислительная сетка для аппроксимации интегро-интерполяционным методом.
Грубые сетки в УМТ строят не удвоением шага, а утроением, как показано на рис. 6. При
этом грубые сетки , и не имеют общих узлов, поэтому сглаживающие итерации можно
проводить параллельно вне зависимости от используемого итерационного метода. Самая
мелкая сетка образует нулевой сеточный уровень, а три грубые сетки , и образуют
первый сеточный уровень. Фактически при помощи грубых сеток , и можно построить
блочный предобуславливатель в (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), но при этом отсутствует «перехлест» сетки,
замедляющий скорость сходимости итерационных методов. Если быть точным, то в УМТ все
вычисления проводят на исходной сетке, а термин «сеточный уровень» определяет лишь упорядочение
неизвестных и величину погрешности аппроксимации [9].
      </p>
      <p>
        Процесс построения еще более грубых сеток осуществляется рекуррентным образом,
полученная таким образом иерархия сеток получила название многосеточной структуры (рис. 7).
Самые грубые сетки состоят из нескольких узлов и образуют уровень .
Аппроксимация краевых задач на многосеточной структуре осуществляется при помощи
интегро-интерполяционного метода, результирующая СЛАУ имеет вид (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) с блочно-диагональным
предобуславливателем W. Количество блоков на главной диагонали матрицы составляет ,
где есть размерность задачи, а есть номер сеточного уровня. Поэтому
количество процессоров для параллельной УМТ должно составить , где есть
номер сеточного уровня, начиная с которого источником параллелизма является многосеточная
структура. В дальнейшем параметр будет называться глубиной распараллеливания [9].
3. Параллельная УМТ
      </p>
      <p>Рассмотрим параллельную УМТ с (первая глубина), т.е. в трехмерном случае
необходимо процессоров. На уровнях источником параллелизма является
многосеточная структура (т.е. предобуславливающую матрицу строят геометрическим методом), а на
уровнях (в данном случае это самая мелкая сетка) предобуславливающую матрицу строят
алгебраическим методом.</p>
      <p>Распределение сеток первого уровня и их подсеток среди процессоров и схема
распараллеливания вычислений при показана на рис. 8 и 9. В этом случае исходная задача
естественным образом распадается на 27 независимых задач, почти одинакового размера, которые
могут быть решены параллельно без обмена данными. Почти одинаковый размер задач
позволяет добиться почти равномерной загрузки процессоров. Более того, на сетках уровней
возможно проведение дополнительных многосеточных итераций, который
позволят еще уменьшить объем пересылаемых данных по сравнению с объемом вычислительной
работы.</p>
      <p>При выполнении сглаживающих итераций на самой мелкой сетке ( ) необходимо
искусственно сгруппировать неизвестные в 27 блоков для построения блочно-диагонального
предобуславливателя . Другими словами, на самой мелкой сетке матрицу можно
построить алгебраическими методами. Данное обстоятельство приводит к необходимости
использования следующих мер параллелизма:
Самая мелкая сетка</p>
      <p>G 10
x f1 x f2 x f3 x4f x f5 x f6 x f7 x f8 x f9</p>
      <p>G 10 x v1 x v2 x v3 x 4v x v5 x v6 x v7 x v8 x v9 x v10
G 11
Определение 5. Ускорением параллельного сглаживания на сетках уровня l по отношению к
последовательному сглаживанию на тех же сетках называется величина
где есть время выполнения последовательного сглаживания (и оператора перехода) на
одном процессоре, а – время выполнения параллельного сглаживания (и оператора
перехода) на системе из процессоров.
Определение 6. Эффективностью параллельного сглаживания на сетках уровня по
отношению к последовательному сглаживанию на тех же сетках называется величина
Передача данных
Теоретическая оценка ускорения и эффективности параллельной УМТ может быть
получена при допущении, что на всех уровнях выполнено одинаковое количество сглаживающих
итераций, а на грубых сетках ( ) УМТ обладает полным параллелизмом. Из определений 1 и 2
непосредственно следует, что для параллелизма первой глубины ( ) справедливо
Из полученной оценки следует, что эффективность параллельной УМТ зависит исключительно
от эффективности параллельных сглаживающих итераций на самой мелкой сетке ( ), т.е. от
совершенства предобуславливателя , построенного алгебраическими методами. При этом
итоговая эффективность параллельной УМТ будет больше, чем эффективность параллельных
сглаживающих итераций на самой мелкой сетке.</p>
      <p>
        Самая мелкая сетка
1
2
3
4
5
1
2
3
4
5
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
Кроме того, увеличение количества узлов сетки приводит к повышению эффективности
параллельной УМТ: .
      </p>
      <p>Несколько иначе выглядят характеристики УМТ при использовании мер параллелизма,
данных в определениях 3 и 4. Сравнение времени счета с последовательным V-циклом
приводит к следующей оценке
(5)
Поскольку , то при и , т.е. проигрыш
во времени счета последовательному V-циклу будет возрастать с увеличением количества
узлов.</p>
      <p>
        Для вычислительного эксперимента воспользуемся первой краевой задачей для
трехмерного уравнения Пуассона в единичном кубе, которая имеет точное решение .
Вычислительная сетка состоит из 2453 = 14 706 125 узлов (L+=3). Распараллеливание
многосеточных итераций УМТ осуществлено при помощи технологии OpenMP с привлечением 27 ядер.
На каждой сетке выполнены четыре сглаживающие итерации, на сетках уровней
выполнены две многосеточные итерации . Согласно результатам вычислительного
эксперимента эффективность распараллеливания сглаживающей процедуры на самой мелкой сетке и на
сетках уровней составила и соответственно. Эффективность
параллельной УМТ составила 0.92, в то же время, согласно оценке (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ), получим и
. С другой стороны, если сравнивать с последовательным V-циклом при одинаковом
количестве многосеточных итераций, то эффективность параллельной УМТ составит 0.112, в то
время как согласно оценке (5) . Таким образом, время решения модельной краевой
задачи для уравнения Пуассона при помощи параллельной УМТ с привлечением 27
процессоров оказывается в три раза меньше, чем при помощи последовательного V-цикла.
      </p>
      <p>Таким образом, построение предобуславливателя геометрическими методами на грубых
сетках и алгебраическими на мелких позволяет построить достаточно эффективный
параллельный алгоритм для численного решения задач на структурированных сетках. Распараллеливание
вычислений на грубых сетках не зависит от выбора сглаживающей процедуры.
4. Вычислительный эксперимент</p>
      <p>
        Очевидные преимущества построения предобуславливателя геометрическими методами
можно использовать в другом подходе к построению параллельной УМТ, основанном на
редукции к независимым задачам. Положим, что краевая задача (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) решена на грубых сетках ,
и и разностные решения сходится к решению задачи (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) со вторым порядком, т.е.
Таким образом, решение вместо одной разностной задачи на сетке трех независимых задач
на грубых сетках , и приводит к потере одной значащей цифры. Нетрудно видеть, что
решение девяти независимых задач на сетках второго уровня приведет к потере еще одной
значащей цифры т.д. Таким образом, возможна редукция исходной разностной задачи к
совокупности , независимых задач меньшего размера. С одной стороны, эта
редукция позволяет практически полностью распаллеливать вычисления, причем независимо от
решаемых задач. С другой стороны, появляется возможность последовательно решать
совокупность задач меньшего размера, даже если исходная задача не размещается в памяти
компьютера. Потерю точности при редукции исходной разностной задачи можно компенсировать
применением более точных аппроксимаций на грубых сетках.
      </p>
      <p>В качестве примера редукции исходной разностной задачи к совокупности независимых
задач меньшей размерности, рассмотрим уравнение Пуассона
в единичном кубе. Положим, что точное решение имеет вид
которое однозначно определяет правую часть f (x, y ,z) и однородные граничные условия
Дирихле. Параметр предназначен для иллюстрации влияния погрешности аппроксимации
производных на точность численного решения. Поведение функции при различных
значениях показаны на рис. 10.</p>
      <p>Для численного решения первой краевой задачи для уравнения Пуассона построена
равномерная сетка 451×451×451, которая порождает пятиуровневую многосеточную структуру. Для
аппроксимации уравнения Пуассона использована схема шестого порядка аппроксимации,
основанная на аппроксимациях Паде. Однако в вычислительном эксперименте вместо разностной
краевой задачи на сетке 451×451×451 решены 729 разностных задач на сетках ≈ 50×50×50.
Поскольку аналитическое решение краевой задачи известно, то погрешность численного решения
определим как
где
и</p>
      <p>есть точное и численное решение соответственно. В качестве
сглаживателя использован метод Зейделя с блочным упорядочением неизвестных, на каждой сетке
выполнено три сглаживающие итерации, всего выполнено двадцать многосеточных итераций.
Коррекция решения проводилась после пяти многосеточных итераций. Вычисления
производились на системе с общей памятью, включающей 4 процессора AMD Opteron 6176 и объемом
RAM 128 Gb.</p>
      <p>Рис. 10. Поведение функции
при различных значениях k.</p>
      <p>Результаты вычислительного эксперимента показаны на рис. 11. При бóльших значениях
параметра наблюдается рост погрешности численного решения, связанный с увеличением
абсолютных величин частных производных, входящих в главный член погрешности
аппроксимации. Редукция приводит к уменьшению времени счета приблизительно в
раз, где есть номер сеточного уровня с самыми мелкими сетками,
используемый для отыскания поправки в многосеточных итерациях. Оценка минимальной
эффективности параллелизма в данном случае основана на предположении, что время
выполнения сглаживающих итераций пропорционально количеству узлов. Поскольку общее количество
узлов сеток одного уровня есть , , то время выполнения сглаживающих
итераций в последовательном алгоритме есть
где есть коэффициент пропорциональности. Уровень l* состоит из сеток, имеющих
разное количество узлов, что является причиной уменьшения эффектности параллелизма.</p>
      <p>Рис. 11. Зависимость погрешности численного решения при различных значениях k.
Одна из сеток уровня</p>
      <p>имеет максимальное количество узлов, которое можно оценить как
Поэтому время выполнения независимых задач на процессорах будет различным.
Максимальное время выполнения сглаживающих итераций в параллельной УМТ ожидается на
той сетке уровня , которая состоит из наибольшего количества узлов, и составит
откуда нетрудно получить оценку минимальной эффективности параллелизма, основанного на
редукции к независимым задачам
В рассмотренном случае
,</p>
      <p>, следует ожидать, что E &gt; Emin=90%.
5. Выводы
Литература</p>
      <p>Если вычислительная сетка является структурированной, то возможно построить метод
численного решения широкого класса прикладных задач, который будет высокоэффективен не
только в последовательном, но и в многопроцессорном исполнении. Использование топологии
вычислительной сетки позволяет строить предобуславливатель геометрическими методами,
которые существенно превосходят алгебраические методы по возможности эффективного
распараллеливания вычислений.
8. Самарский А.А. Теория разностных схем: Учеб. пособие. М.: Наука. Физматлит, 1983.</p>
      <p>616 с.
9. Мартыненко С.И. Многосеточная технология: теория и приложения. М.: ФИЗМАТЛИТ,
2015. 208 с.
New approaches for construction of highly efficient parallel
algorithms for numerical solution of the boundary value problems on
structured grids</p>
      <p>V.M. Volokhov, S.I. Martynenko, P.D. Toktaliev, L.S Yanovskiy
The Institute of Problems of Chemical Physics of the Russian Academy of Sciences
New approaches for development of high efficient parallel algorithms for numerical solving
boundary value problems have been considered. Robust Multigrid Technique (single grid
variant of Seidel method for solving a large class of applied problems with close-to-optimal
computational efforts) is taken as a basic algorithm. Two approaches for parallelisation of
computations based on combined and purely geometric preconditioning have been studied.
Advantages of these approaches over traditional methods of constructing parallel
algorithms and estimations of parallelism efficiency are given.</p>
      <p>Keywords: parallel computing, boundary value problems, multigrid methods.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Samarsky</surname>
            <given-names>A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gulin</surname>
            <given-names>A.V. Numerical methods. M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Nauka</surname>
          </string-name>
          ,
          <year>1989</year>
          . 432 p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ortega</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Introduction to parallel and vector methods of solving linear systems</article-title>
          . M: Mir,
          <year>1991</year>
          . 367 p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Fedorenko</surname>
            <given-names>R.P.</given-names>
          </string-name>
          <article-title>The speed of convergence of one iterative process // USSR</article-title>
          . J.
          <source>Comput. Math. and Math. Phys. 4</source>
          (
          <issue>1964</issue>
          ), no.
          <issue>3</issue>
          , pp.
          <fpage>227</fpage>
          -
          <lpage>235</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Trottenberg</surname>
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oosterlee</surname>
            <given-names>C.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schüller</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Multigrid</surname>
          </string-name>
          . L:Academic Press,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Martynenko S.I.</surname>
          </string-name>
          <article-title>Robust multigrid technique for solving partial differential equations on structured grids // Numerical Methods</article-title>
          and Programming,
          <year>2000</year>
          . Vol.
          <volume>1</volume>
          ,
          <issue>sec</issue>
          . 1. pp.
          <fpage>85</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Martynenko S.I.</surname>
          </string-name>
          <article-title>Parallelization of the robust multigrid technique // Numerical Methods</article-title>
          and Programming,
          <year>2003</year>
          . Vol.
          <volume>4</volume>
          ,
          <issue>sec</issue>
          . 1. pp.
          <fpage>45</fpage>
          -
          <lpage>51</lpage>
          .
          <article-title>(in Russian) Martynenko S. I. Estimations of parallezation efficiency of robust multigrid technique</article-title>
          // Herald of the Baumann Moscow State Technical University, Natural Sciences,
          <year>2011</year>
          . №. 4. pp.
          <fpage>63</fpage>
          -
          <lpage>80</lpage>
          .
          <article-title>(in Russian) 8. Samarskii A.A. Theory of difference schemes</article-title>
          . M.:
          <string-name>
            <surname>Nauka</surname>
          </string-name>
          . Fizmatlit,
          <year>1983</year>
          . 616 p.
          <article-title>(in Russian) 9</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Martynenko S.I.</surname>
          </string-name>
          <article-title>Multigrid technology: theory and applications</article-title>
          . M.: FIZMATLIT,
          <year>2015</year>
          . 208 p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>