Você está na página 1de 5

Soluo Numrica de Equaes Diferenciais Parciais Parablicas

usando o Mtodo Hopscotch com Refinamento No-Uniforme



Mauricio J. M. Guedes
a,b
, Diogo T. Robaina
a
,
Lcia M. A. Drummond
a
, Mauricio Kischinhevsky
a
, Otton T.S. Filho
a

a: Instituto de Computao, UFF, Rua Passo da Ptria, 156 - Bloco E - 3 andar, So Domingos, Niteri - RJ, CEP 24210-240.
b: CASNAV, Marinha do Brasil, Pa. Br. de Ladrio, s/n
o
, Ilha das Cobras, ed. 8 - 3 andar, Centro, Rio de Janeiro-RJ, CEP 20091-000.
E-mail: mauricio532@hotmail.com, professor_robaina@yahoo.com.br, lucia@ic.uff.br, kisch@ic.uff.br, otton@ic.uff.br

1 - INTRODUO
Equaes Diferenciais Parciais (EDPs) so
utilizadas para estudar uma vasta gama de fenmenos
da natureza, nas mais diversas reas de aplicao. Para
a resoluo computacional, necessrio discretizar o
domnio, com a criao de uma malha de pontos. Em
situaes reais, a malha a ser utilizada bastante
refinada, com possivelmente milhes de pontos e,
alm disso, para estudar efeitos de longo prazo as
EDPs devem ser integradas sobre longos intervalos de
tempo. Tais modelos computacionais requerem uma
quantidade de memria e de CPU que podem estar
alm da capacidade at mesmo dos mais modernos
supercomputadores. Assim, o processamento paralelo
aparece como uma alternativa atraente.
Este artigo apresenta um modelo de resoluo
da EDP evolutiva de difuso pura empregando
processamento paralelo. Para a resoluo numrica foi
escolhido o mtodo Hopscotch, por ser um dos
mtodos mais rpidos de resoluo de uma EDP e por
ser adequado a paralelizao. O domnio dividido em
subdomnios, e cada subdomnio associado a um
processador. O modelo apresentado aqui permite o
refinamento seletivo dos subdomnios para tratar de
descontinuidades na fronteira. Essa caracterstica se
torna importante quando o ambiente compartilhado,
pois permite refinar apenas os subdomnios
necessrios, evitando sobrecarregar os outros
processadores envolvidos na resoluo.

2 ASPECTOS TERICOS
2.1 Equaes Diferenciais Parciais (EDPs)
A seguir so apresentadas as condies de
contorno que so comumente encontradas na soluo
de equaes diferenciais parciais (ref. [1]).
EDPs podem ser classificadas em trs
categorias bsicas: Elpticas (associadas a problemas
estacionrios, em estado de equilbrio), Parablicas e
Hiperblicas, evolutivas com caractersticas difusiva
ou convectiva. O problema a ser tratado neste trabalho
evolutivo, considera apenas o fenmeno de difuso
como fator de modificao do estado do sistema,
estando associado denominao EDP parablica.
Os problemas evolutivos envolvem a variao
temporal das grandezas fsicas de interesse. A partir
dos valores iniciais dessas grandezas em um certo
tempo t
0
, calcula-se, pela soluo numrica da EDP,
seus novos valores em sucessivos intervalos de tempo
t, at alcanarmos o instante final t
f
.
Os problemas transientes necessitam de
valores para a varivel dependente em t = 0 (condies
iniciais), alm de condies de fronteira para t > 0.
Podemos escrever, esquematicamente:
Valor
inicial
de

+
Variao espacial
e temporal de ,
dada pela equao
diferencial

+
condies
de
fronteira

=
Novo
valor
de
Figura 1 Equao diferencial

2.2 Discretizao
Para tratar computacionalmente um problema
diferencial necessrio expressar de forma adequada a
regio (domnio) onde o problema ser resolvido.
Como usualmente no possvel obter solues
numricas sobre o domnio, uma regio contnua,
devido infinidade de pontos envolvida, inicialmente
o domnio discretizado, isto , substitudo por um
conjunto finito de pontos representativos. Somente
nesses pontos que as solues sero obtidas.

Figura 2 Discretizao do domnio

