Você está na página 1de 150

G

M
C
P
A
D

Computao Cientfica Paralela:
uma introduo
Rogrio Luis Rizzi
Ricardo Vargas Dorneles
Delcino Picinin Jnior
Andr Luis Martinotto
Orientador: Prof. Tiaraj Asmuz Diverio

PPGC - Programa de Ps-Graduao em Computao
G
M
C
P
A
D

Sumrio
01: Introduo
02: Computao cientfica paralela
03: Ambiente computacional
04: Modelos matemticos
05: Equaes diferenciais parciais
06: Malhas numricas
07: Particionamento de grafos
08: Balanceamento de carga
09: Mtodos de discretizao
10: Esquemas numricos
11: Sistemas de equaes
12: Pr-condicionamento
13: Soluo paralela: decomposio de dados e de domnio
14: Estruturas de dados
15: Pacotes para soluo paralela de SE

G
M
C
P
A
D

Introduo
G
M
C
P
A
D

Introduo
Motivao:
Discutir algumas das etapas envolvidas com o
efetivo desenvolvimento de aplicaes paralelas,
sob o escopo de Computao Cientifica Paralela;

Simulaes cientficas e de engenharia necessitam
a soluo de sistemas de equaes (SE) esparsas
e de grande porte;
Esses SE surgem das discretizao das EDPs e/ou
EIs que descrevem o comportamento de sistemas
ou fenmenos complexos;
Solues acuradas necessitam do clculo de
milhes de variveis a cada passo de tempo .
G
M
C
P
A
D

Introduo
Justificativa:
Necessidade de desenvolver a tecnologia e a
cincia no pas.




Cobalt
60
um software de computao paralela
desenvolvido em Fortran90 com MPI para malhas
no estruturadas baseado em decomposio de
domnios, empregado no desenvolvimento de
tecnologia aeronutica americana.


G
M
C
P
A
D

Introduo
Cobalt
60
FEFLO:CHSSI

G
M
C
P
A
D

Computao Cientfica Paralela
Parallel Scientific Computing
G
M
C
P
A
D

Computao Cientfica Paralela
O que Computao Cientfica ?
Projeto e analise de algoritmos para a soluo de
problemas em cincias e engenharia [Michael T.
Heath2001].

E Computao Cientfica Paralela o que ?
Projeto e anlise de algoritmos para a soluo de
problemas em cincias e engenharia adotando
tcnicas de paralelismo, para que esses algoritmos
possam ser executados em mquinas paralelas. Essa
abordagem visa a obteno de resultados de maneira
mais rpida, os quais nem sempre poderiam ser
obtidos seqencialmente.

G
M
C
P
A
D

Computao Cientfica Paralela
Computao Cientfica uma rea que pode ser
considerada como tendo um trip baseado em:

Algoritmos matemticos;
Arquitetura e ambiente de programao paralela;
Aplicaes cientficas e de engenharia;

Aplicaes:
Anlise estrutural e Engenharia Mecnica;
Modelagem climtica e ocenica;
Economia e finanas;
Dinmica de fluidos computacionais;
Modelagem de reservatrios.
petrleo, gas ...
G
M
C
P
A
D

Ambiente Computacional (Cluster)
G
M
C
P
A
D

Ambiente Computacional (Cluster)
O ambiente de programao que atualmente
tem recebido ateno so os clusters;
Clusters so agregados de mquinas
independentes interconectados atravs de
uma rede;
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Os clusters podem ser classificados segundo:
Rede de interconexo;
Tipo de memria;
Homogeneidade das mquinas;
Sistema operacional.

Vantagens / desvantagens dos clusters
Custo de implantao;
Software livres;
Escalabilidade;
Programao explcita.
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Hardware (mquinas + redes de interconexo);
Mquinas que formam o cluster:
Multiprocessadas formando uma arquitetura
com memria distribuda entre os nodos e
compartilhada entre os processadores
(memria hbrida);
Monoprocessadas formando uma arquitetura
com apenas memria distribuda.

Redes de interconexo mais adotadas:
Myrinet;
Fast-Ethernet;
SCI;
ATM;
Gigabit-Ethernet.
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Arquitetura com memria distribuda:
Arquitetura com memria distribuda e
memria compartilhada (hbrida):
G
M
C
P
A
D

Ambiente Computacional (Cluster)
~ 1980
1x10
6
Operaes de Ponto Flutuantes por segundo (MFLOP/s)
Processamento escalar
~ 1990
1x10
9
Operaes de Ponto Flutuantes por segundo (GFLOP/s)
Processamento vetorial
Computao com memria distribuda
Particionamento de dados
~ 2000
1x10
12
Operaes de Ponto Flutuantes por segundo (TFLOP/s)
Processamento distribudo
Troca de mensagens
Decomposio de domnio
~ 2010 (Jack Dongarra)
1x10
15
Operaes de Ponto Flutuantes por segundo (PFLOP/s)
Grid Computer
?
Evoluo da capacidade de processamento:
G
M
C
P
A
D

Rank Company Machine Procs Gflop/s Place Country Year
1 IBM ASCI White 8192 4938 Lawrence Livermore National Laboratory Livermore 2000
2 Intel ASCI Red 9632 2380
Sandia National Labs
Albuquerque
USA 1999
3 IBM
ASCI Blue-Pacific
SST, IBM SP 604e
5808 2144
Lawrence Livermore National
Laboratory Livermore
USA 1999
4 SGI
ASCI Blue
Mountain
6144 1608
Los Alamos National Laboratory
Los Alamos
USA 1998
5 IBM
SP Power3
375 MHz
1336 1417
Naval Oceanographic Office
(NAVOCEANO)
USA 2000
6 IBM
SP Power3
375 MHz
1104 1179
National Center for
Environmental Protection
USA 2000
7 Hitachi SR8000-F1/112 112 1035
Leibniz Rechenzentrum
Muenchen
Germany 2000
8 IBM
SP Power3
375 MHz, 8 way
1152 929
UCSD/San Diego
Supercomputer Center
USA 2000
9 Hitachi SR8000-F1/100 100 917
High Energy Accelerator
Research Organization /KEK
Tsukuba
Japan 2000
10 Cray Inc. T3E1200 1084 892 Government USA 1998
Top 10 Machines (Nov 2000)
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Clusters de nodos monoprocessados:
Paralelismo inter-nodal;
Custo da troca de mensagens.

