SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Solução Numérica de Equações Diferenciais Parciais Parabólicas
usando o Método Hopscotch com Refinamento Não-Uniforme
Mauricio J. M. Guedes a,b
, Diogo T. Robaina a
,
Lúcia M. A. Drummond a
, Mauricio Kischinhevsky a
, Otton T.S. Filho a
a: Instituto de Computação, UFF, Rua Passo da Pátria, 156 - Bloco E - 3° andar, São Domingos, Niterói - RJ, CEP 24210-240.
b: CASNAV, Marinha do Brasil, Pça. Br. de Ladário, s/no
, 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 - INTRODUÇÃO
Equações Diferenciais Parciais (EDPs) são
utilizadas para estudar uma vasta gama de fenômenos
da natureza, nas mais diversas áreas de aplicação. Para
a resolução computacional, é necessário discretizar o
domínio, com a criação de uma malha de pontos. Em
situações reais, a malha a ser utilizada é bastante
refinada, com possivelmente milhões de pontos e,
além disso, para estudar efeitos de longo prazo as
EDPs devem ser integradas sobre longos intervalos de
tempo. Tais modelos computacionais requerem uma
quantidade de memória e de CPU que podem estar
além da capacidade até mesmo dos mais modernos
supercomputadores. Assim, o processamento paralelo
aparece como uma alternativa atraente.
Este artigo apresenta um modelo de resolução
da EDP evolutiva de difusão pura empregando
processamento paralelo. Para a resolução numérica foi
escolhido o método Hopscotch, por ser um dos
métodos mais rápidos de resolução de uma EDP e por
ser adequado a paralelização. O domínio é dividido em
subdomínios, e cada subdomínio é associado a um
processador. O modelo apresentado aqui permite o
refinamento seletivo dos subdomínios para tratar de
descontinuidades na fronteira. Essa característica se
torna importante quando o ambiente é compartilhado,
pois permite refinar apenas os subdomínios
necessários, evitando sobrecarregar os outros
processadores envolvidos na resolução.
2 – ASPECTOS TEÓRICOS
2.1 – Equações Diferenciais Parciais (EDPs)
A seguir são apresentadas as condições de
contorno que são comumente encontradas na solução
de equações diferenciais parciais (ref. [1]).
EDPs podem ser classificadas em três
categorias básicas: Elípticas (associadas a problemas
estacionários, em estado de equilíbrio), Parabólicas e
Hiperbólicas, evolutivas com características difusiva
ou convectiva. O problema a ser tratado neste trabalho
é evolutivo, considera apenas o fenômeno de difusão
como fator de modificação do estado do sistema,
estando associado à denominação EDP parabólica.
Os problemas evolutivos envolvem a variação
temporal das grandezas físicas de interesse. A partir
dos valores iniciais dessas grandezas em um certo
tempo t0, calcula-se, pela solução numérica da EDP,
seus novos valores em sucessivos intervalos de tempo
∆t, até alcançarmos o instante final tf.
Os problemas transientes necessitam de
valores para a variável dependente em t = 0 (condições
iniciais), além de condições de fronteira para t > 0.
Podemos escrever, esquematicamente:
Valor
inicial
de φ
+
Variação espacial
e temporal de φ,
dada pela equação
diferencial
+
condições
de
fronteira
=
Novo
valor
de φ
Figura 1 – Equação diferencial
2.2 – Discretização
Para tratar computacionalmente um problema
diferencial é necessário expressar de forma adequada a
região (domínio) onde o problema será resolvido.
Como usualmente não é possível obter soluções
numéricas sobre o domínio, uma região contínua,
devido à infinidade de pontos envolvida, inicialmente
o domínio é discretizado, isto é, substituído por um
conjunto finito de pontos representativos. Somente
nesses pontos é que as soluções serão obtidas.
Figura 2 – Discretização do domínio
Intuitivamente, percebe-se que, quanto maior
for o número de pontos da discretização, mais fiel será
o resultado numérico obtido. Obviamente, maior
também será o custo computacional. A necessidade de
se resolverem problemas com alta precisão, em tempo
hábil (como previsão do tempo), tem levado a uma
constante busca tanto por técnicas de solução mais
eficientes, como por computadores com maior
desempenho. A utilização de técnicas de programação
paralela é um excelente meio para o cálculo de
problemas complexos.
2.3 – Condições de Contorno
a) Condições de contorno de Dirichlet: especifica o
valor da função no contorno.
b) Condições de contorno de Neumann: especifica
uma derivada normal à função no domínio (i.é., um
fluxo).
c) Condições de contorno de Cauchy: especifica uma
combinação dos dois tipos anteriores.
Este trabalho usa condições de contorno de
Dirichlet, sem que haja dificuldade para o emprego das
outras condições de contorno.
2.4 – Equações de Diferenças Finitas
Os métodos de diferenças finitas consistem
em substituir as derivadas parciais presentes na
equação diferencial por aproximações por diferenças
finitas. As ref. [2], [3] e [4] dão mais detalhes sobre
esses métodos. No método explícito, as equações são
independentes, permitindo, portanto, solução por
cômputo direto. É rápido, mas exibe problemas de
estabilidade. Em métodos implícitos, têm-se condições
de estabilidade mais favoráveis; no entanto, as
1
equações resultantes são acopladas, o que exige a
resolução de um sistema de equações a cada passo de
integração no tempo, o que pode tornar os métodos
lentos e de difícil paralelização.
Este trabalho usa a equação parabólica a
seguir para modelar a difusão de calor em uma placa
(α é a constante de difusividade térmica):