Intuitivamente, percebe-se que, quanto maior
for o nmero de pontos da discretizao, mais fiel ser
o resultado numrico obtido. Obviamente, maior
tambm ser o custo computacional. A necessidade de
se resolverem problemas com alta preciso, em tempo
hbil (como previso do tempo), tem levado a uma
constante busca tanto por tcnicas de soluo mais
eficientes, como por computadores com maior
desempenho. A utilizao de tcnicas de programao
paralela um excelente meio para o clculo de
problemas complexos.
2.3 Condies de Contorno
a) Condies de contorno de Dirichlet: especifica o
valor da funo no contorno.
b) Condies de contorno de Neumann: especifica
uma derivada normal funo no domnio (i.., um
fluxo).
c) Condies de contorno de Cauchy: especifica uma
combinao dos dois tipos anteriores.
Este trabalho usa condies de contorno de
Dirichlet, sem que haja dificuldade para o emprego das
outras condies de contorno.
2.4 Equaes de Diferenas Finitas
Os mtodos de diferenas finitas consistem
em substituir as derivadas parciais presentes na
equao diferencial por aproximaes por diferenas
finitas. As ref. [2], [3] e [4] do mais detalhes sobre
esses mtodos. No mtodo explcito, as equaes so
independentes, permitindo, portanto, soluo por
cmputo direto. rpido, mas exibe problemas de
estabilidade. Em mtodos implcitos, tm-se condies
de estabilidade mais favorveis; no entanto, as
1
equaes resultantes so acopladas, o que exige a
resoluo de um sistema de equaes a cada passo de
integrao no tempo, o que pode tornar os mtodos
lentos e de difcil paralelizao.
Este trabalho usa a equao parablica a
seguir para modelar a difuso de calor em uma placa
( a constante de difusividade trmica):

2
2
2
2
y x t


Discretizando a derivada no tempo em 1
a

ordem em t e as derivadas espaciais em 2
a
ordem em
x e y, obtm-se, usando a seguinte notao:
; e ( ) y x t
t
j i
, ,
,
=
( y y x x t t
t
j i
+ + + =
+
+ +
, ,
1
1 , 1
)
para o modo explcito:
( ) ( )
t
j i
t
j i
t
j i
t
j i
t
j i
t
j i
k k
1 , 1 , , 1 , 1 ,
1
,
4 1
+ +
+
+ + + + =
e para o modo implcito:
( ) ( )
1
1 ,
1
1 ,
1
, 1
1
, 1
1
, ,
4 1
+

+
+
+

+
+
+
+ + + + =
t
j i
t
j i
t
j i
t
j i
t
j i
t
j i
k k
onde
2
h
t
= k , h y x = = .
O mtodo Hopscotch utiliza essas duas
discretizaes, como ser visto a seguir.
2.5 Mtodo Hopscotch
O mtodo Hopscotch (ref. [3], [5] e [6])
uma combinao dos mtodos explcito e implcito. O
mtodo consiste em aplicar as equaes explcita e
implcita em cada ponto do domnio, de modo
alternado. Os pontos resolvidos pela equao explcita
so sempre calculados primeiro. Assim, quando os
pontos a serem resolvidos pelo mtodo implcito forem
calculados, todos os seus pontos adjacentes
necessrios para o clculo j estaro resolvidos. Deste
modo, no necessrio resolver um sistema de
equaes. incondicionalmente estvel, ver ref. [7]
para a prova.
O exemplo a seguir ilustra a aplicao do
mtodo. Primeiro, aplica-se o mtodo explcito (pontos
brancos) alternadamente, comeando no ponto acima e
esquerda. Depois, o mtodo implcito aplicado
(pontos pretos) ao resto dos pontos. Note que todos os
pontos necessrios ao clculo da frmula implcita j
esto no tempo t + 1, e assim esse clculo se torna
explcito, dispensando a resoluo de um sistema de
equaes. Esse procedimento configura um meio-
passo, e est ilustrado na figura 3. O passo se completa
com a repetio do procedimento, invertendo o mtodo
de clculo utilizado em cada ponto do domnio. Os
pontos cinza so pontos da fronteira.
meio-passo + meio-passo = um passo

Figura 3 Aplicao do mtodo Hopscotch

Uma desvantagem do mtodo Hopscotch
que ele no lida bem com discontinuidades na
fronteira, devido sua caracterstica de considerar
primeiro aproximadamente a metade dos pontos e
depois os pontos restantes. Uma das maneiras de lidar
com esse problema refinar a malha nas proximidades
de uma eventual descontinuidade (ref. [8]).

