76
2 Дипломная работа по теме: «Обтекание осесимметричного сегментально-конического тела не- вязким газом» Дипломник: Кузнецова Ксения Борисовна Группа 08-601 Руководитель: Ципенко А.В. д.т.н., зав.каф.801 Москва, МАИ, 2013 РЕФЕРАТ Данная работа содержит 196 страниц, 50 рисунков, 6 таблиц, 22 используемых источника. АЭРОДИНАМИКА, МЕХАНИКА ЖИДКОСТЕЙ И ГАЗА, МЕТОД КРУПНЫХ ЧАСТИЦ, МЕТОД КУРГАНОВА-ТАДМОРА, АЭРОДИНАМИЧЕСКИЕ ХА- РАКТЕРИСТИКИ, ОБТЕКАНИЕ ТЕЛ, УРАВНЕНИЯ ЭЙЛЕРА, ЗАДАЧА РАС- ПАДА РАЗРЫВА, РАСПАРАЛЛЕЛИВАНИЕ, ТЕХНОЛОГИЯ CUDA, ТЕХНО- ЛОГИЯ OPENMP. Целью работы является расчет аэродинамических характеристик осесси- метричных сегментально-конических тел и полей газодинамических величин при сверхзвуковом набегающем потоке. Реализация методов: а) метод крупных части,

Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

2

Дипломная работа

по теме: «Обтекание осесимметричного сегментально-конического тела не-

вязким газом»

Дипломник: Кузнецова Ксения Борисовна

Группа 08-601

Руководитель: Ципенко А.В.

д.т.н., зав.каф.801

Москва, МАИ, 2013

РЕФЕРАТ

Данная работа содержит 196 страниц, 50 рисунков, 6 таблиц, 22 используемых

источника.

АЭРОДИНАМИКА, МЕХАНИКА ЖИДКОСТЕЙ И ГАЗА, МЕТОД КРУПНЫХ

ЧАСТИЦ, МЕТОД КУРГАНОВА-ТАДМОРА, АЭРОДИНАМИЧЕСКИЕ ХА-

РАКТЕРИСТИКИ, ОБТЕКАНИЕ ТЕЛ, УРАВНЕНИЯ ЭЙЛЕРА, ЗАДАЧА РАС-

ПАДА РАЗРЫВА, РАСПАРАЛЛЕЛИВАНИЕ, ТЕХНОЛОГИЯ CUDA, ТЕХНО-

ЛОГИЯ OPENMP.

Целью работы является расчет аэродинамических характеристик осесси-

метричных сегментально-конических тел и полей газодинамических величин

при сверхзвуковом набегающем потоке.

Реализация методов:

а) метод крупных части,

Page 2: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

3

б) метод Курганова-Тадмора.

Рассчитать обтекание спускаемого аппарата ЭкзоМарс 2018 в транспортном

положении.

Page 3: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

4

Содержание

1. ОСНОВНАЯ ЧАСТЬ 5

Введение 6

1.1.Постановка задачи 8

1.1.1. Математическая модель 8

1.1.2. Физическая модель 9

1.2. Метод крупных частиц 9

1.2.1. Эйлеров этап 10

1.2.2. Лагранжев этап 11

1.2.3. Заключительный этап 12

1.3. Метод Курганова-Тадмора 16

1.3.1. Двумерный случай 17

1.4. Технологии увеличения производительности 22

1.4.1. Распараллеливание. Технология OpenMP 22

1.4.1.1. Технологии параллельного программирования 22

1.4.1.2. OpenMP 24

1.4.2. Использование вычисления на видеокартах. Технология CUDA 25

1.4.2.1. Введение в технологию CUDA 25

1.4.2.2. Разница между CPU и GPU в параллельных расчетах 27

1.4.2.3. Технология CUDA 32

1.4.2.4. Модель программирования CUDA 34

1.4.2.5. Среда программирования 35

1.5. Спускаемый аппарат ЭкзоМарс 2018 37

1.6. Тестирование программ 38

1.6.1. Внешний вид программы 38

1.6.2. Тестирование сходимости расчетной сетки 39

1.6.3. Тестирование программ методом «крупных частиц» и методом

Курганова-Тадмора.

46

1.6.3.1. Задача распада разрыва 46

1.6.3.2. Обтекание бесконечного цилиндра 48

1.6.4. Проверка скачков уплотнения. Обтекание клина. 51

1.6.5. Проверка сходимости метода крупных частиц и метода Курга-

нова-Тадмора

57

1.7. Вычислительный эксперимент 60

1.71. Цилиндрическое тело 60

1.7.2. Конические тела 62

1.7.2.1. Коническое тело. Разворот 60 62

1.7.2.2. Коническое тело. Разворот 45 64

1.7.3. Спускаемый аппарат ЭкзоМарс 2018 в транспортном положе-

нии

66

Page 4: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

5

1.7.4. Увеличение производительности 67

2. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 69

2.1.Общие положения 70

2.2. Перечень работ и событий 70

2.3. Анализ сетевой модели 74

2.4. Расчет затрат на разработку и эксплуатацию ПО 75

3. ОХРАНА ТРУДА И ОКРУЖАЮЩЕЙ СРЕДЫ 81

3.1. Характеристика и анализ условий труда 82

3.2. Анализ возможности возникновения и воздействия опасных или

вредных факторов при выполнении технологического процесса

83

3.3. Описание воздействия неблагоприятных факторов на человеческий

организм

85

3.3.1. Микроклимат 85

3.3.2. Воздействие шума 86

3.3.3. Электромагнитные излучения 87

3.3.4. Требования к освещению 87

3.3.5. Малоподвижный образ жизни 89

3.4. Влияние ЭЛТ и ЖК мониторов на зрение человека 89

3.4.1. Основные определения 90

3.4.2. Общие требования 93

3.5. Выводы 96

ЗАКЛЮЧЕНИЕ 98

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 101

ПРИЛОЖЕНИЯ 103

Page 5: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

6

1. ОСНОВНАЯ ЧАСТЬ

Page 6: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

7

ВВЕДЕНИЕ:

Дипломная работа заключается в расчете аэродинамических характери-

стик осессиметричных сегментально-конических тел и полей газодинамических

величин при сверхзвуковом набегающем потоке.

1. В рамках дипломной работы были реализованы методы:

а) метод крупных частиц,

б) метод Курганова-Тадмора.

2. Рассчитано обтекание:

а) цилиндрического тела;

б) конического тела (разворот 45 и 60)+цилиндр;

в) спускаемого аппарата ЭкзоМарс 2018 в транспортном положении.

При проектировании летательных аппаратов (ЛА) необходимы предвари-

тельные сведения о характере обтекания их поверхности. Эта информация долж-

на включать в себя данные о полях распределения газодинамических величин.

В распоряжении специалистов в области аэродинамики имеются три ос-

новных средства исследований - эксперименты в аэродинамических трубах, ана-

литические методы и получившая широкое распространение в последние годы

вычислительная гидроаэродинамика (ВГАД). Хотя эксперименты позволяют ис-

следовать тела сложной формы, диапазон условий в потоке для них ограничен.

Кроме того, изготовление моделей и сами испытания в аэродинамических уста-

новках требуют больших затрат времени и средств. Аналитические методы поз-

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

ограничены простейшими конфигурациями. Численные методы аэродинамики

(ЧМА) дополняют экспериментальные и теоретические методы исследования,

представляя собой альтернативу, в перспективе свободную от недостатков как

трубных экспериментов, так и аналитических методов, и являющуюся экономи-

чески эффективным средством моделирования реальных течений. В прошлом

Page 7: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

8

численные методы аэродинамики имели весьма ограниченную область примене-

ния в аэродинамическом проектировании. Однако сейчас настало время расши-

рения применения ЧМА в области аэродинамического проектирования и для

определения аэродинамических характеристик. На современном этапе научных и

инженерных исследований численный эксперимент является одним из важней-

ших направлений при изучении задач внешней и внутренней аэродинамики. Ин-

формация, полученная с помощью численных расчетов, позволяет не только

правильно осмыслить и понять физические эффекты, полученные, например, на

экспериментальных установках, но и в некоторых случаях заменить физический

или натурный эксперимент машинным, как более дешевым. Кроме того, машин-

ный эксперимент является иногда единственно возможным.

УСЛОВНЫЕ ОБОЗНАЧЕНИЯ:

x,r цилиндрические координаты, [м];

RM характерный размер тела (радиус миделя);

t время, [c];

u,v составляющие скорости в направлениях

x и r соответственно, [м/с];

V величина полной скорости, [м/с] ;

плотность, [кг/м3];

удельная внутрення энергия, [дж/кг];

E удельная полная энергия, [дж/кг];

P давление, [Па];

Cp удельная теплоемкость при постоянном дав-

лении, [дж/кг К];

Cv удельная теплоемкость при постоянном объ-

еме [дж/кг К];

æ показатель адиабаты;

Сх коэффициент аэродинамического сопротив-

ления;

М число Маха.

Page 8: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

9

1. Постановка задачи

1.1. Математическая модель

Рассматривается задача о до- и сверхзвуковом осесимметричном обтека-

нии сегментально-конического тела невязким газом, подчиняющимся уравнению

состояния

P=(æ-1) (1.1)

Здесь - плотность, P- давление, - удельная внутренняя энергия, æ =