∂
∂
+
∂
∂
=
∂
∂
2
2
2
2
yxt
ϕϕ
α
ϕ
Discretizando a derivada no tempo em 1a
ordem em ∆t e as derivadas espaciais em 2a
ordem em
∆x e ∆y, obtém-se, usando a seguinte notação:
; e( )yxtt
ji ,,, ϕϕ =
( yyxxttt
ji ∆+∆+∆+=+
++ ,,1
1,1 ϕϕ )
para o modo explícito:
( ) ( )t
ji
t
ji
t
ji
t
ji
t
ji
t
ji kk 1,1,,1,1,
1
, 41 −+−+
+
++++−= ϕϕϕϕϕϕ
e para o modo implícito:
( ) ( )1
1,
1
1,
1
,1
1
,1
1
,, 41 +
−
+
+
+
−
+
+
+
+++−+= t
ji
t
ji
t
ji
t
ji
t
ji
t
ji kk ϕϕϕϕϕϕ
onde 2
h
t∆
= αk , hyx =∆=∆ .
O método Hopscotch utiliza essas duas
discretizações, como será visto a seguir.
2.5 – Método Hopscotch
O método Hopscotch (ref. [3], [5] e [6]) é
uma combinação dos métodos explícito e implícito. O
método consiste em aplicar as equações explícita e
implícita em cada ponto do domínio, de modo
alternado. Os pontos resolvidos pela equação explícita
são sempre calculados primeiro. Assim, quando os
pontos a serem resolvidos pelo método implícito forem
calculados, todos os seus pontos adjacentes
necessários para o cálculo já estarão resolvidos. Deste
modo, não é necessário resolver um sistema de
equações. É incondicionalmente estável, ver ref. [7]
para a prova.
O exemplo a seguir ilustra a aplicação do
método. Primeiro, aplica-se o método explícito (pontos
brancos) alternadamente, começando no ponto acima e
à esquerda. Depois, o método implícito é aplicado
(pontos pretos) ao resto dos pontos. Note que todos os
pontos necessários ao cálculo da fórmula implícita já
estão no tempo t + 1, e assim esse cálculo se torna
explícito, dispensando a resolução de um sistema de
equações. Esse procedimento configura um meio-
passo, e está ilustrado na figura 3. O passo se completa
com a repetição do procedimento, invertendo o método
de cálculo utilizado em cada ponto do domínio. Os
pontos cinza são pontos da fronteira.
meio-passo + meio-passo = um passo
Figura 3 – Aplicação do método Hopscotch
Uma desvantagem do método Hopscotch é
que ele não lida bem com discontinuidades na
fronteira, devido à sua característica 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 – IMPLEMENTAÇÃO
Foi usada a linguagem C para a
implementação dos programas e adotado o padrão MPI
para a troca de mensagens. Ver ref. [9] para uma
implementação paralela usando gradiente conjugado e
a ref.[10] para uma implementação paralela de um
método Hopmoc, que é uma extensão do método
Hopscotch.
3.1 – Divisão do Domínio
Será considerado aqui, como exemplo
ilustrativo, uma subdivisão utilizando 9 processadores,
cada um deles com um subdomínnio 5x5, mas o
programa permite que se use qualquer quantidade de
processadores e qualquer tamanho de subdomínio,
com a restrição de que exista sempre o mesmo número
de linhas e colunas., isto é, o número de subdomínios
deve ser um quadrado perfeito, por exemplo, 9, 16, 25,
36, 49, 64 e assim por diante.
5x55x5
fronteira
5x5 5x5 5x5
5x5 5x5 5x5
5x5
Figura 5 – Divisão do domínio
Independentemente do número de
subdomínios definidos, existirão nove tipos de
subdomínios, de acordo com a existência e posição da
fronteira. Os tipos de subdomínio estão descritos no
item 4.2.4. Os exemplos são para o caso de
subdomínios com discretização 5x5.
Cada processador trabalhará apenas em um
subdomínio.
3.2 – Comunicação entre os Processadores
Um meio passo do método é o cálculo
alternado dos pontos pelas equações explícita e
implícita. Com todos os pontos calculados, a
complementação do passo será usar a fórmula explícita
para calcular os pontos que foram calculados com a
fórmula implícita, e vice-versa. O cálculo dos valores
dos pontos localizados nas bordas de um subdomínio
depende dos valores de pontos localizados nos
subdomínios adjacentes. Assim, a cada meio passo
haverá a necessidade de comunicação entre os
processos.
A posição relativa dos subdomínios é
mostrada na figura 6 a seguir.
2
N NE
L
SESSO
O
NO
Figura 6 – Posição relativa dos subdomínios
Essa comunicação consistirá de valores em
pontos de um subdomínio que devem ser mandados
para os seus vizinhos. Assim, cada subdomínio terá
pontos dos subdomínios adjacentes. Esses pontos são
chamados de franja. As franjas são enviadas por cada
processador conforme a figura 7 a seguir. Nessa
ilustração foi usado um subdomínio 10x10 para maior
clareza.
noroeste
oeste leste
nordeste
sudoeste sudeste
norte
sul
Figura 7 – Subdomínio (10x10) com as franjas enviadas
As franjas são recebidas de cada vizinho
conforme figura 8 a seguir.
Subdomínio 5x5franja
noroeste
oeste
sudoeste sul
sudeste
leste
norte
nordeste
Figura 8 – Subdomínio com as franjas recebidas
O Método Hopscotch exige uma franja de
duas camadas.
A comunicação deve ser síncrona, pois um
subdomínio necessita dos outros para poder
prosseguir.
Para um domínio dividido igualmente, o
subdomínio que o processador está resolvendo é
determinado da seguinte maneira:
a) divide-se o número do processo (rank) pelo
número de colunas. O resultado indicará em que
coluna o subdomínio está.
b) Obtém-se o resto dessa divisão. O
resultado indicará em que linha está o subdomínio.
3.4 – Tipos de Subdomínios
Existem nove tipos de subdomínio de acordo
com a existência ou não de fronteira e sua posição no
domínio. Os tipos de subdomínio estão mostrados no
exemplo da figura 9 a seguir, que usa uma subdivisão
em 36 subdomínios.
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 Subdomínio
3.5 – Refinamento não-uniforme
O programa permite que os subdomínios
tenham refinamentos diferentes. Na presença de
gradientes elevados, a linha de ação mais comum é
refinar a malha onde esses gradientes ocorrem, e
deixar a malha menos refinada nas regiões com
gradientes pequenos. No caso de uma discontinuidade,
é necessário que a malha seja mais refinada nas
proximidades dela, para que seja obtida a precisão
requerida. Como o refinamento de uma malha é
computacionalmente dispendioso, o programa permite
refinamentos diferentes em cada subdomínio. Ë claro
que, em ambientes homogêneos, o tempo de
processamento será dado pelo subdomínio mais
refinado, já que a comunicação é síncrona. Apesar de a
facilidade não reduzir, nesse caso, o tempo de
processamento já obtido com a paralelização, essa
facilidade é útil em ambientes compartilhados, já que
só sobrecarrega os processadores alocados aos
subdomínios refinados. Em ambientes heterogêneos, o
subdomínio mais refinado seria associado ao
processador mais rápido, reduzindo o tempo de
processamento.
4 – O PROBLEMA
Encontrar a distribuição de temperatura sobre
uma chapa de 3m x 3m, submetida às condições de
fronteira de Dirichlet com uma discontinuidade
conforme a figura 10 a seguir.
Figura 10 - Chapa metálica aquecida nas bordas
Os parâmetros do problema são:
α (difusividade térmica) = 1 m2
/s.
ο
00
, =jiϕ (a placa está inicialmente a zero grau).
Inicialmente o domínio será discretizado
usando uma malha regular de 60 x 60 pontos, o que
fornece h = 5,0 cm, propiciando a precisão
3
500º
30
o
100
o
100
o0
300
o
3
3
inicialmente requerida para resolver o problema. Essa
malha será chamada de malha não refinada. Na
presença de discontinuidade, essa discretização não é
mais suficiente, devido aos elevados gradientes nas
proximidades da discontinuidade. Por isso, é
necessária uma discretização que forneça h = 1,25 cm,
o que é conseguido com uma malha de 240 x 240
pontos, malha essa chamada de refinada.
Na versão paralela, são usados 9
subdomínios, cada um deles endereçado a um
processador. Para tratar o caso sem a discontinuidade,
o domínio é dividido em 9 subdomínios, cada um com
malha 20 x 20. No caso em que há descontinuidade na
fronteira, o domínio teria de ser dividido em 9
subdomínios de 80 x 80 pontos. Mas como o programa
tem a flexibilidade de tratar subdomínios com
refinamentos diferentes, apenas o subdomínio que
contém a discontinuidade precisa ter esse refinamento.
O domínio para a resolução paralela então 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 subdomínios
O tempo de processamento do programa será
ditado pelo subdomínio com refinamento 80 x 80, já
que o processamento é síncrono, e assim, em termos
da aplicação, o refinamento não-uniforme não
conduziria a um menor tempo de processamento, se o
ambiente for homogêneo. Se o ambiente for
heterogêneo, isto é, tendo processadores com
velocidades diferentes, o subdomínio mais refinado
poderia ser associado ao processador mais rápido,
deixando os processadores mais lentos responsáveis
pelo processamento dos subdomínios menos refinados,
levando a um menor tempo de processamento do
programa. Mas em se tratando de ambientes paralelos
compartilhados, isto é, não dedicados exclusivamente
a uma única aplicação, a desnecessidade de se refinar
todos os subdomínios sobrecarrega bem menos o
sistema. Por exemplo, se considerarmos que o
processamento do subdomínio 20 x 20 gasta 1 unidade
de tempo, o processamento do subdomínio 40 x 40
gastará 4 unidades de tempo, e o subdomínio 80 x 80
gastará 16 unidades de tempo. Assim, a resolução do
problema consumirá 33 unidades de tempo. Se não
houvesse a facilidade de refinamento não-uniforme,
todos os subdomínios teriam de ter refinamento 80 x
80, o que consumiria 144 unidades de tempo.
5 – RESULTADOS
Foram considerados dois estágios na
evolução da distribuição de temperaturas na chapa.
Um no início da propagação dos valores de fronteira
para o interior do domínio, e outro com a propagação
já bastante disseminada no domínio mas ainda não
tendo atingido a estabilização.
A Tabela 1 a seguir apresenta os resultados
obtidos em tempo de processamento para o primeiro
estágio.
Tabela 1 – Tempos de processamento para o primeiro estágio
Tempo (segundos)
malha Seqüencial Paralelo
Não 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
estágio.
Tabela 2 – Tempos de processamento para o segundo estágio
Tempo (segundos)
malha Seqüencial Paralelo
Não
refinada 5,31 3,41
Refinada 90,02 5,78
As figuras 12 e 13 a seguir apresentam a
distribuição de temperaturas na chapa para o programa
seqüencial em todo o domínio e a distribuição de
temperaturas apenas no subdomínio em que existe a
descontinuidade, no início da distribuição de
temperaturas, usando a malha refinada.
Figura 12 – Domínio completo, com refinamento 240 x 240
Figura 13 – Subdomínio com refinamento 80 x 80.
As figuras 14 e 15 a seguir apresentam a
distribuição de temperaturas na chapa, já próxima da
estabilização, para o programa seqüencial em todo o
domínio e a distribuição de temperaturas apenas no
4
subdomínio em que existe a discontinuidade, usando a
malha refinada.
Figura 14 – Domínio completo, com refinamento 240 x 240
Figura 15 – Subdomínio com refinamento 80 x 80.
6 – CONCLUSÕES
Neste trabalho, utilizou-se o laboratório da
Pós-graduação em computação da UFF para analisar
os resultados experimentais obtidos pelo programa de
resolução da equação diferencial parabólica de difusão
2D. A rede local do laboratório é heterogênea, e foram
utilizados 9 processadores nos testes, três Pentium IV
com 1,4 GHz de freqüência de “clock” e 512 Mb de
memória RAM; e seis AMD ATHLON com 1,4 GHz
de freqüência de “clock”e 256 Mb de memória RAM.
A rede estava compartilhada com outras aplicações
durante os testes, e por isso cada caso foi executado
dez vezes para diminuir os efeitos de outras aplicações
nos tempos dos testes. Foi considerado o menor tempo
obtido em cada uma das dez execuções de cada estágio
para cada grau de refinamento da malha.
Os tempos mostraram que o desempenho da
versão paralela é bem superior para a malha mais
refinada. Para a malha menos refinada o ganho não é
tão grande porque o tempo de comunicação torna-se
proporcionalmente maior em relação ao tempo de
processamento.
O método Hopscotch, aliado ao
processamento paralelo, mostrou-se uma ferramenta
poderosa para a resolução das EDP difusivas. O
refinamento da malha conduziu a resultados mais
precisos, permitindo maior qualidade no
acompanhamento da evolução dos efeitos provocados
pela descontinuidade.
O programa paralelo levou a uma redução
substancial no tempo de processamento em relação à
versão seqüencial. A capacidade, já implementada, de
refinamento não-uniforme da malha, apesar de não
diminuir o tempo de processamento do programa em
si, considerando a versão paralela, contribui para uma
diminuição global de processamento, o que é útil em
ambientes compartilhados com outras aplicações. Se
for considerado um ambiente heterogêneo, uma
redução no tempo de processamento pode ser obtida
associando o subdomínio com a malha mais refinada
ao processador mais rápido.
O balanceamento de carga, necessário para
reduzir ainda mais o tempo de processamento e a
capacidade de tratar domínios que não sejam
quadrados para aumentar a versatilidade do programa
são aperfeiçoamentos que estão sendo desenvolvidos.
É necessário também executar o programa em
ambiente exclusivo para avaliar com precisão os
“speed-ups”conseguidos pela versão paralela.
8 - REFERÊNCIAS
[1] Eric W. Weisstein. "Boundary Conditions." From
MathWorld--A Wolfram Web Resource.
http://mathworld.wolfram.com/BoundaryConditions.ht
ml
[2] Fortuna, A. O., Técnicas Computacionais para
Dinâmica dos Fluidos, Edusp, São 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, Implementação Paralela
do algoritmo Gradiente Conjugado utilizando MPI,
UFRGS, RS, 2002.
[10] Cabral, F. L., Métodos Hopmoc para resolução de
equações de convecção-difusão e sua implementação
paralela, Dissertação de Mestrado, UFF, 2001.
5