Clusters de nodos multiprocessados:
Paralelismo inter-nodal;
Custo da troca de mensagens;
Paralelismo intra-nodos;
Conteno de memria intra-nodos;
Condio de corrida em mltiplas threads;
Excluso mtua.
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Bibliotecas de troca de mensagens: explorao
do paralelismo inter-nodal:
PVM (Parallel Virtual Machine);
MPI (Message Passing Interface);
MPICH, LAN;
DECK(Distributed Executive Comunicator Kernel);
ATHAPASCAN.

Biblioteca de multithreading: explorao do
paralelismo intra-nodal:
Pthreads POSIX;
O S.O. pode escalonar processos para diferentes
processadores.
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Bibliotecas de trocas de mensagens (BTM):
So bibliotecas que possuem primitivas permitindo a
diferentes processos trocarem informaes mesmo
estando em diferentes mquinas de uma rede.
Thread:
Uma thread um fluxo de execuo;
Bibliotecas como Pthread permitem a criao de
mltiplas threads em um mesmo processo
compartilhando a mesma rea de dados;
O custo da criao de uma thread menor que o da
criao de um processo;
Existem 2 tipos de Pthreads: as de sistema e as de
aplicao. Sua diferenciao se refere ao custo de
escalonamento e porcentagem de tempo de
processador obtida pelas threads.
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Explorao do Paralelismo intra-nodal e inter-
nodal em clusters multiprocessados:

Na explorao do paralelismo inter nodos e intra
nodos, com BTM, nenhum processo acessa a mesma
rea de dados. Ou seja, no existe a possibilidade de
condio de corrida. A explorao fica sendo
semelhante explorao entre nodos;

Na explorao do paralelismo inter nodos com BTM e
a intra nodos com mltiplas threads, antes da troca
de mensagens a thread principal deve estar certa de
que os dados a serem enviados no esto sendo
processados por outras threads, pois se estiverem
podem estar inconsistentes. Para evitar isso, as
threads devem sincronizar antes da troca de
mensagens, o que pode causar ociosidade em algum
processador do nodo.
G
M
C
P
A
D

Ambiente Computacional (Cluster)


O modo de como o paralelismo explorado
entre mltiplas threads depende do
programador, o qual deve visar:
Diminuir o tempo ocioso dos processadores;
Balancear carga entre as threads
adequadamente;
Diminuir ao mximo os sincronismos.


G
M
C
P
A
D

Ambiente Computacional (Cluster)
Principais primitivas de BTMs:
comunicao ponto a ponto (send e receive)
broadcast de 1:N
reduo
G
M
C
P
A
D

Ambiente Computacional (Cluster)
Principais primitivas de BTMs:
gather
scatter
G
M
C
P
A
D

Modelos Matemticos
G
M
C
P
A
D

Modelos Matemticos
Mecnica Clssica:
movimento de objetos macroscpico a baixa
velocidade (v << c);
Princpios de conservao (DFC):
A massa conservada;
A quantidade de movimento conservada;
A energia conservada.
Equaes constitutivas:
relacionam algumas variveis dos modelos como
funo de outras expresses.

G
M
C
P
A
D

Equaes Diferenciais Parciais
G
M
C
P
A
D

Equaes Diferenciais Parciais
Muitos dos modelos matemticos de fenmenos sob
o escopo da Mecnica clssica so expressos
atravs de EDPs (ou EIs);
EDPs so equaes diferenciais que envolvem
derivadas parciais com respeito a mais que uma
varivel independente;
Exemplos (e notaes).
G
M
C
P
A
D

Equaes Diferenciais Parciais
Problemas (EDPs) evolutivos (PVIF) so
resolvidos especificando:
Condies iniciais (CI);
Condies de contorno (CC);
Equaes governantes (EDPs ou EIs).

G
M
C
P
A
D

Equaes Diferenciais Parciais
Classificao (tipos):
EDPs so classificadas pelo sinal do discriminante
b
2
-4ac da equao
au
xx
+ bu
xy
+ cu
yy
+ du
x
+ eu
y
+ fu + g = 0
se b
2
-4ac > 0 : a EDP hiperblica;
se b
2
-4ac = 0 : a EDP parablica;
se b
2
-4ac < 0 : a EDP elptica.
Se os coeficientes variam, o tipo pode variar;
Em um sistema de EDPs, cada qual pode ser de
tipo diferente;
A EDP pode ser no linear, ou de alta ordem ou
dimenso.
G
M
C
P
A
D

Equaes Diferenciais Parciais
Interpretao fsica (direo de propagao):
A classificao est associada ao tipo de
fenmeno fsico e pode ser identificada de acordo
com a direo de propagao da soluo das
EDPs.
Elptica: propagao em todas as direes
(equao de Laplace);

Elptica
G
M
C
P
A
D

Equaes Diferenciais Parciais
Parablica: propagao na direo preferencial
(equao da Difuso);





Hiperblica: direo preferencial de propagao
(equao da Onda).
Parablica
Hiperblica
G
M
C
P
A
D

Equaes Diferenciais Parciais
Cada uma dessas EDPs exigem diferentes tipos
de mtodos numricos, pois existe uma
diferena fundamental entre EDPs hiperblicas
e parablicas que tem implicaes nas suas
solues numricas.

EDPs hiperblicas so conservativas, e suas
solues se propagam em frontes ou choques sem
dissipar;
EDPs parablicas so dissipativas, e suas solues
tendem a tomar o estado permanente;
EDPs elpticas, por se propagarem todas as
direes, no problemtica.
G
M
C
P
A
D

Malhas Numricas
G
M
C
P
A
D

Malhas Numricas
Um modelo matemtico e contnuo definido
espacial e temporalmente em uma regio
(contnua). Mas a soluo computacional requer
a discretizao das EDPs (ou das EIs) e a
discretizao do domnio de definio.
Exemplos:
G
M
C
P
A
D

Malhas Numricas


Tipos de malhas:

Estruturadas:
Cdigo computacional / estruturas de dados
mais simples;
limitao na representao do domnio.

No estruturadas:
Cdigo computacional / estrutura de dados
mais complexas;
flexibilidade na representao do domnio.
G
M
C
P
A
D

Malhas Numricas
Estruturadas:

