Tese Edimar Cesar Rylo

download Tese Edimar Cesar Rylo

of 145

Transcript of Tese Edimar Cesar Rylo

  • 8/8/2019 Tese Edimar Cesar Rylo

    1/145

    UNIVERSIDADE ESTADUAL DE CAMPINAS

    FACULDADE DE ENGENHARIA CIVIL, ARQUITETURA E

    URBANISMO

    DEPARTAMENTO DE ESTRUTURAS

    Adaptatividade hp em paralelo

    Autor: Eng. Edimar Cesar Rylo

    Orientador: Prof. Dr. Philippe Remy Bernard Devloo

  • 8/8/2019 Tese Edimar Cesar Rylo

    2/145

  • 8/8/2019 Tese Edimar Cesar Rylo

    3/145

    UNIVERSIDADE ESTADUAL DE CAMPINAS

    FACULDADE DE ENGENHARIA CIVIL, ARQUITETURA EURBANISMO

    DEPARTAMENTO DE ESTRUTURAS

    Adaptatividade hp em paralelo

    Autor: Eng. Edimar Cesar Rylo

    Orientador: Prof. Dr. Philippe Remy Bernard Devloo

    Curso: Engenharia Civil

    rea de concentrao: Estruturas

    Tese de doutorado apresentada comisso de Ps Graduao da Faculdade de Engenharia Civ

    da UNICAMP, como requisito para a obteno do ttulo de Doutor em Engenharia Civil.

    Campinas, Agosto de 2007

    SP - Brasil

    i

  • 8/8/2019 Tese Edimar Cesar Rylo

    4/145

    FICHA CATALOGRFICA ELABORADA PELABIBLIOTECA DA REA DE ENGENHARIA E ARQUITETURA - BAE - UNICAMP

    R985aRylo, Edimar Cesar

    Adaptatividade hp em paralelo / Edimar Cesar Rylo. --Campinas, SP: [s.n.], 2007.

    Orientador: Philippe Remy Bernard Devloo.Tese de Doutorado - Universidade Estadual de

    Campinas, Faculdade de Engenharia Civil, Arquitetura eUrbanismo.

    1. Programao paralela (Computao). 2. Mtododos elementos finitos. 3. Programao orientada aobjetos (Computao). 5. Parallel programming(Computer science). I. Devloo, Philippe Remy Bernard.II. Universidade Estadual de Campinas. Faculdade deEngenharia Civil, Arquitetura e Urbanismo. III. Ttulo.

    Ttulo em Ingls: hp adaptive technique in parallelPalavras-chave em Ingls: Finite element method, Object oriented programming

    (Computer science)rea de concentrao: EstruturasTitulao: Doutor em Engenharia CivilBanca examinadora: Jos Luiz Antunes de Oliveira e Sousa, Vincius Fernando Arca

    Marco Lcio Bittencourt, Fernando Luiz Bastos RibeiroData da defesa: 31/07/2007Programa de Ps Graduao: Engenharia Civil

    ii

  • 8/8/2019 Tese Edimar Cesar Rylo

    5/145iii

  • 8/8/2019 Tese Edimar Cesar Rylo

    6/145iv

  • 8/8/2019 Tese Edimar Cesar Rylo

    7/145

    Aos meus pais Alceu e Maria Elizia.

    v

  • 8/8/2019 Tese Edimar Cesar Rylo

    8/145vi

  • 8/8/2019 Tese Edimar Cesar Rylo

    9/145

    Agradecimentos

    Ao Laboratrio de Mecnica Computacional do Departamento de Estruturas da Faculdade d

    Engenharia Civil - UNICAMP pela infraestrutura.

    PETROBRAS e FAPESP-Embraer pelo financiamento da infraestrura computacional

    pela bolsa de estudos.

    Ao Cenapad - SP por disponbilizar o ambiente de processamento paralelo.

    Ao amigo e orientador Philippe pela amizade, orientao e compartilhamento de suas idias

    Aos professores do DES pelo conhecimento transmitido.

    Aos colegas do LabMeC pelo ambiente descontrado e estimulante.

    minha famlia em Campinas Jos Mauro, Snia, Jonathan e Las que me abrigaram e

    minha volta Universidade.

    minha esposa Ane por toda sua pacincia, compreenso e suporte durante essa jornada.

    vii

  • 8/8/2019 Tese Edimar Cesar Rylo

    10/145viii

  • 8/8/2019 Tese Edimar Cesar Rylo

    11/145

    Resumo

    Esse trabalho apresenta uma abordagem para a implementao de mtodos auto-adaptativ

    hp em malhas de elementos finitos utilizando processamento paralelo para a seleo do padro h

    a ser utilizado em cada elemento da malha. Dois tpicos so destacados: anlise da qualidade d

    aproximao e modo de melhoria do espao de aproximao.O trabalho apresentado prope uma estrutura para a implementao de mtodos hp aut

    adaptativos no ambiente PZ. Essa estrutura genrica e pode ser utilizada independentemente d

    formulao fraca, tipo de elemento utilizado, mtodo de resoluo etc. A estrutura proposta defin

    a interface requerida de um estimador de erros, bem como a interface para a seleo do padro d

    refinamento. Tal interface contempla a possibilidade de anlise de malhas com elementos contnu

    ou descontnuos.

    A implementao apresentada contempla o processamento em mquinas paralelas, de mod

    que o tempo de obteno de uma malha adaptada seja aceitvel em aplicaes prticas. O clcu

    do erro bem como a definio dos padres de refinamento pode ser feito utilizando processament

    paralelo, em ambientes com memria compartilhada ou distribuda.

    Uma metodologia de refinamento h baseado em padres de refinamento foi desenvolvida, im

    plementada e validada. Essa metodologia facilita a implementao de padres de refinament

    Em contrapartida, a gerao de malhas com espaos de aproximao contnuos impe restrie

    para a seleo do padro de refinamento de um elemento. Assim, para a seleo de um padr

    de refinamento de um elemento foi desenvolvida uma metodologia de anlise de padres adimiss

    veis. A seleo do padro de refinamento tendo por base uma anlise de padres admissveis u

    ponto que requer novas pesquisas, sendo considerado um dos desafios da auto-adaptatividade (veZienkiewicz [55]).

    ix

  • 8/8/2019 Tese Edimar Cesar Rylo

    12/145x

  • 8/8/2019 Tese Edimar Cesar Rylo

    13/145

    Abstract

    This work presents a study ofhp adaptive methods applied to finite element approximations. Tw

    topics are emphasized: analysis of the quality of the approximation and methodology of refinemen

    of the approximation space.

    The main objective of the work is to conceive a framework for developing hp-adaptive algorithmwithin the PZ environment. The framework is independent of the weak statement, type of elemen

    or resolution method. The framework uses separate interfaces to define the error estimation metho

    and selection of refinement pattern.

    Secondly, the framework was ported to parallel processing using the object oriented framewor

    OOPar. The intent of parallelizing the adaptive process is to reduce the time spent in err

    estimation and choice of the optimal refinement pattern and thus bring adaptivity to a level whe

    it can be used as a routine analysis method. Both error estimation and choice of refinement patter

    are implemented on a shared and/or distributed machine.

    Finally, a methodology was developed to extend the h-adaptive refinement process based orefinement patterns. Together with the implementation of refinement patterns, a procedure w

    developed to check on the compatibility of refinement patterns of two neighboring elements. Th

    choice of the "best" refinement patterns is one of the main challenges of adaptive methods (Z

    enkiewicz [55]). The availability of different ways of refining elements increases the flexibility

    the code, but also introduces the challenge of deciding which pattern is the "best" pattern.

    is possible that the combination of optimized h-refinement together with choice of h and/or

    refinement may lead to very efficient approximation spaces for a given problem.

    xi

  • 8/8/2019 Tese Edimar Cesar Rylo

    14/145xii

  • 8/8/2019 Tese Edimar Cesar Rylo

    15/145

    Sumrio

    1 Introduo

    1.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    1.3 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    1.4 Organizao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2 Reviso Bibliogrfica

    2.1 Aspectos Relacionados Anlise Numrica . . . . . . . . . . . . . . . . . . . . . . .

    2.1.1 O Mtodo dos Elementos Finitos (MEF) . . . . . . . . . . . . . . . . . . . .

    2.1.2 Estimadores de Erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.1.3 Adaptatividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.1.4 Auto - Adaptatividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.1.5 Abordagens de Implementao de Mtodos Auto-adaptativos Utilizando Pa-

    ralelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.2 Aspectos Relacionados Cincia da Computao . . . . . . . . . . . . . . . . . . .

    2.2.1 Programao Orientada a Objetos . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.2 UML - Unified Modeling Language . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.3 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.4 Conceitos de memria relacionados ao processamento . . . . . . . . . . . . . 2

    2.2.5 Paralelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.6 MPI - Message Passing Interface . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.7 Serializao de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.3 Ambiente de Programao Cientfica Orientado a Objetos PZ . . . . . . . . . . . . 3

    2.3.1 Conceitos Topolgicos no PZ . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2.4 Ambiente de Programao Paralela Orientado a Objetos - OOPar . . . . . . . . . . 3

    3 Gerao de Padres de Refinamento A Partir de Malhas Exemplo 3

    3.1 Conceitos Bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    3.1.1 Relacionamento Topolgico - Definio da Vizinhana . . . . . . . . . . . . . 4

    xiii

  • 8/8/2019 Tese Edimar Cesar Rylo

    16/145

    3.2 Implementao - Classe TPZRefPattern . . . . . . . . . . . . . . . . . . . . . . . . 44

    3.2.1 Implementao dos mtodos relacionados diviso . . . . . . . . . . . . . . 46

    3.2.2 Implementao dos mtodos relacionados ao clculo das transformaes . . . 49

    3.3 Gerenciamento da biblioteca de Padres . . . . . . . . . . . . . . . . . . . . . . . . 50

    3.3.1 Armazenamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    3.3.2 Importao e exportao de padres de refinamento . . . . . . . . . . . . . . 503.4 Exemplo de Aplicao: Gerao de malhas de camada limite . . . . . . . . . . . . . 51

    3.4.1 Definio do padro de refinamento para cada elemento . . . . . . . . . . . . 51

    3.4.2 Busca por padres compatveis e Definio do melhor padro disponvel . . . 51

    3.4.3 Aplicao do Processo Malha do Projeto de Aeronave yf17 . . . . . . . . . 52

    4 Mtodo auto-adaptativo 55

    4.1 Definies iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.1.1 Estimador de Erros Baseado em Diferena de Solues . . . . . . . . . . . . 56

    4.1.2 Determinao do Padro de Refinamento dos Elementos . . . . . . . . . . . 584.2 Implementao serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    4.2.1 Definies iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    4.2.2 Estrutura de dados para adaptatividade . . . . . . . . . . . . . . . . . . . . 63

    4.3 Paralelizao utilizando o OOPar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    4.3.1 Alterao da Estrutura de Dados da Classe TPZAdaptiveProcess . . . . . . 81

    4.3.2 Serializao da estrutura de dados . . . . . . . . . . . . . . . . . . . . . . . . 81

    4.3.3 Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    5 Casos de validao e testes 91

    5.1 Testes internos para certificao dos procedimentos . . . . . . . . . . . . . . . . . . 91

    5.2 Avaliao do estimador de erros: convergncia e efetividade . . . . . . . . . . . . . . 92

    5.2.1 Equao de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    5.3 Implementao paralela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    6 Concluses e Propostas de Extenses 105

    Referncias Bibliogrficas 119

    xiv

  • 8/8/2019 Tese Edimar Cesar Rylo

    17/145

    Lista de Figuras

    2.1 Aresta - topologia e definio de lados . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2.2 Hexahedro - topologia e definio de lados . . . . . . . . . . . . . . . . . . . . . . . 3

    2.3 Exemplos de vizinhaa entre elementos/lado . . . . . . . . . . . . . . . . . . . . . . 3

    2.4 Processo de ajuste de vizinhana de um elemento durante o refinamento . . . . . . . 3

    3.1 Exemplo de utilizao de padres de refinamento uniforme e direcional . . . . . . . 4

    3.2 Resultados de malhas de camada limite utilizando padres de refinamento uniforme

    (a) e padres de refinamento direcional (b) . . . . . . . . . . . . . . . . . . . . . . . 4

    3.3 Exemplos de diviso de um elemento quadrilateral . . . . . . . . . . . . . . . . . . . 4

    3.4 Exemplo de Diviso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    3.5 Exemplo de permutaes de um padro de refinamento . . . . . . . . . . . . . . . . 4

    3.6 Exemplos de padres de refinamento conformes e no conformes . . . . . . . . . . . 4

    3.7 Estrutura de dados formando a partio do elemento por sub-elementos e lados . . . 4

    3.8 Estrutura de dados formando a partio do elemento por sub-elementos e lados . . . 5

    3.9 Processo de identificao de um padro de refinamento . . . . . . . . . . . . . . . . 53.10 YF 17 - Malha Original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    3.11 YF 17 - Malha Refinada com Refinamento Direcional . . . . . . . . . . . . . . . . . 5

    3.12 Detalhe da malha no refinada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    3.13 Detalhe da malha refinada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    4.1 Mtodo Auto-adaptativo Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    4.2 Definio do Padro timo de Refinamento para um Elemento . . . . . . . . . . . . 6

    4.3 Fluxograma para a obteno de malha adaptada . . . . . . . . . . . . . . . . . . . . 6

    4.4 Definio dos patches de uma malha . . . . . . . . . . . . . . . . . . . . . . . . . . 74.5 Gerao de uma malha patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    5.1 Problema modelo - domnio em L . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    5.2 Convergncia para a malha de quadrilteros . . . . . . . . . . . . . . . . . . . . . . 9

    5.3 ndice de efetividade para o estimador de erros para a malha de quadrilteros . . . . 9

    5.4 Malha quadrilateral - seqncia de malhas geradas: (a) malha original, (b) 10 passos

    de refinamento (d) 20 passos de refinamento (d) 30 passos de refinamento . . . . . . 9

    xv

  • 8/8/2019 Tese Edimar Cesar Rylo

    18/145

    5.5 Malha quadrilateral - seqncia de detalhes do canto do L . . . . . . . . . . . . . . 95

    5.6 Convergncia para a malha de quadrilteros . . . . . . . . . . . . . . . . . . . . . . 96

    5.7 ndice de efetividade para o estimador de erros para a malha de quadrilteros . . . . 96

    5.8 Malha quadrilateral - seqncia de malhas geradas: (a) malha original, (b) 10 passos

    de refinamento (d) 20 passos de refinamento (d) 30 passos de refinamento . . . . . . 97

    5.9 Malha quadrilateral - seqncia de detalhes do canto do L . . . . . . . . . . . . . . 985.10 Anlise da implementao paralela - 8 processos MPI com 1 thread por processo.

    Viso geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    5.11 Anlise de um passo de adaptao - 8 processos MPI com 1 thread por processo.

    Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    5.12 Anlise de um passo de adaptao - 2 processos MPI com 2 threads por processo.

    Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    1 Ordem de Refinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    2 Interface da Classe TPZOneDRef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113 Notao para as funes de forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    4 Conveno para funes de ordem mpar . . . . . . . . . . . . . . . . . . . . . . . . 115

    5 LoadU - transferncia de blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    xvi

  • 8/8/2019 Tese Edimar Cesar Rylo

    19/145

    Lista de Algoritmos

    1 Clculo da estimativa do erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2 Adaptao de um elemento utilizando padres de refinamento uniformes . . . . . . 8

    3 OOPReturnType OOPTaskErrorEstimation::Execute() . . . . . . . . . . . . . . . . 8

    4 OOPTaskErrorAssemble::Execute() . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    5 OOPTaskBuildRefinement::Execute() . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    6 OOPTaskRefinementAssemble::Execute() . . . . . . . . . . . . . . . . . . . . . . . . 97 Obteno dos Elementos de Referncia dos Patches . . . . . . . . . . . . . . . . . . 10

    xvii

  • 8/8/2019 Tese Edimar Cesar Rylo

    20/145

    Nomenclatura

    Siglas

    CDC: condio de contorno

    C++: linguagem de programao

    CPU: unidade de processamento central

    CVS: sistema de verses concorrentes ( concurrent version system)

    ddd: interface grfica para o gdb

    dof: graus de liberdade ( degrees of freedom)

    gdb: depurador GNU (debugger)

    I/O: entrada sada (input output )

    Linux: sistema operacional baseado em software livre

    MEF: Mtodo dos elementos finitosMPI: padro de comunicao de dados entre computadores utilizado em computao cientfica

    OO: orientao a objetos

    PZ: Ambiente de programao de elementos finitos orientado a objetos utilizado para a imple-

    mentao computacional desse trabalho

    UML: linguagem unificada de modelagem (unified modelling language)

    UNIX: sistema operacional multitarefa desenvolvido inicialmente pela Bell Labs

    Operadores

    Dim(.): dimenso do espao de funes

    :Operador laplaciano: Operador gradiente||.||: Norma infinita

    ||.||E: Norma energia

    Letras latinas Minsculas

    u: funo correspondente a soluo da equao diferencial de interesse

    uD: valor da fuo u no contorno submetido a condio de contorno Dirichlet

    uD: funo u restrita a uD

    u0: funo pertencente a H1() que atende condies de contorno no homgneas

    uh: soluo aproximada de u

    xviii

  • 8/8/2019 Tese Edimar Cesar Rylo

    21/145

    f, f(x , y , z): funo definida no espao tridimensional

    g, g(x , y , z): idem a f

    v: funo teste utilizada na definio da formulao fraca

    e(x)funo erro de aproximo

    i,j,k: ndices

    hk: maior distncia euclidiana entre ns do elemento kr(x): funo resduo

    ehi: base de funes para a definio do espao Vh

    Letras Latinas Maisculas

    R3: Espao Euclidiano tridimensional

    H: Espao de funes de Hilbert

    B(u, v): Operador bilinear em u e v

    L(v): Operador Liner

    V: Espao de funes teste (dimenso infinita)

    Vh: Espao finito de funes teste (Vh V )Hh: Dimenso do espao VhSi,j: Matriz de rigidez

    C, C1, C2: constantes pertencentes a R

    P: Partio do domnio

    Letras Gregas Minsculas

    hi: coeficiente multiplicador da isima funo de forma do espao Vh: norma da funo erro calculada sobre o domnio

    k: estimativa de erro para o k-simo elemento

    k: dimetro do maior crculo inscrito no elemento k

    Letras Gregas Maisculas

    : contorno do domnio

    D: contorno do domnio submetido a condio de contorno Dirichlet

    N: contorno do domnio submetido a condio de contorno Neumann

    k: ndice de forma do elemento k

    : domnio de interesse

    xix

  • 8/8/2019 Tese Edimar Cesar Rylo

    22/145

    k: sub domnio do element k

    : ndice de efetividade do estimador de erros

    xx

  • 8/8/2019 Tese Edimar Cesar Rylo

    23/145

    Captulo 1

    Introduo

    1.1 Introduo

    Os mtodos hp adaptativos apresentam como atrativo ao seu uso uma alta taxa de convergnc

    em relao aos refinamento h ou p isolados. O problema a ser resolvido como minimizar

    erro de aproximao inserindo o menor nmero de graus de liberdade. Em 1987 Devloo e Od

    [23] apresentaram uma implementao do mtodo, entretanto, a elevada complexidade de um

    implementao de um cdigo hp, bem como o custo computacional associado busca automti

    de um padro hp timo, restringiu a pesquisa a poucos centros.

    Outro ponto a destacar o fato dos novos modelos industriais estar se tornando cada vez ma

    realistas, reduzindo as simplificaes de clculo, procurando assim resultados mais prximos

    realidade podendo desse modo justificar a otimizao do uso de materiais. Tal abordagem podlevar a uma reduo dos coeficientes de segurana relativos preciso do clculo. Isso implica n

    necessidade de aumento da preciso do modelo numrico. Ferramentas auto adaptativas pode

    ser utilizadas com esse intuito.

    Com relao ao tempo para obteno de um modelo discreto, com uma dada preciso, va

    destacar que em um ciclo de projeto industrial, a cada novo modelo gerado h a necessidade d

    se realizar todo um conjunto de testes de validao e qualificao do modelo antes de se utiliz

    seus resultados, tais atividades requerem um tempo que nem sempre est disponvel ao projetist

    Assim, o tempo para se obter a malha adequada reduzido, o que justifica o desenvolvimento dferramentas auto-adaptativas.

    Para problemas de transporte com evoluo temporal, a necessidade de auto-adaptatividade

    ainda mais notada, uma vez que as regies da malha que necessitam de uma maior discretiza

    mudam ao longo dos passos de tempo. Caso no se tenha uma estratgia de aglomerar elemento

    de baixo erro e refinar elementos de alto erro, a aproximao poder no ter a preciso adequad

    ou o problema poder ter uma dimenso que ir inviabilizar a obteno da soluo em um temp

    aceitvel.

    1

  • 8/8/2019 Tese Edimar Cesar Rylo

    24/145

    1.2 Objetivos

    O principal objetivo do trabalho disponibilizar uma estrutura para o desenvolvimento de m-

    todos hp auto-adaptativos no ambiente PZ [18], que possa ser utilizada independentemente de:

    formulao variacional, tipo de elemento utilizado, mtodo de resoluo etc. Prope-se uma es-

    trutura onde se define a interface requerida de um estimador de erros, bem como a interface paraa seleo do padro de refinamento. Tal interface contempla a possibilidade de anlise de malhas

    com elementos contnuos ou descontnuos.

    O segundo objetivo desse trabalho prover uma implementao que possibilite o processamento

    do mtodo em mquinas paralelas, de modo que o tempo de obteno de uma malha adaptada

    seja aceitvel para aplicaes industriais. A estrutura implementada possibilita que o processo

    de clculo do erro e a definio dos padres de refinamento sejam feitos utilizando processamento

    paralelo, em ambientes com memria compartilhada ou distribuda.

    Adicionalmente, em termos de escolha de padro de refinamento, prope-se agregar um mtodo

    de seleo do padro de refinamento tendo por base uma biblioteca de padres admissveis. A

    escolha do padro de refinamento um dos desafios da auto-adaptatividade (ver Zienkiewicz [55]).

    A possibilidade de escolha entre diversos padres agrega flexibilidade mas a definio de que padro

    utilizar implica em um desafio que, caso bem solucionado, poder levar a malhas cujo erro devido

    discretizao do domnio e escolha do espao de interpolao tenham uma relao de erro por

    graus de liberdade prxima tima.

    1.3 Motivao

    Mtodos auto adaptativos podem conduzir a malhas com preciso adequada com um nmero de

    graus de liberdade timo. Para tal, utiliza-se um estimador de erros para indicar quais elementos

    precisam ser adaptados e tambm para se ter um parmetro indicativo da qualidade da soluo. O

    problema que o custo computacional do estimador de erros pode ser elevado, independentemente

    da abordagem utilizada tais como "patch recovery techniques", "goal oriented" etc.

    Com relao definio de como adaptar os elementos, os mtodos tradicionais: h, p, hp e

    r, sero acrescidos de outros modos de adaptao, incluindo a definio por utilizao de espaos

    de aproximao mistos com elementos com espao de interpolao contnuos e outro utilizandoespaos de aproximao do tipo Galerkin Descontnuo, tal qual est sendo desenvolvidas no grupo

    de pesquisa do LabMeC.

    Mesmo no caso de refinamento h, a disponibilidade de padres de refinamento direcionais

    agregam complexidade a tomada de deciso sob a forma de adaptao do elemento, conforme

    descrito em [55].

    A implementao de mtodos auto adaptativos utilizando processamento paralelo uma abor-

    dagem natural para resolver a questo do custo do processo.

    2

  • 8/8/2019 Tese Edimar Cesar Rylo

    25/145

    O processo de anlise do padro de refinamento, proposto originalmente em [16], tomando po

    base a anlise do erro nas arestas de um elemento conduz a parmetros que podem ser utilizados n

    anlise do padro de refinamento a adotar, inclusive no caso de utilizao de padres de refinamen

    direcional.

    A estrutura aqui proposta implementa um processo adaptativo baseado na anlise do erro e

    patches de elementos. Tal anlise baseia-se na comparao de dois espaos de aproximao, uo espao original e outro o correspondente a soluo para uma malha uniformemente refinada.

    utilizao de patches simplifica a implementao utilizando processamento paralelo, enquanto

    soluo uniformemente refinada utilizada no s no clculo do erro como tambm na defini

    dos padres de refinamento.

    1.4 Organizao do Trabalho

    O presente trabalho est estruturado em cinco partes: introduo, reviso bibliogrfica e descrida implementao proposta, casos de validao e concluses conforme descrito na seqncia:

    Parte 1: Captulo 1 - Introduo:

    Introduo, objetivos, motivao e organizao do trabalho;

    Parte 2: Captulo Reviso Bibliogrfica:

    Reviso geral sobre os temas envolvidos:

    Mtodos numricos e computacionais, com foco nos assuntos que so necessriopara o desenvolvimento do trabalho

    Ferramentas Computacionais: Programao Orientao a Objetos

    UML

    Log

    Programao paralela

    Ambiente de programao de elementos finitos orientado a objetos PZ ([20, 21, 224]);

    Ambiente de programao cientfica em paralelo OOPar ([10]);

    Parte 3: Implementaes:

    Captulo 3 - Padres de refinamento baseados em malhas contendo um exemplo d

    padro de refinamento no ambiente PZ;

    3

  • 8/8/2019 Tese Edimar Cesar Rylo

    26/145

    Captulo 4 - Mtodo auto adaptativo implementado

    Parte 4: Captulo 5 - Casos de validao

    Parte 5: Captulo 6 - Concluses e perspectivas de desenvolvimento

    Anexos: reproduz-se os textos do trabalho de mestrado [49] que iniciou essa pesquisa porserem necessrios ao entendimento desse trabalho:

    Metodologia de definio de malhas patches e

    Metodologia de definio do padro de refinamento baseado em anlise de arestas.

    4

  • 8/8/2019 Tese Edimar Cesar Rylo

    27/145

    Captulo 2

    Reviso Bibliogrfica

    Esse trabalho aborda tpicos de diversas reas, destacando-se a cincia da computao, tpicos d

    anlise numrica, mtodos hp em paralelo e conhecimento de bibliotecas de programao cientfic

    Assim, de modo a poder organizar essa seo, dividir-se- a seo em quatro partes a sabeaspectos relacionados a anlise numrica, aspectos relacionados cincia da computao, mtodo

    hp em paralelo e bibliotecas de programao cientfica utilizadas no trabalho. A descrio d

    tpicos acima listados est organizada da seguinte maneira:

    1. Anlise Numrica

    (a) Mtodo dos Elementos Finitos,

    (b) Estimadores de Erro,

    (c) Adaptatividade / Critrios para auto-adaptatividade, baseados em anlise de estimatvas de erro,

    2. Cincia da Computao:

    (a) Programao Orientada a Objetos

    (b) UML - Unified Modeling Language,

    (c) Logging,

    (d) Comunicao e Sockets,(e) Modelos de Paralelismo,

    (f) Performance;

    3. Desenvolvimento de adaptatividade hp em paralelo: definies, abordagens e modelos exi

    tentes.

    4. Bibliotecas de programao cientfica:

    5

  • 8/8/2019 Tese Edimar Cesar Rylo

    28/145

    (a) Ambiente de Programao Cientfica Orientado a Objetos PZ;

    (b) Ambiente de Programao Paralela Orientado a Objetos OOPar.

    Os ambientes de desenvolvimento, de elementos finitos PZ [24], bem como o de paralelismo OOPar

    [10], so brevemente descritos aqui. Uma descrio mais aprofundada desses ambientes pode ser

    obtida em Apostilas PZ e OOPar http://labmec.fec.unicamp.br/pz.

    2.1 Aspectos Relacionados Anlise Numrica

    2.1.1 O Mtodo dos Elementos Finitos (MEF)

    Histrico

    O MEF um mtodo sistemtico para a obteno de uma aproximao para um problema de valor

    de contorno. Os problemas de valor de contorno so encontrados em diversos problemas fsicosregidos por leis de conservao.

    Historicamente, h uma certa dificuldade em precisar os primrdios do MEF. Nessa descrio,

    tomar-se- por base os trabalhos: Babuska [53], Devloo [17], Soriano [52] e Assan [3]. No trabalho

    de Devloo [17], que baseou-se em Williamson [33], coloca-se como primrdios do MEF os mtodos

    de Leibniz e Schellbach para soluo do problema de caminho timo de descida de um corpo sobre

    uma superfcie sujeito somente a fora gravitacional (brachistochrone problem). Nesses trabalhos

    utilizado o conceito de discretizao do domnio e a aproximao em cada um dos subdomnios

    gerados linear.

    Em 1928, Courant, Friedrichs e Lewy apresentaram o artigo fundamental para o mtodo dediferenas finitas [47], onde eles utilizavam o sistema algbrico gerado para demonstrar a existncia

    da soluo. A soluo do sistema algbrico indicava uma aproximao para a resposta do problema.

    H consenso na bibliografia de que o primeiro artigo que definiu um mtodo muito prximo

    ao que se conhece hoje por MEF foi o artigo publicado em 1943 por Courant [12]. Foi definida

    uma formulao variacional equivalente equao diferencial original. Notadamente mais simples

    de se resolver que a equao diferencial original, Courant analisou os diversos mtodos numricos

    de resoluo do problema variacional. A primeira abordagem, foi o mtodo de Rayleigh-Ritz [3],

    o qual apresenta baixa convergncia para problemas com altas ordens de derivadas. Isso indicouque a convergncia do mtodo dependia da funo de aproximao escolhida. Foi apresentada

    uma forma alternativa ao mtodo de diferenas finitas, onde se destaca que, apesar de o mtodo

    alternativo levar a sistemas de equaes mais complicadas, esse mtodo pode ser utilizado em um

    conjunto maior de problemas executando-se uma quantidade pequena de clculo.

    At aqui, os estudos citados so todos relacionados a estudos matemticos. Com algum atraso

    os engenheiros chegaram a uma abordagem prxima s anteriormente citadas. Da mesma forma

    que se identificam os primrdios matemticos do MEF em trabalhos relacionados a discretizao

    6

  • 8/8/2019 Tese Edimar Cesar Rylo

    29/145

    de domnios, em 1941 surgiu o primeiro trabalho desenvolvido por um engenheiro relacionad

    ao MEF, (Hrennikoff, citado por [52]), onde proposto um mtodo para aproximao de um

    placa por meio de um nmero arbitrrio de barras. Cada barra possua formulao conhecida

    tal formulao serviu como funo de aproximao. Vale ressaltar que esse problema recaia n

    resoluo de um sistema algbrico.

    Em 1954, Argyris apresentou um conjunto de artigos na revista Aircraft Engineering ondfoi formulado o Princpio dos Trabalhos Virtuais (PTV) e Trabalho Virtual Complementar.

    interessante que o resultado do PTV em problemas elsticos corresponde a formulao variacion

    do problema. Um dos exemplos de aplicao do mtodo foi a definio de um mtodo matrici

    para a resoluo de um problema de placa.

    O trabalho de Turner, Clough, Martin e Topp [39] apresenta o MEF na forma como se conhe

    hoje, sendo o trabalho de Clough, em 1959, o primeiro trabalho a utilizar a denominao d

    Elementos Finitos.

    Ao final da dcada de 1960, o MEF j estava generalizado e consagrado como uma ferrament

    de engenharia. Com o interesse pelo mtodo, pesquisas foram desenvolvidas para tentar prov

    a convergncia e unicidade do mtodo. Nesse perodo foram redescobertos trabalhos como o d

    Courant e dentre outros o de Galerkin.

    As pesquisas relacionadas ao MEF se expandiram desde ento. No incio as pesquisas concentr

    se em padres de armazenamento de matrizes com objetivo de minimizar o uso de memria. Post

    riormente, preocupaes relacionadas a preciso da aproximao tornaram-se o foco das pesquisa

    Mtodos de clculo de estimativas de erro ainda hoje so foco de pesquisa, tais como os mtodo

    patch revorery. Segundo o Prof. Zienkiewicz, em seu artigo [55], o problema de estimativa

    erro j um problema bem conhecido e estudado devendo as pesquisas de elementos finitos preocupar em como adaptar a malha para reduzir o erro de maneira efetiva. Tal aspecto um d

    focos desse estudo.

    Apresentao do MEF

    Segundo [43], o MEF uma tcnica de obteno de solues aproximadas para problemas de val

    de contorno. O mtodo envolve a diviso do domnio em um nmero finito de sub-domnios,

    elementos finitos, e utilizando conceitos variacionais construir uma aproximao da soluo sob

    a partio de elementos. Simplificadamente, a metodologia do MEF, conforme descrita em [43consiste nos seguintes passos:

    definio da equao diferencial: em geral provm de uma lei de conservao e inclui

    informaes de contorno;

    obter a formulao fraca do problema equivalente;

    escolha de um espao de funes de aproximao adequado;

    7

  • 8/8/2019 Tese Edimar Cesar Rylo

    30/145

    aplicao do mtodo de Galerkin para o espao de funes adotado, resultando em um sistema

    algbrico;

    resoluo do sistema algbrico: consiste na resoluo do sistema linear gerado pelo mtodo

    de Galerkin;

    anlise da soluo obtida: o resultado obtido uma aproximao para a soluo real doproblema. Assim, h a necessidade de se verificar a preciso dessa aproximao.

    Cabe ressaltar que a descrio acima difere de abordagens tradicionais, tais como as apresentadas

    em [55],[56], [52] e [3] onde a formulao fraca e o espao de aproximao adotados so embutidos no

    clculo da matriz de rigidez e do vetor de carga do elemento, sendo o mtodo descrito para cada tipo

    de elemento, i.e. quadrilteros de 4, 8 e 9 ns, tringulos de 3 e 6 ns etc. Tal abordagem utilizada

    em programas de elementos finitos comerciais tais como o Ansys http://www.ansys.com e o

    Nastran http://www.mscsoftware.com/products/msc_nastran.cfm , onde o tipo de elementos

    escolhido indica a formulao a ser resolvida e o tipo de funo de forma que faz parte do espao

    de aproximao. A vantagem no uso dessa abordagem que a facilidade de implementao de

    um tipo especfico de equao. Em contrapartida, a implementao de mtodos adaptativos hp

    torna-se uma tarefa complexa.

    A abordagem proposta por Becker, Carey e Oden [43] adequada ao entendimento do MEF

    na forma como ele est implementado no ambiente PZ [24], ambiente esse que ser utilizado no

    desenvolvimento do trabalho.

    Para descrever a metodologia proposta por Becker, Carey e Oden utilizado um problema

    modelo, sendo desenvolvidas todas as etapas consideradas acima.

    Definio Problema Modelo - Equao de Laplace

    O problema que se pretende aproximar um problema diferencial de valor de contorno. Consi-

    deremos um domnio em 3, submetido a duas condies de contorno (CDC) em suas facesdenominadas: D e N, sendo:

    D: Condio de contorno de Dirichlet ou essencial, onde o valor da varivel de estado

    fixada;

    N: Condio de contorno de Neumann ou natural, onde o valor da funo fluxo no contorno

    fixada;

    = D N eDN = o contorno completo do domnio uma partio das fronteiras

    submetidas s condies de Neumann e de Dirichlet.

    O problema modelo consiste em encontrar uma funo u(x , y , z), (x , y , z) tal que:

    8

  • 8/8/2019 Tese Edimar Cesar Rylo

    31/145

    u = f (x , y , z) u = uD (x , y , z) Dun

    = g (x , y , z) N(2.

    onde:

    = 2

    x2+

    2

    y2+

    2

    z2: Operador Laplaciano;

    un

    = uxnx + uyny + uznz1 : indica o fluxo normal ao contorno de ;

    f = f(x , y , z), (x , y , z) : funo definida para todo o domnio.

    uD = uo(x,y,z), (x,y,z) D: condio de contorno Dirichlet, onde u0 uma funo qudefine um valor fixado para a varivel de estado nesta regio do contorno;

    g = g(x,y,z), (x , y , z) N.: funo fluxo imposto na fronteira submetida CDC dNeumann, onde g(x,y,z);

    = DN, D

    N = .

    Formulao Fraca

    Por simplicidade, inicialmente, ser aqui mostrada a metodologia para a obteno da formula

    fraca para o caso da CDC Dirichlet homognea, ou seja: u0(x , y , z) = 0 (x,y,z) D. Neste caso espao de aproximao formado pelo espao linear cuja funes satisfazem a CDC Dirichlet.

    Sendo v = v(x , y , z) uma funo teste utilizada, esta se anular no contorno D, ou seja:

    v(x,y,z) = 0 (x,y,z) D (2.

    Multiplicando-se a expresso (2.1) pela funo teste v e integrando o resultado sobre todo

    domnio , temos:

    u v d =

    f v d (2.

    onde indica o laplaciano.Considerando que a funo teste v contnua e que v(s) = s s D, pode-se integrar p

    partes o lado esquerdo da expresso acima, tendo como resultado:

    uv dN

    u

    nv dN =

    f v d (2.

    onde denota o gradiente da funo.1nx,

    ny e

    nz indicam os vetores unitrios normais s superfcies de contorno.

    9

  • 8/8/2019 Tese Edimar Cesar Rylo

    32/145

    A integral no contorno fica reduzida apenas ao trecho onde aplicada a CDC Neumann pelo

    requerimento de que a funo v nula na regio do contorno onde est aplicada a CDC Dirichlet

    (homognea). Define-se0

    H1 o espao de funes v que atende os requerimentos da CDC Dirichlet.

    Desta forma, o problema inicial passa a ser representado agora pelo seguinte problema equiva-

    lente: Encontrar u(x,y,z) H1(), tal queuv d =

    Ng v dN+

    f v d

    para toda funo teste v, v 0

    H1

    (2.5)

    Para que ocorra a equivalncia entre a formulao fraca e a formulao forte, h a necessidade de

    que a funo teste adotada deve pertencer ao espao de funes teste admissveis, ou seja respeite

    as CDC Dirichlet e que as funes f e g devem ser quadrado integrvel em e N respectivamente.

    Um aspecto importante a ser destacado a possibilidade de representar a formulao fraca

    atravs de um termo bilinear e um termo linear conforme mostrado abaixo:B(u, v) =

    uv d

    L(v) =N

    g v dN+

    f v d

    e assim:

    B(u, v) = L(v)

    (2.6)

    Essa representao til no estudo de convergncia de estimadores de erro que ser abordado

    posteriormente.

    CDC Dirichlet No Homognea Neste caso teremos que u0 = 0 e assumindo que a funou0 admite a translao para u0, definida em todo o domnio e satisfazendo todas as condiesde regularidade impostas para a soluo, temos que u0 dever estar contida dentro do espao deSobolev H1().

    Desta forma, com a aplicao de u0 formulao fraca obtida para o caso homogneo teramos:

    Encontrar u(x , y , z)

    u0 + V, tal que

    B(u, v) = L(v)

    para toda funo teste v V(2.7)

    onde:

    u0 + V = {u0 + v, v V} (2.8)Desta forma, tendo-se uma funo u0 que satisfaa as condies impostas acima, temos que

    a funo resultante u independe desta extenso, o que torna possvel a seguinte substituio de

    variveis: u =

    u0 + w, com w V e satisfazendo todas as condies de continuidade impostas a u.

    10

  • 8/8/2019 Tese Edimar Cesar Rylo

    33/145

    Com isto, a formulao variacional pode ser reescrita da seguinte forma:

    Encontrar w(x , y , z) V, tal queB(w, v) = L(v)B(

    u0, v)

    para toda funo teste v V(2.

    Ressalta-se que, desta forma, pode-se calcular a funo u0 que satisfaz a condio de extense ento, definindo-se : Lmod = L(v) B(u0, v), como sendo a parte linear modificada, podemsubstituir na expresso acima e voltar a ter o mesmo padro de expresso que aquele encontrad

    para as CDC homogneas.

    Mtodo de Galerkin

    Sendo disponvel a formulao fraca para o problema, o mtodo de Galerkin consiste na restri

    do espao de funes teste V, utilizando um espao Vh V, espao este composto por uma bade dimenso finita. Assim o problema a ser resolvido passa a ser:

    Encontrar uh(x , y , z) u0 + Vh, tal queB(uh, vh) = L(vh)

    para toda funo teste vh Vh(2.1

    Com relao base de funes utilizada, esta pode ser representada por:

    Vh = {ehi}, i = 1, 2, . . . , N h (2.1

    onde Nh = dim(Vh) indica a dimenso do espao de aproximao.Dentro deste espao, procura-se a soluo para o problema sob a forma da seguinte combina

    linear:

    uh =

    Nhi=1

    hiehi (2.1

    Os coeficientes hi, a serem determinados, so denominados graus de liberdade (d.o.f).

    Substituindo a expresso acima na formulao fraca do problema e, ainda, adotando como fu

    es teste a mesma base de funes utilizada para representar uh, ou seja v = ehj j = 1, 2, . . . , Nchega-se seguinte representao do problema:Encontrarhi, i = 1, 2, . . . , N h, tal que

    B(Nhi=1 hi(ehi, ehj)) = L(ehj)

    j = 1, 2, . . . N h

    (2.1

    O mtodo de Galerkin consiste assim em uma estratgia de aproximao de equaes difere

    ciais, em que, partindo-se da formulao fraca do problema, utiliza-se um espao de funes tes

    11

  • 8/8/2019 Tese Edimar Cesar Rylo

    34/145

    de dimenso finita. Nesse caso, o problema pode ser escrito como um problema algbrico, onde se

    buscam os coeficientes multiplicadores das funes teste.

    Em princpio, a aproximao depende somente do subespao adotado Vh, independendo da

    base de funes escolhida ehi. Na prtica, a escolha da base de funes afeta o condicionamento

    do sistema final, implicando diretamente sobre os erros de arredondamento, os quais podem ser

    significativos [14, 15].Para o problema em questo, podem ser realizadas algumas mudanas de notao conforme

    segue:

    Definindo-se a matriz de rigidez global Sij como sendo:

    Sij = B(ei, ej) =

    eiej d (2.14)

    O vetor de carga modificado Lmodj ser dado por:

    Lmodj = L(ej) B(u0, ej) =

    f ej d+N

    gej dN

    u0ej d (2.15) O vetor de carga original Lj dado por:

    Lj = L(ej) =

    f ej d+

    N

    gej dN (2.16)

    E assim o problema pode ser escrito da forma usual:

    Encontrarhi, i = 1, 2, . . . , N h, tal queNh

    i=1 hiSij = Lmodj

    j = 1, 2, . . . N h

    (2.17)

    Este sistema pode ser representado por [S][] = [L], ou seja, um sistema linear.

    Preciso da Aproximao e Estimativa de Erro

    O resultado do MEF uma funo que aproxima a funo procurada, utilizando o mtodo de

    Galerkin tomando um subespao Vh conforme descrito acima. O erro da aproximao uma

    funo definida pela diferena entre a soluo exata e a soluo aproximada:

    e(x) = u(x) uh(x) (2.18)onde:

    u(x): valor da funo u(real) calculada no ponto x;

    uh(x): valor da aproximao calculada no ponto x;

    12

  • 8/8/2019 Tese Edimar Cesar Rylo

    35/145

    Para analisar a qualidade da aproximao necessrio se mensurar essa funo erro, sendo o me

    natural para tal a utilizao de uma norma [6]. Para funes, uma norma um funcional associad

    funo, representado por ||f||, onde se l norma de f, que satisfaz um conjunto de axiomas,

    saber [36]:

    1. Uma norma sempre positiva: ||f|| 0;2. Se a funo f 0 ento: ||f|| = 0. Por outro lado, se a norma nula ento a funo igu

    a funo 0;

    3. Multiplicao por escalar: || f|| = || ||f||, R

    4. Desigualdade triangular: ||f + g|| ||f|| + ||g||

    Conforme [43], as trs principais normas utilizadas em anlises de elementos finitos a saber:

    Norma L2: ||f||2 =1

    0f2dx

    Norma infinito: ||f|| = max0x1

    |f(x)|

    Norma energia ||f||E=

    12

    B(f, f)

    Um fato importante para o uso do MEF a convergncia do mtodo. Ou seja, dado um problem

    inicial, sendo discretizado o domnio e definidas as condies de contorno, tem-se uma aproxima

    inicial e associda a essa um erro inicial. Refinando-se uniformemente a malha, ter-se- uma nov

    soluo e um novo erro. Repetindo-se esses procedimento, pode-se definir uma seqncia de err

    em funo da discretizao da malha. Conforme [43], tal seqncia tende para zero, uma vez qu

    a soluo aproximada tende para a soluo real, sendo mostrado que a estimativa da norma d

    erro pode ser colocada da seguinte forma:

    ||e|| Chp

    onde C uma constante que depende do problema analisado, h representa a dimenso d

    elemento adotado e p um inteiro que depende da base de funes escolhidas para a aproxima

    Dimenso e forma de um elemento

    Tanto dimenso como forma do elemento so parmetros que influenciam a aproximao. Entr

    tanto, para definir estes parmetros, devemos ter em mente que diversos tipos de elementos finit

    podem ser utilizados, sendo necessrio assim uma padronizao da nomenclatura utilizada. Aq

    ser adotada a definio dada em [1].

    Assim, define-se:

    13

  • 8/8/2019 Tese Edimar Cesar Rylo

    36/145

    hk = maxl{hl}, hl = supxi,xj k |xi xj|, sendo hl a mxima distncia entre os ns doelemento k, distncia esta tomada dois a dois. Desta forma este parmetro indica o dimetro

    do crculo circunscrito ao elemento;

    k: indica o dimetro de um crculo inscrito ao elemento k;

    k =hkk

    : ndice que indica a forma do elemento, definido como a regularidade do elemento

    k.

    2.1.2 Estimadores de Erro

    Para se estimar o erro tem-se duas possibilidades: uma o conhecimento prvio do comportamento

    do erro para uma determinada norma ou ainda, partindo-se do princpio de que quanto maior o

    enriquecimento de um espao de aproximaes, melhor ser o resultado.Assim, caso se compare o resultado obtido da utilizao de um espao de aproximao com

    parmetros h0 e p0, com aqueles obtidos atravs de um espao enriquecido hn-pn, onde hnh02 epnp0, poderamos calcular o erro entre as duas aproximaes sabendo que a ltima de melhorqualidade que a primeira.

    Os estimadores de erro podem ser divididos em dois grupos: a priori e a posteriori [1]. Os

    estimadores de erro do tipo a priori so baseados em estimativas, tais quais o valor da segunda

    derivada da funo procurada por exemplo. No caso de aplicaes de maior complexidade, onde o

    comportamento das funes analisadas no totalmente conhecido, o uso desse tipo de estimadorno adequado.

    Os estimadores de erro do tipo a posteriori tem sido desenvolvidos nas ltimas trs dcadas,

    tendo como primeiro trabalho de destaque [4], onde o estimador de erro baseia-se nas aproximaes

    da norma de energia do erro em cada elemento K da malha.

    O uso da formulao de energia complementar para a obteno a posteriori do erro foi feita

    por [13]. Entretanto, uma vez que seu mtodo era baseado no computo global da soluo, este

    tornava-se muito oneroso em termos de tempo de processamento. Este problema foi contornado

    por Ladevze e Leguillon [37] que realizaram os clculos baseados na energia complementar de

    cada elemento, alm do uso do conceito de dados de equilbrio de contorno.

    Diversos trabalhos foram feitos utilizando diversos tipos de estimadores de erro, destacando-se

    o de Zienkiewicz e Zhu [57], cujo estimador de erro, baseado na obteno da diferena entre o

    gradiente de uma soluo suavizada e o gradiente calculado originalmente, mostrou-se eficaz para

    aproximaes de ordem p = 1, tornando-o muito popular.

    2Ressalta-se que o parmetro h est relacionado a dimenso do elemento e assim, um parmetro h menor implicaem um domnio com maior discretizao

    14

  • 8/8/2019 Tese Edimar Cesar Rylo

    37/145

    Requisitos de Estimadores de Erros a posteriori

    Para analisar as caractersticas bsicas de estimadores de erro do tipo a posteriori, recorre-se

    formulao fraca do problema modelo, mostrado anteriormente na equao (2.5).

    Utilizando o subespao Vh tem-se:

    B(uh, vh) = L(vh) vh Vh (2.1

    Desta forma, conforme [1], a funo erro, apresentada em (2.18), pertence ao espao V e satisfa

    B(e, v) = B(u, v) B(uh, v) = L(v) B(uh, v) v V (2.2

    Ainda, dada a condio de ortogonalidade do erro para projees de Galerkin (ver [1]), tem-

    que:

    B(e, vh) = 0 vh Vh (2.2Levando-se em considerao as expresses (2.20) e (2.21), integrando-se a primeira por parte

    em cada elemento: K

    (ev)dK =K

    (rv)dK+

    K

    (vnk.e|k )dK (2.2

    sendo:

    e: funo erro procurada;

    v: funo teste ou peso;r: funo residual ou resduo r = f +u;nk: vetor normal face do elemento;k: elemento em anlise.

    Resolvendo esta equao, considerando condies de continuidade das funes e de suas int

    grais, teremos:

    e C1 rL2(k) + C2 RL2(k) (2.2

    onde:R nke,C1, C2: constantes que dependem da malha, principalmente do tamanho do elemento (hk);

    Ainda, definindo-se:

    k: como a estimativa de erro em cada elemento k.

    : como a estimativa de erro na malha de elementos finitos.

    15

  • 8/8/2019 Tese Edimar Cesar Rylo

    38/145

    A estimativa de erro na malha pode ser obtida atravs da seguinte expresso:

    =

    kP

    2k (2.24)

    onde P a partio adotada e k um determinado elemento da partio.

    Para que um estimador de erros seja utilizvel este deve respeitar a seguinte propriedade:

    C1 e C2 e (2.25)ou seja, a estimativa do erro deve convergir para zero mesma taxa que o erro real converge.

    A qualidade de um estimador de erros medida atravs do ndice de efetividade, dado pela

    relao:

    =

    e(2.26)

    2.1.3 Adaptatividade

    A adaptatividade um processo pelo qual se busca a melhoria da qualidade de uma aproximao

    por meio do enriquecimento do espao de aproximao. O enriquecimento do espao de aproxi-

    mao pode ser feito de diversos modos. Tradicionalmente os parmetros que so alterados para

    modificao do espao de aproximao so, conforme [23]:

    h: parmetro relacionado ao "tamanho" do elemento, sendo associado discretizao damalha;

    r: parmetro relacionado disposio dos ns dos elementos na malha;

    p: parmetro relacionado ordem dos polinmios, de cada elemento, utilizados como base

    para o espao Vh.

    O refinamento h consiste na reduo do tamanho dos elementos componentes da malha, enquanto o

    refinamento p consiste na elevao da ordem dos polinmios da base de funes teste. O refinamento

    hp, objeto deste trabalho, consiste no refinamento destes dois parmetros para a mesma malha.

    No ser tratado do refinamento r neste trabalho. O refinamento r consiste no posicionamento

    timo dos ns que definem a malha de elementos finitos.

    Uma outra possibilidade de adaptao da malha que est sendo estudada no grupo de pesquisa

    a mudana do tipo de espao de aproximao em cada elemento, podendo se utilizar formulaes

    contnuas ou descontnuas. Tal forma no ser utilizada nesse trabalho.

    16

  • 8/8/2019 Tese Edimar Cesar Rylo

    39/145

    2.1.4 Auto - Adaptatividade

    A busca de formas de melhoria do espao de aproximaes de maneira automtica est ligada

    obteno de um parmetro que indique uma forma de enriquecimento do espao de interpola

    que melhore a qualidade da soluo. O parmetro que indica a qualidade da aproximao

    norma do erro. Entretanto, o erro real s pode ser obtido quando se tem o conhecimento prvio d

    soluo do problema o que no o caso prtico, sendo assim necessria uma estimativa de erro.

    obteno desta estimativa de erro , de certo modo, o cerne de qualquer mtodo auto-adaptativ

    Atualmente existem diversos estimadores de erro disponveis na literatura conforme citado p

    Zienkiewicz em [55].

    Os mtodos hp adaptativos so os esquemas mais eficientes de refinamento para um grand

    conjunto de problemas. Entretanto, a definio de quais elementos refinar e com qual padro d

    refinamento so duas incgnitas a mais quando se pretende usar esse mtodo.

    A definio de quais elementos refinar um problema que resolvido atravs do uso de algum

    medidor de erros, quer ele seja um indicador3 ou um estimador de erros. J a definio do padrde refinamento a ser utilizado h, p ou hp uma questo que depende do problema de valor d

    contorno em questo. O problema a ser resolvido nesse caso como minimizar o erro inserindo

    menor nmero de graus de liberdade / equaes.

    A criao de um problema de elementos finitos, hp adaptativo em paralelo no algo simple

    Para exemplificar o grau de complexidade de tal problema pode-se citar o projeto Modern Indu

    trial Simulation Tools desenvolvido no Sandia Labs. [54] onde um projeto desse tipo foi cancelad

    devido ao trmino dos recursos e tambm por limitaes de programao.

    O ponto que se destaca aqui que quando se quer definir quais so os problemas tecnolgicorelacionados ao tema adaptatividade em paralelo, alm das questes dos problemas hp adaptat

    vos, outras questes relacionadas ao processamento paralelo, tais como balanceamento de carga

    minimizao de comunicao, so acrescidas ao problema e nesse ponto que se pode verificar

    diversificao do tema e, dessa forma, uma grande diversidade de abordagens para o tema.

    2.1.5 Abordagens de Implementao de Mtodos Auto-adaptativos Ut

    lizando Paralelismo

    Mtodos hp

    Patra [46] define como grande dificuldade da adaptatividade hp em paralelo a definio da estrutu

    de dados e a comunicao. Assim, formas de definio do particionamento inicial da malha e d

    como manter o balanceamento de carga nos processadores aproximadamente iguais so as principa

    contribuies dos trabalhos desse autor.

    3Um indicador de erros um medidor no qual no h prova matemtica de que esse indicador converge paraerro real a medida que o espao de aproximao aumentado.

    17

  • 8/8/2019 Tese Edimar Cesar Rylo

    40/145

    Demkowicz [45, 44], inicialmente apresentou um cdigo auto adaptativo para malhas bidi-

    mensionais e posteriormente o cdigo hp adaptativo para malhas tridimensionais compostas por

    hexaedros. Ambos trabalhos partiram de um cdigo serial existente. Durante o desenvolvimento

    do cdigo para malhas 2D, dados os requisitos de comunicao, as modificaes na estrutura de

    dados aumentaram de tal forma que uma nova estrutura de dados foi proposta, sendo aproveitado

    da implementao original os algoritmos. Tal abordagem serviu de base para o desenvolvimentodo cdigo tridimensional.

    Mtodos h e Galerkin Descontnuo

    Remacle [48] prope uma forma de definio de uma malha em um ambiente paralelo, ou seja,

    mostra uma abordagem para a definio de uma estrutura de dados contemplando o caso de

    memria distribuda. A idia proposta na biblioteca AOMD a definio de vizinhanas atravs

    de vrtices, onde os vrtices tem uma numerao nica nos diferentes processadores. A consistncia

    da malha durante os refinamentos ( apenas h) feita atravs do refinamento do elemento, com acriao de vrtices em todos os domnios onde existam cpias dos vrtices do elemento refinado.

    Dessa forma, pode-se identificar como ponto de interesse no trabalho desse autor a forma de

    comunicao da necessidade de criao de um determinado vrtice em um determinado domnio.

    A comunicao feita exclusivamente pelos elementos de interface entre os subdomnios, de modo

    que alteraes em suas estruturas de dados so propagadas para suas cpias remotas.

    Flaherty, Loy, Shephard e Teresco [26] mostram uma abordagem de adaptatividade em paralelo

    para o mtodo de Galerkin Descontnuo. Tal mtodo captura de maneira eficiente descontinuida-

    des tendo pequena necessidade de comunicao, uma vez que cada interface s precisa conhecer

    os dois elementos que contribuem para o clculo de seu fluxo. Destaca-se nesse trabalho o fato

    de que os elementos divididos, por necessidade de balanceamento de carga, podem migrar para

    outros processadores. Entretanto, em caso de necessidade de aglomerao, todos os filhos devem

    ser migrados para o mesmo processador para se proceder a aglomerao. Dessa forma, h a neces-

    sidade de reconstruo de partes das malhas que contm elementos filhos a aglomerar. Flaherty

    e Teresco [27] mostram especial interesse no problema de balanceamento de carga causado pela

    adaptatividade nesse artigo, abordando inclusive questes relacionadas a redes heterogneas, ou

    seja, redes compostas por mquinas com caractersticas de processamento diferentes.

    Narula [40] apresenta a biblioteca CHARM++, um ambiente para paralelizao de adaptaode malhas. O cdigo proposto apresenta uma abordagem para aproximaes por diferenas finitas.

    A proposio dessa biblioteca, em termos de implementao a utilizao de mensagens4 para a

    comunicao, onde, quando em uma arquitetura com memria distribuda, a mensagem inserida

    como contedo de um socket, para a sua transmisso para um processador outro que no o seu

    4Uma mensagem consiste em uma estrutura de dados representando um objeto encapsulada sob a forma de umvetor de bytes. De maneira geral, um objeto que necessite ser comunicado por meio de mensagens precisa sabercomo se escrever e, posteriormente, como se ler (pack/unpack).

    18

  • 8/8/2019 Tese Edimar Cesar Rylo

    41/145

    processador corrente. As vantagens e desvantagens dessa abordagem em relao a pacotes de par

    lelizao tradicionais so discutidas na seo relativa a Paralelismo. Em termos de adaptatividad

    os padres de adaptao so restritos a diviso uniforme de linhas, quadrilteros e hexaedros.

    algoritmo proposto para adaptao impe um nvel de refinamento como mxima diferena ent

    nveis de refinamento de elementos vizinhos.

    2.2 Aspectos Relacionados Cincia da Computao

    O desenvolvimento de um projeto como o aqui proposto envolve a existncia e o domnio d

    diversas ferramentas computacionais. Aqui se opta pela utilizao de ferramentas GNU (ver GN

    http://www.gnu.org), de cdigo livre, de modo a no atrelar o desenvolvimento obten

    de licenas e autorizaes de terceiros. Da mesma forma, o cdigo gerado tambm dever s

    disponibilizado sob licena GNU.

    Assim, o sistema operacional a utilizar o Linux, os compiladores GNU-gcc, editores L

    tex (Lyx Lyx http://www.lyx.org e o software de visualizao de resultados Open DX D

    http://www.opendx.org, todos de domnio pblico e com documentao disponvel para estud

    Os cdigos gerados tero documentao escrita em padro JavaDoc, de tal forma que gerad

    res automticos de documentao (e.g. Doxygen Doxygen http://www.doxygen.org) possam s

    utilizados. Em termos de interface de desenvolvimento, prope-se a utilizao do ambiente KD

    velop (Kdevelop http://www.kdevelop.org), cujo gerenciamento de projetos orientado a objet

    (atravs de Makefiles) facilitado.

    Alm dos softwares acima descritos, h a necessidade de gerenciamento de um grande n

    mero de tecnologias, em sua maioria de grande complexidade, assim, opta-se pela utilizao d

    uma linguagem orientada a objetos de modo a tornar possvel a utilizao de todo o ambiente j

    desenvolvido pelo grupo de pesquisa no qual o projeto est inserido.

    A descrio dos cdigos a gerar utilizar-se- da combinao de documentos descritivos, diagr

    mas e da linguagem de modelagem unificada - UML. De modo a organizar os cdigos implemen

    tados, ser utilizado um servio de controle de verso (CVS) para o armazenamento dos cdigo

    gerados.

    Outra tecnologia abaixo descrita essencial ao desenvolvimento do projeto um sistema d

    controle de log, no qual foi utilizado o Log4cxx (Log4cxx http://logging.apache.org/) sem

    qual a depurao de cdigos distribudos torna-se invivel.

    Abaixo faz-se uma breve descrio da filosofia de orientao por objetos, da linguagem UM

    e dos sistemas de log, uma vez que a utilizao desses imprescindvel ao desenvolvimento aq

    proposto.

    19

  • 8/8/2019 Tese Edimar Cesar Rylo

    42/145

    2.2.1 Programao Orientada a Objetos

    As linguagens de programao consistem de uma sintaxe que um determinado compilador capaz

    de transformar em um conjunto de instrues de mquina. Em geral, as diversas linguagens de

    programao implementam um conjunto de normas sintticas similares (instrues para laos,

    verificaes lgicas etc). At os anos 80, quando do aparecimento do SMALLTALK [29, 35, 34],

    as linguagens de programao dominantes baseavam-se na programao procedural, que consistia

    de cdigo seqencial. O SMALLTALK inseriu o conceito de Orientao a Objetos (OO).

    A filosofia de OO difere da programao procedural, comum em outros tipos de linguagens cien-

    tficas tal como Pascal, por seu comportamento no ser ditado pela seqncia do cdigo e sim pelo

    comportamento dos objetos componentes do programa. As principais vantagens da programao

    orientada a objetos esto relacionadas ao gerenciamento do cdigo e sua potencial reutilizao.

    A definio clssica de OO apresenta como caractersticas dessa abordagem os seguintes

    pontos:

    Encapsulamento: consiste em cada objeto apresentar uma srie de dados e funes, cujo

    acesso controlado, sendo somente permitido a cada objeto o acesso aos dados e funes

    pblicas. Desse modo, o acesso e a modificao dos dados do objeto podem ser controlados,

    restritos a determinadas funes, tornando assim o gerenciamento dos dados mais seguro.

    Esse controle de acesso o diferencial em relao aos conceitos existentes em programao

    procedural, tais como os struct em C e os common blocks em Fortran;

    herana / derivao: O conceito principal aqui envolvido o conceito de especializao por

    meio de herana. Permite-se que sejam criadas classes derivadas de outras j existentes,tendo as classes derivadas a herana de todas as caractersticas da classe me, podendo

    ser implementados apenas os novos mtodos especficos da classe e podendo ser reimple-

    mentados (sobrecarga) os mtodos cujo comportamento na classe derivada diferente do

    comportamento previsto na classe me. Em termos de mtodos numricos, um bom exemplo

    de derivao o conceito de matriz. Toda e qualquer matriz tem alguns dados bsicos que

    so suas dimenses e dados, j a forma de armazenar a matriz pode variar, desde o arma-

    zenamento esparso onde no so armazenados valores nulos at matriz cheia passando pelo

    armazenamento em banda. Em termos de OO, os dados bsicos de uma matriz podem ser

    definidos na classe me, os requisitos especficos de cada armazenamento podem ser definidosnas classes derivadas.

    polimorfismo: esse conceito uma extenso do conceito de sobrecarga de funes. O con-

    ceito de sobrecarga implica que diversos mtodos com parmetros distintos mas com mesma

    nomenclatura so distinguidos pelo compilador em funo do contexto em que sejam uti-

    lizados, dessa forma a definio de um mtodo no dada apenas pelo seu nome, ms sim

    pelo conjunto de nome mais parmetros mais retorno. O polimorfismo uma extenso desse

    20

  • 8/8/2019 Tese Edimar Cesar Rylo

    43/145

    conceito, onde se pode definir mtodos com nomes e parmetros idnticos aos da classe

    me, sendo utilizada a funo relativa ao tipo de objeto quando da chamada (i.e. obje

    me acessa o mtodo da classe me e objeto filho acessa o mtodo definido na classe filha

    template: o conceito de template relativamente recente na linguagem de programao C++

    Os templates implementam um conceito similar ao da derivao, sem o contraponto de aces mtodos por meio de tabelas virtuais, o que torna a implementao com templates ma

    eficiente em termos de performance.

    A opo pela utilizao da filosofia de OO se deve ao fato da biblioteca de elementos finitos (PZ

    bem como o ambiente de paralelizao (OOPar) ser desenvolvidos em linguagem C++, utilizand

    se de OO.

    2.2.2 UML - Unified Modeling Language

    A UML consiste da tentativa de criar uma linguagem para modelar um cdigo computacion

    desde o seu planejamento at a sua execuo. Em termos de documentao a UML pode ser vist

    como uma extenso dos fluxogramas, que so representativos para cdigos procedurais mas pode

    no representar bem um cdigo orientado a objetos.

    Segundo [28] a UML surgiu atravs de um projeto da Rational Corporation que desenvolve

    e unificou mtodos de especificao e projeto de software OO, tendo sido aprovada pela OMG

    Object Management Group em 1997.

    A seqncia de implementao por meio dessa linguagem consistem em descrever (documentao comportamento das diversas partes do cdigo que se deseja produzir, partindo dos nveis ma

    altos de abstrao, onde so descritos comportamentos globais desejados, passando pela especifi

    cao dos tipos de objetos necessrios gerar para se ter o comportamento anteriormente propost

    Cada objeto especificado tem ento descritas suas interfaces externas (pblicas) e internas (pr

    tegidas ou privadas), sendo essas interfaces responsveis por implementar os algoritmos base d

    cdigo.

    As principais vantagens na utilizao da linguagem UML diz respeito aos seguintes aspectos

    independe da linguagem de programao a utilizar;

    todo o cdigo pode ser planejado atravs de uma srie de diagramas que podem descrev

    o comportamento global de um cdigo, os comportamentos de objetos e a implementa

    de mtodos propriamente ditos. Conjuntamente a descrio do comportamento do cdig

    podem ser gerados casos de uso que em termos de implementao consistem em possve

    testes de validao;

    21

  • 8/8/2019 Tese Edimar Cesar Rylo

    44/145

    induz ao desenvolvimento da documentao previamente implementao do cdigo, o que

    em grande parte dos casos conduz identificao de problemas e inconsistncias do cdigo

    antes que estes ocorram;

    os diagramas UML representam o comportamento de programas orientados a objetos de

    melhor maneira que os fluxogramas tradicionais.

    2.2.3 Logging

    A insero de logs em um cdigo considerada uma forma antiquada de depurao, entretanto em

    alguns casos, como no caso de computao paralela ou da depurao de cdigos adaptativos, onde

    os problemas podem surgir no ensimo passo de refinamento, uma das poucas formas de se obter

    a informao necessria para o entendimento e correo de falhas.

    Programas multithread e em memria distribuda representam um desafio no aspecto relaci-

    onado a depurao, uma vez que no h mais um cdigo onde as operaes so seqenciais ecujos depuradores tradicionais (e.g. gdb, ddd etc) tratam de maneira satisfatria [31]. Tcnicas

    tradicionais tais como imprimir informaes relativas ao cdigo em tela ou em arquivo no so

    totalmente eficazes pelos seguintes aspectos:

    1. Funes I/O (entrada e sada) tem um tempo de execuo considervel, uma vez que h a

    necessidade de se transporta a informao da memria cache do processador at o dispositivo

    em questo (console, disco etc). Durante esse transporte se tem como restrio as velocidades

    de barramentos, a velocidade de escrita no dispositivo bem como a latncia requerida pelo

    processo [8];

    2. O tempo de execuo de uma chamada I/O pode alterar a ordem de execuo do cdigo, e

    com isso alterar os resultados do cdigo [8]. Para exemplificar isso, consideremos apenas duas

    instrues que esto em threads independentes: A e B. Sem chamadas I/O, suponha que a

    instruo A foi iniciada antes de B e termine antes de que B seja iniciada. Ao colocar uma

    chamada I/O em A, pode ocorrer que B seja iniciada antes de que A tenha sido finalizada.

    Caso A modifique informaes que sero utilizadas por B, a estrutura de dados manipuladas

    por B com e sem as instrues de I/O em A so diferentes e por conseqncia seus resultados

    tambm o sero [25];

    3. Em termos de programas em memria distribuda, h uma grande dificuldade em sincronizar

    informaes de sada em processadores distintos e dessa forma, torna-se difcil a compreenso

    do estado global da estrutura de dados em cada momento [31].

    De modo a tornar exeqvel a depurao de cdigos paralelos, h a necessidade da utilizao logs

    estruturados, de tal forma que seja possvel se identificar o estado da estrutura de dados e a

    22

  • 8/8/2019 Tese Edimar Cesar Rylo

    45/145

    seqncia de instrues que est sendo executada. Tal tarefa implica em planejamento de on

    inserir as sadas de log e como gerenciar a informao produzida.

    De maneira geral, desejvel algumas funcionalidades em uma ferramenta de log, conform

    descrito em [31], a saber:

    1. Possibilidade de implementao de nveis de informao: ou seja desde dados informativosobre a seqncia de informaes, mensagens de inconsistncia de dados at a deteco d

    erros;

    2. Tempo de execuo e em qual processo (thread) est se gerando a informao;

    3. Em caso de erros, em que arquivo e linha foi detectada a inconsistncia;

    4. Rastreamento de processos (Tracing);

    5. Gerenciamento nico dos logs produzidos, ou seja todos as informaes geradas nos diversprocessadores gerem as sadas de resultados em um nico ponto.

    A ferramenta que se prope utilizar para tal finalidade o Log4cxx (Log4cxx http://logging

    apache.org/log4j/docs/index.html) biblioteca em linguagem C++ parte do projeto Log4j d

    Apache Software Foundation. As principais caractersticas dessa ferramenta so: configurao d

    destino do log (console, arquivo, log de sistema ou socket ). Configurao de formato de log (tex

    simples, html ou xml). Hierarquia de logs (do nvel mais alto para o mais baixo: FATAL, ERROR

    WARNING, INFORMATION e DEBUG). Filtros de seleo de logs (por nvel, por intervalos d

    nvel e por verificao de strings). Outro aspecto interessante na utilizao dessa ferramenta qu

    todas as configuraes de sada so fornecidas por meio de um arquivo de configurao externo a

    executvel, ou seja no h necessidade de recompilar o cdigo caso se queira um logmais detalhad

    de uma determinada funo. Em termos de performance, o custo requerido para a verificao d

    necessidade de log documentada, podendo assim ser medida em termos de performance total d

    cdigo.

    Essa ferramenta est, atualmente, sendo inserida tanto no ambiente PZ como no projeto OOPa

    tendo sido realizados testes para a verificao do envio de logsem modo remoto, sendo os resultad

    apresentados satisfatrios.

    2.2.4 Conceitos de memria relacionados ao processamento

    A eficincia de transferncia de dados da memria para o processador, bem como o gerenciamen

    de memria so temas de muitas pesquisas. Isso justificado pela performance de um cdigo s

    medida com base na relao entre o nmero de operaes de ponto flutuante por segundo realizad

    e tal nmero depender diretamente da disponibilidade do dado a ser utilizado pelo processador.

    23

  • 8/8/2019 Tese Edimar Cesar Rylo

    46/145

    O fato que a velocidade de acesso memria cresceu em velocidades muito menores que

    as velocidades de processamento nos ltimos anos (ver [25]) o que torna esse tpico ainda mais

    importante para problemas de clculo numrico.

    Quando se fala de aqui de memria, deve-se ter em mente que a memria de grande parte dos

    computadores composta por uma fila de sistemas de armazenamento, onde a velocidade de acesso

    memria varia em cada um desses trechos em funo de aspectos tecnolgicos. Para exemplificar,[25] coloca os dados relativos a um computador DEC 21164 Alpha:

    1. Registro de processamento: velocidade de acesso 2ns

    2. Memria Cache L1 on chip: velocidade de acesso 4ns

    3. Memria Cache L2 on chip: velocidade de acesso 5ns

    4. Memria Cache L3 off chip: velocidade de acesso 30ns

    5. Memria principal: velocidade de acesso 220ns

    O preenchimento de cada nvel de memria feito em ciclos, onde em cada ciclo so realizadas

    dois tipos bsicos de operao: preenchimento das pilhas de memria e execuo das operaes

    do cdigo compilado. Caso o cdigo necessite de um dado que no est no registro um ciclo de

    processamento perdido (no realizado o clculo) para que o processador obtenha o dado na

    memria heap que pode ser a memria RAM ou memria virtual (disco rgido).

    2.2.5 Paralelismo

    O conceito bsico por traz do paralelismo o conceito de diviso, a qual pode ser de dados, de

    tarefas ou ambas. Um cdigo paralelo pode ter como objetivo acelerar o tempo de resposta ou a

    diviso de uma estrutura de dados que no seria possvel processar em um nico computador [25].

    A diviso de dados utilizada quando a estrutura de dados do problema global no pode ser

    armazenada em um nico computador (n). O foco da resoluo desse tipo de problema a forma

    de dividir (particionar) o problema de modo a se obter a soluo em menor tempo.O problema tpico de diviso de tarefas consiste de uma estrutura de dados, no muito grande,

    que pode ficar residente em um nico computador. Os clculos so em geral seqencias de operaes

    pr-determinadas. Problemas de otimizao com diversas variveis, onde no se tem informao

    sobre a sensibilidade do problema a cada varivel, tem como possvel abordagem a variao das

    diversas variveis de modo a se ter uma resposta. O problema que h a necessidade do clculo de

    uma soluo para cada combinao de variveis. Nesse caso cada combinao pode ser processada

    em um n.

    24

  • 8/8/2019 Tese Edimar Cesar Rylo

    47/145

    Arquitetura do computador

    Como descrito anteriormente, existem diversos tipos de problemas e solues para clculos e

    paralelo. Em termos de implementao, o fator preponderante a arquitetura do computad

    paralelo, pois o ganho de performance, em relao a um cdigo serial, est ligado ao conhecimen

    de tal arquitetura.

    Em termos de arquiteturas paralelas, os principais modelos de arquitetura, conforme [25], s

    memria compartilhada: so os computadores com mais de um processador (n), onde est

    processadores tem acesso ao mesmo banco de memria. A abordagem de programao pa

    este tipo de arquitetura a programao multithreading. A grande vantagem desse tipo d

    equipamento a facilidade de programao, uma vez que no h problemas de minimiza

    de comunicao. A desvantagem desse tipo de arquitetura que o nmero de processador

    limitado e tambm o elevado custo dessas mquinas;

    memria distribuda: so computadores com diversos processadores, onde cada processadtem o seu prprio banco de memria. Os processadores so interligados internamente p

    meio de interfaces de comunicao de alto desempenho, aumentando a velocidade de trfe

    de dados internamente [25]. A abordagem de programao para esse tipo de arquitetu

    a de implementao com o uso de sockets. A desvantagem desse equipamento que

    desenvolvimento de programas tem um acrscimo de complexidade, em funo da necess

    dade de gerenciamento dos diversos espaos de memria, bem como da comunicao ent

    processadores;

    maciamente paralelos: consiste de uma arquitetura com memria distribuda, entretanta diferena para um computador com memria distribuda que todos os processador

    recebem a mesma seqencia de instrues. Por se tratar de uma arquitetura para fins e

    pecficos, torna-se difcil o desenvolvimento de aplicaes diversas quelas destinadas a es

    tipo de equipamento. Como nosso caso no engloba tais aplicaes e no se tem disponv

    tal tipo de equipamento esse no ser doravante considerado.

    Nesse projeto ser utilizado nas etapas de desenvolvimento um cluster o qual consiste de u

    conjunto de computadores interligados por meio de uma rede (ETHERNET, GIGABIT, MYR

    NET etc), formando um meta computador distribudo. O cluster que ser utilizado no proje

    consiste de 24 computadores (ns), sendo cada computador biprocessado, podendo ao longo d

    projeto os processadores ser atualizados para processadores do tipo dual core, tornando-se ent

    cada n quadriprocessado. Os ns esto interligados por meio de uma rede GIGABIT.

    Arquitetura de cdigo

    A obteno de uma melhor performance tem como contrapartida o aumento da complexidade d

    implementao, uma vez que um cdigo paralelo necessita ter implementadas rotinas de gere

    25

  • 8/8/2019 Tese Edimar Cesar Rylo

    48/145

    ciamento. Para evitar que essa complexidade seja aumentada de tal modo que o gerenciamento

    comprometa a performance, h a necessidade de se levar em conta a granularidade: a granularidade

    mais fina quanto menor o nmero de operaes desempenhadas entre os ciclos de comunicao

    [9].

    Uma granularidade fina facilita o balanceamento de carga dos processadores entretanto, re-

    quer uma maior quantidade de comunicao. Por outro lado, uma granularidade alta tem baixacomunicao tendo como contrapartida a dificuldade no gerenciamento do balanceamento de carga

    [9].

    Arquitetura de cdigo para memria compartilhada

    A discusso sobre sistemas paralelos em computadores de memria compartilhada passa pela de-

    finio dos conceitos de processo e pelo conceito de thread. Um processo inicia-se como um

    processo sendo executado em um thread nico, podendo ou no gerar outros threads durante sua

    execuo. O ponto de diferena diz respeito ao espao de memria disponvel durante a execu-o. Um processo pode acessar apenas o seu prprio espao de memria enquanto um thread

    pode acessar o espao de memria do processo que o criou e o seu prprio espao. O problema

    gerado pela programao utilizando multiprocessamento justamente que qualquer thread pode

    acessar a memria heap, onde so armazenadas as variveis estticas do programa, gerando as-

    sim um problema de gerenciamento de dados, de modo a evitar que threads modifiquem dados

    simultaneamente.

    Com a distino desses conceitos, em funo de como feito o gerenciamento de memria,

    pode-se caracterizar aplicativos que se utilizam de memria compartilhada em um dos seguintes

    tipos[25]:

    suporte ao multi-processamento atravs de paralelizao automtica: os modernos sistemas

    operacionais tais como os da famlia Windows, distribuies Linux e UNIX so sistemas mul-

    titarefa. Um sistema multitarefa no requer a existncia de mais de um processador para

    poder executar vrios aplicativos simultaneamente. O que ocorre que esses sistemas tem

    meios de gerenciar a troca de processos no sistema a cada intervalo de tempo fixo ou a cada

    sinal de interrupo ou operao de acesso a algum dispositivo. Em geral cada processo tem

    associado algum nvel de prioridade de modo a tornar possvel o gerenciamento do tempode CPU entre os processos. Mesmo quando o computador tem apenas um processador im-

    portante se ter funcionalidades de multiprocessamento. O melhor exemplo de requisitos de

    multiprocessamento ocorre no caso de comunicao sncrona. Caso ocorra problema de comu-

    nicao, a chamada para a conexo vai ocupar o sistema at que o tempo limite de conexo.

    J em sistema multiprocessado, apenas o cdigo de requisio permaneceria aguardando.

    Existem compiladores que, em se tendo disponibilidade de multiprocessamento, geram cdi-

    gos multithread, notadamente atravs de tcnicas de unrolling. Um exemplo desse tipo de

    26

  • 8/8/2019 Tese Edimar Cesar Rylo

    49/145

    compilador o Open MP http://www.openmp.org/;

    suporte ao multi-processamento por meio de programao multithread: no caso de comput

    dores multiprocessados, a programao de threads pode gerar um aumento de performanc

    O exemplo mais fcil de ser visualizado a diviso de trechos de loops pelo nmero d

    processadores disponveis. O aumento de performance depende da estratgia utilizada pe

    programador. A programao multithreading implica em alguns requisitos a mais duran

    o planejamento de implementao, de modo a evitar threads concorrentes ao mesmo dad

    evitando assim necessidade de locks e signals e tambm cuidado especial na identifica

    dos pontos de sincronizao.

    Arquitetura de cdigo para memria distribuda - Message Passing

    As bibliotecas de message passing implementam a comunicao entre computadores por meio d

    troca de mensagens. So implementadas as seguintes rotinas:

    rotinas de gerenciamento de processos, incio, trmino identificao de um processo etc;

    rotinas de comunicao point to point;

    rotinas de comunicao de grupos (broadcast).

    A principal vantagem no uso dessas bibliotecas est na utilizao de um nvel mais alto de pr

    gramao. Os nveis mais baixos de programao de troca de mensagens tem de levar em conta

    forma de empacotamento de tipos, uma vez que a forma de interpretao para um determinad

    tipo pode ser diferente de um mquina para outra (sistemas operacionais e arquiteturas diferentpodem ter formas de representao de inteiros, nmeros de ponto flutuante etc). Outro aspecto

    ser destacado o do tipo de protocolo utilizado em cada tipo de comunicao. Protocolos espec

    cos so criados de modo que a verificao da consistncia de dados transmitidos seja feita de um

    maneira indireta, evitando o trfego excessivo de mensagens de recebimento de dados.

    2.2.6 MPI - Message Passing Interface

    O MPI um padro de implementao de message passing definido de modo a tornar-se portv

    entre diversas plataformas [51, 30], principalmente de memria distribuda. No MPI a implemetao do paralelismo explcita, sendo o programador responsvel pela identificao dos pont

    de paralelismo, notadamente transmisso e recebimento de dados, bem como sincronismo.

    A biblioteca MPI definida para comunicao no projeto a MPICH2 http://www.mcs.anl

    gov/research/projects/mpich2/, verso de implementao do padro MPI de domnio pblic

    As funes de interesse na implementao do MPI para esse trabalho so:

    MPI_INIT: inicializa o ambiente, sincronizando os processos;

    27

  • 8/8/2019 Tese Edimar Cesar Rylo

    50/145

    MPI_COMM_RANK: retorna o identificador de cada processo. Atravs desse parmetro

    podem ser mapeados os processadores da rede;

    MPI_COMM_SIZE: retorna o nmero total de processos de um determinado grupo;

    MPI_SEND: rotina para envio de mensagens do tipo blocking send, ou seja a rotina s retornaaps o trmino da transmisso do dado ou algum tipo de erro ser identificado. As mensagens

    consistem de um envelope e de um contedo. O envelope contm as informaes de destino,

    um rtulo para a mensagem e um campo para identificao do tipo de erro caso esse ocorra.

    O contedo consiste de um buffer com tamanho identificado e de um identificador para o

    tipo de dado que est sendo transmitido.

    MPI_RECV: rotina para o recebimento de mensagens, sendo do tipo blocking receive, ou

    seja a rotina s retorna aps o final do recebimento do dado. Da mesma forma que para a

    funo de envio, essa funo tem basicamente dois argumentos, um contedo e um envelope.As informaes de envelope dizem respeito ao identificador do processo que enviou a men-

    sagem, um rtulo para a mensagem e uma varivel para definio do tipo de erro, caso este

    ocorra. Para o recebimento do contedo, informado um buffer de destino cuja dimenso

    a dimenso informada na mensagem.

    MPI_FINALIZE: finaliza o processo de maneira organizada, sincronizando todos os processos

    para a finalizao.

    2.2.7 Serializao de Dados

    A habilidade de armazenar um objeto sob a forma de um vetor de bytes que pode ser transmitido

    ou armazenado sob alguma forma e posteriormente reconstitudo sob a forma do objeto novamente

    um aspecto essencial em diversas aplicaes [41]. Ao processo de converter um objeto em um

    vetor de bytes denominado serializao, enquanto a reconstruo de um objeto a partir de um

    vetor de dados denominado deserializao [41].

    Os tipos de dados que podem ser enviados por meio de uma mensagem MPI so os tipos

    primitivos (int, long, double, char, etc) que tem definida sua forma de serializao. Assim, qualquerobjeto definido pelo usurio, para ser transmitido por meio do MPI precisa ser convertido em um

    vetor de bytes de objetos primitivos e identificados de maneira nica, de tal modo que ao ser

    recebido por outro processador, com base no identificador do dado seja possvel restaurar o objeto

    inicial.

    A linguagem Java, Java http://www.sun.com/java/, implementa de modo nativo classes para

    serializao e deserializao de objetos primitivos (inteiros, reais, caracteres etc) e tal implemen-

    tao que foi tomada por base para a implementao utilizada nesse trabalho.

    28

  • 8/8/2019 Tese Edimar Cesar Rylo

    51/145

    A deserializao representa um problema, pois no momento de restaurar um objeto a part

    do vetor de bytes no se tem informao de que tipo de objeto est ali serializando. Assim h

    necessidade de se gerar algo como um protocolo de comunicao, onde as primeiras informae

    do vetor de bytes so utilizadas justamente para identificar o objeto que ali est representad

    Adicionalmente, ao final do vetor pode-se colocar alguma informao extra, tal como o tamanh

    dos dados ou novamente o tipo do objeto, de modo a identificar possveis inconsistncias de dadoEm termos de orientao a objetos, a implementao do protocolo de serializao feito ut

    lizando uma classe base que implementa dentre outros aspectos o cabealho de identificao d

    objeto. Desse modo, as classes derivadas precisam implementar apenas a serializao de se

    dados, sem se preocupar com o cabealho da mensagem (protocolo).

    Adicionalmente, h a necessidade de se informar ao mtodo responsvel pelo recebimento d

    mensagens sobre a relao entre identificadores passados nos streams e classes. Tal relao de

    ser nica. No caso da implementao aqui proposta tal informao feito por meio da criao d

    um objeto esttico que no seu construtor faz o registro de duas informaes: identificador e nomda classe.

    2.2.8 Performance

    A performance