Contenu connexe

Tendances (20)

06
0606
06
 
Processos estocaticos 20150
Processos estocaticos 20150Processos estocaticos 20150
Processos estocaticos 20150
 
Suo
SuoSuo
Suo
 
Análise de sinais e sistemas
Análise de sinais e sistemasAnálise de sinais e sistemas
Análise de sinais e sistemas
 
Cadeias de Markov
Cadeias de MarkovCadeias de Markov
Cadeias de Markov
 
Analise de sinais apostila
Analise de sinais apostilaAnalise de sinais apostila
Analise de sinais apostila
 
02 Campos Escalares e Vectoriais
02 Campos Escalares e Vectoriais02 Campos Escalares e Vectoriais
02 Campos Escalares e Vectoriais
 
Campos escalares e vetoriais - Cálculo 2
Campos escalares e vetoriais - Cálculo 2Campos escalares e vetoriais - Cálculo 2
Campos escalares e vetoriais - Cálculo 2
 
05453943
0545394305453943
05453943
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputador
 
Sinais 2
Sinais 2Sinais 2
Sinais 2
 
04a-integrais duplos
04a-integrais duplos04a-integrais duplos
04a-integrais duplos
 
Complexidade algoritmos
Complexidade algoritmosComplexidade algoritmos
Complexidade algoritmos
 
