<!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>Эффективная программная реализация метода вихревых элементов при моделировании двумерных течений несжимаемой среды\ast</article-title>
      </title-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>191</fpage>
      <lpage>204</lpage>
      <abstract>
        <p>В основу вихревых методов вычислительной гидродинамики положено описание движения среды через перемещение изолированных вихревых элементов, моделирующих распределение завихренности. Наибольшую вычислительную производительность обеспечивают реализации, основанные на использовании приближенных алгоритмов вычисления вихревого влияния. Для таких алгоритмов построена оценка трудоемкости, использование которой позволяет наиболее эффективно выбрать параметры алгоритма и организовать параллельные вычисления. Для всех основных операций разработаны параллельные реализации, рассмотрена возможность использования различных технологий программирования. Ключевые слова: метод вихревых элементов, закон Био - Савара, вязкая жидкость, диффузионная скорость, алгоритм Барнса - Хата, быстрый метод, вычислительная сложность, оценка погрешности, параллельные вычисления.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>а
р
а
л
л
е
л
ь
н
ы
е
в
ы
ч
и
с
л
и
т
е
л
ь
н
ы
е
т
е
х
н
о
л
о
г
и
и
.
g
u
r
u
.
r
u
/
p
a
v
t
2
.
П
о
с
т
а
н
о
в
к
а
з
а
д
а
ч
и
и
к
р
а
т
к
о
е
о
п
и
с
а
н
и
е
в
и
х
р
е
в
ы
х
м
е
т
о
д
о
в
Р
а
с
с
м
а
т
р
и
в
а
е
т
с
я
д
в
у
м
е
р
н
а
я
з
а
д
а
ч
а
о
м
о
д
е
л
и
р
о
в
а
н
и
и
в
н
е
ш
н
е
г
о
о
б
т
е
к
а
н
и
я
п
р
о
ф
и
л
я
п
о
т
о
к
о
м
в
я
з
к
о
й
н
е
с
ж
и
м
а
е
м
о
й
с
р
е
д
ы
п
о
с
т
о
я
н
н
о
й
п
л
о
т
н
о
с
т
и
,
д
в
и
ж
е
н
и
е
к
о
т
о
р
о
й
о
п
и
с
ы
в
а
е
т
с
я
у
р
а
в
н
е
н
и
е
м
н
е
р
а
з
р
ы
в
н
о
с
т
и
и
у
р
а
в
н
е
н
и
е
м
Н
а
в
ь
е
—
С
т
о
к
с
а
:
v\ec{}
V
=
0
,
(
1
)
n\abl
c\dot
v\ec{}
r(
v\ec{}
,
t
)
p
=
p
r(
v\ec{}
,
t
)
r\ho
=
c
o
n
s
t
n\u
=
c
o
n
s
t
З
д
е
с
ь
—
с
к
о
р
о
с
т
ь
с
р
е
д
ы
,
—
д
а
в
л
е
н
и
е
,
—
п
л
о
т
н
о
с
т
ь
Л
а
п
л
а
с
а
.
n\abl
Н
а
ч
а
л
ь
н
о
е
р
а
с
п
р
е
д
е
л
е
н
и
е
с
к
о
р
о
с
т
е
й
в
с
р
е
д
е
п
о
л
а
г
а
е
т
с
я
и
з
в
е
с
т
н
ы
м
;
в
к
а
ч
е
с
т
в
е
г
р
а
н
и
ч
н
ы
х
у
с
л
о
в
и
й
и
с
п
о
л
ь
з
у
ю
т
с
я
у
с
л
о
в
и
е
з
а
т
у
х
а
н
и
я
в
о
з
м
у
щ
е
н
и
й
н
а
б
е
с
к
о
н
е
ч
н
о
с
т
и
,
t
)
V
,
p
r(
v\ec{}
,
t
)
p
r
v\ec{}
п
р
и
r\ightaow
r\ightaow
|
|
r\ightaow
i\nfty
i\nfty
i\nfty
K
и
у
с
л
о
в
и
е
п
р
и
л
и
п
а
н
и
я
н
а
г
р
а
н
и
ц
е
п
р
о
ф
и
л
я
,
t
)
=
V
r(
v\ec{}
,
t
)
r
v\ec{}
K
,
п
р
и
i\n
K
,
к
о
т
о
р
а
я
м
о
ж
е
т
б
ы
т
ь
и
з
в
е
с
т
н
а
и
з
п
о
с
т
а
K
н
о
в
к
и
з
а
д
а
ч
и
и
л
и
в
ы
ч
и
с
л
я
т
ь
с
я
в
п
р
о
ц
е
с
с
е
р
е
ш
е
н
и
я
с
о
п
р
я
ж
е
н
н
о
й
з
а
д
а
ч
и
г
и
д
р
о
у
п
р
у
г
о
с
т
и
.
П
р
и
п
р
о
в
е
д
е
н
и
и
п
р
а
к
т
и
ч
е
с
к
и
х
р
а
с
ч
е
т
о
в
ч
а
щ
е
в
с
е
г
о
н
а
и
б
о
л
ь
ш
и
й
и
н
т
е
р
е
с
п
р
е
д
с
т
а
в
л
я
ю
т
г
и
д
р
о
д
и
н
а
м
и
ч
е
с
к
и
е
н
а
г
р
у
з
к
и
,
д
е
й
с
т
в
у
ю
щ
и
е
н
а
о
б
т
е
к
а
е
м
ы
й
п
р
о
ф
и
л
ь
.</p>
      <p>Е