G
M
C
P
A
D

Malhas Numricas
No estruturadas:


G
M
C
P
A
D

Malhas Numricas
Arranjos das variveis na malha:

Espao-alternada:
Desacoplamento das variveis;
Complexidade do cdigo computacional para
problemas 3D;
Faces tipo fluxo numrico.

Co-localizada:
Eficincia computacional;
Simplifica o cdigo computacional.
G
M
C
P
A
D

Malhas Numricas
Espao-alternada:

G
M
C
P
A
D

Malhas Numricas
Co-localizada:

G
M
C
P
A
D

Malhas Numricas
Algumas razes para o uso de coordenadas
generalizadas e/ou malhas no estruturadas:
Problemas definidos em geometrias complexas;
Dificuldades para usar sistemas de coordenadas
convencionais (cartesiana,...);
G
M
C
P
A
D

Necessidade de construir malhas numricas que
se adaptem automaticamente fsica do
problema (refinamento local).



Malhas Numricas
G
M
C
P
A
D

Em Problemas 3D necessrio especificar a
malha horizontal e a malha vertical.
Malha horizontal:
Malhas Numricas
G
M
C
P
A
D

Malha vertical:
Malhas Numricas

G
M
C
P
A
D

Malha vertical:
Malhas Numricas

G
M
C
P
A
D

Gerao de Malhas:
Transformao de coordenadas (MDF):
Mapear domnio fsico no domnio computacional;
Malhas Numricas

G
M
C
P
A
D

Malhas Numricas
Malhas no estruturadas:
Triangulao de Voronoi;
Delaunay.

G
M
C
P
A
D

Particionamento de Grafos
G
M
C
P
A
D

Particionamento de Grafos
Particionamento de um grafo (PG):
Consiste em dividir seus vrtices em K
subconjuntos, de forma que estes subconjuntos
sejam balanceados (com o mesmo nmero de
vrtices), e que o nmero de arestas entre eles
seja minimizado;
G
M
C
P
A
D

Particionamento de Grafos
O PG aplicado para realizar o balanceamento de
carga esttico entre os processadores, de forma
que cada um tenha carga equivalente a seu poder
de processamento;
A carga ou peso de um sub-domnio (P_K) a
soma de todos os seus vertices;
A carga tima para um sub-domnio a diviso do
numero total de vertices do grafo (V) pelo
nmero total de sub-domnios (K), que se obtm
pela formula (P_opt = |V|/K).

G
M
C
P
A
D

Particionamento de Grafos
Uso do corte de arestas:
o parmetro mais empregado para medir a
comunicao entre os diferentes subdominios. O
PG deve diminuir o nmero de clulas nas
fronteiras, ou seja diminuir o nmero de cortes de
arestas, de forma a minimizar a comunicao;
G
M
C
P
A
D

Particionamento de Grafos
Pode-se especificar o problema de PG como
sendo o problema de encontrar parties para
um grafo G tal que:

P_k<=P_opt, para os K subdominios,
considerando um balanceamento de carga
homogneo;
O nmero de cortes de arestas seja o menor
possvel.

O PG um problema NP-difcil. Assim no se
pode encontrar solues timas para o mesmo,
mas uma aproximao atravs do emprego de
mtodos heursticos;

G
M
C
P
A
D

Particionamento de Grafos
O PG deve tratar de geometrias arbitrrias (malhas
numricas quaisquer) permitindo uma soluo
mais realstica de problemas complexos.


G
M
C
P
A
D

Particionamento de Grafos
Aplicaes de PG:
O problema de particionamento de grafos surge
em diferentes reas como, por exemplo
[Kumar2001]:
Reordenao de matrizes esparsas para garantir
uma decomposio mais eficiente;
Minerao de dados;
Gerenciamento de transportes;
Computao paralela;
Simulao de ambientes;
Polticas de comunicao ou de escalonamento
de tarefas;
...

G
M
C
P
A
D

Particionamento de Grafos
Exemplos

Minerao de Dados
Deformao de materiais
Posicionamento de clulas no
desenvolvimento de VLSI
G
M
C
P
A
D

Particionamento de Grafos
Em computao paralela o maior uso de grafos
est no particionamento da malha entre os
processadores (balanceamento esttico).

Nem sempre os processadores de uma arquitetura
possuem mesmo poder computacional. Ento cada
subdomnio deve ter peso equivalente ao poder do
processador que o alocar;

Quando a soluo do aplicao paralela feita
de forma sincronizada, e h uma substancial
alterao na carga em alguns dos processos
durante o tempo de execuo, deve-se efetuar
um balanceamento dinmico da carga, visando
manter a eficincia computacional.
G
M
C
P
A
D

Particionamento de Grafos
Alguns tipos de problema de particionamentos
de grafos diferenciados so:

Multi-phase:
composto por vrias fases computacionais que
devem ser balanceadas separadamente;
Multi-constraint:
os vrtices dos grafos possuem pesos diferentes
os quais devem ser levados em conta no
balanceamento;
Multi-physics:
problemas que modelam fenmenos fsicos
diferentes;
Multi-mesh:
empregam vrios grafos simultaneamente.
G
M
C
P
A
D

Particionamento de Grafos
O problema de particionamento de malha:

Pode ser visto como particionamento de grafo,
quando se considera o grafo G={V,A,p
a
,p
v
}
composto pelo conjunto V={0,...,n-1} com n
nodos; pelo conjunto A _ VxV de arestas; pelos
pesos p
a
dos nodos; pelos pesos p
v
dos vrtices.

Ento pode-se associar a cada nodo processo ou
dado, e s arestas a comunicao ou dependncia
de dados, aos pesos p
a
as cargas de computao e
aos pesos

p
v
as cargas de comunicao.

G
M
C
P
A
D

Particionamento de Grafos
Classificao dos mtodos (heursticas) de PG:
Global:
Utilizam informaes de todo o domnio.
Local:
Utilizam informaes locais dos subdomnios
envolvidos. So freqentemente utilizados para
refinamento.
Multinvel: composto de 3 fases:
Inicialmente o grafo reduzido a um grafo menor
atravs da contrao de arestas (agrupamento de
vrtices);
O grafo menor particionado utilizando alguma
tcnica como bisseco inercial, espectral ou
Kernighan-Lin;
O grafo descontrado.
G
M
C
P
A
D

