Научная статья на тему 'Адаптивные декартовы сетки'

Адаптивные декартовы сетки Текст научной статьи по специальности «Математика»

CC BY
307
66
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АДАПТИВНЫЕ СЕТКИ / ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / HIGH-PERFORMANCE COMPUTING / LOCALLY-REFINED MESHES

Аннотация научной статьи по математике, автор научной работы — Сухинов Антон Александрович

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

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

Похожие темы научных работ по математике , автор научной работы — Сухинов Антон Александрович

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

LOCALLY-REFINED RECTANGULAR MESHES

Two-dimensional hierarchical locally-refined rectangular meshes with dynamic adaptation to the solution are considered in this paper. The mesh structure, adaptation criterion and parallel algorithm are described.

Текст научной работы на тему «Адаптивные декартовы сетки»

УДК 519.63

АДАПТИВНЫЕ ДЕКАРТОВЫ СЕТКИ

А.А. Сухинов

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

Ключевые слова: адаптивные сетки, высокопроизводительные вычисления.

Введение

Численное решение задач математической физики обычно требует наличия сетки, покрывающей расчетную область. Точность используемых при этом численных методов (конечных элементов/объемов/разностей) может быть повышена с помощью схем высокого порядка аппроксимации (которые зачастую приводят к появлению осцилля-ций) или путем уменьшения размеров элементов сетки. Уменьшение размеров ячеек во всей области значительно увеличивает вычислительную сложность задачи. Адаптивные сетки - метод, позволяющий сгустить сеточные элементы в областях, где они наиболее необходимы.

Одно из важных приложений адаптивных сеток - математическое моделирование процессов в полупроводниковых приборах [1], где около границ раздела материалов возникают большие градиенты физических величин. Адаптивные сетки также могут быть применены для приближенного представления пространственно-распределенных величин с целью экономии памяти или уменьшения количества данных, передаваемых по каналам связи.

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

Структура сетки

Для формализации задачи вводятся следующие предположения.

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

2. Каждая ячейка Сг (0 < г < N) хранит величину (скалярную или векторную), описывающую среднее значение вычисляемой функции в пределах Сг .

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

4. Объединены могут быть лишь те ячейки, которые составляли одну ячейку.

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

Двумерная адаптивная сетка может храниться в виде четверичного дерева [3], при этом для вычислений используются только листовые ячейки. Разделение ячейки означает создание четырех ее потомков без удаления самой ячейки; объединение ячейки означает удаление всех ее потомков.

Нахождение соседних ячеек в дереве упрощается, если в каждой ячейке хранить дополнительную информацию, называемую адресом ячейки. В одномерном случае адрес - это последовательность бит. У корневой ячейки адрес пустой. Адрес левого потомка получается из адреса родителя добавлением нулевого младшего бита; адрес правого потомка получается добавлением единичного младшего бита. Если рассматривать

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

Для аппроксимации дифференциальных уравнений на сетке должна быть построена интерполяция. Для этого в каждой ячейке располагаются 9 интерполяционных точек (в углах, в серединах сторон, в центре). Интерполяционная функция между точками восполняется билинейным способом. Значения функции f1{),...,/8 в интерполяционных точках вычисляются так, чтобы среднее значение интерполяционной функции по ячейке СЛ было равно . При разбиении ячейки ее потомки получают величины, равные средним арифметическим значений соответствующих четырех интерполяционных точек. При объединении среднее значение потомков будет присвоено родительской ячейке. При таком подходе повторяющиеся разбиения/объединения ячеек не приведут к накоплению погрешности.

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

Для получения высокой точности решения сетка должна адаптироваться к сеточной функции, изменяющейся на каждом временном шаге. В качестве критерия адаптации мы используем скалярную величину, называемую вариацией, которая для листовой ячейки СЛ определяется выражением

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

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

max (( + а • Li ) + а2 • max Di ^ min . (2)

i=1,...,n i=1,...,n

Здесь n - число процессоров; Ni - число ячеек на i-м процессоре; Li - суммарная длина границы между кластерами процессора i и кластерами других процессоров (измеряется в ячейках); Dt - число ячеек, которые должны быть переданы к/от процессора i для достижения требуемого распределения кластеров на следующем временном шаге

Адаптация сетки

(в скалярном случае)

(1)

Параллельная реализация

(накладные расходы), а.1, а 2 - коэффициенты, зависящие от скорости передачи данных и решаемой задачи.

Заключение

Тестирование выполненной автором реализации описанных алгоритмов показало, что машинное время решения тестовой задачи переноса с неявной аппроксимацией на адаптивной сетке примерно в 1,5 раза больше, чем время решения задачи на равномерной сетке с тем же числом ячеек (накладные расходы на интерполяцию и адаптацию). Однако для достижения той же точности решения равномерная сетка должна иметь примерно в 16 раз больше ячеек, чем адаптивная. Поэтому, при той же точности, решение на адаптивной сетке может быть получено в 10 раз быстрее, чем на равномерной.

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

Литература

1. Тихомиров П. Система SENTAURUS TCAD компании Synopsys: новое поколение приборно-технологических САПР / П. Тихомиров, П. Пфеффли, М. Зорзи // Электроника НТБ. - 2006. - № 7. - С. 89-95.

2. Berger M.J. Aspects (and Aspect Ratios) of Cartesian Mesh Methods / M.J. Berger, M.J. Aftosmus // Proc. of the 16th Int. Conf. on Numerical Methods in Fluid Dynamics, (6-10 July, 1998, Arcachon, France). - Springer-Verlag, Heidelberg, Germany, 1998. -P. 1-12.

3. Hannoun N. Issues in Adaptive Mesh Refinement Implementation / N. Hannoun, V. Alexiades // Electronic Journal of Differential Equations: Sixth Mississippi State Conference on Differential Equations and Computational Simulations. - 2007. - P. 141-151.

Сухинов Антон Александрович — Московский физико-технический институт

(государственный университет), аспирант, [email protected]

УДК 004.4'23

ИНТЕРПРЕТАЦИЯ КАК СРЕДСТВО ИССЛЕДОВАНИЯ ДИНАМИЧЕСКИХ СВОЙСТВ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ НА ИНСТРУМЕНТАЛЬНОМ КОМПЬЮТЕРЕ

М.С. Акопян

В работе рассматривается среда ParJava, поддерживающая разработку параллельных Java-программ для вычислительных систем с распределенной памятью. В среде ParJava строится модель параллельной программы, позволяющая оценивать ее динамические параметры не на целевой вычислительной системе, а на персональном компьютере разработчика.

Ключевые слова: среда разработки, Java, параллельное программирование.

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

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