Двумерное уравнение теплопроводности. Ковалев Олег. 6 курс — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Постановка задачи)
(Используемый метод)
Строка 14: Строка 14:
 
==Используемый метод==
 
==Используемый метод==
 
В вычислительных системах с распределенной памятью процессоры работают независимо друг от друга. Для организации параллельных вычислений в таких условиях необходимо иметь возможность распределять вычислительную нагрузку и организовать информационное взаимодействие (передачу данных) между процессорами. Параллельное программирование служит для создания программ, эффективно использующих вычислительные ресурсы за счет одновременного исполнения кода на нескольких вычислительных узлах. Для создания параллельных приложений используются параллельные языки программирования и специализированные системы поддержки параллельного программирования, такие как MPI и OpenMP. Итак, MPI - это библиотека передачи сообщений, собрание функций на C/C++ (или подпрограмм в Фортране), облегчающих коммуникацию (обмен данными и синхронизацию задач) между процессами параллельной программы с распределенной памятью. Акроним MPI установлен для Message Passing Interface (интерфейс передачи сообщений). Под параллельной программой в рамках MPI понимается множество одновременно выполняемых процессов. Все процессы порождаются один раз, образуя параллельную часть программы. Каждый процесс работает в своем адресном пространстве, никаких общих переменных или данных в MPI нет. Процессы могут выполняться на разных процессорах, но на одном процессоре могут располагаться и несколько процессов (в этом случае их исполнение осуществляется в режиме разделения времени).
 
В вычислительных системах с распределенной памятью процессоры работают независимо друг от друга. Для организации параллельных вычислений в таких условиях необходимо иметь возможность распределять вычислительную нагрузку и организовать информационное взаимодействие (передачу данных) между процессорами. Параллельное программирование служит для создания программ, эффективно использующих вычислительные ресурсы за счет одновременного исполнения кода на нескольких вычислительных узлах. Для создания параллельных приложений используются параллельные языки программирования и специализированные системы поддержки параллельного программирования, такие как MPI и OpenMP. Итак, MPI - это библиотека передачи сообщений, собрание функций на C/C++ (или подпрограмм в Фортране), облегчающих коммуникацию (обмен данными и синхронизацию задач) между процессами параллельной программы с распределенной памятью. Акроним MPI установлен для Message Passing Interface (интерфейс передачи сообщений). Под параллельной программой в рамках MPI понимается множество одновременно выполняемых процессов. Все процессы порождаются один раз, образуя параллельную часть программы. Каждый процесс работает в своем адресном пространстве, никаких общих переменных или данных в MPI нет. Процессы могут выполняться на разных процессорах, но на одном процессоре могут располагаться и несколько процессов (в этом случае их исполнение осуществляется в режиме разделения времени).
 +
==Реализация==
 +
При решении поставленной задачи будем использовать замену частных производных в дифференциальных уравнениях их разностными аналогами. Сеточный метод, основанный на замене в дифференциальном уравнении производных конечными разностями, называют '''методом конечных разностей''', а сеточную схему такого метода - конечно-разностной.<br>
 +
По аналогии с одномерной задачей для уравнения теплопроводности вводим явную конечно-разностную схему. Область [0..L]x[0..L] разбивается на подобласти согласно количеству процессов в выполняемой параллельной программе. На каждом полученном таким способом интервале процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы соседние процессы должны обмениваться крайними значениями, полученными на предыдущем шаге, для выполнения следующего шага.<br>
 +
Программа для решения двумерного уравнения теплопроводности:
 +
 
==Результаты==
 
==Результаты==
 
400x400 узлов
 
400x400 узлов

Версия 14:10, 19 января 2016

Постановка задачи

Необходимо решить задачу Коши для двумерного уравнения теплопроводности (дифференциальное уравнение в частных производных второго порядка, которое описывает распределение температуры в заданной области пространства и его изменение во времени.) с использованием средств параллельного программирования на основе MPI. Задача решается для однородного уравнения теплопроводности (система теплоизолирована):
[math]\frac{\partial U}{\partial t} - a^2(\frac{\partial^2 U}{\partial x^2}+\frac{\partial^2 U}{\partial y^2}) = 0[/math]
[math]U(t=0) = U_0[/math]
при граничных условиях:
[math] U(x,y,t) = \begin{cases}T_0, x=0\\ T_1, x!=0 \end{cases}[/math]
Используемые величины параметров:
[math]L=1, T_0=100, T_1=0[/math]

Используемый метод

В вычислительных системах с распределенной памятью процессоры работают независимо друг от друга. Для организации параллельных вычислений в таких условиях необходимо иметь возможность распределять вычислительную нагрузку и организовать информационное взаимодействие (передачу данных) между процессорами. Параллельное программирование служит для создания программ, эффективно использующих вычислительные ресурсы за счет одновременного исполнения кода на нескольких вычислительных узлах. Для создания параллельных приложений используются параллельные языки программирования и специализированные системы поддержки параллельного программирования, такие как MPI и OpenMP. Итак, MPI - это библиотека передачи сообщений, собрание функций на C/C++ (или подпрограмм в Фортране), облегчающих коммуникацию (обмен данными и синхронизацию задач) между процессами параллельной программы с распределенной памятью. Акроним MPI установлен для Message Passing Interface (интерфейс передачи сообщений). Под параллельной программой в рамках MPI понимается множество одновременно выполняемых процессов. Все процессы порождаются один раз, образуя параллельную часть программы. Каждый процесс работает в своем адресном пространстве, никаких общих переменных или данных в MPI нет. Процессы могут выполняться на разных процессорах, но на одном процессоре могут располагаться и несколько процессов (в этом случае их исполнение осуществляется в режиме разделения времени).

Реализация

При решении поставленной задачи будем использовать замену частных производных в дифференциальных уравнениях их разностными аналогами. Сеточный метод, основанный на замене в дифференциальном уравнении производных конечными разностями, называют методом конечных разностей, а сеточную схему такого метода - конечно-разностной.
По аналогии с одномерной задачей для уравнения теплопроводности вводим явную конечно-разностную схему. Область [0..L]x[0..L] разбивается на подобласти согласно количеству процессов в выполняемой параллельной программе. На каждом полученном таким способом интервале процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы соседние процессы должны обмениваться крайними значениями, полученными на предыдущем шаге, для выполнения следующего шага.
Программа для решения двумерного уравнения теплопроводности:

Результаты

400x400 узлов

Количество процессов [-] Время расчета [сек]
1 72.0503
2 69.7719
10 7.62525
20 4.10252
30 4.02818