3 IMPLEMENTAO
Foi usada a linguagem C para a
implementao dos programas e adotado o padro MPI
para a troca de mensagens. Ver ref. [9] para uma
implementao paralela usando gradiente conjugado e
a ref.[10] para uma implementao paralela de um
mtodo Hopmoc, que uma extenso do mtodo
Hopscotch.
3.1 Diviso do Domnio
Ser considerado aqui, como exemplo
ilustrativo, uma subdiviso utilizando 9 processadores,
cada um deles com um subdomnnio 5x5, mas o
programa permite que se use qualquer quantidade de
processadores e qualquer tamanho de subdomnio,
com a restrio de que exista sempre o mesmo nmero
de linhas e colunas., isto , o nmero de subdomnios
deve ser um quadrado perfeito, por exemplo, 9, 16, 25,
36, 49, 64 e assim por diante.
5x5 5x5
fronteira
5x5 5x5 5x5
5x5 5x5 5x5
5x5

Figura 5 Diviso do domnio
Independentemente do nmero de
subdomnios definidos, existiro nove tipos de
subdomnios, de acordo com a existncia e posio da
fronteira. Os tipos de subdomnio esto descritos no
item 4.2.4. Os exemplos so para o caso de
subdomnios com discretizao 5x5.
Cada processador trabalhar apenas em um
subdomnio.
3.2 Comunicao entre os Processadores
Um meio passo do mtodo o clculo
alternado dos pontos pelas equaes explcita e
implcita. Com todos os pontos calculados, a
complementao do passo ser usar a frmula explcita
para calcular os pontos que foram calculados com a
frmula implcita, e vice-versa. O clculo dos valores
dos pontos localizados nas bordas de um subdomnio
depende dos valores de pontos localizados nos
subdomnios adjacentes. Assim, a cada meio passo
haver a necessidade de comunicao entre os
processos.
A posio relativa dos subdomnios
mostrada na figura 6 a seguir.
2
N NE
L
SE S SO
O
NO

Figura 6 Posio relativa dos subdomnios
Essa comunicao consistir de valores em
pontos de um subdomnio que devem ser mandados
para os seus vizinhos. Assim, cada subdomnio ter
pontos dos subdomnios adjacentes. Esses pontos so
chamados de franja. As franjas so enviadas por cada
processador conforme a figura 7 a seguir. Nessa
ilustrao foi usado um subdomnio 10x10 para maior
clareza.
noroeste
oeste leste
nordeste
sudoeste sudeste
norte
sul

Figura 7 Subdomnio (10x10) com as franjas enviadas
As franjas so recebidas de cada vizinho
conforme figura 8 a seguir.
Subdomnio 5x5 franja
noroeste
oeste
sudoeste sul
sudeste
leste
norte
nordeste

Figura 8 Subdomnio com as franjas recebidas

O Mtodo Hopscotch exige uma franja de
duas camadas.
A comunicao deve ser sncrona, pois um
subdomnio necessita dos outros para poder
prosseguir.
Para um domnio dividido igualmente, o
subdomnio que o processador est resolvendo
determinado da seguinte maneira:
a) divide-se o nmero do processo (rank) pelo
nmero de colunas. O resultado indicar em que
coluna o subdomnio est.
b) Obtm-se o resto dessa diviso. O
resultado indicar em que linha est o subdomnio.
3.4 Tipos de Subdomnios
Existem nove tipos de subdomnio de acordo
com a existncia ou no de fronteira e sua posio no
domnio. Os tipos de subdomnio esto mostrados no
exemplo da figura 9 a seguir, que usa uma subdiviso
em 36 subdomnios.
1 4 4 4 4 7
2 5 5 5 5 8
2 5 5 5 5 8
2 5 5 5 5 8
2 5 5 5 5 8
3 6 6 6 6 9

Figura 9 Tipos de Subdomnio
3.5 Refinamento no-uniforme
O programa permite que os subdomnios
tenham refinamentos diferentes. Na presena de
gradientes elevados, a linha de ao mais comum
refinar a malha onde esses gradientes ocorrem, e
deixar a malha menos refinada nas regies com
gradientes pequenos. No caso de uma discontinuidade,
necessrio que a malha seja mais refinada nas
proximidades dela, para que seja obtida a preciso
requerida. Como o refinamento de uma malha
computacionalmente dispendioso, o programa permite
refinamentos diferentes em cada subdomnio. claro
que, em ambientes homogneos, o tempo de
processamento ser dado pelo subdomnio mais
refinado, j que a comunicao sncrona. Apesar de a
facilidade no reduzir, nesse caso, o tempo de
processamento j obtido com a paralelizao, essa
facilidade til em ambientes compartilhados, j que
s sobrecarrega os processadores alocados aos
subdomnios refinados. Em ambientes heterogneos, o
subdomnio mais refinado seria associado ao
processador mais rpido, reduzindo o tempo de
processamento.