С р / C v - показатель изэнтропы.

В качестве системы уравнений, описывающей движение газа, использо-

вана система уравнений Эйлера в дивергентном виде. В цилиндрической системе

координат xOr направление оси x которой совпадает с осью симметрии течения,

исходная система записывается следующим образом:

2

2 2

2

( ) ( ) ( ) 0

( ) [( ) ] ( ) 0

( ) [( ) ] ( )

( ) [( ) ]

1            

                    2

[( ) ] 0

t x r

t x r

t r x

t x r

r ur vr

r u P u r uvr

r v P v r uvr P

r E P

P æ

u

E ur P E vr

vE

(1.2)

Система уравнений (1.1) и (1.2) составляет собой замкнутую систему

уравнений.

В этой системе величины плотности и скорости (u, -осевая и ра-

диальная составляющие V ) отнесены к характерные величинам в набегаю-

щем потоке и V , энергия Е – к V2 линейные величины - к радиусу

миделя обтекаемого тела RM , время t - к RM/V, где Е – полная внутренняя

энергия.

Вид системы (1.2) одинаков как для размерных, так и для безразмерных

величин.

Page 9: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

10

1.1.2. Физическая модель

Рис. 1.1. Расчетная область

На рис.1.1.изображена расчетная область. Она ограничена поверхностью

обтекаемого тела O E F G , поверхностями входа АВ и выхода CD, а также сво-

бодной поверхностью ВС, образующая которой параллельна оси симметрии.

Расчет начинается с удара набегающего потока в обтекаемое тело в мо-

мент времени t=0. Граничные условия на границах расчетной области ставятся

следующим образом: на участке AB внешней границы поддерживаются посто-

янными параметры набегающего потока.

=, E=E, U=U, V=V

На оси симметрии AD и границе тела O E F G условия непротекания; на

участках ВС и С D внешней границы - мягкие условия вида

2

20

f

x

. Отметим,

что открытые участки BC внешней границы должны быть расположены на рас-

стоянии превышающем размеры тела от источников возмущения.

1.2. Метод крупных частиц

Система уравнений (1-2) численно интегрируется методом крупных ча-

стиц. Алгоритм метода и анализ его разностных схем достаточно подробно из-

ложены в [1] . Используемый в данной программе расчетный алгоритм, исклю-

чая способ реализации граничных условий на теле, отличается незначительно от

изложенного в [1] . Поэтому здесь дадим краткое описание вычислительного ал-

горитма и немного подробнее остановимся на описании постановки граничных

условий в следующем параграфе.

Page 10: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

11

Область интегрирования покрывается неподвижной (эйлеровой) сеткой с

прямоугольными ячейками со сторонами x и r (рис. 1.1). Значения целых

чисел i (вдоль x ) и j (вдоль r) обозначают центр ячейки.

Стационарное решение задачи получается в результате установления, по-

этому весь процесс вычислений состоит из многократного повторения шагов по

времени.

Расчет каждого временного шага разбивается в свою очередь на три эта-

па:

1) “Эйлеров” этап, когда пренебрегаем всеми эффектами, связанными с

движением газа (потока массы через границы ячеек нет); здесь на фиксирован-

ной эйлеровой сетке определяются промежуточные значения исходных парамет-

ров потока ( , , )u E

2) “Лагранжев” этап, где вычисляются потоки массы при движении газа

через границы ячеек;

3 ) заключительный этап - определение окончательных значений пара-

метров потока ( , , , )u E на основе законов сохранения импульса, энергии

и массы для каждой ячейки.

1.2.1. Эйлеров этап

. На этом этапе расчета изменяются лишь величины, относящиеся к

ячейке в целом, а газ предполагается моментально заторможенным. По-

этому конвективные члены вида

( )div , (1, , , )u E соответствующие эффектам перемещения, из

уравнений (2) убираются. Из уравнения неразрывности, в частности., сле-

дует, что поле плотности будет "заморожено", поэтому в оставшихся урав-

нениях системы (2) мы сможем вынести из-под знака дифференциала и

разрешить (2) относительно временных производных от u, , E. Тогда по-

лучаем на эйлеровом этапе следующую укороченную систему

0

0

( ) ( ) 0

t x

t r

t x r

u P

P

r E Pur P r

(1.3)

Аппроксимируя уравнения (1.3) в момент времени tn, получаем сле-

дующие разностные уравнения для ячейки i, j:

Page 11: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

12

1/2, 1/2,

, ,

,

, 1/2 , 1/2

, ,

,

, 1/2 , 1/2 , 1/2 , 1/2 1/2, 1/2, 1/2, 1/2,

, ,

( 1)

( 1/ 2)

n n

i j i jn n

i j i j n

i j

n n

i j i jn n

i j i j n

i j

n n n n n n n n

i j i j i j i j i j i j i j i jn n

i j i j

P P tu u

x

P P t

r

jP j P P u P u tE E

j r z

,

n

i j

(1.4)

Здесь величины с дробными индексами относятся к границам ячеек:

, 1,

1/2,2

n n

i j i jn

i j

u uu

,

, 1,

1/ 2,2

n n

i j i jn

i j

P PP

,

, 1,

1/2,2

n n

i j i jn

i j

u uu

,

, 1,

1/ 2,2

n n

i j i jn

i j

P PP

,

, , 1

, 1/22

n n

i j i jn

i j

u uu

,

, , 1

, 1/ 22

n n

i j i jn

i j

P PP

,

, , 1

, 1/22

n n

i j i jn

i j

u uu

,

, , 1

, 1/ 22

n n

i j i jn

i j

P PP

, ,u E - промежуточные значения параметров потока, полученные в

предположении "замороженности" поля на слое tn+t

Конечно-разностные схемы (4) имеют первый порядок аппроксимации по

времени и второй по пространству.

Схемы первого этапа (4) сами по себе не устойчивы. Поэтому в них ино-

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

эффектов. Однако, как показано в [I] при определенных формах записи после-

дующих этапов разностная схема на всех трех этапах в целом является диссипа-

тивно-устойчивой без введения явной искусственной вязкости.

1.2.2.Лагранжев этап

На данном этапе вычисляются эффекты переноса, учитывающие обмен

между ячейками при их перестройке на прежнюю эйлерову сетку. Здесь нахо-

дятся за время t потоки массы Мn через границы эйлеровых ячеек. При этом

полагаем, что вся масса переносится только за счет нормальной к границе со-

Page 12: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

13

ставляющей скорости. Например, уравнение неразрывности системы 1.2 в раз-

ностной форме в цилиндрической системе координат можно записать так:

1 2 2

, , 1 1 1 1, , , ,

2 2 2 2

1 1( ) ( )

2 2

n n n n n n

i j i ji j i j i j i j

j r z j r z M M M M

где

2

1/2, 1/2, 1/2, ( 1/ 2)n n n

i j i j i jM u j r t (1.5)

Знак обозначает значения и u на границе ячейки. Выбор этих вели-

чин имеет важное значение, т.к. сильно влияет на устойчивость и точность счета.

Для всех видов записи Mn характерен учет направления потока на данной гра-

нице.

В данном модуле Mn определяется по формулам первого порядка точно-

сти

, 1, 2

, , 1,

1/2,

, 1, 2

1, , 1,

( 1/ 2) , : 02

( 1/ 2) , : 02

n n

i j i jn n n

i j i j i jn

i j n n

i j i jn n n

i j i j i j

u uj r t если u u

Mu u

j r t если u u

(1.6)

Как показывает анализ (см. [1] ) и многочисленные расчеты, формулы

(1.6) позволяют проводить устойчивый счет без введения явных членов искус-

ственной вязкости. Описание и анализ других-вариантов записи M даются в [1].

1.2.3. Заключительный этап

На этом этапе находятся окончательные значения эйлеровых параметров

потоке в момент времени tn+1

=tn+t. Уравнения этого этапе представляют собой+

законы сохранения массы M, импульса P .и полной энергии Е , записанные для

данной ячейки в разностной форме. 1n n n

гранM M M (1.7)

1n n n

гранP P P (1.8)

1n n n

гранE E E (1.9)

Page 13: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

14

Эти уравнения утверждают, что внутри поля течения нет источников и

стоков ,M P и E , а их изменение за время осуществляется только за счет потоков

через внешнюю границу области течения. Исходя из этого, окончательные зна-

чения параметров потока , ( , , )u E на следующем временном слое вы-

числяются по формулам:

1/2, , 1/2 1/2, , 1/21

, , 2

n n n n

i j i j i j i jn n

i j i j

M M M M

x r

(1.10)

, 1, 1/2, , 1 , 1/2 1, 1/2, , 1 , 1/21

, ,1 1 2

, ,

n n n n n n n n n

i j i j i j i j i j i j i j i j i jn n

i j i jn n

i j i j

M M M M

x r

(1.11)

Можно показать, что (1.10)-( 1.11) удовлетворяют (1.7)-( 1.9). Рассмотрим

сначала вопрос о сохранении массы. Полная масса газа в расчетной области (M x

N ) равна

1 2 1 2

, ,

1 1 1 1

1/2, , 1/2 1/2, , 1/2

1 1

( 1/ 2) ( 1/ 2)

( )

M N M Nn n

i j i j

i j i j

M Nn n n n

