Научная статья на тему 'Решение трехмерных задач гидромеханики на многопроцессорных вычислительных системах'

Решение трехмерных задач гидромеханики на многопроцессорных вычислительных системах Текст научной статьи по специальности «Физика»

CC BY
73
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ГИДРОМЕХАНИКА / ФИЗИКО-ХИМИЧЕСКИЕ ПРОЦЕССЫ / ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА / ДЕКОМПОЗИЦИЯ ВРЕМЕНИ / ДЕКОМПОЗИЦИЯ ПРОСТРАНСТВА / МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ

Аннотация научной статьи по физике, автор научной работы — Липанов А. М., Андреев В. В.

Рассмотрены варианты численного решения задач гидромеханики на многопроцессорных вычислительных системах с использованием для параллельной обработки методов декомпозиции времени и декомпозиции пространства. Предложены алгоритмы решения задач гидромеханики, обеспечивающие линейное нарастание производительности вычислительной системы при увеличении количества процессоров участвующих в решении задачи с использованием методов декомпозиции времени и декомпозиции пространства.V

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по физике , автор научной работы — Липанов А. М., Андреев В. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ariants of a numerical solution of problems of a hydromechanics on multiprocessing computing systems with use for parallel handling of methods of decomposition of time and space decomposition are considered. Algorithms of a solution of problems a hydromechanicses ensuring linear increase of productivity of the computing system at magnification of an amount of processors participating in solution of a problem with use of methods of decomposition of time and decomposition of space are offered.

Текст научной работы на тему «Решение трехмерных задач гидромеханики на многопроцессорных вычислительных системах»

УДК 519.6 519.85

РЕШЕНИЕ ТРЕХМЕРНЫХ ЗАДАЧ ГИДРОМЕХАНИКИ НА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ

ЛИПАНОВ А.М., АНДРЕЕВ В В.

Институт прикладной механики УрО РАН, Ижевск, Россия

АННОТАЦИЯ. Рассмотрены варианты численного решения задач гидромеханики на многопроцессорных вычислительных системах с использованием для параллельной обработки методов декомпозиции времени и декомпозиции пространства. Предложены алгоритмы решения задач гидромеханики, обеспечивающие линейное нарастание производительности вычислительной системы при увеличении количества процессоров участвующих в решении задачи с использованием методов декомпозиции времени и декомпозиции пространства.

КЛЮЧЕВЫЕ СЛОВА: гидромеханика, физико-химические процессы, параллельная обработка, декомпозиция времени, декомпозиция пространства, многопроцессорные системы.

ВВЕДЕНИЕ

Численный эксперимент в настоящее время — это один из эффективных путей теоретического исследования. Он базируется на использовании математических моделей реальных процессов, в частности физико-химических. Для получения хорошего согласия с экспериментом кроме модели необходим также метод решения систем уравнений, получаемых в результате реализации математической модели, поскольку не всегда модель численного решения оказывается эффективной, не вносящей возмущения в получаемые результаты. Большинство систем дифференциальных уравнений, описывающих реальные физико-химические процессы, — нелинейные, решить их, как правило, можно только численно. Уравнения гидромеханики могут служить типичным примером такого нелинейного описания физико-химических процессов.

При решении трехмерных нестационарных систем дифференциальных уравнений с частными производными к используемым вычислительным средствам предъявляются достаточно высокие требования, как по быстродействию, так и по объему оперативной памяти. Примерами таких задач могут служить турбулентные частоты химически активных ньютоновских сред. Даже гомогенные потоки описываются системами трехмерных дифференциальных уравнений в количестве от пяти и более.

Прямое численное моделирование турбулентности — развивающееся научное направление, основанное на численном интегрировании нестационарных полных уравнений Навье—Стокса без привлечения дополнительных эмпирических моделей и констант. Рассчитываемые нестационарные трехмерные поля параметров турбулентного потока позволяют определять его любые требуемые средние характеристики.

Сложность прямого численного моделирования турбулентности обусловлена, прежде всего тем, что нестационарные турбулентные течения характеризуются широким диапазоном пространственных и временных масштабов [1]. Поэтому большинство численных результатов относится либо к исследованию начальных стадий ламинарно-турбулентного перехода, либо к расчету развитой турбулентности, либо к расчету пограничных слоев в том или ином приближении. Впервые идея обеспечения асимптотической сходимости при интегрировании уравнений гидромеханики как по времени, так и по пространственным координатам, обеспечивающая исключение влияния на полученные результаты сглаживающего действия схемной вязкости была предложена в работе [2]. Данный подход позволил получить при моделировании более близкий к реальности, диссипирующий и излучающий акустические колебания, турбулентный поток.

ОСНОВНЫЕ УРАВНЕНИЯ ГИДРОМЕХАНИКИ

В прямоугольной ортогональной системе координат будем рассматривать классическую систему уравнений, которую можно отнести к однокомпонентному вязкому газу. В дивергентной форме она имеет следующий вид:

др дри + дру дpw _ о Ы дх ду дz

дри д

+— (р + ри ) +

дриу дргт _ 4/ д2и д2и д2и / д2у / д2

дХ дх

ду

- +

дz

3 дх2

ду

+

+

дz 3 дхду 3 дxдz'

дру дриу д . 2 дрvw дV 4/ дV дV / д2и / дV

- + —-+ — (р + ру ) + -

дХ дх ду др дрит д

дz

+

дх2 д2 w

+

+

Ы

дрЕ

- + —-+ —-+ — (р + рw2) _/и 2

дх ду дz дх

+/

3 ду дz 3 дхду 3 дxдz д2w 4/ д2w / д2и /л д2у

+

+

+

ду 3 дz 3 дxдz 3 дyдz'