с
л
и
с
а
м
п
р
о
ф
и
л
ь
я
в
л
я
е
т
с
я
ж
е
с
т
к
и
м
(
п
р
и
э
т
о
м
о
н
м
о
ж
е
т
о
с
т
а
в
а
т
ь
с
я
у
п
р
у
г
о
з
а
к
р
е
п
л
е
н
н
ы
м
)
,
п
о
д
ъ
е
м
н
о
й
с
и
л
ы
и
а
э
р
о
д
и
н
а
м
и
ч
е
с
к
о
г
о
м
о
м
е
н
т
а
.
В
б
о
л
е
е
с
л
о
ж
н
ы
х
п
о
с
т
а
н
о
в
к
а
х
т
р
е
б
у
е
т
с
я
р
а
с
с
ч
и
т
а
т
ь
р
а
с
п
р
е
д
е
л
е
н
и
е
н
а
г
р
у
з
о
к
—
д
а
в
л
е
н
и
я
и
в
я
з
к
и
х
н
а
п
р
я
ж
е
н
и
й
—
п
о
п
о
в
е
р
х
н
о
с
т
и
п
р
о
ф
и
л
я
и
л
и
и
с
с
л
е
д
о
в
а
т
ь
п
о
л
е
т
е
ч
е
н
и
я
.
Э
т
о
н
е
с
к
о
л
ь
к
о
п
о
в
ы
ш
а
е
т
т
р
у
д
о
е
м
к
о
с
т
ь
р
е
ш
е
н
и
я
з
а
д
а
ч
и
о
д
н
а
к
о
н
е
п
р
и
в
о
д
и
т
к
п
р
и
н
ц
и
п
и
а
л
ь
н
о
м
у
у
с
л
о
ж
н
е
н
и
ю
а
л
г
о
р
и
т
м
а
и
е
г
о
п
р
о
г
р
а
м
м
н
о
й
р
е
а
л
и
з
а
ц
и
и
.
3
.
К
р
а
т
к
о
е
о
п
и
с
а
н
и
е
в
и
х
р
е
в
ы
х
м
е
т
о
д
о
в</p>
    </sec>
    <sec id="sec-2">
      <title>O\mega =</title>
      <p>
        V
И
с
п
о
л
ь
з
о
в
а
н
и
е
в
и
х
р
е
в
ы
х
м
е
т
о
д
о
в
п
р
е
д
п
о
л
а
г
а
е
т
п
е
р
е
х
о
д
к
з
а
в
и
х
р
е
н
н
о
с
т
и
n\abl
t\imes
к
а
к
к
п
е
р
в
и
ч
н
о
й
р
а
с
ч
е
т
н
о
й
в
е
л
и
ч
и
н
е
;
п
р
и
э
т
о
м
в
п
л
о
с
к
и
х
з
а
д
а
ч
а
х
г
и
д
р
о
д
и
н
а
м
и
к
и
в
е
к
т
о
р
)
t\imes
(
3
)
x\i
i\nfty
v\ec{}
2
2
p\i
r
v\ec{}
x\i
|
|
S
S
г
д
е
и
н
т
е
г
р
а
л
б
е
р
е
т
с
я
п
о
о
б
л
а
с
т
и
т
е
ч
е
н
и
я
;
п
р
и
э
т
о
м
у
р
а
в
н
е
н
и
е
н
е
р
а
з
р
ы
в
н
о
с
т
и
(
1
)
в
ы
п
о
л
н
я
е
т
с
я
а
в
т
о
м
а
т
и
ч
е
с
к
и
.
Д
л
я
р
а
с
ч
е
т
а
д
а
в
л
е
н
и
я
н
а
и
б
о
л
е
е
у
д
о
б
е
н
а
н
а
л
о
г
и
н
т
е
г
р
а
л
о
в
Б
е
р
н
у
л
л
и
и
К
о
ш
и
—
Л
а
г
р
а
н
ж
а
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
м
е
н
т
а
г
и
д
р
о
д
и
н
а
м
и
ч
е
с
к
и
х
с
и
л
м
о
ж
н
о
и
с
п
о
л
ь
з
о
в
а
т
ь
п
р
о
с
т
ы
е
в
ы
р
а
ж
е
н
и
я
т
а
к
ж
е
п
р
и
в
е
д
е
н
н
ы
е
в
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
.
В
т
е
р
м
и
н
а
х
з
а
в
и
х
р
е
н
н
о
с
т
и
у
р
а
в
н
е
н
и
е
(
2
)
п
р
и
н
и
м
а
е
т
п
р
о
с
т
о
й
в
и
д
=
n\u
      </p>
    </sec>
    <sec id="sec-3">
      <title>D\elta</title>
      <p>(
4
)
agora.guru.ru/pavt
скорости \vec{}</p>
      <p>W = - \nu \nabl</p>
      <p>O\mega , эффективный способ вычисления которой разработан в методе