i j i j i j i j

i j

j x r j x r

M M M M

(1.12)

Член слева представляет собой массу газа в расчетной области при tn+1

,

первый член справа – при tn, а второй член - изменение массы за время t . По-

токи массы вычисляются здесь таким образом, что поток через правую границу

ячейки (i, j) равен потоку через левую границу ячейки (i+1, j). Поэтому в (12) все

Мn и внутри поля течения сократятся, и мы получим:

1 2

, ,

1 1

,1/2 , 1/2 1/2, 1/2,

1 1

( 1/ 2)

( ) ( )

M Nn n

i j i j

i j

M Nn n n n

i i N j M j

i j

j x r

M M M M

(1.13)

Так как (1.13) совпадает с (1.7), то можно утверждать, что использование

(1.10) приводит к выполнению закона сохранения массы. Аналогичным образом

можно показать, что используемая разностная схема удовлетворяет также зако-

нам сохранения импульса и полной энергии, т.е. является консервативной.

При практических расчетах для автоматического определения направле-

ния потока формула (1.11) изменяется. Введем функцию ,

n

i jD и занумеруем все

стороны ячейки (i,j) индексом k=1,2,3,4, как показано ниже

Page 14: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

15

Рис. 1.2. Внешний вид ячейки

Определим , ( )n

i jD k следующим образом:

,

_ _ _ _ ( , ) _ _

_ _ _ _ ( , ) _ _

1,( )

0,

n

i j

если газ втекает в ячейку i j через сторону k

если газ вытекает из ячейки i j чер з сторону kD k

е

Тогда окончательные значения параметров-потока , ( , , )u E на

новом временном слое tn+1

=tn+t определяются так:

1/2, , 1/2 1/2, , 1/21

, , 2

n n n n

i j i j i j i jn n

i j i j

M M M M

x r

(1.14)

1

, , 1, 1/2, , , 1 , 1/2

, 1, 1/2, , , 1 , 1/2

2

, , , 1/2,

, , 1/2 ,

(1) (2)

(3) (4)

( 1/ 2) 1 (1)

1 (2) 1 (3)

n n n n n n n

i j i j i j i j i j i j i j

n n n n n n

i j i j i j i j i j i j

n n n n

i j i j i j i j

n n n

i j i j i j

D M D M

D M D M

j r x D M

D M D

1/2,

2 1

, , 1/2 ,1 (4) / ( 1/ 2)

n

i j

n n n

i j i j i j

M

D M j r x

(1.15)

Вычислительный цикл, таким образом, закончен.

Остановимся кратко на аппроксимации граничных условий. Чтобы не

нарушать однородность алгоритма на границах расчетной области, вдоль всех

границ вводятся слои фиктивных ячеек, куда и засылаются параметры из смеж-

ных ячеек потока. Число таких слоев определяется порядком точности схемы

(для 1-го порядка один слой и т.д.) В случае твердой границы (или осей симмет-

рии) нормальная к границе компонента скорости меняет знак, а остальные пара-

метры потока переносятся в фиктивный слой без изменения. На открытых гра-

ницах области проводится экстраполяция параметров потока "изнутри", т.е. в

фиктивный слой переносятся, например, значения параметров из ближайшего к

границе слоя (экстраполяция нулевого порядка). Возможны и более точные экс-

траполяции, (линейная, квадратичная).

Описанная методика задания граничных условий справедлива для тел,

контур которых совпадает с границами прилегающих к ним ячеек. При рассмот-

рении тел более общей формы их границы будут пересекать расчетную сетку, в

результате чего образуются так называемые дробные ячейки.

Page 15: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

16

Рис. 1.3. Характеристики дробной ячейки

В этом случае образующая тела аппроксимируется отрезками прямых, со-

единяющими точки пересечения контура тела.: с эйлеровой . сеткой. Такая ку-

сочно-линейная аппроксимация оправдана, поскольку для вычислений исполь-

зуются разностные схемы первого порядка точности.

В [1] излагаются два способа построения расчетных формул для дробных

ячеек. В настоящей программе используется алгоритм расчета параметров в

дробных ячейках, предложенный в [2]. В отличие от [1] здесь используются

дифференциальные граничные условия не для засылки значений в фиктивные

ячейки, а непосредственно для расчета значений параметров в дробных ячейках,

что заметно упрощает алгоритм расчета.

Для каждой дробной ячейки (рис. 1.3) вводятся пять геометрических ха-

рактеристик: S1i,j, S2i,j, S3i,j, S4i,j, Fi,j,

Здесь Fi,j, - доля объема дробной ячейки по отношению к объему целой

ячейки; . S1i,j, - часть площади левой границы (i-1/2,j), открытой для течения га-