Introdução à cadeias de markov
Introdução à cadeias de markovIntrodução à cadeias de markov
Introdução à cadeias de markov
 
Conceitos e simulação de cadeias de markov
Conceitos e simulação de cadeias de markovConceitos e simulação de cadeias de markov
Conceitos e simulação de cadeias de markov
 
Regra de simpson
Regra de simpsonRegra de simpson
Regra de simpson
 
Introdução metodos computacionais
Introdução metodos computacionaisIntrodução metodos computacionais
Introdução metodos computacionais
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Máquina de Turing reconhecedora de número primo
Máquina de Turing reconhecedora de número primoMáquina de Turing reconhecedora de número primo
Máquina de Turing reconhecedora de número primo
 
obtenção de sinais discretos
obtenção de sinais discretosobtenção de sinais discretos
obtenção de sinais discretos
 

En vedette

Equacoes diferenciais parciais pelo metodo dos numeros finitos
Equacoes diferenciais parciais pelo metodo dos numeros finitosEquacoes diferenciais parciais pelo metodo dos numeros finitos
Equacoes diferenciais parciais pelo metodo dos numeros finitosRaianebrandao
 
Proposta de Mestrado
Proposta de MestradoProposta de Mestrado
Proposta de MestradoVitor Gomes
 
liquid propellant rocket engine (Motor foguete Liquido) part10
liquid propellant rocket engine (Motor foguete Liquido) part10liquid propellant rocket engine (Motor foguete Liquido) part10
liquid propellant rocket engine (Motor foguete Liquido) part10Edgard Packness
 
liquid propellant rocket engine (Motor foguete Liquido) part5
liquid propellant rocket engine (Motor foguete Liquido) part5liquid propellant rocket engine (Motor foguete Liquido) part5
liquid propellant rocket engine (Motor foguete Liquido) part5Edgard Packness
 
liquid propellant rocket engine (Motor foguete Liquido) part11
liquid propellant rocket engine (Motor foguete Liquido) part11liquid propellant rocket engine (Motor foguete Liquido) part11
liquid propellant rocket engine (Motor foguete Liquido) part11Edgard Packness
 
liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6Edgard Packness
 
liquid propellant rocket engine (Motor foguete Liquido) part4
liquid propellant rocket engine (Motor foguete Liquido) part4liquid propellant rocket engine (Motor foguete Liquido) part4
liquid propellant rocket engine (Motor foguete Liquido) part4Edgard Packness
 
liquid propellant rocket engine (Motor foguete Liquido) part1
liquid propellant rocket engine (Motor foguete Liquido) part1liquid propellant rocket engine (Motor foguete Liquido) part1
liquid propellant rocket engine (Motor foguete Liquido) part1Edgard Packness
 
Projeto motor foguete propelente líquido (liquid propellant rocket engine)
Projeto motor foguete propelente líquido (liquid propellant rocket engine)Projeto motor foguete propelente líquido (liquid propellant rocket engine)
Projeto motor foguete propelente líquido (liquid propellant rocket engine)Edgard Packness
 
