Upload
edimar-rylo
View
228
Download
0
Embed Size (px)
Citation preview
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