за, и т.д. (для целой ячейки (i,j) ,

Очевидно, Fi,j=1, S1i,j=S2i,j=S3i,j=S4i,j=1

Далее с помощью интегро-интерполяционного метода (см. [2] ) получаются

следующие формулы для расчета промежуточных значений , ,u E на эйле-

ровом этапе

, , , 1, , , , 1,

, ,

( 3 ( ) 1 ( ))2

n n n n n n

i j i j i j i j i j i j i j i jn

i j i j

tu u S P P S P P

F

(1.16)

, , , , 1 , , , 1,

, ,

( 4 ( ) 2 ( ))2

n n n n n n

i j i j i j i j i j i j i j ijn

i j i j

tS P P S P P

F

(1.17)

, , , 1/2, 1/2, , 1/2, 1/2,

, ,

, , 1/2 , 1/2 , , 1/2 , 1/2

( 3 12

4 2 )

n n n n n n

i j i j i j i j i j i j i j i jn

i j i j

n n n n

i j i j i j i j i j i j

tE E S P u S P u

F

S P S P u

(1.18)

Page 16: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

17

При расчете по формулам (1.16)-( 1.18) значения в фиктивных ячейках

умножаются, на 0 и фактически не учитываются, что позволяет вести однород-

ный счет по всем дробным ячейкам , В случае целых ячеек эти формулы перехо-

дят,. как нетрудно 'проверить, в обычные формуле для целых ячеек (1.4).

Для второго (Лагранжева) этапа аналогично [1] имеем

2

1/2, 1/2, 1/2,1 ( 1/ 2)n n n

i j i j i jM S u j r t (1.19)

И наконец, для третьего (заключительного) этапа:

1

, , 1/2, 1/2, , 1/2 , 1/2

,

1( )n n n n n n

i j i j i j i j i j i j

i jF

(1.20)

Где , , ,u E

, 1/2,

1/2, , 1/2,

1, 1/2,

, _ 01

, _ 0

n n

i j i jn n

i j i j i j n n

i j i j

если US tU

если U

Как нетрудно видеть, для тел, образующая которых совпадает с граница-

ми прилегающих ячеек, расчет по формулам (1.16)-( 1.20), эквивалентен методи-

ке засылки значений в фиктивные ячейки.

1.3. Метод Курганова-Тадмора

MUSCL - схема это целый класс методов это можно сказать метод Годунова вто-

рого порядка.

Метод Годунова — реализация схем сквозного счета, с помощью которых

можно рассчитывать газодинамические течения с разрывами параметров внутри

расчётной области. Потоки через боковые грани, определяются из решения зада-

чи о распаде произвольного разрыва

Наш же метод - схема Курганова-Тадмора.

Основное отличие схемы Курганова-Тадмора - там нет точного решения зада-

чи Римана т.е. потоки через границы считаются приближенно а не точно как у

Годунова.

Page 17: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

18

Но это часто бывает не так и плохо:

1.Это намного быстрее

2.Можно регулировать гладкость полученного решения -> устойчивость при ре-

шении реальных задач может быть выше.

Дальнейшим развитием схемы Годунова стали схемы второго и более по-

рядков - так называемые MUSCL схемы. Впервые описанные в [van Leer, B.

(1979), Towards the Ultimate Conservative Difference Scheme, V. A Second Order

Sequel to Godunov's Method, J. Com. Phys.., 32, 101–136.] эти схемы получили в

настоящее время широкое распространение благодаря повышенной по сравне-

нию с методами первого порядка точностью особенно в случае гладких течений.

Однако одним из серьезных недостатков всех подобных разностных схем явля-

ется необходимость решения задачи распада разрыва для каждой границы каж-

дой ячейки,при этом нахождение точного решения является крайне ресурсоем-

кой задачей. В последнее время стал появлятся целый класс перспективных

методов - Riemann-solver-free schemes, отличительной особенностью данных ме-

тодов является замена точного решения задачи о распаде на некоторое прибли-

женное численное решение. Одним из подобных методов является метод Курга-

нова-Тадмора. Несмотря на то, что метод является относительно новым, он уже

хорошо себя зарекомендовал в решении различных задач мат физики

1.3.1. Двумерный случай.

r

z

VU

V

E

r

r r

z r

r r

V

V V pF

V V

EV pV

z

z r

z z

z z

V

V VG

V V p

EV pV

0U F G

t r z

Page 18: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

19

Решение задачи осуществлялось численным интегрированием уравнений,

входящих в данные соотношения. Внутри расчетной области 0 ≤ r ≤ 0R , 0 ≤ z ≤

0Z введена равномерная сетка с R ZN N ячейками, радиальный размер которых

равен Δr = 0

r

RN

, а вертикальный – Δz = 0

z

ZN

. Также для удобства аппроксима-

ции граничных условий добавлен ряд фиктивных ячеек (снаружи расчетной об-

ласти) вдоль каждой из границ, так что при расчете используется ( RN + 2) × ( ZN

+ 2) ячеек. Координаты границ ячеек вдоль радиального направления br (i), i =1,

… , N + 1 определяются во время генерации сетки, координаты же центра ячеек

определяются из соотношения cr (i) = 0.5( br (i) + br (i − 1)), где

i = 2, … , RN + 1 (аналогичным образом для вертикального направления).

Размеры фиктивных ячеек совпадают с размерами внутренних.

Расположение ячеек и их центров в расчетной области, а также их обозна-

чение представлено на рисунке. Пунктирными линиями показаны фиктивные

ячейки. Все величины (давления, плотности, температуры, скорости, энергии и

концентрации) определяются в центре ячеек.

Рис.1.6. Расположение и обозначения центров ячеек и их границ в расчет-

ной области

Page 19: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

20

Численная схема

Рассмотрим аппроксимацию системы уравнений. Дискретизация основных

уравнений выполняется с помощью монотоннойцентрально-разностной схемы

высокого порядка. Она обеспечивает большую точность по сравнению с про-

стыми схемами первого порядка вследствие очень малой численной диффузии,

вводимой в аппроксимацию.

Рассматриваемая численная схема выводится для решения законов сохра-

нения, записанных в форме

где U– вектор консервативных переменных длины N, и F, G – нелинейные кон-

вективные потоки соответственно вдоль радиального и осевого направле-

ний. Для реконструкции численных потоков на границе ячеек в схеме ис-

пользуется монотонное центральное дифференцирование высокого поряд-

ка. Преимущество этой схемы по сравнению с противопоточными схемами

в ее простоте, потому что не нужно определять собственные числа якобиа-

на потока, что требуется в схемах Годунова.

В дискретизированной двумерной форме схема может быть переписана в виде

( 1) ( ) 1 1 1 1, , , ,

, , 2 2 2 2 0

n ni j i j i j i j

i j i j

H H J JU U

t r z

Где H и J – численные потоки на границах ячеек, рассчитываемые по формулам:

1,

21 1 1 1 1

, , , , ,2 2 2 2 2

1( ( ) ( )) ( )

2 2

i j

i j i j i j i j i j

a

H F U F U U U

(1.21)

1,

21 1 1 1 1

, , , , ,2 2 2 2 2

1( ( ) ( )) ( )

2 2

i j

i j i j i j i j i j

a

J G U G U U U

(1.22)

( , , ) ( ( , , )) ( ( , , ))0

U r z t F U r z t G U r z t

t r z

Page 20: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

21

1 1, 1,,

2

( ) ,2i j i j

i jr

rU U U

1 , ,

,2

( )2i j i j

i jr

rU U U

(1.23)

где производные по пространству ,

( )i jrU аппроксимируются по значениям

1,( )

i jrU

, ,

( )i jrU и

1,( )

i jrU

с помощью ограничителя minmod, который обеспе-

чивает свойство схемы:

,

, 1, 1, 1, 1, ,( ) min mod( , ,

2i j

i j i j i j i j i j i j

x

U U U U U UU

r r r

(1.24)

Здесь 1

min mod( , ) ( ) ( ) min(| |,| |)2

a b sign a sign b a b и 1 2 .

Важно отметить, что в (1.24) каждая компонента вектора рассматривается

отдельно, что упрощает схему, не ухудшая его свойств, Аналогичные соотноше-

ния используются для z-направления. Стоит добавить, что устанавливая

( ) 0xU в (1.23), мы получаем схему с первым порядком точности, что в неко-

торых ситуациях может оказаться более устойчивым, чем использование схем с

повышенным порядком.

Величины 1,

2i j

a и 1

,2

i ja

в численных потоках (1.21) и (1.22) являются

максимальными локальными скоростями распространения на границах ячеек,

рассчитываемые из соотношений

1 1 1, , ,

2 2 2

max ( ) , ( )i j i j i j

F Fa U U

U U

(1.25)

где ( ) max | ( ) |i iA A обозначает спектральный радиус матрицы А

(максимальный модуль собственных чисел ( )i A ).

Page 21: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

22

В случае наших уравнений газовой динамики собственные числа известны: u − c,

u и u + c, где

1

2Pс

– локальная скорость звука, поэтому определение 1

,2

i ja

не

требует решения задачи на нахождение собственных чисел.

Заметим, что для определения численных потоков (соотношения (1.21)-

(1.25) все значения берутся из предыдущего шага по времени. Условие на устой-

чивость и уменьшение полной вариации формируются с использованием следу-

ющих чисел Куранта:

1

8

a tCEL

x

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

члены. Например, в одномерном случае, уравнение с диффузионным членом

имеет следующий вид:

В данном случае, Курганов и Тадмор предлагают следующую центрально-

разностную аппроксимацию:

где,

Полное описание алгоритма можно найти в оригинальной статье Кургано-

ва и Талдмора [22].

Примечание: Эта схема была первоначально представленный Курганов и

Тадмором как схема второго порядка, основанная на линейной экстраполяции. В

более поздней работе [23] показывается, что данная схема может быть расшире-

на до третьего порядка.

Page 22: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

23

1.4. Технологии увеличения производительности.

Для реализации подобных задач очень важен размер сетки. Чем он боль-

ше, тем результат более точный. Но мы сталкиваемся с такой проблемой, как

низкое быстродействие при больших размерах сеток.

По этой причине мы задумались о способах повышения производитель-

ности. И мы рассматривали такие способы повышения производительности:

1. Распараллеливание. Использование многоядерных процессоров. Тех-

нология OpenMP.

2. Использование вычисления на видеокартах. Технология CUDA.

1.4.1. Распараллеливание. Технология OpenMP

1.4.1.1. Технологии параллельного программирования

Сразу же надо сказать, что существует довольно много разных технологий

параллельного программирования. Причем эти технологии отличаются не только

и не столько языками программирования, сколько архитектурными подходами к

построению параллельных систем.

Например, какие-то технологии предполагают построение параллельных

решений на основе нескольких компьютеров (как одного, так и разных типов),

другие же предполагают именно работу на одной машине с несколькими процес-

сорными ядрами.

Системы на базе нескольких компьютеров относят к классу систем для рас-

пределенных вычислений. Подобные решения используются довольно давно, их

хорошо понимают профессионалы индустрии, по ним имеется довольно много

литературы. Наиболее яркий пример технологии распределенных вычислений -

MPI (Message Passing Interface - интерфейс передачи сообщений). MPI является

наиболее распространённым стандартом интерфейса обмена данными в парал-

Page 23: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

24

лельном программировании, существуют его реализации для большого числа

компьютерных платформ. MPI предоставляет программисту единый механизм

взаимодействия ветвей внутри параллельного приложения независимо от ма-

шинной архитектуры (однопроцессорные/многопроцессорные с об-

щей/раздельной памятью), взаимного расположения ветвей (на одном процессо-

ре или на разных).

Так как MPI предназначен для систем с раздельной памятью, то использо-

вать его для организации параллельного процесса в системе с общей памятью не

лучшая идея. Это будет слишком избыточно и сложно, поэтому-то и начали раз-

виваться решения вроде OpenMP. Хотя, конечно же, ничто не мешает делать

MPI-решения для одной машины.

А вот системы параллельного программирования для работы на одной ма-

шине, начали развиваться относительно недавно. Нет, конечно же, не стоит ду-

мать, что это принципиально новые идеи, но именно с приходом (вернее с пред-

стоящим приходом) многоядерных систем на рабочий стол, программистам сто-

ит обратить свое внимание на такие технологии как OpenMP, Intel Thread Build-

ing Blocks, Microsoft Parallel Extensions и ряд других.

Очень важно, чтобы технология параллельного программирования поддер-

живала возможность делать программу параллельной постепенно. Да, понятно,

что идеальную параллельную программу надо сразу писать параллельной, а еще

лучше на каком-нибудь функциональном языке, где вопрос распараллеливания

вообще не стоит... Но программисты живут и работают в реальном мире, в кото-

ром вместо новомодного функционального F# есть 10 МБайт кода в лучшем

случае на C++, а то и вообще на C. И этот код надо постепенно распараллели-

вать. В этом случае технология OpenMP будет очень удачным выбором. Она

позволяет, выбрав в приложении наиболее нуждающиеся в параллелизации ме-

ста, в первую очередь сделать параллельными именно их. На практике это вы-

глядит так. С помощью какого-либо инструмента для профилирования програм-

Page 24: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

25

мист ищет в программе "узкие места", которые работают наиболее долго. Поче-

му с помощью инструмента? Потому что силой мысли в малоизвестном проекте

размером в 10 Мбайт найти "узкие места" не удастся. Затем эти узкие места про-

граммист делает параллельными с помощью OpenMP. После этого, можно ис-

кать следующие узкие места и так далее, до тех пор, пока не будет получена же-

лаемая производительность приложения. Процесс разработки параллельной вер-

сии можно прерывать, выпускать промежуточные релизы, возвращаться к нему

по мере необходимости. Именно поэтому в частности технология OpenMP стала

довольно популярной.

1.4.1.2. OpenMP

OpenMP (Open Multi-Processing) - это набор директив компилятора, библио-

течных процедур и переменных окружения, которые предназначены для про-

граммирования многопоточных приложений на многопроцессорных системах с

общей памятью (SMP-системах).

Первый стандарт OpenMP был разработан в 1997 г. как API, ориентирован-

ный на написание легко переносимых многопоточных приложений. Сначала он

был основан на языке Fortran, но позднее включил в себя и языки Си и Си++.

Интерфейс OpenMP стал одной из наиболее популярных технологий парал-

лельного программирования. OpenMP успешно используется как при програм-

мировании суперкомпьютерных систем с большим количеством процессоров,

так и в настольных пользовательских системах или, например, в Xbox 360.

Разработку спецификации OpenMP ведут несколько крупных производите-

лей вычислительной техники и программного обеспечения, чья работа регулиру-

ется некоммерческой организацией "OpenMP Architecture Review Board".

В OpenMP используется модель параллельного выполнения "ветвление-

слияние". Программа OpenMP начинается как единственный поток выполнения,

называемый начальным потоком. Когда поток встречает параллельную кон-

Page 25: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

26

струкцию, он создает новую группу потоков, состоящую из себя и некоторого

числа дополнительных потоков, и становится главным в новой группе. Все чле-

ны новой группы (включая главный) выполняют код внутри параллельной кон-

струкции. В конце параллельной конструкции имеется неявный барьер. После

параллельной конструкции выполнение пользовательского кода продолжает

только главный поток. В параллельный регион могут быть вложены другие па-

раллельные регионы, в которых каждый поток первоначального региона стано-

вится основным для своей группы потоков. Вложенные регионы могут в свою

очередь включать регионы более глубокого уровня вложенности.

1.4.2. Использование вычисления на видеокартах. Технология CUDA

1.4.2.1. Введение в технологию CUDA.

Устройства для превращения персональных компьютеров в маленькие су-

перкомпьютеры известны довольно давно. Ещё в 80-х годах прошлого века на

рынке предлагались так называемые транспьютеры, которые вставлялись в рас-

пространенные тогда слоты расширения ISA. Первое время их производитель-

ность в соответствующих задачах впечатляла, но затем рост быстродействия

универсальных процессоров ускорился, они усилили свои позиции в параллель-

ных вычислениях, и смысла в транспьютерах не осталось. Хотя подобные

устройства существуют и сейчас — это разнообразные специализированные

ускорители. Но зачастую сфера их применения узка и особого распространения

такие ускорители не получили.

Но в последнее время эстафета параллельных вычислений перешла к массо-

вому рынку, так или иначе связанному с трёхмерными играми. Универсальные

устройства с многоядерными процессорами для параллельных векторных вы-

числений, используемых в 3D-графике, достигают высокой пиковой производи-

тельности, которая универсальным процессорам не под силу. Конечно, макси-

мальная скорость достигается лишь в ряде удобных задач и имеет некоторые

Page 26: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

27

ограничения, но такие устройства уже начали довольно широко применять в

сферах, для которых они изначально и не предназначались.

Для 3D видеоускорителей ещё несколько лет назад появились первые тех-

нологии неграфических расчётов общего назначения GPGPU (General-Purpose

computation on GPUs). Ведь современные видеочипы содержат сотни математи-

ческих исполнительных блоков, и эта мощь может использоваться для значи-

тельного ускорения множества вычислительно интенсивных приложений. И ны-

нешние поколения GPU обладают достаточно гибкой архитектурой, что вместе с

высокоуровневыми языками программирования и программно-аппаратными ар-

хитектурами раскрывает эти возможности и делает их значительно более до-

ступными.

На создание GPCPU разработчиков побудило появление достаточно быст-

рых и гибких шейдерных программ, которые способны исполнять современные

видеочипы. Разработчики задумали сделать так, чтобы GPU рассчитывали не

только изображение в 3D приложениях, но и применялись в других параллель-

ных расчётах. В GPGPU для этого использовались графические API: OpenGL и

Direct3D, когда данные к видеочипу передавались в виде текстур, а расчётные

программы загружались в виде шейдеров. Недостатками такого метода является

сравнительно высокая сложность программирования, низкая скорость обмена

данными между CPU и GPU и другие ограничения, о которых мы поговорим да-

лее.

Вычисления на GPU развивались и развиваются очень быстро. И в даль-

нейшем, два основных производителя видеочипов, NVIDIA и AMD, разработали

и анонсировали соответствующие платформы под названием CUDA (Compute

Unified Device Architecture) и CTM (Close To Metal или AMD Stream Computing),

соответственно. В отличие от предыдущих моделей программирования GPU, эти

были выполнены с учётом прямого доступа к аппаратным возможностям ви-

деокарт. Платформы не совместимы между собой, CUDA — это расширение

Page 27: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

28

языка программирования C, а CTM — виртуальная машина, исполняющая ас-

семблерный код. Зато обе платформы ликвидировали некоторые из важных

ограничений предыдущих моделей GPGPU, использующих традиционный гра-

фический конвейер и соответствующие интерфейсы Direct3D или OpenGL.

Конечно же, открытые стандарты, использующие OpenGL, кажутся наибо-

лее портируемыми и универсальными, они позволяют использовать один и тот

же код для видеочипов разных производителей. Но у таких методов есть масса

недостатков, они значительно менее гибкие и не такие удобные в использовании.

Кроме того, они не дают использовать специфические возможности определён-

ных видеокарт, такие, как быстрая разделяемая (общая) память, присутствующая

в современных вычислительных процессорах.

Именно поэтому компания NVIDIA выпустила платформу CUDA — C-

подобный язык программирования со своим компилятором и библиотеками для

вычислений на GPU. Конечно же, написание оптимального кода для видеочипов

совсем не такое простое и эта задача нуждается в длительной ручной работе, но

CUDA как раз и раскрывает все возможности и даёт программисту больший кон-

троль над аппаратными возможностями GPU.

1.4.2.2. Разница между CPU и GPU в параллельных расчётах

Рост частот универсальных процессоров упёрся в физические ограничения и

высокое энергопотребление, и увеличение их производительности всё чаще про-

исходит за счёт размещения нескольких ядер в одном чипе. Продаваемые сейчас

процессоры содержат лишь до шести ядер (дальнейший рост не будет быстрым)

и они предназначены для обычных приложений, используют MIMD — множе-

ственный поток команд и данных. Каждое ядро работает отдельно от остальных,

исполняя разные инструкции для разных процессов.

Например, в видеочипах NVIDIA основной блок — это мультипроцессор с

восемью-двенадцатью ядрами и сотнями ALU в целом, несколькими тысячами

Page 28: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

29

регистров и небольшим количеством разделяемой общей памяти. Кроме того,

видеокарта содержит быструю глобальную память с доступом к ней всех муль-

типроцессоров, локальную память в каждом мультипроцессоре, а также специ-

альную память для констант.

Самое главное — эти несколько ядер мультипроцессора в GPU являются

SIMD (одиночный поток команд, множество потоков данных) ядрами. И эти яд-

ра исполняют одни и те же инструкции одновременно, такой стиль программи-

рования является обычным для графических алгоритмов и многих научных за-

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

ет увеличить количество исполнительных блоков за счёт их упрощения.

Итак, перечислим основные различия между архитектурами CPU и GPU.

Ядра CPU созданы для исполнения одного потока последовательных инструкций

с максимальной производительностью, а GPU проектируются для быстрого ис-

полнения большого числа параллельно выполняемых потоков инструкций. Уни-

версальные процессоры оптимизированы для достижения высокой производи-

тельности единственного потока команд, обрабатывающего и целые числа и

числа с плавающей точкой. При этом доступ к памяти случайный.

Разработчики CPU стараются добиться выполнения как можно большего

числа инструкций параллельно, для увеличения производительности. Для этого,

начиная с процессоров Intel Pentium, появилось суперскалярное выполнение,

обеспечивающее выполнение двух инструкций за такт, а Pentium Pro отличился

внеочередным выполнением инструкций. Но у параллельного выполнения по-

следовательного потока инструкций есть определённые базовые ограничения и

увеличением количества исполнительных блоков кратного увеличения скорости

не добиться.

У видеочипов работа простая и распараллеленная изначально. Видеочип

принимает на входе группу полигонов, проводит все необходимые операции, и

на выходе выдаёт пиксели. Обработка полигонов и пикселей независима, их

Page 29: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

30

можно обрабатывать параллельно, отдельно друг от друга. Поэтому, из-за изна-

чально параллельной организации работы в GPU используется большое количе-

ство исполнительных блоков, которые легко загрузить, в отличие от последова-

тельного потока инструкций для CPU.

GPU отличается от CPU ещё и по принципам доступа к памяти. В GPU он

связанный и легко предсказуемый — если из памяти читается тексель текстуры,

то через некоторое время придёт время и для соседних текселей. Да и при записи

то же — пиксель записывается во фреймбуфер, и через несколько тактов будет

записываться расположенный рядом с ним. Поэтому организация памяти отли-

чается от той, что используется в CPU. И видеочипу, в отличие от универсаль-

ных процессоров, просто не нужна кэш-память большого размера, а для текстур

требуются лишь несколько (до 128-256 в нынешних GPU) килобайт.

Да и сама по себе работа с памятью у GPU и CPU несколько отличается.

Так, не все центральные процессоры имеют встроенные контроллеры памяти, а у

всех GPU обычно есть по несколько контроллеров, вплоть до восьми 64-битных

каналов в чипе NVIDIA GT250. Кроме того, на видеокартах применяется более

быстрая память, и в результате видеочипам доступна в разы большая пропускная

способность памяти, что также весьма важно для параллельных расчётов, опери-

рующих с огромными потоками данных.

В универсальных процессорах большие количества транзисторов и пло-

щадь чипа идут на буферы команд, аппаратное предсказание ветвления и огром-

ные объёмы начиповой кэш-памяти. Все эти аппаратные блоки нужны для уско-

рения исполнения немногочисленных потоков команд. Видеочипы тратят тран-

зисторы на массивы исполнительных блоков, управляющие потоками блоки,

разделяемую память небольшого объёма и контроллеры памяти на несколько ка-

налов. Вышеперечисленное не ускоряет выполнение отдельных потоков, оно

позволяет чипу обрабатывать нескольких тысяч потоков, одновременно испол-

няющихся чипом и требующих высокой пропускной способности памяти.

Page 30: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

31

Про отличия в кэшировании. Универсальные центральные процессоры ис-

пользуют кэш-память для увеличения производительности за счёт снижения за-

держек доступа к памяти, а GPU используют кэш или общую память для увели-

чения полосы пропускания. CPU снижают задержки доступа к памяти при по-

мощи кэш-памяти большого размера, а также предсказания ветвлений кода. Эти

аппаратные части занимают большую часть площади чипа и потребляют много

энергии. Видеочипы обходят проблему задержек доступа к памяти при помощи

одновременного исполнения тысяч потоков — в то время, когда один из потоков

ожидает данных из памяти, видеочип может выполнять вычисления другого по-

тока без ожидания и задержек.

Есть множество различий и в поддержке многопоточности. CPU исполняет

1-2 потока вычислений на одно процессорное ядро, а видеочипы могут поддер-

живать до 1024 потоков на каждый мультипроцессор, которых в чипе несколько

штук. И если переключение с одного потока на другой для CPU стоит сотни так-

тов, то GPU переключает несколько потоков за один такт.

Кроме того, центральные процессоры используют SIMD (одна инструкция

выполняется над многочисленными данными) блоки для векторных вычислений,

а видеочипы применяют SIMT (одна инструкция и несколько потоков) для ска-

лярной обработки потоков. SIMT не требует, чтобы разработчик преобразовывал

данные в векторы, и допускает произвольные ветвления в потоках.

Вкратце можно сказать, что в отличие от современных универсальных CPU,

видеочипы предназначены для параллельных вычислений с большим количе-

ством арифметических операций. И значительно большее число транзисторов

GPU работает по прямому назначению — обработке массивов данных, а не

управляет исполнением (flow control) немногочисленных последовательных вы-

числительных потоков.

Page 31: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

32

Рис. 1.7. Схема, показывающая сколько места в CPU и GPU

занимает разнообразная логика:

В итоге, основой для эффективного использования мощи GPU в научных и

иных неграфических расчётах является распараллеливание алгоритмов на сотни

исполнительных блоков, имеющихся в видеочипах. К примеру, множество при-

ложений по молекулярному моделированию отлично приспособлено для расчё-

тов на видеочипах, они требуют больших вычислительных мощностей и поэтому

удобны для параллельных вычислений. А использование нескольких GPU даёт

ещё больше вычислительных мощностей для решения подобных задач.

Выполнение расчётов на GPU показывает отличные результаты в алгорит-

мах, использующих параллельную обработку данных. То есть, когда одну и ту

же последовательность математических операций применяют к большому объё-

му данных. При этом лучшие результаты достигаются, если отношение числа

арифметических инструкций к числу обращений к памяти достаточно велико.

Это предъявляет меньшие требования к управлению исполнением (flow control),

а высокая плотность математики и большой объём данных отменяет необходи-

мость в больших кэшах, как на CPU.

В результате всех описанных выше отличий, теоретическая производитель-

ность видеочипов значительно превосходит производительность CPU.

Page 32: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

33

1.4.2.3. Технология CUDA

Технология CUDA — это программно-аппаратная вычислительная архитек-

тура NVIDIA, основанная на расширении языка Си, которая даёт возможность

организации доступа к набору инструкций графического ускорителя и управле-

ния его памятью при организации параллельных вычислений.

Хотя трудоёмкость программирования GPU при помощи CUDA довольно

велика, она ниже, чем с ранними GPGPU решениями. Такие программы требуют

разбиения приложения между несколькими мультипроцессорами подобно MPI

программированию, но без разделения данных, которые хранятся в общей ви-

деопамяти. И так как CUDA программирование для каждого мультипроцессора

подобно OpenMP программированию, оно требует хорошего понимания органи-

зации памяти. Но, конечно же, сложность разработки и переноса на CUDA силь-

но зависит от приложения.

Набор для разработчиков содержит множество примеров кода и хорошо до-

кументирован. Процесс обучения потребует около двух-четырёх недель для тех,

кто уже знаком с OpenMP и MPI. В основе API лежит расширенный язык Си, а

для трансляции кода с этого языка в состав CUDA SDK входит компилятор ко-

мандной строки nvcc, созданный на основе открытого компилятора Open64.

Перечислим основные характеристики CUDA:

унифицированное программно-аппаратное решение для параллель-

ных вычислений на видеочипах NVIDIA;

большой набор поддерживаемых решений, от мобильных до мульти-

чиповых

стандартный язык программирования Си;

стандартные библиотеки численного анализа FFT (быстрое преобра-

зование Фурье) и BLAS (линейная алгебра);

Page 33: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

34

оптимизированный обмен данными между CPU и GPU;

взаимодействие с графическими API OpenGL и DirectX;

поддержка 32- и 64-битных операционных систем: Windows XP,

Windows Vista, Linux и MacOS X;

возможность разработки на низком уровне.

Основные преимущества CUDA по сравнению с предыдущими метода-

ми GPGPU вытекают из того, что эта архитектура спроектирована для эффек-

тивного использования неграфических вычислений на GPU и использует язык

программирования C, не требуя переноса алгоритмов в удобный для концепции

графического конвейера вид.

Кроме того, CUDA открывает некоторые аппаратные возможности, недо-

ступные из графических API, такие как разделяемая память. Это память неболь-

шого объёма (16 килобайт на мультипроцессор), к которой имеют доступ блоки

потоков. Она позволяет кэшировать наиболее часто используемые данные и мо-

жет обеспечить более высокую скорость, по сравнению с использованием тек-

стурных выборок для этой задачи. Что, в свою очередь, снижает чувствитель-

ность к пропускной способности параллельных алгоритмов во многих приложе-

ниях. Например, это полезно для линейной алгебры, быстрого преобразования

Фурье и фильтров обработки изображений.

Удобнее в CUDA и доступ к памяти. Программный код в графических

API выводит данные в виде 32-х значений с плавающей точкой одинарной точ-

ности (RGBA значения одновременно в восемь render target) в заранее предопре-

делённые области, а CUDA поддерживает scatter запись — неограниченное чис-

ло записей по любому адресу. Такие преимущества делают возможным выпол-

нение на GPU некоторых алгоритмов, которые невозможно эффективно реализо-

вать при помощи методов GPGPU, основанных на графических API.

Также, графические API в обязательном порядке хранят данные в тексту-

рах, что требует предварительной упаковки больших массивов в текстуры, что

Page 34: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

35

усложняет алгоритм и заставляет использовать специальную адресацию. А

CUDA позволяет читать данные по любому адресу. Ещё одним преимуществом

CUDA является оптимизированный обмен данными между CPU и GPU. А для

разработчиков, желающих получить доступ к низкому уровню (например, при

написании другого языка программирования), CUDA предлагает возможность

низкоуровневого программирования на ассемблере.

1.4.2.4. Модель программирования CUDA

Видеочип отличается от CPU тем, что может обрабатывать одновременно

десятки тысяч потоков, что обычно для графики, которая хорошо распараллели-

вается. Каждый поток скалярен, не требует упаковки данных в 4-компонентные

векторы, что удобнее для большинства задач. Количество логических потоков и

блоков потоков превосходит количество физических исполнительных устройств,

что даёт хорошую масштабируемость для всего модельного ряда решений ком-

пании.

Модель программирования в CUDA предполагает группирование пото-

ков. Потоки объединяются в блоки потоков (thread block) — одномерные или

двумерные сетки потоков, взаимодействующих между собой при помощи разде-

ляемой памяти и точек синхронизации. Программа (ядро, kernel) исполняется

над сеткой (grid) блоков потоков (thread blocks), см. рисунок ниже. Одновремен-

но исполняется одна сетка. Каждый блок может быть одно-, двух- или трехмер-

ным по форме, и может состоять из 512 потоков на текущем аппаратном обеспе-

чении.

Page 35: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

36

Рис. 1.8. Модель программирования в CUDA

Блоки потоков выполняются в виде небольших групп, называемых варп

(warp), размер которых — 32 потока. Это минимальный объём данных, которые

могут обрабатываться в мультипроцессорах. И так как это не всегда удобно,

CUDA позволяет работать и с блоками, содержащими от 64 до 512 потоков.

Группировка блоков в сетки позволяет уйти от ограничений и применить

ядро к большему числу потоков за один вызов. Это помогает и при масштабиро-

вании. Если у GPU недостаточно ресурсов, он будет выполнять блоки последо-

вательно. В обратном случае, блоки могут выполняться параллельно, что важно

для оптимального распределения работы на видеочипах разного уровня, начиная

от мобильных и интегрированных.

1.4.2.5. Среда программирования

В состав CUDA входят runtime библиотеки:

общая часть, предоставляющая встроенные векторные типы и подмноже-

ства вызовов RTL, поддерживаемые на CPU и GPU;

CPU-компонента, для управления одним или несколькими GPU;

Page 36: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

37

GPU-компонента, предоставляющая специфические функции для GPU.

Основной процесс приложения CUDA работает на универсальном процес-

соре (host), он запускает несколько копий процессов kernel на видеокарте. Код

для CPU делает следующее: инициализирует GPU, распределяет память на ви-

деокарте и системе, копирует константы в память видеокарты, запускает не-

сколько копий процессов kernel на видеокарте, копирует полученный результат

из видеопамяти, освобождает память и завершает работу.

В качестве примера для понимания приведем CPU код для сложения век-

торов, представленный в CUDA:

Функции, исполняемые видеочипом, имеют следующие ограничения: от-

сутствует рекурсия, нет статических переменных внутри функций и переменного

числа аргументов. Поддерживается два вида управления памятью: линейная па-

Page 37: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

38

мять с доступом по 32-битным указателям, и CUDA-массивы с доступом только

через функции текстурной выборки.

1.5. Спускаемый аппарат ЭкзоМарс 2018.

Альтернативная технология аппарата ЭкзоМарс-2018.

В 2018 году планируется осуществление полета аппарата ЭкзоМарс.

Один из вариантов возможных технологий для тормозного пути, это использо-

вание технологий надувных тормозных устройств.

X

Рис. 1.9. Спускаемый аппарат ЭкзоМарс 2018 в транспортном положении

Page 38: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

39

Технология НТУ является новой многообещающей технологией спуска

аппаратов в атмосфере, совмещающей в себе свойства средств входа и балли-

стического торможения, средств эффективного торможения в плотных слоях ат-

мосферы и амортизирующего устройства при посадке на поверхность. Эта тех-

нология была впервые разработана в НПО им. С.А.Лавочкина в рамках проекта

"Марс-96" для использования на марсианском пенетраторе.

Для правильной работы надувных тормозных устройств очень важно со-

хранение формы спускаемого аппарата с НТУ. Для этого здесь рассматривается

обтекание данного аппарата во время нахождения его в транспортном положе-

нии.

1.6. Тестирование программ

1.6.1. Внешний вид программы

Рис. 1.10. Внешний вид программы

Page 39: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

40

Программа MainProgram

1. (Method) Выбор метода : а) метод крупных частиц (Pic);

б) метод Курганова-Тадмора (Godunov).

2. (Share) Выбор тела: а) цилиндр (CYL);

б) конус 60 (CON);