вязгде по аналогии с субстанциональной производной введено обозначение
l\eft{
d\Gam i = 0,
dt
dr\vec{} i
dt
= \vec{}</p>
      <p>V
r(\vec{} i) + \vec{}</p>
      <p>W
r(\vec{} i),
i = 1, . . . N.
Здесь \vec{}
Механический смысл уравнения (5) заключается в том, что в области течения S
происходит перенос имеющейся завихренности со скоростью \vec{}
V
+ W\vec{} , при этом «новая»
завихренность внутри области течения не образуется. Генерация завихренности происходит лишь на
границе области течения, т. е. на обтекаемом профиле.</p>
      <p>Вихревые методы относятся к так называемым методам частиц (particle methods), при
этом в качестве таких частиц выступают элементарные поля завихренности — вихревые
элементы (ВЭ), при помощи которых моделируется распределение завихренности в
области течения. Общее количество N вихревых элементов может быть достаточно большим
и достигать десятков-сотен тысяч и даже миллионов; сами вихревые частицы в методах
МДВ и ВВД представляют собой круглые вихри постоянного малого радиуса \varepsilon .</p>
      <p>Положение каждого вихревого элемента в пространстве характеризуется
радиус-векторомr\vec{} i, а содержащаяся в нем завихренность определяет его циркуляцию \Gam i, i = 1, . . . , N .
Влияние ВЭ на скорость среды в произвольной точкеr\vec{} вычисляется в соответствии с
дискретным аналогом закона Био — Савара (3)
где \vec{}k — единичный вектор, перпендикулярный плоскости течения.</p>
      <p>
        (5)
(6)
(7)
Граничное условие на бесконечности в вихревых методах выполняется автоматически,
при этом не требуется искусственно ограничивать расчетную область. Выполнение
граничного условия прилипания на профиле (или условия непротекания, если моделируется
течение невязкой среды) обеспечивается генерацией на нем вихревого слоя на каждом шаге
расчета по времени, также моделируемого набором ВЭ. Этот вихревой слой является
присоединенным, если обтекание невязкое, т. е. ВЭ, его моделирующие, остаются на своих местах
и заменяются новыми на следующем шаге расчета, и является свободным при обтекании
профиля вязкой жидкостью. Последнее означает, что ВЭ «сходят в поток» и становятся
частью вихревого следа, образующегося вблизи обтекаемого профиля и позади него. Одним
из способов моделирования обтекания подвижного (деформируемого) профиля является
размещение на его поверхности присоединенного вихревого слоя и присоединенного слоя
источников, интенсивности которых определяются по скоростям соответствующих точек
профиля [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Для определения интенсивности вихревого слоя на профиле и последующего расчета
циркуляций ВЭ можно применять различные методы и подходы, сводящиеся к решению
системы линейных алгебраических уравнений, размерность которой соответствует густоте
дискретизации профиля. Наибольшую эффективность, особенно применительно к методу
ВВД, показал метод, основанный на обеспечении равенства нулю среднего значения
касательной компоненты скорости на панелях — отрезках ломаной, аппроксимирующей
профиль [4, 5]; он во многих случаях превосходит по точности подход, обычно используемый
в МДВ, на один-два порядка при одинаковой дискретизации профиля.</p>
      <p>Отметим, что количество профилей может быть произвольным; алгоритм метода
вихревых элементов в этом случае естественным образом модифицируется и позволяет решать
широкий класс задач как по моделированию обтеканию систем неподвижных профилей
(например, воспроизводить гидродинамические эффекты при их интерференции, в частности,
снижение лобового сопротивление и возникновение подсасывающей силы у подветренного
цилиндра [6]), так и их гидроупругие колебания.
4. Оценка вычислительной сложности алгоритма</p>
      <p>Несмотря на сравнительно низкую вычислительную сложность вихревых методов (по
сравнению с сеточными), время проведения вычислений в представляющих практический
интерес задачах оказывается довольно большим и может составлять от нескольких часов
до многих суток.</p>
      <p>Построим оценку вычислительной сложности алгоритма, выделив в нем наиболее
существенные операции и оценив трудоемкость каждой из них. Далее будем использовать
следующие обозначения:</p>
      <p>N — число вихревых элементов в области течения;
n — число вихревых элементов, моделирующих вихревой слой на всех профилях;
T — количество выполняемых шагов расчета по времени.
4.1. Описание модельных задач</p>
      <p>Для оценки вычислительной сложности и целесообразности распараллеливания
отдельных операций рассмотрим две весьма типичные для вихревых методов модельные задачи.</p>
      <p>Задача 1. Моделирование гидроупругих колебаний двух цилиндров. Рассмотрим
обтекание двух подвижных цилиндров, вихревой слой на поверхности каждого из которых
моделируется с помощью np0 = 200 вихревых элементов; в этом случае n0 = 2np0 = 400. Примем,
что вихревой след за каждым цилиндром образован из N0 = 10 000 вихревых элементов,
следы за двумя цилиндрами смешиваются мало, и в расчете выполняется T0 = 30 000
временных шагов. Данные оценки взяты из практического расчета и вполне отвечают
параметрам реального алгоритма.
agora.guru.ru/pavt
Рис. 1. К постановке тестовой задачи 1
Для повышения точности расчета, которое необходимо, в частности, для моделирования
течения при больших числах Рейнольдса (опыт показывает, что np0 = 200 позволяет
моделировать течение только при Re \leq</p>
      <p>103), количество ВЭ на каждом из профилей np должно
быть увеличено, при этом, очевидно, пропорционально увеличится число n. Количество
ВЭ в потоке N примем пропорциональным n2, шаг расчета по времени пропорционально
уменьшится, а само количество шагов — возрастает:
n = 2np, N = 2N0 \cdot np0
np \Bigr) 2, T = T0 \cdot np0</p>
      <p>np \Bigr)