4 O PROBLEMA
Encontrar a distribuio de temperatura sobre
uma chapa de 3m x 3m, submetida s condies de
fronteira de Dirichlet com uma discontinuidade
conforme a figura 10 a seguir.








Figura 10 - Chapa metlica aquecida nas bordas
Os parmetros do problema so:
(difusividade trmica) = 1 m
2
/s.

0
0
,
=
j i
(a placa est inicialmente a zero grau).
Inicialmente o domnio ser discretizado
usando uma malha regular de 60 x 60 pontos, o que
fornece h = 5,0 cm, propiciando a preciso
3
500

30
o
100
o

100
o
0
300
o
3
3
inicialmente requerida para resolver o problema. Essa
malha ser chamada de malha no refinada. Na
presena de discontinuidade, essa discretizao no
mais suficiente, devido aos elevados gradientes nas
proximidades da discontinuidade. Por isso,
necessria uma discretizao que fornea h = 1,25 cm,
o que conseguido com uma malha de 240 x 240
pontos, malha essa chamada de refinada.
Na verso paralela, so usados 9
subdomnios, cada um deles endereado a um
processador. Para tratar o caso sem a discontinuidade,
o domnio dividido em 9 subdomnios, cada um com
malha 20 x 20. No caso em que h descontinuidade na
fronteira, o domnio teria de ser dividido em 9
subdomnios de 80 x 80 pontos. Mas como o programa
tem a flexibilidade de tratar subdomnios com
refinamentos diferentes, apenas o subdomnio que
contm a discontinuidade precisa ter esse refinamento.
O domnio para a resoluo paralela ento fica como
mostrado na figura 11 a seguir.
20 x 20 40 x 40 80 x 80
20 x 20 40 x 40 40 x 40
20 x 20 20 x 20 20 x 20
Figura 11 - Refinamento dos subdomnios
O tempo de processamento do programa ser
ditado pelo subdomnio com refinamento 80 x 80, j
que o processamento sncrono, e assim, em termos
da aplicao, o refinamento no-uniforme no
conduziria a um menor tempo de processamento, se o
ambiente for homogneo. Se o ambiente for
heterogneo, isto , tendo processadores com
velocidades diferentes, o subdomnio mais refinado
poderia ser associado ao processador mais rpido,
deixando os processadores mais lentos responsveis
pelo processamento dos subdomnios menos refinados,
levando a um menor tempo de processamento do
programa. Mas em se tratando de ambientes paralelos
compartilhados, isto , no dedicados exclusivamente
a uma nica aplicao, a desnecessidade de se refinar
todos os subdomnios sobrecarrega bem menos o
sistema. Por exemplo, se considerarmos que o
processamento do subdomnio 20 x 20 gasta 1 unidade
de tempo, o processamento do subdomnio 40 x 40
gastar 4 unidades de tempo, e o subdomnio 80 x 80
gastar 16 unidades de tempo. Assim, a resoluo do
problema consumir 33 unidades de tempo. Se no
houvesse a facilidade de refinamento no-uniforme,
todos os subdomnios teriam de ter refinamento 80 x
80, o que consumiria 144 unidades de tempo.

5 RESULTADOS
Foram considerados dois estgios na
evoluo da distribuio de temperaturas na chapa.
Um no incio da propagao dos valores de fronteira
para o interior do domnio, e outro com a propagao
j bastante disseminada no domnio mas ainda no
tendo atingido a estabilizao.
A Tabela 1 a seguir apresenta os resultados
obtidos em tempo de processamento para o primeiro
estgio.
Tabela 1 Tempos de processamento para o primeiro estgio
Tempo (segundos)
malha Seqencial Paralelo
No refinada 0,10 0,05
Refinada 1,67 0,07


A Tabela 2 a seguir apresenta os resultados
obtidos em tempo de processamento para o segundo
estgio.
Tabela 2 Tempos de processamento para o segundo estgio
Tempo (segundos)
malha Seqencial Paralelo
No
refinada
5,31 3,41
Refinada 90,02 5,78


As figuras 12 e 13 a seguir apresentam a
distribuio de temperaturas na chapa para o programa
seqencial em todo o domnio e a distribuio de
temperaturas apenas no subdomnio em que existe a
descontinuidade, no incio da distribuio de
temperaturas, usando a malha refinada.

Figura 12 Domnio completo, com refinamento 240 x 240