в) конус 45 (CON2);

г) ЭкзоМарс2018 (MEGA);

д) пластина (Sqare);

е) клин (Wedge).

3. Ввод: а) (Max iterations) количество итераций;

б) (M) числа Маха.

4. (Calc) Расчет

5. (Graf) Получить изображение и график

6. (View) Выбор аэродинамических характеристик:

а) плотность (Ro);

б) скорость радиальная (V);

в) скорость осевая (U);

г) энергия (E);

д) давление (P).

7.Запись на диск С текстовых файлов:

а) давление (P.txt);

б) вектор скоростей (speed.txt).

1.6.2. Тестирование сходимости расчетной сетки.

Рассмотрим на примере таких примитивов как цилиндр и конус сходи-

мость нашей эйлеровой сетки. При одинаковых условиях (М=4) посмотрим как

будут выглядеть графики аэродинамических величин на разных размерах сетки.

Возьмем размеры сетки: 30Х30, 60Х60, 90Х90 и 120Х120.

Покажем на примере цилиндра:

Page 40: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

41

Рис. 1.11. Сходимость сетки. Цилиндр. Давление

Page 41: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

42

Рис. 1.12. Сходимость сетки. Цилиндр. Плотность

Page 42: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

43

Рис. 1.13. Сходимость сетки. Цилиндр. Радиальная скорость