Particionamento de Grafos
Tipos de algoritmos (mtodos):
Geomtricos:
So usados apenas quando se tem as coordenadas
dos vertices;
So apropriados para grafos que representam um
domnio fsico;
Buscam a diminuio das fronteiras dos
subdomnios;
So rpidos, mas geram parties de qualidade
relativamente mais baixa.
Combinatrios:
Podem ser usados quando no se tem as
coordenadas associadas aos vertices;
Calculam as parties baseados nas adjacncias;
So mais lentos e complicados de paralelizar,
porm mais eficientes.

G
M
C
P
A
D

Particionamento de Grafos
Mtodos Globais:
(a) Particionamento em faixa:
Cada subdomnio recebe um nmero de linhas;
Mais simples de implementar e com pouca computao;
Fronteiras muito grandes;
Balanceamento de carga no bom.
G
M
C
P
A
D

Particionamento de Grafos
(b) Mtodos de bisseco (MB):
Uma classe popular de mtodos de particionamento,
aplicveis a malhas estruturadas e no estruturadas, so
os mtodos de bisseco.
Mtodos de bisseco geram uma diviso de nodos em
dois subconjuntos de mesmo tamanho.
Eles variam desde mtodos simples, que utilizam apenas
numerao dos nodos, at heursticas sofisticadas que
usam informaes sobre a estrutura topolgica do grafo.
Suas necessidades de tempo e memria variam, bem
como a qualidade das solues geradas.
Tais mtodos so rpidos, mas a qualidade das solues
geradas depende fortemente da numerao dos nodos e,
portanto, da forma como o grafo foi gerado.
So, geralmente, pr-passos para sofisticadas heursticas
locais de melhoramento.
G
M
C
P
A
D

Particionamento de Grafos
MB: ORB (Orthogonal Recursive Bisection)
Apropriado para grades e malhas;
Realiza bisseco ortogonal aos eixos das
coordenadas de forma recursiva;
Simples de implementar;
No garante comunicao otimizada nem fronteiras
pequenas.
G
M
C
P
A
D

Particionamento de Grafos
MB: RCB (Recursive Coordinate Bisection)
Tambm conhecida como CND (Coordinate Nested
Disection);
um melhoramento do ORB;
Permite mltiplos cortes seguidos no mesmo sentido;
rpido, fcil de implementar e requer pouca memria;
As parties resultantes so de pouca qualidade.
MB: outros
SRCB (Straight Recursive Coordinate Bisection);
O URB (Unbalanced Recursive Bisection) uma melhoria do
RCB que diminui a comunicao gerando subdomnios com
uma melhor relao entre suas reas e permetros;
O URB tem maior custo computacional no momento de
calcular a partio.
G
M
C
P
A
D

Particionamento de Grafos
Exemplo: RCB (Recursive Coordinate Bisection)
G
M
C
P
A
D

Particionamento de Grafos
Exemplo: RIB (Recursive Inertial Bisection)
uma melhoria do RCB que leva em conta ngulos
de orientao dos grafos em relao aos eixos de
coordenadas.
G
M
C
P
A
D

Particionamento de Grafos
(c) Curvas de Preenchimento de Espao:

O princpio preencher o domnio recursivamente
com curvas de preenchimento at preencher o
espao total;
Aps o preenchimento estas curvas so divididas
formando os subdomnios ou parties.

Hilbert space-filling curves

G
M
C
P
A
D

Particionamento de Grafos
Exemplo: subdomnios gerados pelas curvas de
preenchimento de espao de Hilbert.
G
M
C
P
A
D

Particionamento de Grafos
(d) Particionamento Espectral:
Ao contrario dos mtodos vistos at agora, o RSB
(Recursive Spectral Bisection) no utiliza informaes
geomtricas dos vrtices;
A bisseco espectral, tambm conhecida como
bisseco recursiva por autovalores, encontra o
autovetor correspondente ao segundo maior autovalor
da matriz Laplaciana do grafo e utiliza-o como separador
dos vrtices.
sem refinamento com refinamento

G
M
C
P
A
D

Particionamento de Grafos
(e) LND (Levelized Nested Dissection):

No utiliza informaes geomtricas mas sim a sua
conectividade;
Este mtodo baseado no algoritmo de busca em
amplitude;
O LND parte do princpio que um particionamento
ter um corte de arestas baixo se os vrtices
adjacentes estiverem normalmente no mesmo sub-
domnio;
O algoritmo tenta juntar os vrtices conectados
partindo de um nico vrtice raiz e acrescentar ao
subdomnio vrtices adjacentes.

G
M
C
P
A
D

Particionamento de Grafos
Mtodos Locais:

(a) KL (Kernighan-Lin):
Seleciona pares de vrtices que apresentam maior
ganho no corte de arestas e os troca entre os sub-
domnios;
G
M
C
P
A
D

Particionamento de Grafos
(b) FM (Fiduccia-Mattheyses):

Esse mtodo uma melhoria do KL, que da O(n
3
);
Apresenta a mesma qualidade que o KL com um
menor custo;
A principal vantagem sua complexidade linear;
A diminuio da complexidade do FM se deve a sua
estrutura de dados.
O FM utiliza dois buckets (um para cada
subdomnio) para classificar os vrtices de acordo
com seu ganho. Cada bucket um vetor com
ganho_max*2+1 posies, um para cada ganho
diferente. Cada posio do bucket um apontador
para uma lista de vrtices que apresentam um
ganho correspondente aquela posio. Se no
houver vrtices com o ganho representado por
aquela posio, ela recebe valor NULL.
G
M
C
P
A
D

Particionamento de Grafos
Mtodo multinvel:

Essa classe de algoritmos baseada no
paradigma multinvel que visa diminuir o custo
da bisseco, realizando-a em uma verso
menor do grafo;
Essa abordagem dividido em trs fases:
Encolhimento:
o grafo reduzido atravs de contrao de
arestas;
Particionamento inicial:
o grafo particionado utilizando-se alguma
tcnica especfica, como bisseco espectral;
Refinamento e crescimento: o
o grafo expandido atravs de descontrao de
suas arestas, sendo que em cada nvel do grafo
feito um refinamento das parties utilizando-se
um algoritmo do tipo KL/FM.
G
M
C
P
A
D