ддд - + — (РЕ + р)и + — (РЕ + р)У + ~ (РЕ + р> _

Ы дх ду дz

д2е д2е д 2е,

+

дх2 ду2

+

дz2

~ д иу „

+ 2/-+ 2/

дхду

д 2uw дxдz

+ 2/

д

дyдz

(1) (2)

(3)

(4)

(5)

- + е;

где

Л(4 2 2 2 1 Ар е _—\— и2 + V2 + w2 1 +——;

х 2 ^ 3 ) R р

Л( 2 4 2 2 1 А р

е.. _—\ и2 + — V2 + w2 + ——;

л

R р А р

е _— и + V + — w +---

R р

^ и2 + V2 + w2 1 р Е _-+ - •

е _

5/ 3

2

д, дх

k -1 р

(

дv дw 1 д (ди дw 1 д (ди дvЛ

— + — + — V \ — + — 1 +—w — + —

ду дz) ду \дх дz) дz ^дх ду)

Здесь р, р, и, V, w - плотность, давление и компоненты вектора скорости движения газа. Компоненты и, V, w относятся к осям Х,У,2 соответственно; Е - удельная энергия газа;

А - физические вязкость и теплопроводность.

В уравнении (5) исключена температура с помощью уравнения состояния Клапейрона-Менделеева:

р / р_ RT.

ПАРАМЕТРЫ МОДЕЛИ

Оценим объем памяти необходимый вычислительной системе при решении задач на основе данных уравнений. Пусть речь идет об объеме модели имеющей длину 20^ а в плоскости, перпендикулярной длине, поперечные размеры 3hx3h. Здесь h - характерный размер.

2

3

4

2

3

На рис. 1а показано продольное сечение такого объема в плоскости ХУ. Здесь h - размер отверстия на входе в канал.

51 51 54 55 ..... 5л

И

л

9

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 1. Продольное а) и поперечное б) сечения рассматриваемого объема

На рис. 1б представлено поперечное сечение объема, ограниченного горизонтальными и вертикальными стенками. Пусть по данному объему движется турбулентный поток. Турбулентные потоки сопровождаются интенсивными изменениями гидромеханических параметров (ГМП) и требуют достаточно мелкой пространственной сетки при решении дифференциальных уравнений гидромеханики.

Если в процессе решения задачи обеспечивать сходимость приближенного численного решения за счет дробления исходного объема на элементарные объемы с точностью не хуже 0,1%, то вдоль координат У и Z необходимо использовать около 70 узлов [2].

Вдоль координаты X, если длина канала равна 20^ потребуется около 500 узлов. При увеличении линейных размеров потребуется еще большее количество узлов. В рассматриваемом случае потребуется 2 450 000 узлов.

Если при решении уравнений гидромеханики для вычисления частных производных первого и второго порядков по пространственным координатам требуется десятый порядок точности (именно в этом случае обеспечивается сходимость приближенного решения около 0,1% за счет увеличения точности вычисление частных производных), при числах Re=104-105, то для каждой точки рассматриваемого объема необходимо хранить информацию о величинах ГМП еще в десяти точках. Пространственное движение вязкого газа характеризуется 5-ю параметрами и 6-ю компонентами тензора скоростей деформаций. Сюда следует добавить величины коэффициентов вязкости, теплопроводности, шаги интегрирования по пространственным координатам Ах, Ау, Аг и минимальное из чисел

Куранта , где А£ - вектор с координатами Ах, Ау, Аг .

Кроме того, конвективные и диссипативные слагаемые содержат еще 18 параметров. Видим, что каждую точку объема следует характеризовать 35-ю параметрами, а необходимость иметь информацию еще о десяти соседних точках увеличивает объем информации до 385 параметров.

У

РЕШЕНИЕ ТРЕХМЕРНЫХ ЗАДАЧ ГИДРОМЕХАНИКИ НА МНОГОПРОЦЕССОРНЫХ _ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ_

Поскольку при интегрировании по времени по явной разностной схеме и обеспечении сходимости приближенного решения, равной 0,1%, требуется второй порядок точности [2], то необходимо хранить в памяти информацию о ГМП на двух временных слоях.

Если информацию о каждом ГМП в любой точке объема характеризовать числом с двойной точностью (т.е. 8 байт), то для каждой точки потребуется 770х8=6160 байт информации, а для всей модели объем информации составит около 15,9 Gb.

При исследованиях турбулентных потоков приходится рассчитывать для модели до 100 000 временных шагов интегрирования. Решение задач такого объема за физически приемлемое время возможно только на современных многопроцессорных ЭВМ.

ИСПОЛЬЗОВАНИЕ МЕТОДА ДЕКОМПОЗИЦИИ ПРОСТРАНСТВА ДЛЯ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ПРИ РЕШЕНИИ ЗАДАЧ ГИДРОМЕХАНИКИ

Использование метода декомпозиции пространства для решения задач гидромеханики было предложено в работе [2]. Основная идея метода декомпозиции пространства в распределении пространства модели между процессорами многопроцессорной вычислительной системы (МВС) таким образом, чтобы каждый процессор рассчитывал только свое подпространство модели. При решении задач гидромеханики наиболее предпочтительно все пространство модели разбить на подпространства вдоль одной из координат (рис. 1а). Тогда все процессоры, участвующие в расчете задачи, связываются между собой последовательно каналами приема-передачи данных, образуя линейную архитектуру (рис. 2). Обмен данными в линейной сети происходит только между соседними процессорами.

Рис. 2. Архитектура межпроцессорной связи для метода декомпозиции пространства

Для описания и анализа процессов параллельной обработки при решении задачи будем использовать приведенную в [3] специальную символьную нотацию (ССН).

Специальная символьная нотация позволяет наглядно и полно описать процессы параллельной обработки при расчете модели. Алфавит и специальные символы ССН:

Р, я, о, Х, п,1,2,3,4,5,6,7,8,9,0, В, (,), {,},-, _, -, = .

Принятые обозначения ССН:

Р - процессор,

s - расчетная зона,

h - временной шаг интегрирования,

t - время,

