Учебно-экспериментальный вычислительный кластер. Ч. 2. Примеры решения задач - page 6

Рис. 1. Пример разбиения сложной области на 16 подобластей при помощи
программы METIS
состоит из параллельного нахождения решения на текущем времен-
ном слое в заданных подобластях и последующего, реализованного с
помощью средств MPI, обмена “контактными” граничными данными
между модулями, обрабатывающими соседние подобласти.
Для достижения максимальной эффективности распараллеливания
вычислений необходимо минимизировать количество граничных дан-
ных, пересылаемых между вычислительными модулями (число “кон-
тактных” ячеек в каждой подобласти), и сбалансировать число рас-
четных ячеек в каждой подобласти. Для приближенного нахождения
подобного разбиения использована программа METIS (рис. 1).
На основании полученного разбиения главный (нулевой) вычисли-
тельный модуль определяет и рассылает массивы, содержащие локаль-
ную нумерацию ячеек в подобластях и номера “контактных” ячеек.
Каждый вычислительный модуль хранит в памяти информацию толь-
ко о своей подобласти и ее границе, а также о расположении соседних
подобластей. На основании разосланных массивов каждый из модулей
проводит инициализацию отложенного приема и передачи “контакт-
ных” данных. Далее вычислительные модули проводят расчет решения
независимо, выполняя на каждом шаге по времени обмен граничными
данными и определение величины нового шага по времени на осно-
вании максимальной по всем подобластям скорости распространения
возмущений. Периодически главный вычислительный модуль прово-
дит сбор и сохранение решения на текущем временном слое.
В качестве тестовой рассмотрена задача о вращении цилиндра в
покоящейся среде [8, 9]. Расчетная область представляет собой еди-
ничный квадрат. В центре области находится вращающийся плотный
диск радиусом
0
,
1
, который постепенно закручивает окружающее его
замагниченное вещество. Начальные условия задачи:
(
ρ, v
1
, v
2
, v
3
, p, B
1
, B
2
, B
3
) =
ISSN 1812-3368. Вестник МГТУ им. Н.Э. Баумана. Сер. “Естественные науки”. 2012. № 4
87
1,2,3,4,5 7,8,9,10,11,12,13,14,15,16,...21
Powered by FlippingBook