Particionamento de Grafos
E
n
c
o
l
h
i
m
e
n
t
o

C
r
e
s
c
i
m
e
n
t
o

e

R
e
f
i
n
a
m
e
n
t
o

Particionamento Inicial
Representao para o mtodo multinvel:
G
M
C
P
A
D

Particionamento de Grafos
Resultados:
Um bom esquema de encolhimento pode esconder um
grande numero de arestas;
Esquemas de refinamento como KL/FM se tornam mais
poderosos em um contexto multinvel.
Com o encolhimento, mover um nico vrtice entre
dois subdomnios como mover vrios vrtices no
grafo original, o que uma grande vantagem com um
custo bem menor.
G
M
C
P
A
D

Particionamento de Grafos
Critrios de escolha do algoritmo:
Custo x qualidade:
Geralmente quanto maior o custo maior a qualidade.
Equilibrar essas variveis de acordo com a aplicao
a questo principal;

Paralelizabilidade:
Esse fato muito importante quando se considera
grafos de tamanho grande;

Atualizao da partio:
Para aplicaes que requerem um particionamento
dinmico;

Custo de implementao:
Alm do tempo mais elevado os algoritmos que
efetuam um particionamento melhor tambm levam
mais tempo para serem implementados.
G
M
C
P
A
D

Particionamento de Grafos
Mapeamento
Para se resolver o problema, utilizando-se um ambiente
paralelo, envia-se cada parte do subdomnio a um
processador diferente onde o mesmo resolvido. Para
isso necessrio que se crie o grafo da aplicao
representando a soluo do problema e o grafo da
arquitetura representando a mquina que ser utilizada
para execuo da soluo.
1
3
2
4 5 6
7
PE PE

PE


PE

PE

PE

PE

PE

PE


Grafo da aplicao
Grafo da arquitetura
mapeamento
G
M
C
P
A
D

Particionamento de Grafos
Atributos dos algoritmos
G
M
C
P
A
D

Particionamento de Grafos
Pacotes x algoritmos implementados
G
M
C
P
A
D

Balanceamento de Carga
G
M
C
P
A
D

Balanceamento de Carga
O problema de balanceamento de carga consiste
em atribuir cargas proporcionais entre diversos
processadores;
Em aplicaes paralelas que possuem pontos de
sincronismo o balanceamento de carga objetiva
diminuir o tempo ocioso dos processadores;
G
M
C
P
A
D

Balanceamento de Carga
Balanceamento de carga pode ser:
Esttico:
Ocorre quando toda a informao para o
balanceamento est disponvel antes do
processamento.
Semi-esttico:
Utilizado em situaes onde o domnio alterado
lentamente ao longo do tempo. Neste caso, pode-se
empregar um algoritmo esttico no incio da
aplicao e permitir que a mesma possua algum
desbalanceamento aps um certo nmero de passos,
quando ento aplicado novamente o algoritmo
esttico.
Dinmico:
Utilizado em situaes onde a carga dos
processadores varia durante a execuo tornando
necessrio a redistribuio de carga para manter o
equilbrio. Alguns autores no diferenciam
balanceamento semi-esttico de balanceamento
dinmico.
G
M
C
P
A
D

Balanceamento de Carga
Aplicaes multi-fsica paralelas:

Esse tipo de aplicao, como as desenvolvidas
no GMCPAD, apresentam caractersticas que
tornam mais complexo o particionamento e o
mapeamento da malhas. Isso ocorre devido ao
fato que a malha do transporte de substncias,
que aninhada sobre a malha da hidrodinmica,
sofre de forte alterao durante o tempo de
execuo;

Dado o sincronismo entre o transporte e a
hidrodinmica, para manter a eficincia
computacional deve-se considerar o
balanceamento dinmico.

G
M
C
P
A
D

Balanceamento de Carga
Exemplo de aplicao: h-refinamento


G
M
C
P
A
D

Balanceamento de Carga
Avaliao do custo/benefcio:
Deve ser considerada no clculo do
reparticionamento e/ou da nova migrao de dados,
pois necessrio levar em conta que esse processo
tm seu custo que pode ser significativo.

Deteco de carga:
obtida usando mtricas e/ou algoritmos que
indiquem quais processadores esto
desbalanceados. Como o custo de redistribuir a
carga elevado, pois deve-se parar o
processamento e recalcular a malha local ou global,
ento antes de reparticion-la e mape-la
novamente, deve-se verificar se a relao
custo/beneficio compensatria.
G
M
C
P
A
D

Balanceamento de Carga
O balanceamento deve ser feito de forma a atender
trs requisitos bsicos:
A carga de trabalho deve ser bem balanceada entre os
processadores;
A comunicao entre os processadores deve ser
minimizada;
O tempo de execuo do algoritmo de balanceamento
deve ser tal que o ganho obtido com seu uso seja maior
que o custo de sua execuo.

O balanceamento de carga dinmico pode ser
classificado em trs tipos:
Difuso;
Reparticionamento;
Scratch-remap.
G
M
C
P
A
D

Balanceamento de Carga
Difuso
Estes algoritmos, de forma geral, garantem uma partio
de boa qualidade, com pouca comunicao entre os
subdomnios e com pouca movimentao de dados para a
realizao da nova partio;
Em domnios com um desbalanceamento alto concentrado
em determinadas regies, algoritmos difusivos podem
resultar em uma migrao de clulas excessivamente alta,
devido propagao da difuso em grandes reas;
Neste esquema, a cada passo de tempo, cada
processador avalia sua carga e compara sua carga com a
dos seus vizinhos. Se a diferena de carga estiver acima
de um determinado valor, parte da carga transferida de
um processador para outro, tal como ocorre na difuso de
calor.
G
M
C
P
A
D

Balanceamento de Carga
Difuso
Um aspecto importante dos mtodos de difuso
a sua convergncia, se ser atingida uma situao
onda a carga esteja bem distribuda e o nmero
de passos necessrios para atingir essa situao.
G
M
C
P
A
D

Balanceamento de Carga
Reparticionamento
Quando a malha alterada durante a execuo,
essa estratgia recalcula o particionamento
partindo do zero, sem levar em conta as
informaes atuais do particionamento.

G
M
C
P
A
D