р, с, w, d, о - (индексы) динамические типы расчетных зон,

В - обозначение буферной зоны,

^ - символ преобразования,

^ - символ принадлежности,

- - асинхронная передача данных (пример: я1р~Р2(й2)),

= - синхронная передача данных (пример: рэР2(к2) ^ ).

Каждая расчетная зона обозначается символом s, имеет номер и динамически изменяемый тип. Согласно [3] будем различать пять типов расчетных зон яр,,sw,,.

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

"с - расчетная зона, которая рассчитывается в данный момент времени. ^ - расчетная зона с незаконченным расчетом.

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

so - расчетная зона, которая в данный момент не содержит информации о модели. Процесс динамической смены типов для расчетных зон можно записать в символьной нотации в следующие пять пунктов:

so ^ ^ Смена типа зоны происходит после приема данных в расчетную зону.

sd ^ ^ Смена типа происходит при не завершенном расчете расчетной зоны. ^ ^ sc Смена типа зоны происходит с началом расчета зоны. sc ^ sp Смена типа происходит при готовности к передаче рассчитанных данных. "р ^ so Смена типа зоны происходит после сброса данных этой расчетной зоны.

Каждому процессору выделяется свое подпространство модели. Область взаимодействия расчетной зоны, при интегрировании по пространству с десятым порядком точности, захватывает по пять слоев ячеек с каждой стороны от рассчитываемой расчетной зоны. Разбивка моделируемого пространства на расчетные зоны будет иметь вид представленный на рис. 3. Структура данных в процессорах на момент времени ¿0 представлена выражениями (6). Соседние процессоры на границе раздела пространства модели будут обмениваться данными через буферные зоны размером по пять слоев ячеек. Из выражений (6) видно, что процессоры имеют по две буферные зоны. В первой хранятся результаты расчета модели для следующего временного шага (например, {"1В1о, 2о, "1В3о,... ,"1вио}), а вторая предназначена для обмена данными на стыке подпространств модели рассчитываемых на соседних процессорах (например,

{"(2В1+2.В5)о },{"(2В6+2В10)о }) .

Р(0 ^ , , ,... },{^1В1о, "1В2о , ^1В3о,... ,^1Вио },

{"(2В6+2В10)о }

Р2(0 ^ {"(и+1)d , "(и+2^ , "(и +3)d ,... ,"(2и )d },

{"1В(и+1)о , "1В(и+2)о , "1В(и +3)о, ... ,"1В(2и)о }, {"(2В1+2В5)о }, {"(2В6+2В10)о }

р (0 ^ {"((2 -1)и+1^ , "((2 -1)и+2)d , "((2-1)и +3)d ,... , "(2и )d },

{"1В((2-1)и+1)d , "1В((2-1)и +2)d , ^1В((2-1)и +3)d ,... , 2и)d }, {"(2В1+2В5)о }

Где: и = п / г, п - количество слоев ячеек в модели (рис. 3), z - количество процессоров участвующих в расчете задачи.

Будем рассматривать интервал времени одного временного шага состоящим из множества подинтервалов, количество которых равно максимальному количеству расчетных зон для одного процессора (7).

И = И2, И., И4, И5, И6,........, Ли} (7)

Рассмотрим для примера решение задачи на четырех процессорной вычислительной системе. Время И11 соответствует времени начала расчета первой расчетной зоны для

временного шага И1 процессором р (8). В используемой нами символьной нотации запись

(6)

вида {*2й, *3й, *4й , *5й, *6й } ^ *(2+6)й обозначает, что множество расчетных зон {*2й, *3й, *4й, *5й,*6й } вошло в расчетную зону (или образовало расчетную зону) *(2+6)й.

Обмен данными между процессорами будем производить один раз в начале каждого шага интегрирования модели (8).

Рис. 3. На стыке соседних областей расчета процессоры обмениваются данными пяти ближайших слоев ячеек

^ {*1й , *2й , S3d ,... К^Шо , ^ 2o , ^30 ,." ^ШШ },{*(2 B6+2 B10)o },

*(2B6+2B10)o~P2(t0),{5((V +1)+^+5))й} ^ S(2B6+2B10)й , S((U-6)+(и))й~Р2(Х0),{5^1+2B5)o} ^ Я((и-6)+(и))й ,

{*1й , *2й , *3й , *4й , *5й , *6й , ^Шо } ^ ^Шс, *1й , *(2+6)й }, ^Шс ^ р , {*1й , *2й , *3й ,... К^Ш р , 2о , 3о ,... ,S1BUo },

{*(2B6+2B10)й }

Р2 (^11 ) ^ {Я(и+1)й , Я(и+2)й , Я(и +3)й , .. .,Я(2и)й } , +1)о , ^(и +2)о , S1B(U +3)о , .. )о },

{*(2B1+2B5)o },{*(2B6+2B10)o },

S(2B1+2B5)o-Р1(Х0),{5((U-6)+^))й} ^ *(2B1+2B5)й , S(2B6+2B10)o-Р3(Х0),{5((U+1)+(U +5))й} ^ *(2B6+2B10)й , ^О^+1)+^ +5))й-Р1(Х0),{5^6+2B10)o} ^ S((U +1)+^ +5))й , S((2U-6)+(2U))й-Р3(Х0),{5(2B1+2B5)o} ^ S((2U-6)+(2U))й , {*(2B1+2B5)й , ^ +1)й , S((U+2)+^+6))й , +1)о } ^

+1)с , *(2B1+2B5)й , ^ +1)й , S((U+2)+(U+6))й }, +1)с ^ +1)р ,

+1)й , ^ +2)й , ^+3)й , .. )й }, {^Ш(U+1)р , +2)о , (U+3)о , .. .,S1B(2U)о },

{*(2B1+2B5)d }, {*(2B6+2B10)й }

(8)