Exercicios resolvidos de resmat mecsol
Exercicios resolvidos de resmat mecsolExercicios resolvidos de resmat mecsol
Exercicios resolvidos de resmat mecsolDanieli Franco Mota
 

En vedette (15)

Equacoes diferenciais parciais pelo metodo dos numeros finitos
Equacoes diferenciais parciais pelo metodo dos numeros finitosEquacoes diferenciais parciais pelo metodo dos numeros finitos
Equacoes diferenciais parciais pelo metodo dos numeros finitos
 
Proposta de Mestrado
Proposta de MestradoProposta de Mestrado
Proposta de Mestrado
 
CFD Aula 6
CFD Aula 6CFD Aula 6
CFD Aula 6
 
liquid propellant rocket engine (Motor foguete Liquido) part10
liquid propellant rocket engine (Motor foguete Liquido) part10liquid propellant rocket engine (Motor foguete Liquido) part10
liquid propellant rocket engine (Motor foguete Liquido) part10
 
liquid propellant rocket engine (Motor foguete Liquido) part5
liquid propellant rocket engine (Motor foguete Liquido) part5liquid propellant rocket engine (Motor foguete Liquido) part5
liquid propellant rocket engine (Motor foguete Liquido) part5
 
liquid propellant rocket engine (Motor foguete Liquido) part11
liquid propellant rocket engine (Motor foguete Liquido) part11liquid propellant rocket engine (Motor foguete Liquido) part11
liquid propellant rocket engine (Motor foguete Liquido) part11
 
liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6
 
liquid propellant rocket engine (Motor foguete Liquido) part4
liquid propellant rocket engine (Motor foguete Liquido) part4liquid propellant rocket engine (Motor foguete Liquido) part4
liquid propellant rocket engine (Motor foguete Liquido) part4
 
CFD Aula 1B
CFD Aula 1BCFD Aula 1B
CFD Aula 1B
 
CFD Aula 5
CFD Aula 5CFD Aula 5
CFD Aula 5
 
CFD Aula 1
CFD Aula 1CFD Aula 1
CFD Aula 1
 
CFD Aula 2
CFD Aula 2CFD Aula 2
CFD Aula 2
 
liquid propellant rocket engine (Motor foguete Liquido) part1
liquid propellant rocket engine (Motor foguete Liquido) part1liquid propellant rocket engine (Motor foguete Liquido) part1
liquid propellant rocket engine (Motor foguete Liquido) part1
 
Projeto motor foguete propelente líquido (liquid propellant rocket engine)
Projeto motor foguete propelente líquido (liquid propellant rocket engine)Projeto motor foguete propelente líquido (liquid propellant rocket engine)
Projeto motor foguete propelente líquido (liquid propellant rocket engine)
 
Exercicios resolvidos de resmat mecsol
Exercicios resolvidos de resmat mecsolExercicios resolvidos de resmat mecsol
Exercicios resolvidos de resmat mecsol
 

Similaire à Solução numérica de EDPs parabólicas usando Hopscotch com refinamento não-uniforme

Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Breno
 
Metodos numéricos para equações diferenciais
Metodos numéricos para equações diferenciaisMetodos numéricos para equações diferenciais
Metodos numéricos para equações diferenciaiselisa rocha
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008CosmoSantiago
 
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIIProjeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIICiro Marcus
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumredesinforma
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasAlan Carlos
 
Livro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosLivro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosFlavio Gomes Lima
 
Métodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMétodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMayara Mônica
 
Pratica 5-clauder-eugenio-e-guilherme-martins
Pratica 5-clauder-eugenio-e-guilherme-martinsPratica 5-clauder-eugenio-e-guilherme-martins
Pratica 5-clauder-eugenio-e-guilherme-martinsBernardo Arbex Campolina
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfBNBN31
 

Similaire à Solução numérica de EDPs parabólicas usando Hopscotch com refinamento não-uniforme (20)

Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
 
Metodos numéricos para equações diferenciais
Metodos numéricos para equações diferenciaisMetodos numéricos para equações diferenciais
Metodos numéricos para equações diferenciais
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008
 
Curs omatlab52
Curs omatlab52Curs omatlab52
Curs omatlab52
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Aula6final
Aula6finalAula6final
Aula6final
 
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIIProjeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaum
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e Sistemas
 
Livro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosLivro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios Resolvidos
 
Estiagem
EstiagemEstiagem
Estiagem
 
Sdnotes
SdnotesSdnotes
Sdnotes
 
CFD Aula 3
CFD Aula 3CFD Aula 3
CFD Aula 3
 
Métodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMétodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações Lineares
 
Pratica 5-clauder-eugenio-e-guilherme-martins
Pratica 5-clauder-eugenio-e-guilherme-martinsPratica 5-clauder-eugenio-e-guilherme-martins
Pratica 5-clauder-eugenio-e-guilherme-martins
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
Passo adaptativo stiff
Passo adaptativo stiffPasso adaptativo stiff
Passo adaptativo stiff
 
IMRT, sua Implementação no CAT3D
IMRT,  sua Implementação no CAT3DIMRT,  sua Implementação no CAT3D
IMRT, sua Implementação no CAT3D
 

