Разработка параллельной MPI-программы решения двумерного уравнения теплопроводности Лапласа методом одномерной декомпозиции расчетной о
Автор: Кавыршин Николай ИВ-023 • Май 14, 2023 • Курсовая работа • 4,582 Слов (19 Страниц) • 186 Просмотры
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»
КУРСОВОЙ ПРОЕКТ
по дисциплине “Параллельные вычислительные технологии” на тему
Разработка параллельной MPI-программы решения двумерного уравнения теплопроводности Лапласа методом одномерной декомпозиции расчетной области
Выполнил студент Ничипарук Данил Вадимович
[pic 1]
Ф.И.О.
Группы ИВ-821
[pic 2]
Работу принял профессор д.т.н. М.Г. Курносов
[pic 3]
подпись
Защищена Оценка
[pic 4]
Новосибирск – 2020
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1 УРАВНЕНИЕ ЛАПЛАСА 4
2 МЕТОД ПОСЛЕДОВАТЕЛЬНЫХ ИТЕРАЦИЙ ЯКОБИ 6
3 ПАРАЛЛЕЛЬНАЯ ВЕРСИЯ МЕТОДА ЯКОБИ 8
4 РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТОВ 11
ЗАКЛЮЧЕНИЕ 15
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 16
ПРИЛОЖЕНИЕ 17
ВВЕДЕНИЕ
Целью данной курсовой работы является изучение метода итераций Якоби, реализация параллельной версии метода с использованием стандарта MPI для решения двумерного уравнения теплопроводности Лапласа c помощью сеточных вычислений, проведение экспериментального исследования масштабируемости на кластерной вычислительной системе Oak.
УРАВНЕНИЕ ЛАПЛАСА
Уравнение Лапласа является примером так называемого эллиптического дифференциального уравнения в частных производных. В двумерном варианте она имеет следующий вид.
𝑑2𝑈 𝑑2𝑈 ∆𝑈= 𝑑𝑥2 +𝑑𝑦2 =0, [pic 5]
где функция U (x, y) – неизвестный потенциал (теплота).
По данной области пространства и известным значениям в точках на границах этой области нужно аппроксимировать стационарное решение во внутренних точках области. В нашем случае:
- Расчетная область – квадрат [0, 1] x [0, 1]
- Граничные условия:
- U (x, 0) = sin(πx)
- U (x, 1) = sin(πx)𝑒−𝜋
- U (0, y) = U (1, y) = 0
Это можно сделать, покрыв область равномерной сеткой точек. Каждая внутренняя точка инициализируется некоторым значением. В нашем случае:
- Расчетная область [0, 1] x [0, 1] покрывается прямоугольной сеткой с постоянным шагом: nx точек по оси OX и ny точек по оси OY
- Расчетная сетка – массив [ny, nx] чисел (температура)
- Переход от индекса ячейки [i, j] к координатам в области [0, 1] x [0, 1]:
x = j * 1.0 / (nx – 1.0) y = i * 1.0 / (ny – 1.0)
Затем с помощью повторяемых итераций вычисляются стационарные значения внутренних точек. Вторые производные аппроксимируются на расчетной сетке разностным уравнением с применением четырехточечного шаблона
𝑑2𝑈 𝑑2𝑈
∆𝑈=𝑑𝑥2 +𝑑𝑦2 =0 [pic 6]
На каждой итерации новое значение в каждой точке сетки равно среднему из предыдущих значений четырех ее соседних точек (схема «крест») [1, 2].
grid_new[i ,j] = (grid[i - 1, j] + grid[i, j + 1] + grid[i + 1, j]
+ grid[i, j - 1]) / 4
...