Page 43: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

44

Рис. 1.14. Сходимость сетки. Цилиндр. Осевая скорость

Page 44: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

45

Рис. 1.15. Сходимость сетки. Цилиндр. Энергия

Page 45: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

46

Аналогично для конуса. Покажем на давлении:

Рис.1.16. Сходимость сетки. Конус. Давление

По полученным графикам видно, что на сетке 90Х90 и 120Х120 наши

графики аэродинамических величин практически совпадают. Поэтому, для даль-

нейшего вычисления примитивов мы брали сетку 100Х100. И для расчета реаль-

ного, более сложного тела, для большей точности мы взяли сетку размером

400Х400.

Page 46: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

47

1.6.3. Тестирование программ.

При разработке программного обеспечения очень важно быть уверенны-

ми в правильной реализации алгоритмов. Для этого при первой реализации мы

сравнивали поученные нами результаты с известными. В частности реализовали

несколько примеров из книги [1] Белоцерковский О. М., Давыдов Ю. М. Метод

крупных частиц в газовой динамике.

1.6.3.1. Задача распада разрыва.

Рассмотрим в качестве примера модельную задачу о распаде ударной

волны. Пусть в начальный момент времени t=0 газ покоится, левое полупро-

странство содержит газ с нормальной плотностью л и давлением рл, а правое