Balanceamento de Carga
Scratch-remap
Calculam uma nova partio e mapeiam a nova partio
para a partio existente. Estes algoritmos funcionam
bem para grafos com um desbalanceamento alto e
concentrado em algumas sub-regies do domnio. Em
domnios com um desbalanceamento baixo ou bem
distribudo em todo o domnio, esta abordagem pode
resultar em uma transferncia excessiva de clulas, se
comparado aos algoritmos de difuso multinvel.

G
M
C
P
A
D

Balanceamento de Carga
Mapeamento:
O problema do particionamento de malha e balanceamento de
carga pode ser visto como um problema de mapeamento de
grafos. Deve-se encontrar um mapeamento, do grafo da
aplicao para o grafo da arquitetura, de modo a maximizar a
relao computao/comunicao;
Assim, o mapeamento deve considerar a arquitetura e a rede de
interconexo, e com essas informaes construir uma soluo
visando a diminuio das comunicaes e do balanceamento de
carga;
No existindo conexo direta entre todos os processadores, as
redes tm maior importncia no mapeamento. Um exemplo a
arquitetura hipercubo.
G
M
C
P
A
D

Mtodos de Discretizao
G
M
C
P
A
D

Mtodos de Discretizao
A converso das EDPs ou das Equaes
integrais (EIs) contnuas para a verso algbrica
e chamado de discretizao;

Tipos de mtodos de discretizao:
MDF: Mtodo das diferenas finitas;
MVF: Mtodo dos volumes finitos;
MEF: Mtodo dos elementos finitos;
MEE: Mtodo dos elementos espectrais.
G
M
C
P
A
D

Mtodos de Discretizao
MDF:
Aproxima as EDPs usando srie de Taylor;

G
M
C
P
A
D

Mtodos de Discretizao
MVF:
Aproxima as EIs na forma da lei de conservao para
obter a expresso discreta para as integrais.

G
M
C
P
A
D

Mtodos de Discretizao
MEF:
A soluo representada como combinao linear
de funes bases (bilineares, bicubicas,...).
Emprega-se alguns critrios (ex: de Galerkin) para
obter o SE que determina os coeficientes dessa
combinao linear;


MEE:
Semelhante ao MEF, mas as funes bases so
perpendiculares umas as outras, formando uma
base ortogonal da qual se obtm a soluo.
G
M
C
P
A
D

Mtodos de Discretizao
Tipos de abordagens (discretizaes):
Implcito:
gera matrizes densas e no lineares;
tem estabilidade incondicional.
Explcito:
as variveis so calculadas de forma explcita;
restrio na estabilidade e acurcia.
Semi-implcito:
gera matrizes esparsas;
computacionalmente eficiente e suficientemente
acurado.
G
M
C
P
A
D

Mtodos de Discretizao
Mtodo ADI
Algoritmo de Thomas;
Thomas pipeline;
Estncil.
G
M
C
P
A
D

Mtodos de Discretizao
Sntese de alguns mtodos pelo estncil.

G
M
C
P
A
D

Esquemas Numricos
G
M
C
P
A
D

Esquemas Numricos
Atributos desejados na soluo numrica:

Monotonicidade;
Consistncia e estabilidade;
Acurcia espacial e temporal de alta ordem;
Consistncia entre as equaes de continuidade
e a do transporte;
Difuso numrica menor que difuso fsica;
Positividade;
Transporte;
Massa conservativa;
Esquema semi-implcito.
G
M
C
P
A
D

Esquemas Numricos
G
M
C
P
A
D

Esquemas Numricos
Tipos de esquemas de aproximao para obteno
de soluo com alta qualidade numrica:
G
M
C
P
A
D

Esquemas Numricos
continuao
G
M
C
P
A
D

Esquemas Numricos
Faces: fluxo numrico
G
M
C
P
A
D

Esquemas Numricos
Molcula Computacional
Estncil para esquema numrico com 2
a
ordem
de acurcia.

G
M
C
P
A
D

Esquemas Numricos
Outro tipo de esquemas de aproximao de
alta qualidade numrica o FLM (Flux
Limiter Method) de SWEBY.
Seja a EDP


Uma discretizao conservativa do fluxo
numrico em DF fornece a expresso:
G
M
C
P
A
D

Esquemas Numricos
Empregando funes limitantes de fluxo + no
lineares, determina-se os fluxos como:


onde, se considera a funo monitor



Exemplo de uma funo de restrio de fluxo:
G
M
C
P
A
D

Esquemas Numricos
Suporte terico:
Teorema de Lax:
consistncia + estabilidade = convergncia
Teorema de Godunov:
esquemas monotnicos so de 1a ordem ou no
lineares
Teorema de Lax-Wendroff;
se a soluo de um esquema consistente. converge e
limitada, ento converge para uma soluo fraca
Teorema de Harten;
a variao total de toda soluo contnua fisicamente
admissvel no cresce no tempo
Teorema de Harten-Hyman-Lax.
Um esquema explcito, monotnico, conservativo e
consistente satisfaz a condio de entropia. Logo
nica, porm de 1a ordem
G
M
C
P
A
D

Sistemas de Equaes
G
M
C
P
A
D

Sistemas de Equaes
O processo de discretizao gera SELAs
Ax=b
onde A
NxN
uma matriz, b o vetor dos
termos independentes e x o das incgnitas
Esses SELAS se caracterizam por serem
de grande porte;
esparsos;
matrizes estruturadas ou no estruturadas.
G
M
C
P
A
D

Sistemas de Equaes
Matrizes esparsas:
estruturadas





no estruturadas
G
M
C
P
A
D

Sistemas de Equaes
Mtodos de soluo: Diretos
Mtodo Custo
Eliminao de Gauss O(2N
3
/3)
Gauss-Jordan O(2N
3
/3)
Inverso da Matriz O(N
3
)
A=LU O(2N
3
/3)
A=LDL
T
O(N
3
/6)

Soluo exata, exceto pelo arredondamento;
Impraticveis mesmo para N modesto;
Processo de Fill-in (preenchimento);
Difcil de paralelizar de modo eficiente.
G
M
C
P
A
D

Sistemas de Equaes
Mtodos de soluo: Iterativos
Estacionrios: Jacobi, Gauss-Seidel, SOR,...
No estacionrios: subespao de Krylov
convergem em m<<N iteraes
independente do problema (1D, 2D ou 3D);
m depende das caractersticas do problema e
no do porte do problema;
no preenchem a matriz;
fceis de paralelizar;
nmero de iteraes no conhecido a priori;
pouca robustez.
G
M
C
P
A
D

