Решение двумерного уравнения Пуассона методом блочных итераций - Контрольная работа

бесплатно 0
4.5 118
Создание параллельной программы на языке программирования высокого уровня С с расширением MPI и аналогичной программы на OpenMP для решения двумерного уравнения Пуассона итерационным методом Зейделя. Блок-схема алгоритма, анализ работы программы.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Для решения поставленной задачи нами была написана параллельная программа на языке программирования высокого уровня С с расширением MPI, а также аналогичная программа на OPENMP. уравнение пуассон параллельная программаНайти численное решение задачи Дирихле для уравнения Пуассона Разработайте блок-схему реализации распараллеливания данного алгоритма и напишите параллельную программу на MPI для численного решения уравнения (1) с условиями (2) с помощью данной итерационной схемы. Для хранения сеточной функции используйте два двумерных массива, целиком размещающихся в памяти процессоров. На сетке 50х50 проведите расчеты на разном числе процессоров и постройте зависимость ускорения вычислений и затраты на межпроцессорные обмены в зависимости от числа процессоров.Значения прогоночных коэффициентов находятся по рекуррентным формулам, которые можно записать в виде: , , . Из граничных условий на левой границе определяются значения прогоночных коэффициентов . После этого, учитывая, что , обратной прогонкой находятся все значения сеточной функции на n 1 - ом итерационном шаге: Счет следует проводить прогонкой по оси ОХ (индекс i), начиная с индекса j = 1.} int main (int argc, char **argv) {int size, rank, flag = 1; MPI_Comm_size (MPI_COMM_WORLD, &size); MPI_Comm_rank (MPI_COMM_WORLD, &rank); MPI_Send (&Ysh, (N1 1) * (N2 1), MPI_DOUBLE, rank - 1, 1, MPI_COMM_WORLD); MPI_Send (&Ysh, (N1 1) * (N2 1), MPI_DOUBLE, rank 1, 1, MPI_COMM_WORLD);Полученные результаты вычислений сведены в таблицу 1.3.

План
Содержание

Введение

1. Задание

2. Теоретический материал

3. Реализация поставленной задачи

3.1 Блок-схема алгоритма

3.2 Параллельная программа

3.3 Анализ работы программы на разном числе процессоров

3.4 Коэффициент ускорения вычислений в зависимости от числа потоков

3.5 График изменения погрешности

Выводы по работе

Список использованной литературы

Введение
Решение двумерного уравнения Пуассона итерационным методом Зейделя

Необходимо найти численное решение задачи Дирихле для уравнения Пуассона

(1) в прямоугольной области с граничными условиями

(2)

Для решения поставленной задачи нами была написана параллельная программа на языке программирования высокого уровня С с расширением MPI, а также аналогичная программа на OPENMP. уравнение пуассон параллельная программа

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

При решении уравнения на 6 процессорах общее время вычисления составляет 0,063107 условных единиц времени, из которых 6,043527 тратится на пересылку данных между процессорами.

На основе результатов вычисления был построен график изменения погрешности от числа итерации. Из данного графика делаем вывод, что точность получаемый результатов зависит от колва итераций - чем больше итераций, тем выше точность получаемых результатов.

Список использованной литературы

1. Бахвалов Е.А., Жидков Н.П., Кобельков Г.Н. Численные методы: Учеб. пособие. - М: Наука, 1987. - 600 с.

2. Березин И.С., Жидков Н.П. Методы вычислений. т.1, т.2. - М.: Наука, 1997.

3. Волков Е.А. Численные методы: Учеб. пособие для вузов. М: Наука, 1987. - 248 с.

4. Воеводин В. В, Воеводин Вл.В. Параллельные вычисления. - Спб.: БХВ-Петербург, 2002. - 608 с.

5. Корнеев В.Д. Параллельное программирование в MPI. - Москва-Ижевск: Ин-т компьютерных исследований, 2003. - 304 с.

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?