Санкт-Петербургский Государственный Университет Математико-механический Факультет Распараллеливание для итерационной триангуляции с локальным укрупнением Дипломная работа Парахин М.В., студент 543 группы Кафедра параллельных алгоритмов Научный руководитель – д.ф.-м.н. Демьянович Ю.К. Рецензент – д.ф.-м.н. Бурова И.Г. Разложение двумерного числового потока • Построение правильной триангуляции числового потока • Калибровочные соотношения для функций Куранта • Построение адаптивных сплайнвэйвлетных разложений 2 Построение триангуляции 3 Построение триангуляции 4 Альтернативная триангуляция 5 Альтернативная триангуляция 6 Укрупнение триангуляции 7 Сохранение структуры при укрупнении Поворот на и растяжение в раз 8 Структура барицентрических звёзд исходной триангуляции • вершины первого типа – восемь треугольников: 9 Структура барицентрических звёзд исходной триангуляции • вершины второго типа – четыре треугольника: 10 Барицентрические звёзды укрупнённой триангуляции • вершины первого типа – восемь треугольников: 11 Барицентрические звёзды укрупнённой триангуляции • вершины второго типа – шесть треугольников: 12 Барицентрические звёзды укрупнённой триангуляции • вершины второго типа – шесть треугольников: 13 Барицентрические звёзды укрупнённой триангуляции • вершины третьего типа – восемь треугольников: 14 Барицентрические звёзды укрупнённой триангуляции • вершины третьего типа – восемь треугольников: 15 Компьютерная реализация. Хранение данных • Область построения триангуляции: x1, x2, y1, y2 – чётные • Вершины - хэш-таблица Vertices + класс Point • Point – x, y, GetHashCode(), inside(x1,x2,y1,y2) • Треугольники – Triangles + Triangle • Triangle – points[], GetHashCode() 16 Компьютерная реализация. Построение триангуляции • Цикл по точкам D • Для вершин (2x,2y) – первого типа – p1: • Для каждого треугольника k=1..8: – Проверка принадлежности вершин треугольника области D – Добавление вершин k в Vertices и треугольника k в Triangles 17 Компьютерная реализация. Укрупнение триангуляции • Внутри области • - в стандартном для C# виде – вычисление обратной польской записи • Создание таблицы вершин первого типа FirstTypeVertices 18 Компьютерная реализация. Укрупнение триангуляции • Для вершин из FirstTypeVertices: – Проверка, что все получаемые укрупнённые треугольники k = 1..8 лежат в D0 – Для всех k удаление исходных треугольников и их общей вершины, не принадлежащей k – Добавление k в Triangles – Удаление соседних вершин первого типа из 19 19 FirstTypeVertices Компьютерная реализация. Результат выполнения 20 Параллельная версия. Построение триангуляции • Parallel.For - для вершин (2x,2y) – обработка на отдельном процессоре: • Проверка принадлежности k области D, • Добавление вершин k в localVertices • Добавление k в localTriangles • Объединение локальных результатов – требуется синхронизация 21 Параллельная версия. Укрупнение триангуляции • Предварительные вычисления – список вершин первого типа для укрупнения • Для полученного списка Parallel.ForEach и обработка на отдельном процессоре • Укрупнение для вершины первого типа аналогично • Синхронизация при удалении элементов 22 22 Параллельная версия. Численные результаты • 160 000 треугольников 23 Параллельная версия. Общее время работы • 160 000 треугольников 24 Параллельная версия. Ускорение триангуляции • 160 000 треугольников 25 Параллельная версия. Ускорение укрупнения • 160 000 треугольников 26 Планы дальнейших разработок • Улучшение параллельной версии алгоритма • Повышение «гладкости» укрупнения • Разработка второго и далее укрупнений • Применение к сплайн-вэйвлетной обработке двумерных потоков • Алгоритм сжатия изображений на основе адаптивных сплайн-вэйвлетных преобразований. 27 СПАСИБО ЗА ВНИМАНИЕ! СПбГУ, Математико-механический факультет, 2013 год Список литературы • [1] Арсентьева Е.П., Демьянович Ю.К. Адаптивные сплайн-вэйвлетные разложения двумерных потоков числовой информации. СПб. 2011. • [2] Романовский Л.М. Локальное укрупнение триангуляции и калибровочные соотношения. СПб. 2011. • [3] Демьянович Ю.К. Аппроксимация на многообразии и минимальные сплайны. СПб. 1994. 29