Sistemas de Equaes
Mtodos de soluo para matrizes SDP e
no simtricas
Simtrica A=A
T
;
Definida positiva: x
T
Ax>0.
SDP: Gradiente Conjugado (GC);
No simtrica: Resduo Mnimo Generalizado
(GMRES);
Esses mtodos convergem rapidamente se a
diagonal dominante. Ou seja, se esto bem
condicionados.

G
M
C
P
A
D

Sistemas de Equaes
Exemplo:
algoritmo GCP
(seqencial)

G
M
C
P
A
D

Sistemas de Equaes



Exemplo:
algoritmo GMRES (seqencial)
G
M
C
P
A
D

Pr-condicionamento
A convergncia do mtodo iterativo pode ser
acelerada melhorando o cond(A);
Deve-se obter uma matriz pr-condicionadora
M tal que M
-1
A ~ I;
A matriz M deve ser rapidamente gerada e
fcil de aplicar (paralelizar).
Tipos pr-condicionadores:
a) M
-1
Ax=M
-1
b;
b) AM
-1
y=b, onde y=Mx;
c) M
-1
1
AM
-1
2
y=M
-1
1
b, onde y=M
2
x.

G
M
C
P
A
D

Pr-condicionamento
Se M

~

A em a) ou b) e M
1
M
2

~

A em c), o
sistema de equaes precondicionado
converge muito mais rapidamente.

Classes de pr-condicionadores
particionamento da matriz como A=M-N:
Jacobi, Gauss-Seidel, SOR,...;
fatoraes incompletas de A: ILU, IC;

aproximaes explcitas para a inversa A
-1
:
SPAI, aproximaes polinomiais,...;
mtodo aditivo de Schwarz M
-1
=R
T
i
A
-1
i
R
T
.
G
M
C
P
A
D

Pr-condicionamento
Fatorao incompleta (IC):
decompor M~L
ic
DL
ic
T
;
calcular L
ic
;
passo do pr-condicionador:
d=M
-1
r d=(L
ic
DL
ic
T
)
-1
r L
ic
DL
ic
T
d=r
seja z=L
ic
T
d L
ic
Dz=r. seja Dz=y L
ic
y=d
resolvendo os 2 SE TRIANGULARES e z=D
-1
y
conhece-se a soluo d=M
-1
r.
Aproximao polinomial:
M
-1
~ [D
-1
(L+U)
k
]D
-1

MAS:
M
-1
~ R
T
i
A
-1
i
R
T
G
M
C
P
A
D

Soluo Paralela
G
M
C
P
A
D

Soluo Paralela



GCP paralelo
1. k : 1
2. r : b Ax (subtrao de vetores (produto matriz vetor))
3. d : M
-1
r (produto matriz vetor)
4. o_novo : r
T
d (produto escalar)
5. o_o : o_novo
6. enquanto k< k_max e o_novo >c
2
o_o faa
7. q: Ad (produto matriz vetor)
8. o : o_novo

/ d
T
q (diviso (produto escalar))
9. x : x + od (adio de vetores (multiplicao escalar vetor))
10. se k divisvel por 50
11. r : b Ax (subtrao de vetores (produto matriz vetor))
12. else
13. r : r oq (subtrao de vetores (multiplicao escalar vetor))
14. s : M
-1
r (produto matriz vetor)
15. o_velho : o_novo
16. o_new : r
T
s (produto escalar)
17. | : o_velho

/ o_novo
18. d : s + |d (adio de vetores (multiplicao escalar vetor))
19. k : k + 1
1. Decomposio de dados
G
M
C
P
A
D

Soluo Paralela



Multiplicao matriz por vetor em paralelo
G
M
C
P
A
D

Soluo Paralela
A decomposio de domnio (DD) usada de modo
diferente em CCP:

Computao paralela:
Decomposio de dados (independente do
mtodo numrico);
Decomposio de Domnio:
Separao do domnio fsico em regies que
possibilitam diferentes modelos;
Mtodos de pr-condicionamento:
Acelerao da soluo dos grandes e esparsos
sistemas de equaes.
2. Decomposio de domnio:
G
M
C
P
A
D

Soluo Paralela
Entre as principais motivaes para o uso de
Decomposio de Domnio esto:

A flexibilidade:
Soluo de problemas com geometrias complexas
e/ou com diferentes EDPs governantes nas
diferentes regies;
A eficincia computacional:
oferecem timas taxas de convergncia;
A facilidade de paralelizao:
paralelismo de gro grosso.
G
M
C
P
A
D

Soluo Paralela
Tipos de mtodos de DD:

MDD com sobreposio;
MDD sem sobreposio.

Malhas x decomposio de domnio:
Malhas emparelhadas e no emparelhadas;

Dependncia de dados e condies de contorno:
Estncil;
Dirichlet, Robin e Neumann.
G
M
C
P
A
D

Soluo Paralela
MDD de Schwarz.
Histria: H. A. Schwarz 1870
G
M
C
P
A
D

Soluo Paralela
DD para dois subdomnios
= fronteira artificial
= fronteira real
soluo aproximada em depois de k iteraes.
= restrio de
= restrio de
a
a
;
;
Lu f
u g
= O
= c O
1 2
O= O O
i i
I = cO O
\
i i
cO I
k
i
u
i i i
O = O cO
2
1
k
u
I
1
2
k
u
I
1
k
u
2
k
u
1
I
2
I
G
M
C
P
A
D

Soluo Paralela
O mtodo alternante de Schwarz (1870) resolve
o problema (seqencial) como:
Inicializao: escolher uma soluo inicial em
Iterao: para com conhecido,
resolver




at que a soluo convirja com o critrio de
parada
0
2
u
2
O
1, 2,..., k n =
1
2
k
u
( )
2
1
1 1 2 2
1 1 1 2 2 2
1
2 2
1
1 1
2
; ;
; \ ; \
;
;
k k
k k
k k
k
k
Lu f Lu f
u g u g
u u
u u

I
I


= O = O



= cO I = cO I


= I
= I

( ) ( )
1 1 2 2
1 1 k k
k k
u u e u u c c
+ +
I I I I
s s

