Solução Numérica de Equações Diferenciais Parciais Parabólicas usando o Método Hopscotch com Refinamento Não-Uniforme



Documentos relacionados
Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:

BARRAMENTO DO SISTEMA

O quê um Processador e qual a sua função?

Técnicas de Manutenção de Computadores

1 Descrição do Trabalho

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

1 Propagação de Onda Livre ao Longo de um Guia de Ondas Estreito.

CAP. I ERROS EM CÁLCULO NUMÉRICO

Sistemas Operacionais

6 Conclusões e Trabalhos futuros 6.1. Conclusões

Balanceamento de Carga

2 Atualidade de uma base de dados

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

OBJETIVOS: CARGA HORÁRIA MÍNIMA CRONOGRAMA:

Memória Cache. Prof. Leonardo Barreto Campos 1

4 Segmentação Algoritmo proposto

XI Encontro de Iniciação à Docência

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

EXERCÍCIOS RESOLVIDOS

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Solução da prova da 1 a fase OBMEP 2015 Nível 1. QUESTÃO 1 ALTERNATIVA E Como 2 x 100,00 126,80 = 200,00 126,80 = 73,20, o troco foi de R$ 73,20.

PROJETO DE REDES

Sistemas Computacionais II Professor Frederico Sauer

1.1. Organização de um Sistema Computacional

GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

APLICAÇÕES DA DERIVADA

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Veja abaixo um exemplo de um endereço IP de 32 bits:

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Memória cache. Prof. Francisco Adelton

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

O método de Monte Carlo: algumas aplicações na Escola Básica

Processadores clock, bits, memória cachê e múltiplos núcleos

Tabela de roteamento

Métodos de Física Teórica II Prof. Henrique Boschi IF - UFRJ. 1º. semestre de 2010 Aula 2 Ref. Butkov, cap. 8, seção 8.2

O tornado de projeto é admitido, para fins quantitativos, com as seguintes características [15]:

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Organização e Arquitetura de Computadores I. de Computadores

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello 1

a 1 x a n x n = b,

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Utilização do SOLVER do EXCEL

Arquitetura de Rede de Computadores

Controle II. Estudo e sintonia de controladores industriais

Processos e Threads (partes I e II)

ARQUITETURA DE COMPUTADORES

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

3 Classificação Resumo do algoritmo proposto

LCAD. Introdução ao Curso de Métodos Numéricos I. LCAD - Laboratório de Computação de Alto Desempenho

DESENVOLVENDO HABILIDADES CIÊNCIAS DA NATUREZA I - EM

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Aula 03 Custos de um algoritmo e funções de complexidade

Cálculo Aproximado do número PI utilizando Programação Paralela

Caracterização temporal de circuitos: análise de transientes e regime permanente. Condições iniciais e finais e resolução de exercícios.

Disciplina: Introdução à Informática Profª Érica Barcelos

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello 1

ANÁLISE DE CIRCUITOS RESISTIVO DC (03/12/2013)

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

6 Construção de Cenários

Um capacitor não armazena apenas carga, mas também energia.

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

1

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Fundamentos da Matemática

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Feature-Driven Development

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

SISTEMAS DISTRIBUÍDOS

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

:: Telefonia pela Internet

Introdução aos Computadores

2 A Derivada. 2.1 Velocidade Média e Velocidade Instantânea

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

Manual do Ambiente Moodle para Professores

Manual SAGe Versão 1.2 (a partir da versão )

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

3 Método de Monte Carlo

3. Arquitetura Básica do Computador

Prof. Rafael Gross.

4 Estudos de Casos Problema Direto

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

BCC202 - Estrutura de Dados I

3 Arquitetura do Sistema

Aulas 22 & 23. Controle de Fluxo e de Congestionamento. Eytan Modiano MIT

Organização e Arquitetura de Computadores I

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

TIPOS DE REFLEXÃO Regular Difusa

Contil Informática. Curso Técnico em Informática Processadores Core

ARQUITETURA DE COMPUTADORES