Solução numérica de EDPs parabólicas usando Hopscotch com refinamento não-uniforme

  • 1. Solução Numérica de Equações Diferenciais Parciais Parabólicas usando o Método Hopscotch com Refinamento Não-Uniforme Mauricio J. M. Guedes a,b , Diogo T. Robaina a , Lúcia M. A. Drummond a , Mauricio Kischinhevsky a , Otton T.S. Filho a a: Instituto de Computação, UFF, Rua Passo da Pátria, 156 - Bloco E - 3° andar, São Domingos, Niterói - RJ, CEP 24210-240. b: CASNAV, Marinha do Brasil, Pça. Br. de Ladário, s/no , 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 - INTRODUÇÃO Equações Diferenciais Parciais (EDPs) são utilizadas para estudar uma vasta gama de fenômenos da natureza, nas mais diversas áreas de aplicação. Para a resolução computacional, é necessário discretizar o domínio, com a criação de uma malha de pontos. Em situações reais, a malha a ser utilizada é bastante refinada, com possivelmente milhões de pontos e, além disso, para estudar efeitos de longo prazo as EDPs devem ser integradas sobre longos intervalos de tempo. Tais modelos computacionais requerem uma quantidade de memória e de CPU que podem estar além da capacidade até mesmo dos mais modernos supercomputadores. Assim, o processamento paralelo aparece como uma alternativa atraente. Este artigo apresenta um modelo de resolução da EDP evolutiva de difusão pura empregando processamento paralelo. Para a resolução numérica foi escolhido o método Hopscotch, por ser um dos métodos mais rápidos de resolução de uma EDP e por ser adequado a paralelização. O domínio é dividido em subdomínios, e cada subdomínio é associado a um processador. O modelo apresentado aqui permite o refinamento seletivo dos subdomínios para tratar de descontinuidades na fronteira. Essa característica se torna importante quando o ambiente é compartilhado, pois permite refinar apenas os subdomínios necessários, evitando sobrecarregar os outros processadores envolvidos na resolução. 2 – ASPECTOS TEÓRICOS 2.1 – Equações Diferenciais Parciais (EDPs) A seguir são apresentadas as condições de contorno que são comumente encontradas na solução de equações diferenciais parciais (ref. [1]). EDPs podem ser classificadas em três categorias básicas: Elípticas (associadas a problemas estacionários, em estado de equilíbrio), Parabólicas e Hiperbólicas, evolutivas com características difusiva ou convectiva. O problema a ser tratado neste trabalho é evolutivo, considera apenas o fenômeno de difusão como fator de modificação do estado do sistema, estando associado à denominação EDP parabólica. Os problemas evolutivos envolvem a variação temporal das grandezas físicas de interesse. A partir dos valores iniciais dessas grandezas em um certo tempo t0, calcula-se, pela solução numérica da EDP, seus novos valores em sucessivos intervalos de tempo ∆t, até alcançarmos o instante final tf. Os problemas transientes necessitam de valores para a variável dependente em t = 0 (condições iniciais), além de condições de fronteira para t > 0. Podemos escrever, esquematicamente: Valor inicial de φ + Variação espacial e temporal de φ, dada pela equação diferencial + condições de fronteira = Novo valor de φ Figura 1 – Equação diferencial 2.2 – Discretização Para tratar computacionalmente um problema diferencial é necessário expressar de forma adequada a região (domínio) onde o problema será resolvido. Como usualmente não é possível obter soluções numéricas sobre o domínio, uma região contínua, devido à infinidade de pontos envolvida, inicialmente o domínio é discretizado, isto é, substituído por um conjunto finito de pontos representativos. Somente nesses pontos é que as soluções serão obtidas. Figura 2 – Discretização do domínio Intuitivamente, percebe-se que, quanto maior for o número de pontos da discretização, mais fiel será o resultado numérico obtido. Obviamente, maior também será o custo computacional. A necessidade de se resolverem problemas com alta precisão, em tempo hábil (como previsão do tempo), tem levado a uma constante busca tanto por técnicas de solução mais eficientes, como por computadores com maior desempenho. A utilização de técnicas de programação paralela é um excelente meio para o cálculo de problemas complexos. 2.3 – Condições de Contorno a) Condições de contorno de Dirichlet: especifica o valor da função no contorno. b) Condições de contorno de Neumann: especifica uma derivada normal à função no domínio (i.é., um fluxo). c) Condições de contorno de Cauchy: especifica uma combinação dos dois tipos anteriores. Este trabalho usa condições de contorno de Dirichlet, sem que haja dificuldade para o emprego das outras condições de contorno. 2.4 – Equações de Diferenças Finitas Os métodos de diferenças finitas consistem em substituir as derivadas parciais presentes na equação diferencial por aproximações por diferenças finitas. As ref. [2], [3] e [4] dão mais detalhes sobre esses métodos. No método explícito, as equações são independentes, permitindo, portanto, solução por cômputo direto. É rápido, mas exibe problemas de estabilidade. Em métodos implícitos, têm-se condições de estabilidade mais favoráveis; no entanto, as 1
  • 2. equações resultantes são acopladas, o que exige a resolução de um sistema de equações a cada passo de integração no tempo, o que pode tornar os métodos lentos e de difícil paralelização. Este trabalho usa a equação parabólica a seguir para modelar a difusão de calor em uma placa (α é a constante de difusividade térmica):       ∂ ∂ + ∂ ∂ = ∂ ∂ 2 2 2 2 yxt ϕϕ α ϕ Discretizando a derivada no tempo em 1a ordem em ∆t e as derivadas espaciais em 2a ordem em ∆x e ∆y, obtém-se, usando a seguinte notação: ; e( )yxtt ji ,,, ϕϕ = ( yyxxttt ji ∆+∆+∆+=+ ++ ,,1 1,1 ϕϕ ) para o modo explícito: ( ) ( )t ji t ji t ji t ji t ji t ji kk 1,1,,1,1, 1 , 41 −+−+ + ++++−= ϕϕϕϕϕϕ e para o modo implícito: ( ) ( )1 1, 1 1, 1 ,1 1 ,1 1 ,, 41 + − + + + − + + + +++−+= t ji t ji t ji t ji t ji t ji kk ϕϕϕϕϕϕ onde 2 h t∆ = αk , hyx =∆=∆ . O método Hopscotch utiliza essas duas discretizações, como será visto a seguir. 2.5 – Método Hopscotch O método Hopscotch (ref. [3], [5] e [6]) é uma combinação dos métodos explícito e implícito. O método consiste em aplicar as equações explícita e implícita em cada ponto do domínio, de modo alternado. Os pontos resolvidos pela equação explícita são sempre calculados primeiro. Assim, quando os pontos a serem resolvidos pelo método implícito forem calculados, todos os seus pontos adjacentes necessários para o cálculo já estarão resolvidos. Deste modo, não é necessário resolver um sistema de equações. É incondicionalmente estável, ver ref. [7] para a prova. O exemplo a seguir ilustra a aplicação do método. Primeiro, aplica-se o método explícito (pontos brancos) alternadamente, começando no ponto acima e à esquerda. Depois, o método implícito é aplicado (pontos pretos) ao resto dos pontos. Note que todos os pontos necessários ao cálculo da fórmula implícita já estão no tempo t + 1, e assim esse cálculo se torna explícito, dispensando a resolução de um sistema de equações. Esse procedimento configura um meio- passo, e está ilustrado na figura 3. O passo se completa com a repetição do procedimento, invertendo o método de cálculo utilizado em cada ponto do domínio. Os pontos cinza são pontos da fronteira. meio-passo + meio-passo = um passo Figura 3 – Aplicação do método Hopscotch Uma desvantagem do método Hopscotch é que ele não lida bem com discontinuidades na fronteira, devido à sua característica 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 – IMPLEMENTAÇÃO Foi usada a linguagem C para a implementação dos programas e adotado o padrão MPI para a troca de mensagens. Ver ref. [9] para uma implementação paralela usando gradiente conjugado e a ref.[10] para uma implementação paralela de um método Hopmoc, que é uma extensão do método Hopscotch. 3.1 – Divisão do Domínio Será considerado aqui, como exemplo ilustrativo, uma subdivisão utilizando 9 processadores, cada um deles com um subdomínnio 5x5, mas o programa permite que se use qualquer quantidade de processadores e qualquer tamanho de subdomínio, com a restrição de que exista sempre o mesmo número de linhas e colunas., isto é, o número de subdomínios deve ser um quadrado perfeito, por exemplo, 9, 16, 25, 36, 49, 64 e assim por diante. 5x55x5 fronteira 5x5 5x5 5x5 5x5 5x5 5x5 5x5 Figura 5 – Divisão do domínio Independentemente do número de subdomínios definidos, existirão nove tipos de subdomínios, de acordo com a existência e posição da fronteira. Os tipos de subdomínio estão descritos no item 4.2.4. Os exemplos são para o caso de subdomínios com discretização 5x5. Cada processador trabalhará apenas em um subdomínio. 3.2 – Comunicação entre os Processadores Um meio passo do método é o cálculo alternado dos pontos pelas equações explícita e implícita. Com todos os pontos calculados, a complementação do passo será usar a fórmula explícita para calcular os pontos que foram calculados com a fórmula implícita, e vice-versa. O cálculo dos valores dos pontos localizados nas bordas de um subdomínio depende dos valores de pontos localizados nos subdomínios adjacentes. Assim, a cada meio passo haverá a necessidade de comunicação entre os processos. A posição relativa dos subdomínios é mostrada na figura 6 a seguir. 2
  • 3. N NE L SESSO O NO Figura 6 – Posição relativa dos subdomínios Essa comunicação consistirá de valores em pontos de um subdomínio que devem ser mandados para os seus vizinhos. Assim, cada subdomínio terá pontos dos subdomínios adjacentes. Esses pontos são chamados de franja. As franjas são enviadas por cada processador conforme a figura 7 a seguir. Nessa ilustração foi usado um subdomínio 10x10 para maior clareza. noroeste oeste leste nordeste sudoeste sudeste norte sul Figura 7 – Subdomínio (10x10) com as franjas enviadas As franjas são recebidas de cada vizinho conforme figura 8 a seguir. Subdomínio 5x5franja noroeste oeste sudoeste sul sudeste leste norte nordeste Figura 8 – Subdomínio com as franjas recebidas O Método Hopscotch exige uma franja de duas camadas. A comunicação deve ser síncrona, pois um subdomínio necessita dos outros para poder prosseguir. Para um domínio dividido igualmente, o subdomínio que o processador está resolvendo é determinado da seguinte maneira: a) divide-se o número do processo (rank) pelo número de colunas. O resultado indicará em que coluna o subdomínio está. b) Obtém-se o resto dessa divisão. O resultado indicará em que linha está o subdomínio. 3.4 – Tipos de Subdomínios Existem nove tipos de subdomínio de acordo com a existência ou não de fronteira e sua posição no domínio. Os tipos de subdomínio estão mostrados no exemplo da figura 9 a seguir, que usa uma subdivisão em 36 subdomínios. 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 Subdomínio 3.5 – Refinamento não-uniforme O programa permite que os subdomínios tenham refinamentos diferentes. Na presença de gradientes elevados, a linha de ação mais comum é refinar a malha onde esses gradientes ocorrem, e deixar a malha menos refinada nas regiões com gradientes pequenos. No caso de uma discontinuidade, é necessário que a malha seja mais refinada nas proximidades dela, para que seja obtida a precisão requerida. Como o refinamento de uma malha é computacionalmente dispendioso, o programa permite refinamentos diferentes em cada subdomínio. Ë claro que, em ambientes homogêneos, o tempo de processamento será dado pelo subdomínio mais refinado, já que a comunicação é síncrona. Apesar de a facilidade não reduzir, nesse caso, o tempo de processamento já obtido com a paralelização, essa facilidade é útil em ambientes compartilhados, já que só sobrecarrega os processadores alocados aos subdomínios refinados. Em ambientes heterogêneos, o subdomínio mais refinado seria associado ao processador mais rápido, reduzindo o tempo de processamento. 4 – O PROBLEMA Encontrar a distribuição de temperatura sobre uma chapa de 3m x 3m, submetida às condições de fronteira de Dirichlet com uma discontinuidade conforme a figura 10 a seguir. Figura 10 - Chapa metálica aquecida nas bordas Os parâmetros do problema são: α (difusividade térmica) = 1 m2 /s. ο 00 , =jiϕ (a placa está inicialmente a zero grau). Inicialmente o domínio será discretizado usando uma malha regular de 60 x 60 pontos, o que fornece h = 5,0 cm, propiciando a precisão 3 500º 30 o 100 o 100 o0 300 o 3 3
  • 4. inicialmente requerida para resolver o problema. Essa malha será chamada de malha não refinada. Na presença de discontinuidade, essa discretização não é mais suficiente, devido aos elevados gradientes nas proximidades da discontinuidade. Por isso, é necessária uma discretização que forneça h = 1,25 cm, o que é conseguido com uma malha de 240 x 240 pontos, malha essa chamada de refinada. Na versão paralela, são usados 9 subdomínios, cada um deles endereçado a um processador. Para tratar o caso sem a discontinuidade, o domínio é dividido em 9 subdomínios, cada um com malha 20 x 20. No caso em que há descontinuidade na fronteira, o domínio teria de ser dividido em 9 subdomínios de 80 x 80 pontos. Mas como o programa tem a flexibilidade de tratar subdomínios com refinamentos diferentes, apenas o subdomínio que contém a discontinuidade precisa ter esse refinamento. O domínio para a resolução paralela então 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 subdomínios O tempo de processamento do programa será ditado pelo subdomínio com refinamento 80 x 80, já que o processamento é síncrono, e assim, em termos da aplicação, o refinamento não-uniforme não conduziria a um menor tempo de processamento, se o ambiente for homogêneo. Se o ambiente for heterogêneo, isto é, tendo processadores com velocidades diferentes, o subdomínio mais refinado poderia ser associado ao processador mais rápido, deixando os processadores mais lentos responsáveis pelo processamento dos subdomínios menos refinados, levando a um menor tempo de processamento do programa. Mas em se tratando de ambientes paralelos compartilhados, isto é, não dedicados exclusivamente a uma única aplicação, a desnecessidade de se refinar todos os subdomínios sobrecarrega bem menos o sistema. Por exemplo, se considerarmos que o processamento do subdomínio 20 x 20 gasta 1 unidade de tempo, o processamento do subdomínio 40 x 40 gastará 4 unidades de tempo, e o subdomínio 80 x 80 gastará 16 unidades de tempo. Assim, a resolução do problema consumirá 33 unidades de tempo. Se não houvesse a facilidade de refinamento não-uniforme, todos os subdomínios teriam de ter refinamento 80 x 80, o que consumiria 144 unidades de tempo. 5 – RESULTADOS Foram considerados dois estágios na evolução da distribuição de temperaturas na chapa. Um no início da propagação dos valores de fronteira para o interior do domínio, e outro com a propagação já bastante disseminada no domínio mas ainda não tendo atingido a estabilização. A Tabela 1 a seguir apresenta os resultados obtidos em tempo de processamento para o primeiro estágio. Tabela 1 – Tempos de processamento para o primeiro estágio Tempo (segundos) malha Seqüencial Paralelo Não 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 estágio. Tabela 2 – Tempos de processamento para o segundo estágio Tempo (segundos) malha Seqüencial Paralelo Não refinada 5,31 3,41 Refinada 90,02 5,78 As figuras 12 e 13 a seguir apresentam a distribuição de temperaturas na chapa para o programa seqüencial em todo o domínio e a distribuição de temperaturas apenas no subdomínio em que existe a descontinuidade, no início da distribuição de temperaturas, usando a malha refinada. Figura 12 – Domínio completo, com refinamento 240 x 240 Figura 13 – Subdomínio com refinamento 80 x 80. As figuras 14 e 15 a seguir apresentam a distribuição de temperaturas na chapa, já próxima da estabilização, para o programa seqüencial em todo o domínio e a distribuição de temperaturas apenas no 4
  • 5. subdomínio em que existe a discontinuidade, usando a malha refinada. Figura 14 – Domínio completo, com refinamento 240 x 240 Figura 15 – Subdomínio com refinamento 80 x 80. 6 – CONCLUSÕES Neste trabalho, utilizou-se o laboratório da Pós-graduação em computação da UFF para analisar os resultados experimentais obtidos pelo programa de resolução da equação diferencial parabólica de difusão 2D. A rede local do laboratório é heterogênea, e foram utilizados 9 processadores nos testes, três Pentium IV com 1,4 GHz de freqüência de “clock” e 512 Mb de memória RAM; e seis AMD ATHLON com 1,4 GHz de freqüência de “clock”e 256 Mb de memória RAM. A rede estava compartilhada com outras aplicações durante os testes, e por isso cada caso foi executado dez vezes para diminuir os efeitos de outras aplicações nos tempos dos testes. Foi considerado o menor tempo obtido em cada uma das dez execuções de cada estágio para cada grau de refinamento da malha. Os tempos mostraram que o desempenho da versão paralela é bem superior para a malha mais refinada. Para a malha menos refinada o ganho não é tão grande porque o tempo de comunicação torna-se proporcionalmente maior em relação ao tempo de processamento. O método Hopscotch, aliado ao processamento paralelo, mostrou-se uma ferramenta poderosa para a resolução das EDP difusivas. O refinamento da malha conduziu a resultados mais precisos, permitindo maior qualidade no acompanhamento da evolução dos efeitos provocados pela descontinuidade. O programa paralelo levou a uma redução substancial no tempo de processamento em relação à versão seqüencial. A capacidade, já implementada, de refinamento não-uniforme da malha, apesar de não diminuir o tempo de processamento do programa em si, considerando a versão paralela, contribui para uma diminuição global de processamento, o que é útil em ambientes compartilhados com outras aplicações. Se for considerado um ambiente heterogêneo, uma redução no tempo de processamento pode ser obtida associando o subdomínio com a malha mais refinada ao processador mais rápido. O balanceamento de carga, necessário para reduzir ainda mais o tempo de processamento e a capacidade de tratar domínios que não sejam quadrados para aumentar a versatilidade do programa são aperfeiçoamentos que estão sendo desenvolvidos. É necessário também executar o programa em ambiente exclusivo para avaliar com precisão os “speed-ups”conseguidos pela versão paralela. 8 - REFERÊNCIAS [1] Eric W. Weisstein. "Boundary Conditions." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/BoundaryConditions.ht ml [2] Fortuna, A. O., Técnicas Computacionais para Dinâmica dos Fluidos, Edusp, São 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, Implementação Paralela do algoritmo Gradiente Conjugado utilizando MPI, UFRGS, RS, 2002. [10] Cabral, F. L., Métodos Hopmoc para resolução de equações de convecção-difusão e sua implementação paralela, Dissertação de Mestrado, UFF, 2001. 5