Figura 13 Subdomnio com refinamento 80 x 80.

As figuras 14 e 15 a seguir apresentam a
distribuio de temperaturas na chapa, j prxima da
estabilizao, para o programa seqencial em todo o
domnio e a distribuio de temperaturas apenas no
4
subdomnio em que existe a discontinuidade, usando a
malha refinada.


Figura 14 Domnio completo, com refinamento 240 x 240


Figura 15 Subdomnio com refinamento 80 x 80.

6 CONCLUSES
Neste trabalho, utilizou-se o laboratrio da
Ps-graduao em computao da UFF para analisar
os resultados experimentais obtidos pelo programa de
resoluo da equao diferencial parablica de difuso
2D. A rede local do laboratrio heterognea, e foram
utilizados 9 processadores nos testes, trs Pentium IV
com 1,4 GHz de freqncia de clock e 512 Mb de
memria RAM; e seis AMD ATHLON com 1,4 GHz
de freqncia de clocke 256 Mb de memria RAM.
A rede estava compartilhada com outras aplicaes
durante os testes, e por isso cada caso foi executado
dez vezes para diminuir os efeitos de outras aplicaes
nos tempos dos testes. Foi considerado o menor tempo
obtido em cada uma das dez execues de cada estgio
para cada grau de refinamento da malha.
Os tempos mostraram que o desempenho da
verso paralela bem superior para a malha mais
refinada. Para a malha menos refinada o ganho no
to grande porque o tempo de comunicao torna-se
proporcionalmente maior em relao ao tempo de
processamento.
O mtodo Hopscotch, aliado ao
processamento paralelo, mostrou-se uma ferramenta
poderosa para a resoluo das EDP difusivas. O
refinamento da malha conduziu a resultados mais
precisos, permitindo maior qualidade no
acompanhamento da evoluo dos efeitos provocados
pela descontinuidade.
O programa paralelo levou a uma reduo
substancial no tempo de processamento em relao
verso seqencial. A capacidade, j implementada, de
refinamento no-uniforme da malha, apesar de no
diminuir o tempo de processamento do programa em
si, considerando a verso paralela, contribui para uma
diminuio global de processamento, o que til em
ambientes compartilhados com outras aplicaes. Se
for considerado um ambiente heterogneo, uma
reduo no tempo de processamento pode ser obtida
associando o subdomnio com a malha mais refinada
ao processador mais rpido.
O balanceamento de carga, necessrio para
reduzir ainda mais o tempo de processamento e a
capacidade de tratar domnios que no sejam
quadrados para aumentar a versatilidade do programa
so aperfeioamentos que esto sendo desenvolvidos.
necessrio tambm executar o programa em
ambiente exclusivo para avaliar com preciso os
speed-upsconseguidos pela verso paralela.

8 - REFERNCIAS
[1] Eric W. Weisstein. "Boundary Conditions." From
MathWorld--A Wolfram Web Resource.
http://mathworld.wolfram.com/BoundaryConditions.ht
ml
[2] Fortuna, A. O., Tcnicas Computacionais para
Dinmica dos Fluidos, Edusp, So Paulo, 2000.
[3] Mitchell, A.R. & Griffiths, D.F., The Finite
Difference Method in Partial Differential Equations,
John Wiley & Sons Ltd., UK, 1980.
[4] Finney, Ross L., Calculus, Addison-Wesley Inc,
EUA, 1994.
[5] A.R. Gourlay, Hopscotch: a fast second order
partial differential equation solver, J. Inst. Maths.
Applics., 6:375-390, 1970.
[6] A.R. Gourlay e G.R. McGuire, General hopscotch
algorithms for the numerical solution of partial
differential equations, J. Inst. Maths. Applics., 7:216-
227, 1971.
[7] Verwer&Sommeijer, Stability Analysis of an Odd-
Even-line Hopscotch Method fot Three Dimensional
Advection-Difusion Problems, Society for Industrial
and Applied Mathematics, vol 34, No 1, pp. 376-
388,1987.
[8] University of Oxford, Physical and Theoretical
Chemestry Laboratory, UK,
http://physchem.ox.ac.uk/~rgc/john/Thesis.
[9] Leonardo A. P. e Silva, Implementao Paralela
do algoritmo Gradiente Conjugado utilizando MPI,
UFRGS, RS, 2002.
[10] Cabral, F. L., Mtodos Hopmoc para resoluo de
equaes de conveco-difuso e sua implementao
paralela, Dissertao de Mestrado, UFF, 2001.

5