полупространство заполнено газом с повышенной плотностью п и давлением

пp . Параметры газа задаются следующим образом:

л=1.0 п=5.0

Рл=1.0 Рп=5.0

Газ во всем пространстве считается идеальным.

Для решения одномерной задачи о распаде разрыва возьмем эйлерову

сетку, состоящую из 50 ячеек. На обоих ее концах зададим условия свободного

вытекания (втекания). На рисунке приведен профиль плотности из книги [1].

Рис. 1.17. График распада разрыва (Белоцерковский О.М., Давыдов Ю.М.)

Page 47: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

48

Наша эйлерова сетка состоит из 100 ячеек, но и так хорошо видно, что ре-

зультаты аналогичны:

а)

б)

Рис. 1.18. График распада разрыва. Результат вычисления программы а)

методом «крупных частиц, б)методом Курганова-Тадмора

Page 48: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

49

1.6.3.2. Обтекание бесконечного цилиндра.

Иллюстрируется распределение плотности в ударном слое вдоль оси

симметрии течения.

Рис. 1.19. Полученная картина течения около цилиндрического торца Для

чисел Маха: 2; 3; 4,1: (Белоцерковский О.М., Давыдов Ю.М.)

Page 49: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

50

Наши результаты плотности:

Рис. 1.20. Полученная картина течения около цилиндрического торца Для

чисел Маха: 2; 3; 4,1: Результат вычисления программы

Page 50: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

51

Рис. 1.21. Обтекание цилиндрического торца. Для числа Маха = 2

Рис. 1.22. Обтекание цилиндрического торца. Для числа Маха = 3:

Page 51: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

52

Рис.1.23. Обтекание цилиндрического торца. Для числа Маха = 4,1

1.6.4. Проверка скачков уплотнения. Обтекание клина.

На рис. 1.24 представлены кривые, соответствующие различным значени-

ям числа М набегающего потока, построенные для воздуха. Как видим, каж-

дому значению числа М отвечает некоторое предельное отклонение потока.

Так, при М = 2 поток может быть отклонен не более чем на угол max = 23°,

при М = 3 — на max = 34°, Наличие такого ограничения в отклонении потока

после скачков уплотнения является вполне естественным фактом, ибо как

при бесконечно слабом скачке, т. е. когда угол равен углу распро-

странения слабых возмущений, а образующая конуса возмущения является

характеристикой, так и при наиболее сильном — прямом скачке угол откло-

Page 52: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

53

нения потока становится равным нулю.

При сверхзвуковом обтекании клина, у которого угол при вершине больше,

чем допускается по рис. 1.24, образование плоского косого скачка уплотнения

невозможно. Опыт показывает, что в этом случае образуется скачок уплотнения

с криволинейным фронтом (рис. 1.24), причем поверхность скачка размещается

впереди, не соприкасаясь с носиком клина. В центральной своей части скачок

получается прямым, но при удалении от оси симметрии переходит в косой ска-

чок, который на больших расстояниях вырождается в слабую волну.

Page 53: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

54

Рис.1.24. Зависимость направления косого скачка от угла отклонения

потока (Абрамович Г. Н. Прикладная газовая динамика. Т. 1)

Рис. 1.25.Скачок уплотнения при сверхзвуковом обтекании клина со

слишком большим углом при вершине (Абрамович Г. Н. При-

кладная газовая динамика. Т. 1)

Рис. 1.26. М=3, угол при вершине 30

Page 54: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

55

Рис. 1.27. . М=2, угол при вершине 10

Рис.1.28. . М=2, угол при вершине 25

Page 55: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

56

.

Рис.1.29. М=2, угол при вершине 30