e
depois
G
M
C
P
A
D

Soluo Paralela
Ento o clssico MAS em cada passo resolve o
problema elptico em :

com as CC de Dirichlet em

e as CC de Dirichlet nas fronteiras artificiais

A soluo exata satisfeita simultaneamente nos 2
subdomnios, e o MAS , portanto, consistente;

i
O
k
i
Lu f =
; \
k
i i i
u g = cO I
\
i i
cO I
( )
1 2
1
1 2
2 1
;
k
k k k
u u u u

I I
= =
g
G
M
C
P
A
D

Soluo Paralela
Pode-se usar outras CC nas fronteiras artificiais

( )
( ) 1
1
1 2
1 2
0
k
k
k
k
u u
Robin u u
n n
Neumann
o | o |
o

c c
+ = +
c c

G
M
C
P
A
D

Soluo Paralela
Formulao matricial:
Problema discreto:

Sejam

Ento o mtodo alternado de Schwarz
escrito, para malhas emparelhadas, como:



ou seja:


G
M
C
P
A
D

Soluo Paralela
Assim:



Escrevendo o mtodo alternante em dois
passos pode-se obter outros MDDs como o
multiplicativo e o aditivo.
Assim, escrevendo o mtodo alternante de
Schwarz como:






G
M
C
P
A
D

Soluo Paralela
E definindo:

G
M
C
P
A
D

Soluo Paralela
Tem-se de (1) que:



ou seja:





Essa abordagem chamada mtodo de DD
multiplicativo de Schwarz;
seqencial;
O paralelismo pode ser obtido introduzindo
mtodos multicor.
G
M
C
P
A
D

Soluo Paralela
Uma outra verso do mtodo original de
Schwarz considera atualizaes simultneas
das fronteiras, gerando o MDD aditivo de
Schwarz:





Generalizando para n subdomnios tem-se,
empregando a matriz pr-condicionadora:


G
M
C
P
A
D

Soluo Paralela
Ento, o MDD aditivo escrito como:


A questo que o MDD aditivo converge muito
lentamente, enquanto mtodo iterativo;
o MDD multiplicativo converge mais rpido,
porm no to paralelizvel.

A idia , ento, empregar o MDD aditivo
como um pr-condicionador de um mtodo
iterativo que seja eficiente e altamente
paralelizvel.


G
M
C
P
A
D

Soluo Paralela
Uma abordagem, para a soluo de SELAs
SDP, empregar o MDD aditivo como pr-
condicionador para o GC, que um mtodo
iterativo do subespao de Krylov altamente
eficiente e paralelizvel;
Os mtodos de soluo assim gerados
recebem o nome de Mtodos Krylov-Schwarz.
Especificamente falando, no passo do
GC faz-se:

sendo uma aproximao local (via IC, por
exemplo) para a sub-matriz local A
i
.
G
M
C
P
A
D

Pacotes para Soluo Paralela de
Sistemas de Equaes (SE)
G
M
C
P
A
D

Pacotes para Soluo Paralela de SE


Empregam troca de mensagens, sendo a
maioria em MPI;
No tem suporte a mltiplas threads;
Na maioria so desenvolvidas em Fortran;
Dependem da arquitetura;
Diversos mtodos de soluo, diretos e
iterativos (com pr-condicionadores);
So altamente otimizados.
G
M
C
P
A
D

Pacotes para Soluo Paralela de SE

G
M
C
P
A
D

Pacotes para Soluo Paralela de SE

G
M
C
P
A
D

Pacotes para Soluo Paralela de SE

G
M
C
P
A
D

Compressed
Sparse Row
(AIJ)
Blocked Compressed
Sparse Row
(BAIJ)
Block
Diagonal
(BDIAG)
Densa Outros
Indices Block Indices Stride Outros
Conjunto de ndices
Vetores
Line Search Trust Region
Metodos baseados em Newton
Outros
Resolvedor no linear
Aditivo de
Schwartz
Bloco
Jacobi
Jacobi ILU ICC
LU
(Sequencial)
Outros
Precondicionadores
Euler
Backward
Euler
Pseudo Time
Stepping
Outros
Esquemas de avano temporal
GMRES CG CGS Bi-CG-STAB TFQMR Richardson Chebychev Outros
Mtodos do Subespao de Krylov
Formato de armazanamento das matrizes
PETSc: mtodos de soluo
Pacotes para Soluo Paralela de SE
G
M
C
P
A
D

Computation and Communication Kernels
MPI, MPI-IO, BLAS, LAPACK
Profiling Interface
PETSc PDE Application Codes
Object-Oriented
Matrices, Vectors, Indices
Grid
Management
Linear Solvers
Preconditioners + Krylov Methods
Nonlinear Solvers,
Unconstrained Minimization
ODE Integrators
Visualization
Interface
Camadas que compem o PETSc:
Pacotes para Soluo Paralela de SE
G
M
C
P
A
D

Estruturas de Dados
G
M
C
P
A
D

Estruturas de Dados
Tipos de formatos de armazenamento:

DNS (Dense Format);
DND (Linpack Banded Format);
CSR (Compressed Sparse Row Format);
CSC (Compressed Sparse Column Format);
COO (Coordinate Format);
ELL (Ellpack-Itpack Generalized Diagonal Format);
DIA (Diagonal Format);
BSR (Block Sparse Row Format);
MSR (Modified Compressed Sparse Row Format).
G
M
C
P
A
D

Estruturas de Dados
CSR:
Esse formato armazena apenas os elementos no
nulos de uma matriz esparsa. Sua estrutura
baseada em trs vetores, um vetor (val) do tipo
do dado da matriz, e dois vetores
(col_ind,row_ptr) de tipo inteiro, onde:
val armazena os valores da matriz da esquerda
para direita de cima para baixo;
col_ind armazena a coluna onde os valores
contidos em val foram obtidos na matriz;
row_ptr armazena os ponteiros que indicam
quantos valores no nulo cada linha possui. A
primeira posio desse vetor recebe o valor 1,
a segunda posio recebe o valor da posio
anterior somado com o numero de elementos
no nulos da primeira linha do vetor e assim
sucessivamente.
G
M
C
P
A
D

Estruturas de Dados
Exemplo: CSR (Compressed Sparse Row)
G
M
C
P
A
D

Acabou