B\igl(
.</p>
      <p>Задача 2. Моделирование колебаний цилиндра при наличии экрана. В [7,8] рассмотрена
задача о гидроупругих колебаниях кругового профиля вблизи твердой поверхности
(экрана). В рамках вычислительного эксперимента обтекание профиля, моделирующего экран,
можно считать безотрывным, что позволяет существенно снизить количество ВЭ в области
течения за счет того, что в поток сходят лишь вихри с подвижного цилиндра, а вихревой
слой на экране остается присоединенным. В качестве «базовых» параметров расчетной
схемы для этого случая примем, что вихревой слой на цилиндре моделируется при помощи
np0 = 200 ВЭ, вихревой слой на экране — при помощи ne0 = 3np0 = 600 ВЭ, число вихрей
в следе N0 = 10 000. Тогда для произвольного np получим
n = 4np, N = N0 \cdot np0
np \Bigr) 2, T = T0 \cdot np0</p>
      <p>np \Bigr)
B\igl(
.</p>
      <p>(8)
(9)
4.2. Основные операции вихревого метода и их «медленная» реализация
и составляет Q1 = 83n2. Если относительное расположение точек на поверхности всех
обтекаемых профилей остается неизменным на протяжении всего расчета (т. е. при
недеформируемых профилях, которые не перемещаются друг относительно друга), матрица системы
остается постоянной и формируется однократно.</p>
      <p>Операция 2. Вычисление правой части системы линейных уравнений. По смыслу
данная операция аналогична предыдущей, однако здесь производится расчет влияния ВЭ,
составляющих спутный след за профилем, на вихри, моделирующие профиль, а также
учитывается влияние присоединенного вихревого слоя и слоя источников, моделирующих
движения профиля. В простом случае (МДВ) сложность операции вычисления правой части
СЛАУ составляет Q2 = 7N n + 10n2; при использовании алгоритма [4, 5] Q2 = 30N n + 85n2.</p>
      <p>Операция 3. Решение системы алгебраических уравнений. В случае постоянной на
протяжении всего расчета матрицы (см. Операция 1) производится однократное ее
обращение и в дальнейшем решение находится путем умножения обратной матрицы на вектор
правой части. В общем случае решение системы производится методом Гаусса (LU-разложения);
вычислительная сложность данной операции Q3 = n3/3.</p>
      <p>Операция 4. Вычисление конвективных скоростей вихревых элементов. Данная
операция наиболее трудоемка; непосредственное вычисление скоростей по формуле (6) требует
выполнения Q4 = 6N 2 + 8N n операций.</p>
      <p>
        Операция 5. Вычисление диффузионных скоростей вихревых элементов. При
непосредственном вычислении диффузионных скоростей в соответствии с формулами [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
требуется выполнение Q5 = 9N 2 + 14N n операций, т. е. при N \g n эта операция в 1,5 раза более
трудоемка по сравнению с предыдущей.
      </p>
      <p>Операция 6. Контроль протекания. Данная операция необходима для исключения
вихревых элементов, проникших в результате перемещения внутрь обтекаемого профиля.
Ее трудоемкость зависит от конкретной реализации; в первом приближении она
пропорциональна n2, а коэффициент пропорциональности составляет величину порядка 10.</p>
      <p>Операция 7. Реструктуризация вихревого следа. Близкорасположенные ВЭ
объединяются в один, также исключаются ВЭ, удалившиеся далеко от обтекаемого профиля
(обычно на 10 . . . 20 диаметров). Вычислительная сложность этого алгоритма, как
показывают расчеты, порядка N 2, коэффициент пропорциональности сравнительно мал.</p>
      <p>Таким образом, вычислительная сложность последних двух операций хотя и может
быть высокой, существенно ниже суммарной трудоемкости остальных операций, поэтому
их трудоемкость можно учитывать приближенно; положим Q6 = Q1 и Q7 = 0,2Q4. Тогда
Q =
n3
3</p>
      <p>+ 251n2 + 53,6N n + 16,2N 2.
Здесь и далее принято, что задача решается в гидроупругой постановке, матрица системы
формируется заново на каждом шаге расчета, используется уточненная схема [4, 5].</p>
      <p>В этом случае суммарная вычислительная сложность решения модельных задач при
np = 200 составляет S1(200) = Q1(200) \cdot T0 \aprox 2,1 \cdot 1014 и S2(200) = Q2(200) \cdot T0 \aprox 7,1 \cdot 1013.</p>
      <p>В табл. 1 представлены оценки трудоемкости расчета S1,2(np) при различном значении
np, отнесенные к соответствующим величинам S1,2(200).</p>
      <p>Таблица 1. Вычислительная сложность алгоритма при различных np по сравнению с S(200)
np
S1(np)
S1(200)
S2(np)
S2(200)
В табл. 2 показаны выраженные в процентах доли, приходящиеся на операции Q1 . . . Q7,
в общей трудоемкости выполнения одного шага расчета при различных значениях np.
4.3. Использование приближенного быстрого метода</p>
      <p>
        При большом количестве вихревых элементов N в области течения фактически
единственным способом решения задачи за приемлемое время становится использование
приближенных быстрых методов учета вихревого влияния, основанных на приближенных
методах решения задачи N тел. Эти методы базируются на алгоритме Барнса — Хата [11],
весьма удобная адаптация которого к вихревым методам описана в [
        <xref ref-type="bibr" rid="ref5">12</xref>
        ]. Смысл данного
метода заключается в том, что влияние компактно расположенных ВЭ на другие компактно
расположенные на значительном расстоянии группы может быть вычислено приближенно.
      </p>
      <p>
        Известно, что вычислительная сложность расчета конвективных скоростей ВЭ в таком
методе пропорциональна N log N . Известны также и асимптотические оценки точности,
например, [
        <xref ref-type="bibr" rid="ref6">13</xref>
        ], однако они едва ли применимы при решении практических задач, когда
необходимо так подобрать параметры быстрого метода, чтобы иметь возможность
рассчитывать скорости ВЭ с приемлемой погрешностью, к примеру, на уровне 0,1 . . . 0,2 \% . Также
необходимо разработать алгоритм вычисления диффузионных скоростей быстрым методом,
оценить его сложность и точность; рассмотреть возможность ускорения остальных
операций алгоритма. Данные задачи являются актуальными, определенные шаги в направлении
их решения были сделаны авторами настоящей статьи в работах [
        <xref ref-type="bibr" rid="ref7 ref8">14, 15</xref>
        ].
agora.guru.ru/pavt
      </p>
      <p>
        В работе [
        <xref ref-type="bibr" rid="ref7">14</xref>
        ] получена весьма точная оценка для вычислительной сложности алгоритма
      </p>
      <p>
        0,4; там же описана методика определения
оп4.3.2. Вычисление диффузионных скоростей вихревых элементов
4.3.3. Вычисление правых частей системы линейных алгебраических уравнений
Для операции 2, действуя по аналогии с работами [
        <xref ref-type="bibr" rid="ref7 ref8">14, 15</xref>
        ], можно получить следующую
(10)
оценку трудоемкости:
      </p>
      <p>Qfast =
2
130N n \bigl(
2k
4 \bigr)
t\hea</p>
      <p>Q2
Qf2ast</p>
      <p>Q4
Qf4ast</p>
      <p>Q5</p>
      <p>Qf5ast
Зависимость ускорения выполнения операции 2 для различных значений np за счет
использования быстрого метода также показана в табл. 3.
4.3.4. Остальные операции алгоритма вихревого метода и его общая трудоемкость
Для операции 6 контроля протекания и операции 7 реструктуризации вихревого следа
разработаны оптимизированные варианты, позволяющие для ускорения вычислений
использовать структуру дерева, построенного в области течения. Результаты
вычислительного эксперимента показывают, что оценки их трудоемкостей, принятые ранее для
«медленной» реализации алгоритма, остаются пригодными и в данном случае, поэтому снова будем
считать, что Qfast = Qfast и Qfast = 0,2Qfast.</p>
      <p>6 1 7 4
Операции 1 и 3 формирования и решения линейной системы за счет применения
быстрого метода ускорены быть не могут, их трудоемкости сохраняются: Qfast = Q1 и Qfast = Q3.
1 3
Суммарная трудоемкость расчета с использованием быстрого метода оказывается
существенно меньше, чем при непосредственном расчете. В табл. 4 приведены величины
отношения вычислительной сложности всего расчета «медленным» методом S(np) к трудоемкости
расчета быстрым методом S(np)fast.</p>
      <p>
        Таблица 4. Вычислительная сложность расчета S по отношению к Sfast при различных np
np
Задача 1
Задача 2
100
4,5
1,9
200
400
600
800
5. Использование параллельных вычислительных технологий
при реализации вихревых методов
Оценим долю вычислений, которые должны выполняться в параллельном режиме,
чтобы обеспечить необходимую масштабируемость программы. Применяя закон Амдала [
        <xref ref-type="bibr" rid="ref4">10</xref>
        ],
получаем, что доля параллельного кода f должна составлять
f \geq 11 -- 11//ps ,
Таблица 5. Доли операций Q1 . . . Q7 (в \% ) при использовании быстрого метода
np = 100 3,2 11,3 5,5 19,0 2,6 18,1 42,3 9,4 34,8 29,1 3,2 11,3 8,4 1,9
np = 200 2,7 10,5 4,2 13,4 4,3 33,8 24,4 10,9 56,9 18,8 2,7 10,5 4,9 2,2
np = 400 2,1 7,0 2,8 8,2
где p — количество процессоров, s — ускорение. К примеру, если при расчете с
использованием p = 64 процессоров желаемое ускорение составляет s = 32 (будем считать достаточной
эффективность распараллеливания 50 \% ), доля параллельного кода должна быть не менее
f = 0,984, а с учетом неизбежных «накладных расходов» на пересылку данных и
синхронизацию параллельных процессов — еще выше. Это означает, что при использовании
быстрого метода (см. табл. 5) необходима разработка параллельных алгоритмов для всех
семи основных операций вихревого метода.
      </p>
      <p>Рассмотрим эффективность использования различных технологий параллельного
программирования.
5.1. Использование технологии OpenMP</p>
      <p>Разработка параллельных реализаций операций вихревого метода с использованием
технологии OpenMP является, по-видимому, наименее трудоемкой. При помощи директивы
#pragma omp достаточно лишь обозначить задачи, выполняемые параллельно, и при
необходимости указать соответствующие опции, а организация управления потоками и работы
с ними определяются самой технологией.</p>
      <p>
        Результаты вычислительных экспериментов показывают, что ускорение выполнения
операций в алгоритме вихревого метода оказывается практически линейным, что
напрямую связано с низкой интенсивностью обменов данными; несколько меньшее ускорение,
что вполне ожидаемо, наблюдается в отношении операции 3 решения системы линейных
алгебраических уравнений (СЛАУ). Здесь наиболее эффективными оказываются так
называемые «блочные» алгоритмы [
        <xref ref-type="bibr" rid="ref9">16</xref>
        ], предполагающие выполнение LU-разложения матрицы
системы и последующее решение двух линейных систем с треугольными матрицами.
      </p>
      <p>Очевидным недостатком реализации, основанной на данной технологии, является
ограниченность числа доступных процессорных ядер. Тем не менее, они чрезвычайно
эффективны при проведении вычислений на персональных ЭВМ, поскольку при небольших
значениях n, np и N (в терминах рассмотренных задач) задачи аэрогидродинамики и
гидроупругости могут быть решены вихревыми методами на ПЭВМ за приемлемое время.
5.2. Использование технологии MPI</p>
      <p>Именно использование технологии MPI дает возможность проведения расчетов на
кластерных системах. Поскольку характерной особенностью вихревых методов, как и многих
других методов частиц, является возможность независимой обработки отдельных ВЭ или
их групп, при распараллеливании вычислений наблюдается низкая интенсивность
межпроцессорных обменов. Это позволяет сравнительно легко разработать эффективные
параллельные алгоритмы реализации всех операций алгоритма. Для «медленного» метода при
сравнительно малом количестве ВЭ особенности MPI-реализации наиболее трудоемких
операций описаны в [9]. Для быстрого метода принцип организации параллельных вычислений
остается тем же, однако разделение задачи на подзадачи производится не по
обрабатываемым ВЭ, а по вершинам дерева нижнего уровня (с учетом числа ВЭ в них).</p>
      <p>
        Для решения СЛАУ (операция 3) могут использоваться либо упомянутые выше
«блочные» алгоритмы [
        <xref ref-type="bibr" rid="ref9">16</xref>
        ], либо высокооптимизированные внешние библиотеки (ScaLAPACK,
PETS). Эффективная параллельная реализация алгоритма решения СЛАУ
исключительно важна; к примеру, в рассмотренной тестовой задаче 2 доля вычислений, приходящихся
на эту операцию, при больших значениях np доходит до 60 \% (см. табл. 5).
      </p>
      <p>Результаты расчетов показывают, что масштабируемость алгоритма, основанного на
использовании быстрого метода, несколько уступает масштабируемости «медленного»
метода, однако при проведении расчета на 64 ядрах удается достичь ускорения в 25–30 раз.
5.3. Использование технологии NVidia CUDA</p>
      <p>
        Высокая эффективность использования вычислительных возможностей современных
видеоускорителей может быть достигнута только за счет глубокой переработки имеющихся
программ; по сути — разработки новых алгоритмов, учитывающих особенности
архитектуры видеоускорителей. Применительно к вихревым методам такая реализация разработана
авторами [
        <xref ref-type="bibr" rid="ref10">17</xref>
        ], однако она позволяет решать ограниченный класс задач — расчет
обтекания неподвижных недеформируемых профилей, при этом быстрый метод расчета вихревого
влияния не используется. Результаты вычислительных экспериментов показывают, что
данная реализация обеспечивает достаточно высокую скорость расчета: при решении тестовой
задачи Блазиуса о моделировании обтекания тонкой пластинки потоком вязкой жидкости
(n = 2 576, N \aprox 43 000) ускорение по сравнению с последовательным «медленным» кодом
составляет до 135 раз, по сравнению с последовательным «быстрым» кодом — более, чем
12 раз. Расчеты проводились на графических ускорителях Tesla C2050 и GeForce GTX 970.
6. Заключение
      </p>
      <p>В работе построены оценки вычислительной сложности алгоритма метода вихревых
элементов, основанного на использовании быстрых методов расчета вихревого влияния.
Показано, что в зависимости от постановки задачи, сложность отдельных операций может
существенно различаться. Данные оценки дают возможность оптимального выбора
параметров алгоритма вихревого метода и позволили осуществить эффективную программную
реализацию с использованием различных технологий параллельного программирования.
Литература
4. Moreva V.S., Marchevsky I.K. Vortex element method for 2D flow simulation with tangent
velocity components on airfoil surface // ECCOMAS 2012 — European Congr. on Comp.</p>
      <p>Meth. in Appl. Sciences and Eng. Vienna, 2012. E-Book Full Papers. Pp. 5952–5965.
5. Kuzmina K.S., Marchevsky I.K. The modified numerical scheme for 2D flow-structure
interaction simulation using meshless vortex element method // PARTICLES 2015 —
IV Int. Conf. on Particle-based Meth. Barcelona, 2015. E-Book Full Papers. Pp. 680–691.
6. Paidoussis M.P., Price S.J., de Langre E. Fluid-Structure Interactions: Cross-Flow-Induced</p>
      <p>Instabilities. Cambridge University Press, 2010. 414 p.
7. Bearman P.W., Zdravkovich M.M. Flow around a circular cylinder near a plane boundary
// Journal of Fluid Mechanics. 1978. Vol. 89, Part 1. Pp. 33–47.
8. Lei C., Cheng L., Kavanagh K. Re-examination of the efect of a plane boundary on force
and vortex shedding of a circular cylinder // Journal of Wind Engineering and Industrial
Aerodynamics. 1999. Vol. 80, No. 3. Pp. 263–286.
11. Barnes J., Hut P. A hierarchical O(N log N ) force-calculation algorithm // Nature. 1986.</p>
      <p>Vol. 324, No. 4. Pp. 446–449.
12. Дынникова Г.Я. Использование быстрого метода решения «задачи N тел» при
вихревом моделировании течений // Журнал вычислительной математики и
математической физики. 2009. Т. 49, № 8. C. 1458–1465.
13. Grama A., Sarin V., Sameh A. Improving Error Bounds for Multipole-Based Treecodes //</p>
      <p>SIAM J. Sci. Comp. 2000. Vol. 21. Pp. 1790–1803.
14. Кузьмина К.С., Марчевский И.К. Оценка трудоемкости быстрого метода расчета
вихревого влияния в методе вихревых элементов // Наука и образование: электронное
научно-техническое издание. 2013. № 10. C. 399–414.
15. Кузьмина К.С., Марчевский И.К. Об оценках вычислительной сложности и
погрешности быстрого алгоритма в методе вихревых элементов // Труды Института
системного программирования РАН. 2016. Т. 28. № 1. В печати.</p>
      <p>An Efective Software Implementation
of Vortex Element Method for 2D Flow Simulation</p>
      <p>K.S. Kuzmina, I.K. Marchevsky</p>
      <p>Bauman Moscow State Technical University
The basic idea of the vortex methods of computational fluid dynamics is to describe
lfow motion through the movement of separate vortex elements, which simulate vorticity
distribution. Implementations which are based on approximate algorithms usage for
vortex influence calculating provide the highest computing performance. Computational
complexity estimation is built for such algorithms. This estimation allows to choice the
optimal parameters of the algorithm and to construct its eficient parallel implementation.
The parallel algorithms are developed for all basic operations, the possibility of various
programming technologies application is considered.</p>
      <p>Keywords: vortex element method, Biot – Savart law, viscous flow, difusive velocity,
Barnes–Hut simulation, fast method, computational complexity, error estimation,
parallel computations.
4. Moreva V.S., Marchevsky I.K. Vortex element method for 2D flow simulation with tangent
velocity components on airfoil surface // ECCOMAS 2012 — European Congr. on Comp.</p>
      <p>Meth. in Appl. Sciences and Eng. Vienna, 2012. E-Book Full Papers. Pp. 5952–5965.
5. Kuzmina K.S., Marchevsky I.K. The modified numerical scheme for 2D flow-structure
interaction simulation using meshless vortex element method // PARTICLES 2015 —
IV Int. Conf. on Particle-based Meth. Barcelona, 2015. E-Book Full Papers. Pp. 680–691.
6. Paidoussis M.P., Price S.J., de Langre E. Fluid-Structure Interactions: Cross-Flow-Induced</p>
      <p>Instabilities. Cambridge University Press, 2010. 414 p.
7. Bearman P.W., Zdravkovich M.M. Flow around a circular cylinder near a plane boundary
// Journal of Fluid Mechanics. 1978. Vol. 89, Part 1. Pp. 33–47.
8. Lei C., Cheng L., Kavanagh K. Re-examination of the efect of a plane boundary on force
and vortex shedding of a circular cylinder // Journal of Wind Engineering and Industrial
Aerodynamics. 1999. Vol. 80, No. 3. Pp. 263–286.
9. Marchevsky I.K., Moreva V.S. Parallel’nyj programmnyj kompleks POLARA dlya
modelirovaniya obtekaniya profilej i issledovaniya raschetnyh skhem metoda vihrevyh
ehlementov [The Parallel Software Package POLARA for Profile Flow Modelling and
Studying of the Computational Scheme of the Vortex Element Method]. Parallelnye
vychislitelnye tekhnologii (PaVT’2012): Trudy mezhdunarodnoj nauchnoj konferentsii
(Novosibirsk, 26–30 marta 2012) [Parallel Computational Technologies (PCT’2012):
Proceedings of the International Scientific Conference (Novosibirsk, Russia, March, 26–30,
2012)]. Chelyabinsk, Izdat. Izdat. Yuzhno-Ural’skogo Gos. Univ. [Publishing of the South
Ural State University], 2012. P. 236–247.
11. Barnes J., Hut P. A hierarchical O(N log N ) force-calculation algorithm // Nature. 1986.</p>
      <p>Vol. 324, No. 4. Pp. 446–449.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Andronov</surname>
            <given-names>P.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guverniuk</surname>
            <given-names>S.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dynnikova</surname>
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Ya</surname>
          </string-name>
          .
          <article-title>Vihrevye metody rascheta nestacionarnyh gidrodinamicheskih nagruzok [Vortex Methods of Calculation of Unsteady Hydrodynamic Loads]</article-title>
          . Moscow, Izdat. Mosk. Gos. Univ. [Publishing of the Moscow State University],
          <year>2006</year>
          . 184 p.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Belotcerkovskii</surname>
            <given-names>S.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotovskii</surname>
            <given-names>V.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nisht</surname>
            <given-names>M.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fedorov R.M.</surname>
          </string-name>
          <article-title>Matematicheskoe modelirovanie ploskoparallel'nogo otryvnogo obtekaniya tel [Mathematical Modelling of the Parallel-plane Separation Flow around Airfoil]</article-title>
          . Moscow, Nauka [Science],
          <year>1988</year>
          . 231 p.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Guverniuk</surname>
            <given-names>S.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dynnikova</surname>
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Ya</surname>
          </string-name>
          .
          <article-title>Modelirovanie obtekaniya koleblyushchegosya profilya metodom vyazkih vihrevyh domenov [Modeling of the Oscillating Profile Flow Using Viscous Vortex Domain Method] // Izvestiya RAN</article-title>
          .
          <source>MZHG [Proceedings of the Russian Academy of Sciences. Fluid mechanics]</source>
          .
          <year>2007</year>
          . No. 6. P. 3-
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gergel</surname>
            <given-names>V.P.</given-names>
          </string-name>
          <string-name>
            <surname>Vysokoproizvoditel</surname>
          </string-name>
          <article-title>'nye vychisleniya dlya mnogoprocessornyh mnogoyadernyh sistem [High Performance Computations for Multiprocessor Multicore Systems]</article-title>
          . Moscow, Izdat. Mosk. Gos. Univ. [Publishing of the Moscow State University],
          <year>2010</year>
          . 544 p.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          12.
          <string-name>
            <surname>Dynnikova</surname>
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Ya</surname>
          </string-name>
          .
          <article-title>Fast technique for solving the N -body problem in flow simulation by vortex methods //</article-title>
          <source>Computational Mathematics and Mathematical Physics</source>
          .
          <year>2009</year>
          . Vol.
          <volume>49</volume>
          . Pp.
          <volume>1389</volume>
          -
          <fpage>1396</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          13.
          <string-name>
            <surname>Grama</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarin</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sameh</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>Improving Error Bounds for Multipole-Based Treecodes //</article-title>
          <source>SIAM J. Sci. Comp</source>
          .
          <year>2000</year>
          . Vol.
          <volume>21</volume>
          . Pp.
          <fpage>1790</fpage>
          -
          <lpage>1803</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kuzmina</surname>
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marchevsky</surname>
            <given-names>I.K.</given-names>
          </string-name>
          <article-title>Ocenka trudoemkosti bystrogo metoda rascheta vihrevogo vliyaniya v metode vihrevyh ehlementov [Estimation of Computational Complexity of the Fast Numerical Algorithm for Vortex Influence Calculating in the Vortex Element Method] // Nauka i obrazovanie: ehlektronnoe nauchno-tekhnicheskoe izdanie [Science and Education: Electronic Scientific</article-title>
          and Technical Publication].
          <year>2013</year>
          . No.
          <issue>10</issue>
          . Pp.
          <volume>399</volume>
          -
          <fpage>414</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kuzmina</surname>
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marchevsky</surname>
            <given-names>I.K.</given-names>
          </string-name>
          <article-title>Ob ocenkah vychislitel'noj slozhnosti i pogreshnosti bystrogo algoritma v metode vihrevyh ehlementov [On Estimation of Computation Complexity and Error of Fast Algorithm in Vortex Element Method] // Trudy Instituta sistemnogo programmirovaniya RAN [Proceedings of Institute of system programming of the Russian Academy of Sciences]</article-title>
          .
          <year>2016</year>
          . Vol.
          <volume>28</volume>
          . No.
          <article-title>1</article-title>
          . In press.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          16.
          <string-name>
            <surname>Demmel</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <source>Applied Numerical Linear Algebra. SIAM Publishing</source>
          ,
          <year>1997</year>
          . 416 p.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          17.
          <string-name>
            <surname>Grechkin-Pogrebniakov</surname>
            <given-names>S.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuzmina</surname>
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marchevsky</surname>
            <given-names>I.K.</given-names>
          </string-name>
          <article-title>O realizacii vihrevyh metodov modelirovaniya dvumernyh techenij sredy s ispol'zovaniem tekhnologii CUDA [On Implementation of Vortex Methods for 2D Flow Simulation using CUDA Technology] // Vychislitel'nye metody i programmirovanie [Numerical Methods</article-title>
          and Programming].
          <year>2015</year>
          . Vol.
          <volume>16</volume>
          . Pp.
          <volume>165</volume>
          -
          <fpage>176</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>