Рис. 1.30. М=1.5, угол при вершине 10

Page 56: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

57

Рис. 1.31. . М=1.5, угол при вершине 25

Page 57: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

58

1.6.5. Проверка сходимости метода крупных частиц и метода Курганова-Тадмора

Рис. 1.32. Цилиндр. Плотность. М=2 (а) – метод крупных частиц, б) – метод Кур-

ганова-Тадмора)

Page 58: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

59

Рис.1.33. Цилиндр. Давление. М=2 (а) – метод крупных частиц, б) – метод Кур-

ганова-Тадмора)

Page 59: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

60

Рис. 1.34. Конус. Давление.. М=2 (а) – метод крупных частиц, б) – метод Курга-

нова-Тадмора)

Page 60: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

61

1.7. Вычислительные эксперименты.

Для демонстрации возможностей нашей программы мы покажем их на об-

текании:

а) цилиндрического тела

б) конического тела (разворот 45 и 60)+цилиндр

в) спускаемого аппарата ЭкзоМарс 2018 в транспортном положении.

1.7.1. Цилиндрическое тело

Рис.1.35. Цилиндрическое тело. Число Маха=2. Давление

Page 61: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

62

Рис. 1.36. Цилиндрическое тело. Число Маха=2. Поле скоростей

Рис. 1.37. Цилиндрическое тело. Число Маха=4. Давление

Page 62: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

63

Рис.1.38. Цилиндрическое тело. Число Маха=4. Поле скоростей

1.7.2. Конические тела

1.7.2.1 Коническое тело. Разворот 60

Рис. 1.39. Коническое тело разворот 60 градусов. Число Маха=2. Давление

Page 63: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

64

Рис. 1.40.Коническое тело разворот 60 градусов. Число Маха=2. Поле скоро-

стей

Рис. 1.41. Коническое тело разворот 60 градусов. Число Маха=4. Давление

Page 64: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

65

Рис. 1.42. Коническое тело разворот 60 градусов. Число Маха=4. Поле скоростей

1.7.2.2 Коническое тело. Разворот 45

Рис. 1.43. Коническое тело разворот 45 градусов. Число Маха=2. Давление

Page 65: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

66

Рис. 1.44. Коническое тело разворот 45градусов. Число Маха=2. Поле скоро-

стей

Рис. 1.45. Коническое тело разворот 45 градусов. Число Маха=4. Давление

Page 66: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

67

Рис. 1.46. Коническое тело разворот 45 градусов. Число Маха=4. Поле скоростей

1.7.3. Спускаемый аппарат ЭкзоМарс 2018 в транспортном положении.

Рис. 1.47. Спускаемый аппарат ЭкзоМарс 2018 в транспортном положении. Чис-

ло Маха= 2. Давление

Page 67: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

68

Рис. 1.48. Спускаемый аппарат ЭкзоМарс 2018 в транспортном положении. Чис-

ло Маха=3. Давление

1.7.4. Увеличение производительности.

В рамках данной дипломной работы реализованы способы повышения

производительности:

1. Распараллеливание. Использование многоядерных процессоров. Тех-

нология OpenMP.

2. Использование вычисления на видеокартах. Технология CUDA.

Сравнение производительности:

Тестовая конфигурация:

Intel Core i5 2320

RAM 12Gb

Video NVIDIA GeForce 550GTX

Тестовая задача:

Размерность сетки 1000х1000

Число итераций 1000

Результаты:

Page 68: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

69

Для метода крупных частиц

C++ 139122

C++ + OpenMP 40732

CUDA 10998

Для метода Курганова-Тадмора

С++ 548352

С++ + OpenMP 259124

Page 69: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

70

2. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

Page 70: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

71

ЗАКЛЮЧЕНИЕ

Page 71: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

72

В рамках данной работы:

1. Реализованы алгоритмы для расчета газодинамических характеристик сег-

ментально-конического тела невязким теплопроводным газом c использовани-

ем двух численных методов.

2. Рассчитано обтекание примитивов и аппарата ЭкзоМарс 2018 в транспортном

положении.

3. Использование многопоточное обработки позволило значительно сократить

время расчета.

4. Использование видеокарты при расчете методом крупных частиц позволило

получить 4хкратное преимущества над CPU, даже при условии достаточно не-

большой мощности тестируемой видеокарты.

В рамках данной работы не был реализован алгоритм расчета методом Кур-

ганова-Тадмора с использованием видеокарты так как при использовании клас-

сических методов решения задачи Римана алгоритм имеет множество ветвле-

ний, что, как предполагается, не позволит добиться значительного эффекта при

использовании расчетов на видеокарте. Построение эффективного алгоритма с

использованием видеокарты для схемы Курганова-Тадмора является темой для

дальнейших исследований.

Данное исследование и реализованный программный комплекс представ-

ляет не только научный интерес, но имеет коммерческую выгоду. С практиче-

ской точки зрения разработка и исследования новых численных методов для ре-

шения задач газовой динамики позволит существенно сократить расходы на

проведение многочисленных натуральных экспериментов за счет частичного

моделирования некоторых процессов на компьютере.

Охрана труда и окружающей среды рассматривает факторы, неблагопри-

ятное воздействие которых необходимо учитывать при работе с компьютером.

Приведены рекомендации, придерживаясь которых можно свести к минимуму

Page 72: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

73

или полностью исключить вредные воздействия на оператора при длительной

работе с ПК и таким образом сохранить здоровье и работоспособность

Page 73: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

74

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Page 74: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

75

Белоцерковский О.М., Давыдов Ю.М. Метод крупных частиц в газовой

динамике. М.: Наука 1982. 392 с.

1. Семушкин С.А. Консервативные граничные условия для метода «крупных

частиц». М.: Препринт ИМП АН СССР, 1980, №61

2. Куликовский А. Г.,. Погорелов Н. В,. Семенов А. Ю .Математические вопро-

сы численного решения гиперболических систем уравнений. М., Наука, Физ-

матлит, 2001 г.

3. Абрамович Г.Н. Прикладная газовая динамика. В 2 ч. – М: Наука, 1991. - 1 ч.

– 600 с.; 2 ч. – 304 с.

4. . Лойцянский Л.Г. Механика жидкости и газа. М.,Л., 1950

5. Годунов С.К. и др. Численное решение многомерных задач газовой динами-

ки. - М.: Наука, 1976. - 400с.

6. Toro E.F. Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practi-

cal Introduction. - 2 nd Edition, Springer, 1999. 645 p

7. Alexander Kurganov and Eitan Tadmor. New High-Resolution Central Schemes

for Nonlinear Conservation Laws and Convection-Diffusion Equations. J. Comp.

Phys. 160, 214–282, 2000.

8. Y. V. Nevmerzhitskiy and S. E. Yakush. Numerical modelling of shock waves and

detonation in complex geometries.

9. Вдовин В.А., Дегтярев А.В., Оганов В.А., Экономическая эффективность

разработки информационных систем и технологий. Учебное пособие: под.

ред. Дегтярева А.В., МАИ – Доброе слово, 2006. – 60 с

10. Геворкян А.М. «Методические указания к организационно-экономической

части дипломных проектов и работ». – М.: Мир, 1987

11. В.А. Голованова, С.В. Кузнецова, В.М. Морозова Методические указания к

дипломным работам и практикам по специальности «Прикладная математи-

ка». – М.: Издательства МАИ, 1998

Page 75: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

76

12. И. М. Разумов. «Сетевые графики в планировании». М., 1981

13. Дегтярев А.В., Вдовин В.А., Ковалев А.М., Кущенков Б. К.

Информационные технологии в менеджменте. Учебное пос. – М.: Доброе

слово, 2011. – 152с.

14. Ковалев А.М., Ковалев В.А. Основы управления проектами в области

информационных технологий: Учеб. пособие. – М.: Доброе слово, 2007 – 102

с.: ил.

15. Моисеева Н.К., Конышева М.В. Управление маркетингом: теория,

практика, информационные технологии. М., Финансы и статистика, 2002.

16. Административные и бытовые здания. //СНиП 2.09.04-87. – Москва, 1987.

17. Гигиенические критерии оценки и классификация условий труда по

показателям вредности и опасности факторов производственной среды,

тяжести и напряженности трудового процесса. //Руководство 2.2.755-99. –

Москва, 1999.

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

//СанПиН 2.2.4.548-96. – Москва, 1996.

19. Санитарные нормы параметров микроклимата. //СН-245-71. – Москва,

1971.

20. ГОСТ 50948-2001 «Средства отображения информации индивидуального

пользования. Общие эргономические требования и требования безопасности»

21. Kurganov, Alexander and EitanTadmor (2000), New High-Resolution Central

Schemes for Nonlinear Conservation Laws and Convection-Diffusion Equations, J.

Comp. Phys.,160, 214–282.

22. Kurganov, Alexander and Doron Levy (2000), A Third-Order Semidiscrete

Central Scheme for Conservation Laws and Convection-Diffusion

Equations, SIAM J. Sci. Comput., 22, 1461–1488.

Page 76: Введение - MAIfiles.mai.ru/site/unit/fpmf/801/docs/dep_8/Diploms/... · 2013. 5. 25. · Использование вычисления на видеокартах. Технология

77

ПРИЛОЖЕНИЯ