Р3 (И11 ) ^ {"(2и+1)d , "(2и +2)d , "(2и +3^ , .. .,"(3иУ } , {"15(2и +1)о , "15(2и +2)о , "15(2и+3)о , .. .,"15(3и)о }, {"(251+255)о }, {"(256+2510)о } ,

"(251+255)о-Р2(г0),{5((2и-6)+(2и))d} ^ "(251+255)d , "(256+2510)о-Р4(г0),{5((3и +1)+(3и +5))d} ^ "(256+2510)d , "((2и+1)+(2и +5)У-Р2(г0),{5(256+2510)о} ^ "((2и+1)+(2и+5)^ , "((3и-6)+(3и))d-Р4(г0),{5(251+255)о} ^ "((3и-6)+(3и, {"(251+255)d , "(2и+1)d , "((2и+2)+(2и+6))d , "15(2и +1)о } ^

{"15(2и+1)с, "(251+255)d , "(2и +1)d , "((2и+2)+(2и+6))d }, "15(2и+1)с ^ "15(2и+1)р ,

{"(2и+1)d , "(2и +2)d , "(2и +3)d ,.. .,"(3и)d }, {"15(2и +1)р , "15(2и +2)о , "15(2и +3)о , .. .,"15(3и)о },

{"(251+255^ },{"(256+2510)d }

Р4 (И11 ) ^ {"(3и+1)d , "(3и +2)d , "(3и +3)d ,.. .,"(4и)d }, {"15(3и +1)о , "15(3и+2)о , "15(3и+3)о ,.. .,"15(4и)о } , {"(251+255)о },

"(251+255)о-P3(í0),{5((3и-6)+(3и))d} ^ "(251+255)d , "((3и +1)+(3и +5))d-P3(í0),{5(256+2510)о} ^ "((3и+1)+(3и+5))d , {"(251+255)d , "(3и +1)d , "((3и+2)+(3и +6))d , "15(3и+1)о } ^

{"15(3и+1)с, "(251+255)d , "(3и +1)d , "((3и+2)+(3и+6))d }, "15(3и +1)с ^ "15(3и +1)р ,

{"(3и+1)d , "(3и +2)d , "(3и +3)d ,.. .,"(4и)d }, {"15(3и +1)р , "15(3и+2)о , "15(3и+3)о , .. .,"15(4и)о } ,

{"(251+255)d }

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

Время И12 соответствует времени начала расчета второй расчетной зоны для временного шага И1 (9).

р (И12 ) ^ {"ы , ^ , "зd ,... ,"ш },{"151 р , "152о , "153о ,... ,"15ио },{"(256+2510)d }, {"(2+6)d , "7d , "152о } ^ {"152с, "2d , "(3+7)d }, "151с ^ "151 р , {"ld , "2d , "зd ,... ,"иd },{"151 р , "15 2 р , "153о ,... ,"15ио }, {"(256+2510)d }

(9)

Р2 (И12) ^ {"(и +1^ , "(и +2)d , "(и+3^ ,.. .,"(2и)d }, {"15(и+1)р , "15(и+2)о , "15(и+3)о , .. .,"15(2и)о },

{"(251+255)d },{"(256+2510^ }, (10)

{"(252+255)d , "(и +1)d , "((и+2)+(и+6))d , "(и +7)d , "15(и+2)о } ^

{"15(и+2)с, "(252+255^ , "(и+1)d , "(и+2)d , "((и+3)+(и+7))d }, "15(и+2)с ^ "15(и+2)р , {"(и+1)d , "(и +2)d , "(и+3^ , .. .,"(2и)d }, {"15(и+1)р , "15(и+2)р , "15(и +3)о , .. .,"15(2и)о }, {"(251+255)d }, {"(256+2510)d }

РЕШЕНИЕ ТРЕХМЕРНЫХ ЗАДАЧ ГИДРОМЕХАНИКИ НА МНОГОПРОЦЕССОРНЫХ _ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ_

Р3 (И12 ) ^ {"(2и+1^ , "(2и +2)d , "(2и +3)d ,.. .,"(3и)d }, {"15(2и +1)р , "15(2и+2)о , "15(2и +3)о , .. .,"15(3и)о }, {"(251+255)d },{"(256+2510^ },

{"(252+255)d , "(2и +1)d , "((2и +2)+(2и+6))d"(2U +7У ,, "15(2и+2)о } ^ (11)

{"15(2и+2)с, "(252+255^ , "(2и+1^ , "(2и+2)d , "((2и+3)+(2и +7))d }, "15(2и+2)с ^ "15(2и+2)р , {"(2и+1)d , "(2и +2)d , "(2и +3)d , .. .,"(3и)d } , {"15(2и+1)р , "15(2и +2)р , "15(2и+3)о, .. .,"15(3и)о }, {"(251+255^ },{"(256+2510)d }

Р4 (И12) ^ {"(3и+1)d , "(3и+2)d , "(3и+3)d , .. .,"(4и)d },{"15(3и+1)р , "15(3и+2)о , "15(3и +3)о ,.. .,"15(4и)о },

{"(251+255)d }, (12)

{ }

{"(252+255)d , "(3и+1)d , "((3и +2)+(3и+6))d , "(3и +7)d , "15(3и+2)о } ^ {"15(3и+2)с , "(252+255)d , "(3и +1)d , "(3и+2)d , "((3и+3)+(3и+7))d } , "15(3и+2)с ^ "15(3и +2)р , {"(3и+1)d , "(3и+2)d , "(3и+3)d , .. .,"(4и)d },{"15(3и+1)р , "15(3и +2)р , "15(3и +3)о ,.. .,"15(4и)о }, {"(251+255)d }

Дальнейший анализ процессов показывает, что процесс расчета модели для следующих подинтервалов временного шага Из + Ии аналогичен выражениям (9) - (12). Производительность МВС возрастает линейно при увеличении количества процессоров участвующих в расчете задачи и не зависит от размера поперечного сечения модели (рис. 1б), так как при увеличении размеров поперечного сечения модели пропорционально увеличивается объем рассчитываемых процессором данных.

Как видно из выражений (10) - (12) в каждом процессоре для расчета расчетной зоны состоящей из одного слоя ячеек необходимо иметь пять слоев ячеек до границы области интегрирования и пять слоев ячеек перед границей области интегрирования т.е. всего 11 слоев ячеек. Так как рассматриваемая модель содержит 500 слоев ячеек, то вся модель может эффективно рассчитываться не более чем на 500/11« 45 процессорах.

ИСПОЛЬЗОВАНИЕ МЕТОДА ДЕКОМПОЗИЦИИ ВРЕМЕНИ ДЛЯ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ПРИ РЕШЕНИИ ЗАДАЧ ГИДРОМЕХАНИКИ

Основная идея метода декомпозиции времени в организации расчета модели таким образом, чтобы процессоры вычислительной системы могли одновременно рассчитывать множество временных шагов интегрирования рассчитываемой модели. Метод декомпозиции времени рассматривает процессы, происходящие в пространстве модели как процессы близкого взаимодействия. Особенность процессов близкого взаимодействия том, что объекты взаимодействия (в данном случае элементарные объемы) находящиеся в областях, удаленных друг от друга на расстояние большее, чем область взаимодействия, не влияют, друг на друга при расчетах численными методами в интервале времени хотя бы одного шага интегрирования. Поэтому для процессов близкого взаимодействия возможно построение такого метода расчета, когда для различных областей модели удаленных друг от друга на расстояние большее, чем размер области взаимодействия, различные шаги интегрирования модели могут рассчитываться одновременно [3].

Рассмотрим основные параметры структуры модели для расчета задачи методом декомпозиции времени. Пространство модели разобьем на подпространства (расчетные зоны) таким образом, чтобы различные процессоры (Рг-1, Рг, Рг+1), рассчитывающие соответственно различные временные шаги интегрирования (-1, , +1) могли одновременно рассчитывать различные зоны расчета, отстоящие друг от друга

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

(например, рассчитываемых на процессорах Рг+1 или Рг _1). Все процессоры, участвующие в расчете задачи, свяжем между собой последовательно каналами приема-передачи данных, образовав, таким образом, кольцевую архитектуру (рис. 4). Передача данных в кольцевой сети происходит от процессора с меньшим номером к процессору с большим номером. Процессор, имеющий самый большой номер (в нашем примере Рп) передает данные процессору Р1, таким образом сеть передачи данных замыкается.

Рис. 4. Архитектура межпроцессорной связи

Для расчета модели методом декомпозиции времени все пространство модели, разобьем на одинаковые расчетные зоны вдоль одной координатной оси (рис. 2а). Для описания и анализа процессов параллельной обработки при организации параллельных вычислений с использованием метода декомпозиции времени будем использовать приведенную в [3] символьную нотацию.

Процесс расчета модели с использованием метода декомпозиции времени организуем следующим образом. Расчет данных, передачу данных и прием данных будем производить дискретно по зонам расчета. Пусть первый этап работы каждого узла МВС начинается с передачи данных. Проверяется, имеются или нет обработанные расчетные зоны типа ,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

готовые для передачи. Если имеются готовые к передаче зоны , то осуществляется передача этих расчетных зон. Освободившаяся расчетная зона получает тип so. После этого начинается второй этап прием данных. Проверяется, имеются ли у этого процессора свободные расчетные зоны типа so, если они имеются, то в предыдущий процессор на запрос от него о передаче данных направляется согласие принять данные.

Для организации параллельной обработки с использованием МДВ будем разбивать пространство модели на расчетные зоны одинакового размера по одной координатной оси.

Рассмотрим организацию вычислительного процесса при использовании МДВ в случае, когда различные типы расчетных зон имеют одинаковые размеры (рис. 5). Область взаимодействия расчетной зоны sc, при интегрировании по пространству с десятым порядком точности, захватывает по пять слоев ячеек с каждой стороны от рассчитываемой расчетной зоны. Поэтому при расчете расчетной зоны s6 c для временного шага h +1 размер расчетной зоны перед областью интегрирования будет состоять из пяти слоев ячеек s7d, s8d, s9d, s10d, s11d для момента времени h, а размер расчетной зоны за границей области

интегрирования будет состоять из пяти слоев ячеек s1d, s2d, s3d, s4d, s5d для момента времени h (рис. 5). Для процессора р на момент времени t0 все 500 расчетных зон будут иметь тип (13). Расчетные зоны остальных процессоров имеют тип so и не содержат информации о параметрах модели.

Рис. 5. При расчете расчетной зоны "6с в область взаимодействия попадают по 5 слоев ячеек с каждой стороны от границы области интегрирования

Для хранения рассчитанной расчетной зоны в каждом процессоре образуем буферную зону .

Р(0 ^ {"

Р2(0 ^ {"ю, "2о, "Зо'... '"500о }, }

Р (О ^ {"ю , " 2о , "зо '... , "500о },{"в }

Будем рассматривать интервал времени одного временного шага состоящим из множества подинтервалов, количество которых равно количеству расчетных зон наименьшего размера (14).

И = ^ ^ ^ ^ ^........' И500} (14)

Время И11 соответствует времени начала расчета первой расчетной зоны для временного шага И1 процессором р. При расчете первым процессором р зоны расчета "1с для момента времени И11, в качестве исходных данных для расчетов используются пять слоев ячеек модели перед границей интегрирования для момента ¿0, так как при интегрировании по пространству с десятым порядком точности область взаимодействия рассчитываемой ячейки составляет пять слоев ячеек с каждой стороны от области расчета. Пусть эти пять слоев ячеек, образуют расчетную зону "(2+6у (рис. 6).

Процесс расчета первой расчетной зоны " процессором р в символьной нотации будет иметь следующий вид (15).

р(И11) ^ , ' "з^ ,..., "500^ },{"в },

' "(2+6)^ ' "в } ^ ' "(2+6)^ ' "в1с }, "в1с ^ р ' (15)

d ' "(2+6)^ ' ' ' '...' "500^ }, {"в1 р }

Время И12 соответствует времени расчета второй расчетной зоны "2 процессором Р для временного шага И1. Из расчетной зоны "(2+6^ выводится область, равная расчетной зоне "2с и одновременно входит расчетная зона "7й, в результате образуется расчетная зона

"(3+7)^ .

Рис. 6. В начале расчета модели расчетная зона " а преобразуется в " с, а расчетные зоны "5а , "6а , попадающие в область взаимодействия " с, образуют расчетную зону "(2+

"2а , "3а , "4а , "5а , "6а

(2+6)а

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

(15) и при передаче результатов расчета первой

хранится в буферной области "В1с ^ "В1 р

расчетной зоны в процессор Р2, буферная область процессора р очищается "В1 р2(й2) ^ "в и в дальнейшем используется для хранения результатов расчета второй расчетной зоны

"в ^ "в2с, "в2с ^ "в2р .

р (^12) ^ {"1а , "(2+6)а , "7 а , "8а , "9а ,..., "500а }, {"в1 р },

(2+6)а "в1 р~Р2(й2) ^ "в ,

{"1а , "(2+6)а , "7а , "в } ^ {"1а , "2а , "(3+7)а , "В2с }, "в2с ^ "в2р , {"1а , "2а , "(3+7)а , "8а , "9а , "10а ,..., "500а } , {"в2р } 2о, "зо,..., "5000 },{"в }

"ю-Р1(й1_2) ^ "1а ,

, "20 , "зо , ,..., "5000 }, {"в } Расчет третьей расчетной зоны "3 процессором р :

р (^3 ) ^ {"1а , "2а , "(3+7)а, "8 а , "9а , "10а ,..., "500а } , {"в2р },

"в2р-Р2(Й2) ^ "В , {"1а, "2а, "(3+7)а, "8 а, "в } ^ {"(1+2)а, "за, "(4+8)а, "взс}, "взс ^ "

Ча > (3+7)а > 8а > В ^ ' 1^(1+2)а > ^3а' (4+8)а' ^В3с Л

{"(1+2)а, "3а, "(4+8)а, "9а, "10а, "на,..., "500а }, {"в3 р }

(1+2)а > ^3а' (4+8)а > 9а > ^10^' ^11а 1а, "20, "30, "40,..., "5000 }, {"в }, "20-Р1(й1_3) ^ "2а, {"ы, "2а , "30, "40, "50,..., "5000 }, {"в }

3В3 р'

Расчет четвертой расчетной зоны "4 процессором р

р (^14) ^ {"(1+2)а, "3а, "(4+8)а, "9а, "10а, "на,..., "500а}, {"в3р },

^(1+2)а, "3а, "(4+8) а, "9 а, "10 а, "11а' "в3р-Р 2(Й2) ^ "в,

{"(1+2)а , "3а , "(4+8)а , "9а , "в } ^ {"(1+3)а , "4а"(5+9)а , "в4с }, "в4с ^ "в4р , {"(1+3)а, "4 а, "(5+9)а, "10 а, "11а, "12а,..., "500а }, {"4 вр }

РЕШЕНИЕ ТРЕХМЕРНЫХ ЗАДАЧ ГИДРОМЕХАНИКИ НА МНОГОПРОЦЕССОРНЫХ _ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ_

Р2 (И2) ^ {" 1а , "2а , "зо, "40 , "50,..., "500о } , {"в }

"зо~Р1(И1-4) ^ "за,

{"1а , "2а , "за , "40 , "50, "6о , ..., "500о }, {"в } Расчет пятой расчетной зоны "5 процессором р :

р (И15 ) ^ {"(1+з)а , "4а , "(5+9)а , "10а , "11а , "12а ,..., "500а }, {"в4р }, "в4р~р2(И2) ^ "в ,

{"(1+з)а , "4а , "(5+9)а , "10а , "в } ^ {"(1+4)а , "5 а , "(6+10)а , "в5с }, "в5с ^ "в5р , {"(1+4)а, "5 а, "(6+10) а, "11а, "12 а, "1за,..., "500а }, {"в5 р } р2(И2) ^ {"1а, "2а, "за, "40, "50, "6о,..., "5000 }, {"в } "40-р1(И1-5) ^ "4а ,

{"1а, "2а, "за, "4а, "50, "6о, "7 о,..., "5000 }, {"в }

Расчет шестой расчетной зоны "6 процессором р :

р^(И16) ^ {"(1+4)а,"5а,"(6+10)а, "11а, "12а,"1за,..., "500а},{"в5р}, "в5 р-р2(И2) ^ "в ,

{"(1+4)а, "5а, "(6+10)а, "11а, "в } ^ {"(1+5)а, "6а, "(7+11)а, "в6с}, "в6с ^ "в6р, {"(1+5)а, "6а, "(7+11)а, "12а, "1за, "14а,..., "500а }, {"в6 р } р2(И2) ^ {"1а, "2а, "за, "4а, "50, "60, "70,.-, "5000 }, {"в } "50-р1(И1-6) ^ "5а,

{"1а, "2а, "за, "4а, "5а, "60, "7 0, "80,..., "5000 }, {"в }

Расчет седьмой расчетной зоны "7 процессором р и расчет первой расчетной зоны "1 процессором р2 для временного шага И 2 (16). Освобождаем для приема данных первую расчетную зону "1а ^ "10 и передаем рассчитанные данные шестой расчетной зоны "в6р-р2(и2) ^ "в в процессор р2.

р ) ^ {"(1+5)а, "6а, "(7+11)а, "12а, "1за, "14а,..., "500а }, {"в6р }, "1а ^ "10, "в6р-р2(И2 ^ "в,

{"(2+5)а, "6а, "(7+11)а, "12а, "в} ^ {"(2+6)а, "7а, "(8+12)а, "в7с}, "в7с ^ "в7р, {"ю, "(2+6)а, "7 а, "(8+12)а, "1за, "1за, "14 а,..., "500 а }, {"в7 р } р2(И2) ^ {"1а, "2а, "за, "4а, "5а, "60, "70, "80,..., "5000 }, {"в },

"60-р1(И1-7) ^ "6а,

{"1а, "2а, "за, "4а, "5а, "6а, "в } ^ {"ы, "(2+6)а, "в1с}, "в1с ^ "в1 р, {"1а, "(2+6)а, "7 0, "80, "90,..., "5000 }, {"в1 р }

(16)

Расчет восьмой расчетной зоны "8 процессором р и расчет второй расчетной зоны "2 процессором р2. Процессор р2 передает данные первой расчетной зоны "в1 р-рз(Из) ^ "в

процессору Р3 и принимает данные седьмой расчетной зоны "70-Р1(м_8) ^ "7а от процессора

Р.

р) ^ {"10,"(2+6)а, "7а, "(8+12)а,"13а, "13а, "14а,•••,"500а},{"в7р}, "2а ^ "20 , "в7р-Р2(й2) ^ "в ,

{"(3+6)а, "7а, "(8+12)а, "13а, "в } ^ {"(3+7)а, "8а, "(9+13)а, "в8с}, "в8с ^ "в8р, {"10, "20, "(3+7)а, "8а, "(9+13)а, "14а,..., "500а }, {"в8 р } Р2(^2) ^ {"1а,"(2+6)а, "70, "80, "90,..., "5000},{"в1 р}, "в1 р-Р3(й3) ^ "в, "70-Р1(й1_8) ^ "7а,

{"1а, "(2+6)а, "7а, "в } ^ {"1а, "2а, "(3+7)а, "в2с}, "в2с ^ "в2р, {"1а, "2а, "(3+7)а, "80, "90, "100,..., "5000 }, {"в2 р } Р3(й3) ^ {"10," 20 , "30 ,..., "5000 }, {"в } , "10-Р2(Й2) ^ "1а , {"1а, "20, "30, "40,..., "5000 }, {"в }

Расчет девятой расчетной зоны "9 процессором р. Процессор р освобождает для приема данных третью расчетную зону "3а ^ "30 и передает результат расчета восьмой расчетной зоны "В8 Р2(й2) ^ "в в процессор Р2.

р ^ {"10, "20, "(3+7)а, "8а, "(9+13)а, "14а,•••, "500а },{"в8р},

"3а ^ "30, "в8р-Р2(Й2) ^ "в ,

{"(4+7)а, "8а, "(9+13)а, "14а, "в } ^ {"(4+8)а, "9а, "(10+14)а, "в9с}, "в9с ^ "в9р, {"10 , "20 , "30 , "(4+8)а , "9а , "(10+14)а , "15а , "16а , "17а ,..., "500а }, {"в9р } Р2(^2) ^ {"1а,"2а, "(3+7)а,"80, "90,"100,..., "5000}, {"в2р}, "в2р-Р3(й3) ^ "в , "80-Р1(Й1_9) ^ "8а ,

{"1а, "2а, "(3+7)а, "8а, "в } ^ {"(1+2)а, "3а, "(4+8)а, "в3с}, "в3с ^ "в3р, {"(1+2)а, "3а, "(4+8)а, "90, "100, "110,..., "5000 }, {"в3 р } р3(^3) ^ {"1а, "20, "30, "40 ,•••, "5000 },{"в }, "20-Р2(й2) ^ "2а,

{"1а, "2а, "30, "40, "50, •••, "5000 }, {"в }

Дальнейший анализ процессов показал, что процесс загрузки процессоров стабилизировался, и запуск расчета на следующих процессорах происходит так же как для процессора Р2.

Предположим, что расчет задачи предполагается на 8 процессорах МВС. Рассмотрим расчет сорок девятой расчетной зоны "49 процессором р . Он характерен тем, что процессор Р принимает первую расчетную зону "10-Р8(й8) ^ "1а от процессора р8 для расчета

следующего девятого шага интегрирования. Загрузка задачи завершена. При расчете на 8 процессорах полностью синхронизированный процесс расчета задачи при полной загрузке МВС будет иметь вид представленный выражениями (17) - (24).

р (И149 ) ^ {"ю, "20 , "з0 ,..., "420, "(4з+47)а , "48а , "(49+5з)а , "54а ,..., "500а }, {"в48 р },

"4за ^ "4з0 , "в48р-р2(И2) ^ "в , "10-р8(И8) ^ "1а

{"(44+47)а , "48а , "(49+5з)», "54а , "в } ^ {"(44+48)а , "49а , "(50+54)а , "в49с }, "в49с ^ "в49р , {"1а-И8 , "20 , "з0 ,..., "4з0 , "(44+48)а , "49а , "(50+54)а , "55а ,..., "500а }, {"в49р } р2 (И2) ^ {"10 , "20 , "з0 ,..., "з60, "(з7+41)а , "42а , "(4з+47)а , "480, "490 , "500 ..., "5000 }, {"в42р } ,

"з7а ^ "з70 , "в42р-рз(Из) ^ "в , "480-р1(И1-49) ^ "48а ,

{"(з8+41)а , "42а , "(4з+47)а , "480 , "в } ^ {"(з8+42)а , "4за , "(44+48)а , "в4зс }, "в4зс ^ "в4зр , {"10 , "20 , "з0 ,..., "з70 , "(з8+42)а , "4за , "(44+48)а , "490 , "500, "510,..., "5000 }, {"в4зр } рз(Из) ^ {"10, "20, "з0,..., "з00, "(з1+з5)а , "з6а , "(з7+41)а , "420, "4з0 , "440 ,..., "5000 },{"вз6 р },

"з1а ^ "з10, "вз6р-р4(И4) ^ "в, "420-р2(И2) ^ "42а,

"25а ^ "250, "вз0р-р5(И5) ^ "в, "з60-рз(из) ^ "з6а,

{"(26+29)а, "з0а, "(з1+з5)а, "з6а, "в } ^ {"(26+з0)а, "з1а, "(з2+з6)а, "вз1с}, "вз1с ^ "вз1 р, {"10 , "20 , "з0 ,..., "250 , "(26+з0)а , "з1а , "(з2+з6)а , "з70 , "з80 , "з90 ,..., "5000 }, {"вз1 р } р(И5) ^ {"10, "20, "з0,..., "180 , "(19+2з)а , "24а , "(25+29)а , "з00 , "з10 , "з20 ,..., "5000 },{"в 24 р },

"19а ^ "190 , "в24р-р6(И6) ^ "в , "з00-р4(И4) ^ "з0а ,

{"(20+2з)а , "24а , "(25+29)а , "з0а , "в } ^ {"(20+24)а , "25а , "(26+з0)а , "в25с }, "в25с ^ "в25р , {"10 , "20 , "з0 ,..., "190 , "(20+24)а , "25 а , "(26+з0)а , "з10 , "з20 , "зз0 ,..., "5000 },{"в 25 р } р(И6) ^{"1 р,"2р,"зр,...,"120,"(1з+17)а,"18а"(19+2з)а,"240,"250,"260,...,"5000},{"в18р},

"1за ^ "1з0, "18вр-р7(и7) ^ "в, "240-р5(И5) ^ "24а,

{"(14+17)а , "18а , "(19+2з)а , "24а , "в } ^ {"(14+18)а , "19а , "(20+24)а , "в19с }, "в19с ^ "в19р , {"1 р , "2 р , "з р ,..., "1з0 , "(14+18)а , "19 а , "(20+24)а , "250 , "260 , "27 0 ,..., "5000 },{"в19 р } р7(И7) ^ {"ю, "20, "з0,..., "60 , "(7+11)а , "12а , "(1з+17)а , "180 , "190 , "200 ,..., "5000 }, {"в12 р },

"7а ^ "70 , "в12р-р8(И8) ^ "в , "180-р6(И6) ^ "18а ,

{"(8+11)а, "12а, "(1з+17)а, "18а, "в} ^ {"(8+12)а, "1за, "(14+18)а, "в1зс}, "в1зс ^ "в1зр, {"10, "20, "з0,..., "70, "(8+12)а, "1за, "(14+18)а, "190, "200, "210,..., "5000 },{"в1з р } р(И8) ^ {"(1+5)а,"6а, "(7+11)а, "120,"1з0,"140,...,"5000},{"в6р}, "1а ^ "10 , "в6р-р1(И9) ^ "в , "120-р7(И7) ^ "12а ,

{"(1+5)а, "6а, "(7+11)а, "12а, "в } ^ {"(2+6)а, "7а, "(8+12)а, "в7с}, "в7с ^ "в7р, {"10, "(2+6)а, "7 а, "(8+12)а, "1з0, "140, "150,..., "5000 }, {"в 7 р }

(17)

(18)

{"(з2+з5)а , "з6а , "(з7+41)а , "42а , "в } ^ {"(з2+з6)а , "з7а , "(з8+42)а , "вз7с }, "вз7с ^ "вз7р , {"10 , "20 , "з0 ,..., "з10 , "(з2+з6)а , "з7а , "(з8+42)а , "4з0 , "440 , "450,..., "5000 }, {"вз7р } р4(И4) ^ {"ю, "20 , "з0 ,..., "240, "(25+29)а , "з0а , "(з1+з5)а , "з60 , "з70, "з80,..., "5000 },{"вз0 р },

(19)

(20)

(21)

(22)

(2з)

(24)

Как видно из выражения (17), в каждом процессоре для расчета расчетной зоны, состоящей из одного слоя ячеек "49с ^ "49р, необходимо иметь пять слоев ячеек до границы

области интегрирования "(44+48)а и пять слоев ячеек перед границей области интегрирования

"(50+54)а те. всего 11 слоев ячеек. Так как рассматриваемая модель содержит 500 слоев ячеек,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

то вся модель может эффективно рассчитываться не более чем на 500/11« 45 процессорах.

Производительность МВС возрастает линейно при увеличении количества процессоров участвующих в расчете задачи.

Из выражений (17) - (24) видно, что объем памяти необходимый каждому процессору при использовании метода декомпозиции времени примерно в 2 раза меньше чем при использовании метода декомпозиции пространства. Установившийся синхронизированный процесс полной равномерной загрузки процессоров МВС наступает по истечении времени одного временного шага.

СПИСОК ЛИТЕРАТУРЫ

1. Hunt J. С. R. Studying turbulence using direct numerical simulation: 1987 Center for Turbulence Research NASA Ames / Stanford Summer Programme // J. Fluid Mech. 1988. Vol. 190. P. 375-392.

2. Липанов А.М., Кисаров Ю.Ф., Ключников И.Г. Численный эксперимент в классической гидромеханике турбулентных потоков. Екатеринбург: УрО РАН, 2001. 161 с.

3. Андреев В.В. Использование метода декомпозиции времени в параллельных алгоритмах метода молекулярной динамики / препринт. Вып. 1. Ижевск: ИПМ УрО РАН, 2006. 55 с.

SUMMARY. Variants of a numerical solution of problems of a hydromechanics on multiprocessing computing systems with use for parallel handling of methods of decomposition of time and space decomposition are considered. Algorithms of a solution of problems a hydromechanicses ensuring linear increase of productivity of the computing system at magnification of an amount of processors participating in solution of a problem with use of methods of decomposition of time and decomposition of space are offered.

i Надоели баннеры? Вы всегда можете отключить рекламу.