Transcrição:

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, 56 - Bloco E - andar, São Domingos, Niterói - RJ, CEP 2420-240. b: CASNAV, Marinha do Brasil, Pça. Br. de Ladário, s/n o, Ilha das Cobras, ed. 8 - º andar, Centro, Rio de Janeiro-RJ, CEP 2009-000. E-mail: mauricio52@hotmail.com, professor_robaina@yahoo.com.br, lucia@ic.uff.br, kisch@ic.uff.br, otton@ic.uff.br - 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. Equações Diferenciais Parciais (EDPs) 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 t 0, calcula-se, pela solução numérica da EDP, seus novos valores em sucessivos intervalos de tempo t, até alcançarmos o instante final t f. 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 Figura Equação diferencial = Novo valor de φ 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. Condições de Contorno A seguir são apresentadas as condições de contorno que são comumente encontradas na solução de equações diferenciais parciais (ref. []). 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], [] 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

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 t x y Discretizando a derivada no tempo em a ordem em t e as derivadas espaciais em 2 a ordem em x e y, obtém-se, usando a seguinte notação: t ϕ ( t x y); e i, j = ϕ,, ϕ = ( t + t, x + x y + y) i+, ϕ, para o modo explícito: t t t t t ϕ = ϕ + kϕ + ϕ + ϕ + ϕ ( ) ( ) 4k j i+, j i, j j e para o modo implícito: ϕ ( + k) ϕ k( ϕ + ϕ + ϕ + ϕ ) t = 4 j i+, j i, j j t onde k = α, x = y = h. 2 h O método Hopscotch utiliza essas duas discretizações, como será visto a seguir. 2.5 Método Hopscotch O método Hopscotch (ref. [], [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 +, e assim esse cálculo se torna explícito, dispensando a resolução de um sistema de equações. Esse procedimento configura um meiopasso, e está ilustrado na figura. 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 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]). 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.[0] para uma implementação paralela de um método Hopmoc, que é uma extensão do método Hopscotch.. Divisão do Domínio Será considerado aqu como exemplo ilustrativo, uma subdivisão utilizando 9 processadores, cada um deles com um subdomínnio, 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, 6, 25, 6, 49, 64 e assim por diante. Figura 5 Divisão do domínio fronteira 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. Cada processador trabalhará apenas em um subdomínio..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. Figura Aplicação do método Hopscotch 2

NO O SO N S NE L SE 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 0x0 para maior clareza. noroeste oeste sudoeste norte sul nordeste leste sudeste Figura 7 Subdomínio (0x0) com as franjas enviadas As franjas são recebidas de cada vizinho conforme figura 8 a seguir. oeste noroeste sudoeste franja norte sul leste Subdomínio nordeste sudeste 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..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 6 subdomínios. 4 4 4 4 7 6 6 6 6 9 Figura 9 Tipos de Subdomínio.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 m x m, submetida às condições de fronteira de Dirichlet com uma discontinuidade conforme a figura 0 a seguir. 0 00 o Figura 0 - Chapa metálica aquecida nas bordas Os parâmetros do problema são: α (difusividade térmica) = m 2 /s. 0 ο ϕ 0 (a placa está inicialmente a zero grau). = 500º 00 o 00 o 0 o 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

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 =,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 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 - 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 unidade de tempo, o processamento do subdomínio 40 x 40 gastará 4 unidades de tempo, e o subdomínio 80 x 80 gastará 6 unidades de tempo. Assim, a resolução do problema consumirá 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 44 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 a seguir apresenta os resultados obtidos em tempo de processamento para o primeiro estágio. Tabela Tempos de processamento para o primeiro estágio Tempo (segundos) malha Seqüencial Paralelo Não refinada 0,0 0,05 Refinada,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,,4 Refinada 90,02 5,78 As figuras 2 e 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 2 Domínio completo, com refinamento 240 x 240 Figura Subdomínio com refinamento 80 x 80. As figuras 4 e 5 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 4 Domínio completo, com refinamento 240 x 240 Figura 5 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,4 GHz de freqüência de clock e 52 Mb de memória RAM; e seis AMD ATHLON com,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 s 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 [] 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. [] Mitchell, A.R. & Griffiths, D.F., The Finite Difference Method in Partial Differential Equations, John Wiley & Sons Ltd., UK, 980. [4] Finney, Ross L., Calculus, Addison-Wesley Inc, EUA, 994. [5] A.R. Gourlay, Hopscotch: a fast second order partial differential equation solver, J. Inst. Maths. Applics., 6:75-90, 970. [6] A.R. Gourlay e G.R. McGuire, General hopscotch algorithms for the numerical solution of partial differential equations, J. Inst. Maths. Applics., 7:26-227, 97. [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 4, No, pp. 76-88,987. [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. [0] 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, 200. 5