You are on page 1of 119

PARALELIZAO DE UM ALGORITMO DE PROPAGAO DA ONDA

ACSTICA 2D USANDO MPI

Matheus Alves de Medeiros Lara

Dissertao de Mestrado apresentada ao


Programa de Ps-graduao em Engenharia
Civil, COPPE, da Universidade Federal do Rio
de Janeiro, como parte dos requisitos necessrios
obteno do ttulo de Mestre em Engenharia
Civil.

Orientador: Jos Luis Drummond Alves

Rio de Janeiro
Maro de 2012
Lara, Matheus Alves de Medeiros
Paralelizao de um algoritmo de propagao da onda
acstica 2D usando MPI / Matheus Alves de Medeiros
Lara. Rio de Janeiro: UFRJ/COPPE, 2012.
X, 109p.: il.; 29,7 cm.
Orientador: Jos Luis Drummond Alves
Dissertao (mestrado) UFRJ/ COPPE/ Programa de
Engenharia Civil, 2012.
Referncias Bibliogrficas: p. 90-94.
1. Modelagem Ssmica. 2. MPI. 3. Diferenas Finitas.
I. Alves, Jos Luis Drummond II. Universidade Federal do
Rio de Janeiro, COPPE, Programa de Engenharia Civil.
III. Ttulo.

iii
So understand
Don't waste your time always
searching for those wasted years
Face up...make your stand
And realize you're living in the
golden years.

(Iron Maiden Wasted Years)

iv
AGRADECIMENTOS

Agradeo aos meus pais, Ana e Misael, que buscaram, mesmo em tempos de

dificuldades, me oferecer uma boa educao e incutiram em mim a importncia da

formao para o futuro de um indivduo.

Agradeo minha namorada Camila, que vivenciou comigo todos os momentos

de tenso, expectativas e conquistas que tive durante o perodo em que realizei este

trabalho.

Agradeo ao amigo e companheiro de trabalho Rafael Ancelme, que foi

fundamental na finalizao deste trabalho com seus conselhos e ajuda dirios.

Agradeo aos companheiros de laboratrio os geofsicos Felipe Duarte, Karen

Carrilho e Wilson Duarte pelas discusses e sugestes com as quais me presentearam

durante um ano e meio de trabalho.

Agradeo a Ana Paula Silva, que me orientou em meus primeiros passos no

LAB2M e cujos conselhos foram fundamentais para o meu desenvolvimento.

Agradeo ao Professor Luiz Landau e a todo corpo tcnico-administrativo dos

laboratrios LAMCE e LAB2M da COPPE/UFRJ pela oportunidade da realizao deste

trabalho.

Agradeo ao Professor Jos Luis Drummond Alves por todo o auxlio para a

realizao deste trabalho.

Agradeo ao Dr. Josias Jos da Silva pela disciplina de Introduo ao Mtodo

Ssmico e pela oportunidade de trabalhar no LAB2M, assim como por me ajudar a

entender o contexto da geofsica no meu dia-a-dia de trabalho.

v
Agradeo ao Dr. Cleberson Dors pela disciplina de Tpicos Especiais em

Engenharia Civil, onde tive um primeiro contato com o MPI, que foi fundamental para a

escolha do tema.

Agradeo ao Professor Webe Joo Mansur, que foi o grande incentivador da

minha escolha por fazer meu mestrado no PEC-COPPE/UFRJ.

Agradeo a todo o corpo tcnico do NACAD/UFRJ, cujos computadores me

foram essenciais para o incio dos meus estudos.

Agradeo ao analista Srgio Guedes, e todo o corpo tcnico do cluster Netuno,

do Ncleo de Computao Eletrnica da UFRJ por atender meus pedidos de suporte

mquina quando necessrio.

Agradeo Petrobras e ANP pelo incentivo financeiro com bolsa de projeto e

mestrado.

Enfim, agradeo a amigos e famlia que mesmo indiretamente foram

fundamentais para que eu conclusse este trabalho ao tornar os dias mais agradveis.

vi
Resumo de Dissertao apresentada COPPE/UFRJ como parte dos requisitos
necessrios para a obteno do grau de Mestre em Cincias (M.Sc.)

PARALELIZAO DE UM ALGORITMO DE PROPAGAO DA ONDA


ACSTICA 2D USANDO MPI
Matheus Alves de Medeiros Lara
Maro/2012
Orientador: Jos Luis Drummond Alves

Programa: Engenharia Civil

O processamento ssmico demanda um grande volume de dados e um alto


refinamento dos mtodos, tornando as execues seriais dos programas de
processamento sejam lentas ou inviveis. Este trabalho apresenta a paralelizao de um
algoritmo de propagao da onda acstica 2D utilizando MPI, que serve como um
estudo inicial para o uso da equao da onda no processamento 3D. So focadas duas
questes na paralelizao: a capacidade de tratar grandes volumes de dados e a reduo
do tempo de processamento de execuo de um programa. O uso do MPI e da tcnica
de Decomposio do Domnio so essenciais para tanto para lidar com um grande
volume de dados, quanto para reduzir o tempo de execuo de um problema que no
exibe paralelismo de tarefas. O domnio em questo o modelo de velocidades, que
contm as informaes das velocidades de propagao da onda acstica em um certo
meio geolgico. Desta forma, o modelo foi dividido em faixas verticais e de forma
hbrida, ou seja, tanto com cortes verticais quanto horizontais. Para a diviso hbrida
foram comparados dois critrios, o da Fatorao Central (FC), que se inspira numa
escolha instintiva para dividir o domnio, e o da Menor Interface (MI), que busca, para
um nmero fixo de dados, realizar a menor quantidade de comunicao possvel, j que
esta torna o programa lento. Tambm foi estudado o beneficio de se valer da topologia
da mquina na hora de atribuir partes do domnio aos processos. Um modelo 2D de
escalas no-realsticas, porm com uma quantidade de dados equivalente a um
problema 3D geofsico tpico foi usado para demonstrar que a paralelizao permite que
seja usado um grande volume de dados. Por fim, as curvas de speedup e eficincia
foram obtidas e constatou-se que usar o critrio MI para a diviso hbrida se valendo da
topologia da mquina a melhor forma de se paralelizar o algoritmo em questo,
revelando que o Critrio da Menor Interface com restos distribudos (MID) o mais
eficiente.

vii
Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the
requirements for the degree of Master of Science (M.Sc.)

PARALLELIZATION OF NA ALGORITHM OF THE ACOUSTIC 2D WAVE


PROPAGATION USING MPI
Matheus Alves de Medeiros Lara
March/2012
Advisor: Jos Luis Drummond Alves

Program: Civil Engineering

Seismic processing demands a great amount of data and sophisticated methods


what makes the serial execution of the processing programs too long or even unfeasible.
This work presents the parallelization of an acoustic 2D wave equation solver algorithm
using MPI, envisioning it as a previous study for the use of the 3D wave equation in 3D
seismic processing. Two points are focused: the capacity of dealing with a great amount
of data and the reduction of the programs execution time. The use of MPI and the
Domain Decomposition technique are essential as much as to deal with the size of the
data as it is to reduce the execution time of an algorithm that does not exhibit a task
parallelism. The so called domain to be decomposed is the velocity model that contains
the information about the velocities of the wave field in a geological media. Thus, the
model was divided in vertical strips and in a hybrid form. For the hybrid division two
criteria were compared, the Central Decomposition (FC, in Portuguese), that is inspired
in instinctively choice, and the Less Interface (MI, in Portuguese), that is based on
finding the division that provides the smaller amount of communication, once the data
per process is fixed. The benefit of using the parallel topology of the machine in order
to distribute parts the domain to processes was also studied. A 2D model of non-realistic
scale was used to show that the parallelization allows the program to process a larger
amount of data. In the end, the speedup and efficiency curves were obtained and the
conclusion was that the MI criteria for hybrid decomposition using the machines
topology was the best strategy to parallelize the presented algorithm, revealing that the
Less Interface Criteria with distributed rests (MID, for the Portuguese acronym) is the
most efficient.

viii
ndice

Captulo 1

Introduo ....................................................................................................................... 1

1.1 Objetivos da Dissertao ................................................................................... 2

1.2 Estrutura da Dissertao .................................................................................... 3

Captulo 2

O Mtodo Ssmico ........................................................................................................... 5

2.1 Propagao da Onda Acstica ........................................................................... 5

2.2 Aquisio Ssmica.............................................................................................. 7

2.3 Modelagem Serial ............................................................................................ 11

Captulo 3 ...................................................................................................................... 18

Computao de Alto Desempenho .............................................................................. 18

3.1 Definies ........................................................................................................ 20

3.2 Medidas de Desempenho ................................................................................. 22

Captulo 4

Metodologia ................................................................................................................... 25

4.1 A Tcnica da Decomposio do Domnio (DD). ............................................. 27

4.2 Paralelizao do Cdigo .................................................................................. 32

4.3 O Algoritmo em Paralelo. ................................................................................ 45

Captulo 5

Resultados ..................................................................................................................... 48

5.1 Execuo com 1 processo por n (ppn1), utilizando o modelo Marmousi com
os critrios FV, FVD, FCD e MID. ............................................................................ 52

ix
5.2 Execuo com at 8 processos por n (ppn8), utilizando o modelo HomogL,
com os critrios FVD, FCD e MID. ............................................................................ 63

5.3 Execuo com 1 processo por n (ppn1), utilizando o modelo HomogL com os
critrios FCD e MID. .................................................................................................. 72

5.4 Execuo com at 8 processos por n (ppn8), utilizando o modelo HomogXL


com os critrios FCD e MID. ...................................................................................... 79

Captulo 6

Concluses e Trabalhos Futuros ................................................................................. 86

Referncias Bibliogrficas ........................................................................................... 90

Apndice A

Descrio do Cdigo em Paralelo ................................................................................ 95

A.1 Clculos preliminares e condies impostas aos processos............................. 96

A.2 Decomposio do Domnio ............................................................................. 98

Apndice B

O MPI como Padro de Troca de Mensagens .......................................................... 102

B.1 Rotinas Bsicas do MPI ................................................................................. 102

B.2 Topologias ..................................................................................................... 106

x
Captulo 1
Introduo

A indstria de hidrocarbonetos hoje, no Brasil, passa por um novo momento. Os


novos e grandes reservatrios encontram-se abaixo dos cinco mil metros de
profundidade, sob estruturas salinas, tornando o imageamento destes reservatrios
altamente complexo. As tcnicas de imageamento ssmico que demandam menor
quantidade de recursos computacionais e demandavam menor tempo de execuo, no
trazem mais resultados satisfatrios para a interpretao para imagens abaixo de
estruturas com alto contraste de impedncia e variao lateral de velocidades, como os
domos salinos (ARAYA-POLO, 2009).

Desta forma, a soluo partir para o uso de uma tcnica mais robusta, como a
Migrao Reversa no Tempo (RTM), que usa a equao multidirecional da onda para
realizar o imageamento em subsuperfcie. Em SILVA (2006) feita uma comparao da
tcnica RTM com tcnicas que se baseiam na Transformada de Fourier e tambm foi
constatado que o uso da RTM traz resultados melhores. Esta tcnica, porm, trs
consigo o revs de demandar mais recursos fsicos computacionais e ser mais demorada,
o que motivou, por muitos anos, o seu pouco uso. Alm disso, os campos a serem
explorados necessitam, ainda, de uma simulao mais realstica, tridimensional, de ao
menos uma ordem de grandeza mais cara que a bidimensional.

O mtodo das diferenas finitas exige um alto refinamento de sua malha por
questes de no disperso e estabilidade. Com isso, o uso da migrao RTM 3D, via
diferenas finitas, torna-se impossvel (por demandar um custo computacional
exorbitante) ou invivel (por conta do tempo gasto para ser realizada) sem o uso da
Computao de Alto Desempenho (HPC, em ingls).

Desta forma, o uso da HPC em ssmica tem se tornado cada vez mais comum e
essencial para os paradigmas atuais, como pode ser observado em vrios trabalhos, tais
como KSER (2008) e ZHANG (2010). Porm, um problema como o da soluo da
equao da onda dito como fortemente acoplado, em que cada tarefa depende do

1
resultado obtido em uma anterior, cuja paralelizao mais complicada, sendo possvel
atravs da tcnica da Decomposio do Domnio. FRICKE (1988) prope uma
descrio de como funcionaria uma paralelizao do problema de migrao RTM,
VILLAREAL (1997) e PHADKE (2000) realizaram a pralelizao da modelagem
ssmica 3D, resolvendo o problema da propagao de onda atravs da Decomposio do
Domnio, usando o MPI, lidando tanto com o problema da alocao em memria (que
os dados so divididos em memrias independentes) quanto o da paralelizao da
propagao ponto crucial para a paralelizao do algoritmo de migrao RTM. O
algoritmo de migrao foi paralelizado por vrios autores e continuam sendo estudadas
pois os equipamentos para HPC evoluem e o tempo gasto com a RTM ainda alto,
como pode ser visto ARAYA-POLO (2009), MICHA (2010) e ABDELKHALEK
(2009), desta vez com paradigmas de memria hbridos.

1.1 Objetivos da Dissertao

Visando estudar a forma de se paralelizar o algoritmo de propagao da onda, a


fim de no futuro realizar a migrao RTM 3D em paralelo, o presente trabalho visa
estudar a paralelizao de um algoritmo de modelagem ssmica 2D utilizando o MPI
como um padro de programao paralela com modelo de memria distribuda,
seguindo exemplo de PHADKE (2000), que realizou a modelagem ssmica como um
estudo prvio para a migrao RTM.

A modelagem ssmica, assim como a migrao RTM 2D, baseada no uso da


equao completa (two-way) da onda e por isso necessita do mesmo ferramental para a
paralelizao, porm, utilizando um conceito mais simples, poupando etapas, ganhando
em tempo. A migrao RTM 3D ficar como um trabalho futuro no fim do trabalho.

Alm de realizar a paralelizao com MPI do algoritmo de modelagem ssmica


via diferenas finitas, foi objetivado estudar critrios para se decompor o domnio.
comum que, para testar algoritmos, sejam desenvolvidos modelos sintticos em que
todas as direes sejam de mesmo tamanho e , portanto, dividir o domnio igualmente
nas direes em que ele for dividido, como pode ser visto em BULCO et al. (2001) e
CHAKRABORTY (2003). Porm, os modelos geofsicos no possuem dimenses

2
idnticas e duas formas diferentes que dividam o domnio na mesma quantidade de
partes, cada uma responsvel pelo processamento do mesmo nmero de ns, podem ter
diferenas de desempenho se usado o MPI, pois o tamanho das mensagens seria
diferente e isso torna a execuo de um programa mais lenta em um padro de troca de
mensagens. Outra situao no abordada nas referncias j citadas a do uso do recurso
do MPI que se vale da topologia de uma mquina paralela para facilitar a comunicao
entre os processos, como defendida em GROPP (1996), que tambm faz parte do
conjunto de objetivos deste trabalho.

Como ltimo objetivo, tem-se demonstrar que a modelagem 3D vivel atravs


da metodologia abordada. Para isto ser feito um teste em um modelo 2D
proporcionalmente aumentado at que chegue a uma quantidade de dados parecido com
os de um modelo 3D conhecido e ento o algoritmo ser executado utilizando este como
dado de entrada.

Em suma, pretende-se realizar a paralelizao de um algoritmo de modelagem


2D, utilizando a Decomposio do Domnio e estabelecendo critrios para a forma de
atribuir partes do domnio aos processos, assim como usar as topologias das mquinas
paralelas com o intuito de melhorar o desempenho dos cdigos e, por fim, mostrar que a
metodologia expansvel ao caso 3D, ao executar o cdigo utilizando um modelo 2D
aumentado, porm com dimenses que produzam uma quantidade de ns de um 3D
conhecido. Como formas de avaliar o desempenho sero feitos os grficos de speedup,
eficincia e granularidade para cada execuo.

1.2 Estrutura da Dissertao

Esta dissertao dividida em seis captulos. Este dedicado introduo, o


segundo dedicado a apresentao do mtodo ssmico, o terceiro refere-se computao
de alto desempenho, o quarto tratando da metodologia do trabalho, o quinto trata dos
resultados e no ltimo so mostradas as concluses e trabalhos futuros.

O Captulo 2 trata de alguns conceitos bsicos do mtodo ssmico, da aquisio


ssmica e da modelagem da aquisio. Algumas caractersticas superficiais da

3
modelagem foram abordadas (mais informaes em BULCO, 2004; SILVA, 2009 e
ANCELME, 2011).

O Captulo 3, trata da computao de alto desempenho, sobre modelos de


memria, o MPI e medidas de desempenho de execues em paralelo, assim como
apresenta a possibilidade que o MPI tem de fazer uso da topologia da mquina para
melhor distribuir o domnio entre os processos.

No Captulo 4 a metodologia deste trabalho abordada, mostrando como a


aplicao serial e como foi feita a paralelizao, atravs do uso das estruturas lgicas do
apndice A, das zonas fantasma e, principalmente da decomposio do domnio. Para
esta ltima so apresentadas as formas de decomposio em faixas verticais e hbrida e,
para a forma hbrida, so apresentados dois critrios para a escolha da melhor forma de
subdividir o domnio.

O Captulo 5 apresenta os resultados, demonstrando como o uso das caches pode


ser crucial na execuo de um cdigo, os efeitos de cada tipo de decomposio so
comparados, assim como os critrios e o uso das topologias.

No Captulo 6 so feitas as concluses e apresentados os trabalhos futuros, onde


as implementaes com diferentes tamanhos de modelos de velocidade e nmero de
processos por n computacional (ppn) sero avaliadas, conforme seus speedup,
eficincia e granularidade.

Por fim, este trabalho conta com dois apndices, que tratam da descrio do
cdigo utilizado (Apndice A) e de rotinas bsicas do MPI (Apndice B).

4
Captulo 2
O Mtodo Ssmico

Neste captulo apresentado o principal mtodo geofsico usado na explorao


de hidrocarbonetos. Este mtodo se vale do fenmeno fsico da propagao da onda
elstica em meios geolgicos para com dados colhidos em superfcie extrair
informaes sobre a estrutura do meio onde a onda se propagou, atravs de tcnicas de
migrao (BULCO, 2004) e em casos menos frequentes obter suas propriedades
petrofsicas (BOSSIER, 2009).
A primeira seo deste captulo trata de um caso particular da propagao da
onda elstica, o caso acstico abordado neste trabalho. Posteriormente, so descritos
os princpios bsicos de uma aquisio ssmica e, por fim, mostra-se como feita a
modelagem computacional da propagao bidimensional da onda.

2.1 Propagao da Onda Acstica

A propagao da onda acstica um caso particular da propagao da onda


elstica (BULCO, 2004). A modelagem elstica da onda trata de duas formas de
propagao da energia em um meio geolgico, as ondas compressionais (ondas P) e
cisalhantes (ondas S). A onda S se propaga por conta da ao de foras de cisalhamento
entre as camadas de um meio slido, fazendo com que as partculas do meio oscilem
perpendicularmente direo da propagao da onda, ao contrrio da onda P que por
sua vez faz as partculas oscilarem na mesma direo, como exemplifica a Figura 2.1.

Obviamente que a modelagem elstica descreve melhor o fenmeno da


propagao da onda ssmica, contudo a aproximao acstica consegue fornecer
resultados satisfatrios no processamento, alm de ser mais rpida e mais simples de ser

5
executada. Estas so algumas razes de a indstria trabalhar predominantemente
com dados acsticos na explorao de reservatrios de hidrocarbonetos. Da, a
aproximao acstica realizada neste trabalho torna-se, no apenas relevante, mas
condizente com o que amplamente aplicado.

Figura 2.1 Comparao entre as direes de propagao e oscilao das ondas P e S.

Em SILVA (2012), a equao acstica da onda obtida atravs da Lei de Hooke


generalizada e da segunda Lei de Newton, considerando constante a densidade do meio
onde a onda se propaga, resultando no caso 2D na Equao 2.1.

( ) ( ) ( ) ( )
( )

Onde os operadores , e representam as derivadas parciais de

segunda ordem em relao s coordenadas espaciais x e z e coordenada temporal t,


P(x,z,t) representa o campo da onda acstica, V(x,z) representam as velocidades de
propagao da onda no meio acstico, f(t) o termo fonte e a funo impulso, que
da forma como consta na Equao 2.1 indica que a fonte aplicada no ponto de
coordenadas espaciais ( ).

Para a soluo da Equao 2.1 so necessrias condies iniciais e de contorno.


Como condies iniciais considera-se que, tanto o campo de onda quanto so nulos
antes da insero da fonte no meio (como pode ser visto na Equao 2.2).

6
( )

, (2.2)
( )
{

J as condies de contorno podem ser impostas de diferentes formas,


prescrevendo-se valores no contorno do domnio espacial. Alguns exemplos so a
imposio das condies de Dirichlet (Equao 2.3) e Neumann (Equao 2.4). A
primeira condio prescreve o campo como sendo nulo no contorno e a segunda
prescreve a derivada primeira na direo normal ao contorno como sendo nula. Estas
duas condies podem ser impostas ao mesmo problema matemtico se forem aplicadas
partes diferentes do contorno, como visto em DUARTE (2011). Porm, tais condies
no caracterizam o problema da aquisio ssmica, onde no h campos prescritos. Para
o problema geofsico em questo costuma-se aplicar condies de contorno que
simulam domnios infinitos ou semi-infinitos ao introduzir bordas artificiais, com
condies diversas. Dentre elas encontram-se as condies de bordas no-reflexivas e
de amortecimento que podem ser vistas na Seo 2.3 assim como condies de
borda randmica, introdozidas por CLAPP (2009).

2.2 Aquisio Ssmica

A aquisio ssmica, ou levantamento ssmico, consiste em captar o sinal de


ondas ssmicas, geradas por uma fonte controlada, aps estas terem se propagado em
subsuperfcie, repetidas vezes ao longo de uma rea explorada. O resultado final da
aquisio uma seo ssmica, que consiste no empilhamento de sismogramas de vrios
tiros que, por sua vez, consiste na colocao lado a lado dos traos ssmicos
registrados em cada receptor que na maioria das vezes so posicionados na
superfcie. A Figura 2.2 ilustra duas aquisies, uma martima e outra terrestre.

7
Figura 2.2 Ilustraes de aquisies Terrestre (A) e Martima (B). Extradas dos sites
lingo.cast.uark.edu e openlearn.open.ac.uk, respectivamente, em 13 de fevereiro de
2012.

O instrumento utilizado para realizar o registro ssmico chamado geofone no


caso da aquisio terrestre ou hidrofone para a martima, que podem ser vistos na
Figura 2.3. Estes so receptores de ondas ssmicas que registram a amplitude com que a
onda chega nele em cada intervalo de tempo, determinado pela preciso do aparelho.
comum que, ao invs de um receptor, seja usado um conjunto de receptores, cujos sinais
so somados, para que esta soma corresponda ao dado final, este conjunto chamado de
estao de receptores. Isto feito para aumentar a relao sinal/rudo do dado. frente,
quando eu tratar de receptores me refiro s estaes de receptores.

Figura 2.3 Da esquerda para a direita, um geofone e um hidrofone. Extradas dos sites
chinageo.en.alibaba.com e www.websters-online-dictionary.org, respectivamente, em
17 de fevereiro de 2012.

O trao ssmico o sinal captado por um receptor durante o tempo em que foi
medida a resposta do meio a um tiro. Se tais receptores forem colocados na superfcie, o
trao ssmico corresponde ao dado captado a uma posio horizontal, afastada de certa

8
distncia do ponto onde ocorreu o tiro. Um sismograma construdo seguindo este
afastamento da posio onde o tiro foi dado, de tal forma que os traos ssmicos estejam
um do lado do outro, por ordem de afastamento. Cada tiro tem o seu sismograma
correspondente. A Figura 2.4 mostra um sismograma e suas partes.

Figura 2.4 esquerda um sismograma, ao centro uma parte deste e por ltimo um
fragmento de um trao ssmico.

Vrios tiros so dados seguindo uma diagramao e parmetros pr-determinados. Uma


aquisio ssmica pode ter diversos parmetros, dependendo do seu tipo. A forma mais
bsica, um levantamento ssmico bidimensional, rene trs parmetros principais, que
segundo SILVA (2008) so comuns maioria dos tipos de aquisio, so eles:
IPT Sigla para Intervalo entre Pontos de Tiro, que a distncia
horizontal entre os pontos onde foram dados os tiros;
IE Intervalo entre canais ou estaes de receptores
Offset Afastamento entre fonte e receptor. So chamadas de mnimo
offset e mximo offset as distncias do primeiro e do ltimo receptor
fonte, respectivamente.

A partir de agora ser tratado do caso 2D, cujosos tipos mais comuns de
aquisio so o split spread onde a fonte ocupa uma posio, aproximadamente,
central em relao aos receptores e o end-on spread em que a fonte fica numa
posio lateral em relao aos receptores. Em levantamentos terrestres costuma-se usar
o tipo split spread, enquanto em um levantamento martimo usa-se o tipo end-on

9
spread, uma vez que nesta situao o navio ssmico arrasta os receptores atravs de
cabos enquanto emite pulsos com a fonte ssmica, como visto na Figura 2.5.

Figura 2.5 esquerda a aquisio e sismograma end-on ( esquerda) e split spread (


direita).

Aps serem dados vrios tiros e de terem sido obtidos vrios sismogramas, estes
sero processados, atravs de diferentes tcnicas de migrao, que tero como resultado
uma seo ssmica, que podem ser ditas pr-empilhamento (quando a seo resulta da
soma ou empilhamento das migraes de cada tiro) ou ps-empilhamento (quando a
seo resulta do processamento da soma dos sismogramas).

Os parmetros citados acima vo determinar outro fator importantssimo na


aquisio, a cobertura (ou fold). Ao escolher o IPT de uma aquisio, este poderia ser
escolhido de tal forma que, entre um tiro e outro, no fossem colhidos dados na mesma
regio da aquisio. Isso seria mais econmico e mais rpido, porm, a redundncia dos
dados faz com que a relao sinal rudo seja reduzida, aumentando a qualidade da
imagem final processada. A Figura 2.6 exemplifica a cobertura, usando a tcnica CMP,
considerando apenas os dados refletidos em um meio de camadas paralelas. Diz-se que
a cobertura de 200% quando a redundncia do dado de 2 vezes, 300% quando for de
3 vezes e assim sucessivamente.

10
Figura 2.6 A figura ilustra a forma de se obter a redundncia no dado ssmico. A
regio em amarelo ilustra uma regio com cobertura 1, em lils com cobertura 2 e em
vermelho com cobertura 3, sendo a regio em preto a que no foi coberta na aquisio.

2.3 Modelagem Serial

Na seo 2.1 foi mostrada a equao acstica da onda, que ser usada para
modelar o fenmeno fsico que envolve a aquisio ssmica, apresentada na seo 2.2.
Tipos de aquisies diferentes necessitariam de modelagens especficas, que
vislumbrariam as particularidades de cada uma. Em comum elas tm o fenmeno fsico
que rege o mtodo ssmico, a propagao da onda. A modelagem da propagao da
onda, independente da aquisio, tem suas caractersticas bsicas, que deve estar em
qualquer programa de modelagem ssmica.

11
Nesta seo so apresentados alguns elementos que devem ser considerados ao
mudar de um paradigma de espao contnuo - as solues analticas - para a soluo
numrica do problema da propagao da onda.

Primeiramente, existe a questo da memria finita do computador, o que implica


em discretizar a equao da onda, isto ser feito via Mtodo das Diferenas Finitas que
como um mtodo numrico apresenta suas limitaes e deve obedecer a critrios de
no-disperso e estabilidade. Depois, vem a escolha da fonte e, ento, lidar com o
problema do modelo finito para simular a propagao da onda em um meio infinito.

Discretizao da equao acstica da onda


O problema da propagao da onda acstica, abordado na seo 2.1, refere-se a
um domnio contnuo e, como no possvel trabalhar um problema contnuo no
computador, deve-se realizar a discretizao do problema. A discretizao da equao
2.1, via Mtodo das Diferenas Finitas (MDF), feita fazendo aproximaes de quarta
ordem no espao e segunda ordem no tempo (SILVA, 2009). Assim, obtem-se a
Equao 2.3, que computa o campo de presso em um determinado ponto de
coordenadas (i,k), em um passo de tempo n+1 .

[( ) [ ( ) ]

(2.3)
( ) [ ( )

]] ( ) ( )

Onde, i, k e n so indexadores das discretizaes espacial (x e z) e temporal,


respectivamente.

Assim, a soluo do campo para certo n da malha de diferenas finitas em um


passo de tempo, depender do valor do campo no mesmo n em dois passos anteriores,
12
assim como do valor de 8 ns vizinhos (2 anteriores e 2 posteriores, na vertical e na
horizontal), no passo de tempo anterior, conforme ilustra a Figura 2.7.

Figura 2.7 Representao da distribuio espacial de um operador de diferenas finitas


de 4 ordem.

Modelagem da fonte

Para a simulao da fonte ssmica, foi utilizada a derivada segunda da funo


Gaussiana (Figura 2.8) e dada pela seguinte expresso matemtica (CUNHA, 1997):

( ) [ ( ) ] ( ) (2.4)

onde, t representa o tempo e a frequncia central, que est relacionada com a


frequncia de corte da fonte ssmica pela Equao 2.5.

(2.5)

A discretizao da funo fonte deve ser analisada de forma especial para que
haja somente valores positivos de t. Para tal, a funo fonte ser discretizada conforme a
Equao 2.6.
( ) (2.6)

onde, n o passo de tempo do algoritmo, t o incremento temporal e TF o perodo


da funo Gaussiana dado por:

(2.7)

13
Figura 2.8 - Derivada segunda da Gaussiana para uma frequncia de corte de 60 Hz.

Bordas no-reflexivas e camadas de amortecimento.

A modelagem computacional do problema de propagao da onda aqui


discutido, admite que o meio onde h propagao infinito, porm esta condio no
pode ser reproduzida no computador, uma vez que este possui recursos de memria
finitos. Para lidar com este problema, assumem-se condies de borda que reproduzam
na modelagem os efeitos do uso de um meio infinito.

Sem tais condies, a aproximao espacial de quarta ordem em diferenas


finitas no possibilitaria que os campos correspondentes aos dois ltimos pontos, das
ltimas linhas (no caso das bordas inferiores e superiores) ou colunas (no caso das
bordas laterais) do modelo fossem calculados e, por isso, seriam tomados como nulos.
Isso acarretaria em reflexes nas bordas do modelo que no existem na situao real,
produzindo rudos indesejveis no dado. Para solucionar este problema so apresentadas
duas solues para atenuar estas reflexes, que podem ser encontradas em SILVA
(2009) e ANCELME (2011).

Proposta em REYNOLDS (1978), a primeira soluo foi uma borda no-reflexiva,


que se baseia na premissa de que as ondas atingem as partes mais afastadas do modelo
na forma de ondas planas. A representao em diferenas finitas das bordas vista nas
Equaes 2.8 2.11.

14
Borda Esquerda

( ) ( )

Borda Direita

( ) ( )

Borda Inferior

( ) ( )

Borda Superior

( ) ( )

onde, Nx e Nz so as dimenses do modelo de velocidades, x e z, so os


espaamentos das malhas em cada uma das direes e t o intervalo de tempo da
discretizao.

A segunda soluo consiste no uso de uma camada de amortecimento, que atenua a


amplitude do campo de onda ao passar por uma camada, adicionada ao modelo (vide
Figura 2.9). Esta estratgia proposta em por CERJAN et al. (1985) conhecida
como Borda de Amortecimento ou Caixa de Areia. Para fins de clculo, ela consiste em
multiplicar os campos dos passos anteriores (no espao) por uma funo peso, que
depende da aproximao das bordas e de um fator de amortecimento. A equao 2.12
trata da funo peso para a borda esquerda do modelo.

15
Figura 2.9 Ilustrao da caixa de areia de Cerjan. No se costuma usar camadas
superiores para simular o efeito da reflexo da frente de onda na lmina dgua.

( ) [ [ ( )] ] ( )

onde, a largura da camada de amortecimento e , o fator de amortecimento.

O argumento da funo ( ) deve ser alterado para as bordas inferior e direita,


de tal forma que a exponencial torne-se cada vez mais prxima do zero, medida que se
aproxima da borda. A ideia que esta passagem seja suave e, assim, evitar reflexes.

Os parmetros da funo peso devem ser ajustados para cada modelo e em


MENDES (2006) foi feito um estudo para a escolha destes parmetros, que devem ser
ajustados para cada modelo a ser utilizado.

Critrios de no-disperso e estabilidade.

Para evitar os erros de clculo ocasionados pela discretizao da equao da


onda atravs do mtodo das diferenas finitas (MDF), deve-se observar duas condies
para escolher os intervalos espacial e temporal, a fim de evitar os chamados erros de
disperso e estabilidade numricas:

( )

16
( )

onde, h o espaamento da malha, para o caso em que o espaamento vertical


o mesmo do horizontal, a menor velocidade de propagao registrada no modelo,
a freqncia mxima, o nmero mximo de amostras por comprimento de onda
(empiricamente, o valor timo encontrado foi , conforme pode ser visto em
MUFTI, 1990), a mxima velocidade registrada no modelo e o nmero
mximo de amostras por comprimento de onda (empiricamente, o valor timo
encontrado foi , conforme pode ser visto em FARIA, 1986). Parafraseando
ANCELME (2011): O processo de modelagem numrica pode ser controlado pela
estabilidade do algoritmo. Caso o algoritmo se torne numericamente instvel, o
problema jamais convergir para uma soluo efetiva.

17
Captulo 3
Computao de Alto Desempenho

Este captulo tem como objetivo apresentar alguns conceitos bsicos de


Computao de Alto Desempenho (tambm conhecida como HPC, por sua sigla em
Ingls).

Com o desenvolvimento da cincia, o uso de simulaes computacionais se


tornou uma alternativa recorrente ao experimento real. O custo de uma simulao
computacional bastante reduzido em relao ao experimento em si e, em muitos casos,
revela mais informaes sobre o fenmeno fsico observado.

Para tornar a modelagem vivel, o primeiro caminho seguido foi o de aumentar a


potncia, a frequncia, ou seja, a capacidade dos processadores. Com isso, os programas
passaram a ser executados em menos tempo, mas o aumento da potncia no se revertia
em um aumento igual da capacidade de processamento, uma vez que com o aumento
da potncia vinha a diminuio da eficincia dessas mquinas (HOFSTEE, 2004).
Aumentar a potncia dos processadores estava atrelado a lidar com um custo energtico
e um aquecimento maior, ocasionando ainda maiores gastos com sistemas de
refrigerao. A relao benefcio/custo do avano tecnolgico nesta direo tornava este
caminho pouco aprazvel para os fabricantes e para os clientes das mquinas.

O caminho foi, ento, explorar o uso de multiprocessadores ou multicores (o uso


de vrios processadores ou de processadores com mais de um ncleo nas novas
mquinas) que trabalhariam com potncia mais baixa e maior eficincia, reduzindo o
consumo de energia, a dissipao de calor e reduzindo a relao entre a energia gasta e
o processamento obtido. A melhoria do processamento foi obtida explorando a
arquitetura das mquinas. Assim, surgiram as mquinas paralelas, os

18
supercomputadores, que podiam tanto trabalhar com um paradigma de memria
compartilhada (GOTTLIEB, 1983) quanto distribuda (RIDGE, 1997).

Estes supercomputadores evoluram mais no sentido da memria distribuda do


que no sentido da memria compartilhada por conta da escalabilidade que as mquinas
distribudas possuem. Isto ocorreu at o momento em que os dois paradigmas de
memria passaram a ser utilizados em clusters com ns independentes, que usam
processadores multicore (de memria compartilhada), promovendo assim uma nova
maneira de se fazer programao paralela, a programao paralela hbrida, que se vale
dos benefcios de cada tipo de uso da memria para obter desempenho.

No contexto de memria compartilhada tambm entram as GPUs, que so


placas de vdeo, usadas para processar dados, sob uma situao de memria
compartilhada. Em NICKOLLS, (2008), demonstrado o uso de uma GPU que possui
112 processadores, com baixa capacidade de processamento e alta eficincia que,
juntos, podem trazer enorme ganho de desempenho a uma paralelizao. Um exemplo
de anlise de desempenho de vrias formas de programao paralela hbrida pode ser
visto em YANG (2011).

Em termos de programao, muitos padres foram desenvolvidos para se


implementar algoritmos paralelos, tanto para memria compartilhada (como POSIX e
OpenMP que pode ser visto em DAGUM e MENON, 1998), quanto distribuda (como
PVM vista em SUNDERAM et al. - e MPI discutido neste trabalho). Atualmente, os
mais usados so o MPI, para a memria disbribuda, o OpenMP para o uso de multicore
e CUDA para GPUs da NVIDIA.

Existe o consrcio OpenCL, que visa estabelecer um padro que seja capaz de
trabalhar com diferentes paradigmas de programao paralela, mas que, at ento, tem
tido bastante aplicao e xito para realizar programao paralela em GPUs,
independente do fabricante (KINDRATENKO, 2009), assim como o OpenMPC, uma
nova proposta de padro que tem o objetivo de unificar o uso de GPUs e multicore
ambos com paradigma de memria compartilhada em um s padro (LEE, 2010).

19
Percebe-se a busca por um padro de programao paralela que funcione
igualmente bem para todos os tipos de arquitetura e modelos de memria, conseguindo
obter um desempenho igual ou melhor que o dos padres atuais quando usados no tipo
de arquitetura que mais os favorece.

O grande objetivo de um programa em paralelo executar uma determinada


tarefa em menos tempo. Isto pode ser feito sobre diferentes paradigmas de memria e
depender, tambm, de qual tipo de paralelismo um problema apresenta e de qual
estratgia o programador decidiu seguir para realizar tal paralelizao. Assim, nas
prximas sees, discorre-se sobre alguns tipos ou paralelismo, paradigmas de memria
e formas de medir o desempenho de um cdigo.
.

3.1 Definies

Para o prosseguimento deste trabalho, ser necessrio antes que antes sejam
explicados alguns conceitos e definies, que depois sero tomadas como conhecimento
elementar do leitor. A seguir elas so explicadas.

Modelos de Memria. Existem dois modelos atualmente, o de memria


distribuda e de memria compartilhada. Estes tratam da forma como feito o
endereamento dos espaos de memria e do acesso que cada processo tem dos
endereos.

Em um modelo de memria distribuda, cada processo possui seus prprios


endereos de memria. Os dados de um processo podem ser acessados por outro apenas
por troca de mensagens. J em um modelo de memria compartilhada, todos os
processos tm acesso memria global, que modificada diretamente por eles.

importante frisar que o modelo de memria no um desenho estrutural do


hardware, mas da forma como o uso da memria de um computador paralelo pensado

20
na hora de se fazer programao. Um processador de vrios ncleos pode conter
memria distribuda (em suas caches) e, no entanto, compartilhar a maior parte de sua
memria, tendo sua arquitetura considerada como ideal para um padro de programao
paralela que utilize um modelo de memria compartilhada (CHAPMAN, 2008). Da
mesma forma, pode-se utilizar um modelo de memria distribuda para este, atravs de
um padro que faa endereamentos de memria independentes para cada processo.

Figura 3.1 Modelos de memria (a) distribuda e (b) compartilhada

21
Tipos de Paralelismo. Referem-se forma (a estratgia) usada para tratar a
paralelizao. Isto pode ser feito de vrias maneiras e, entre elas, esto o paralelismo no
dado e na tarefa (HILLIS e BOGHOSIAN, 1993). Paralelismo no dado significa que
uma tarefa ser realizada utilizando partes diferentes do dado e isso, geralmente, feito
atravs da decomposio do domnio (vide Captulo 4). J o paralelismo na tarefa, ou
diviso de tarefas, indica que diferentes aes sero realizadas, com os mesmos dados
ou no, po diferentes processos. Um problema pode ser abordado por diferentes formas
de paralelizao e, inclusive, mais de uma ao mesmo tempo.

Problemas Fortemente Acoplados. So problemas cujas tarefas exigem dados


calculados por outras e so de difcil paralelizao. Geralmente esta feita no dado e
existe a necessidade de comunicao entre os processos durantes a execuo.

Problemas Embaraosamente Paralelos. So aqueles que necessitam de


pouca ou nenhuma comunicao entre os processos, que podem executar muitas tarefas
de forma independente.

Escalabilidade. Capacidade de uma paralelizao de reduzir o tempo de


execuo de um programa medida que se eleva o nmero com executada.

Job. Conunto de tarefa submetida atravs de um script a um cluster, que,


dentre elas tem o programa a ser executado, mas que tambm consta o pedido de
recursos da mquina, uso de variveis de ambiente, direcionamento de arquivos para
diretrios etc.

3.2 Medidas de Desempenho

A implementao em paralelo de um programa pode gerar grandes ganhos de


tempo. Isto acarreta na necessidade de medidas para avalia-las e comparar diferentes
estratgias de paralelizao. Seguem as principais medidas.
22
Speedup. Refere-se a quantas vezes o tempo de execuo de uma aplicao foi
reduzido em comparao sua implementao serial, ou sua implementao em
paralelo, utilizando apenas um processo. Assim, dizer que uma execuo apresenta
speedup 2 significa que o tempo desta execuo foi reduzido metade do tempo que
levava a execuo serial (ou com apenas um processo). O speedup para n processos
dado por:

(3.1)

onde, e so os tempos de execuo para 1 e n processos, respectivamente.

Lei de Amdahl. Um programa pode no ser totalmente paralelizvel, at mesmo ter


poucas partes dele passveis de paralelizao. Isto faz com que a reduo do tempo
esteja sempre relacionada parte implementada em paralelo, no importando quantos
processos sejam utilizados, o tempo de execuo deste seria o tempo de execuo da
parte serial, acrescido de um tempo (reduzido) de execuo da parte paralelizada. A
projeo do speedup mximo, nesta situao dada pela lei de Amdahl, conforme a
Equao 3.2.

(3.2)

Onde, o speedup mximo e p a frao paralelizvel do cdigo. Perceba que,


mesmo que 90% da execuo seja feita em paralelo, o speedup obtido de acordo com
a esta lei poderia alcanar apenas o patamar de 10.

Eficincia. um indicativo do quanto o speedup aumenta em relao ao nmero


de processos utilizado e dada por:

(3.3)

23
Granularidade. A Granularidade, de fato, no uma medida, mas uma
ideia qualitativa da razo ente computao e comunicao. Neste trabalho a
granularidade ser tomada como uma medida, dada pela razo (G) entre nmero de ns
da regio cujos dados foram computados (Ncom) pelo tamanho da interface total de
comunicao (IT):
(3.4)

24
Captulo 4
Metodologia

O uso da Computao de Alto Desempenho pode reduzir drasticamente o tempo


necessrio para se obter o resultado de uma aplicao e amplamente utilizado para este
fim. Porm, no Mtodo Ssmico, outra questo acaba sendo crucial nos problemas: o
volume de dados. Para serem tratados com eficincia, os dados devem ser alocados na
memria RAM e os que sero reutilizados devem permanecer l para que no seja
necessrio um novo acesso ao disco, que muito mais demorado do que o acesso
memria. Em Bulco (2004) foi realizada uma modelagem elstica 3D que necessitou
de aproximadamente 26 Gb de memria, nmero que excede a capacidade de mquinas
seriais comuns. Assim, dois grandes problemas da geofsica recorrem ao uso da
Computao de Alto Desempenho:

(i) Conseguir processar um volume de dados maior do que o espao da


memria RAM de uma mquina comum;
(ii) Diminuir o tempo de execuo de um programa.

Alguns problemas geofsicos so resolvidos atravs de programas que


necessitam alocar em memria uma quantidade de dados muito grande, de tal forma que
mesmo em mquinas com bastante capacidade de memria eles no podem ser
usados atravs de programao serial. Algumas tcnicas de processamento geofsico 3D
so exemplos disso.

Mesmo que se aumentasse bastante a memria RAM de uma mquina


solucionando o problema (i) ainda restaria a questo do elevado tempo de execuo
destas aplicaes, pois poderiam levar meses executando at que chegassem ao
resultado final, enquanto ao mudar o paradigma de programao de serial para paralela,
um resultado do tipo poderia ser obtido em alguns dias ou, at mesmo, horas.
Um cdigo consiste em um conjunto de instrues. A partir de uma instruo, o
computador executa uma determinada tarefa. Estas tarefas necessitam de dados de

25
entrada para a sua execuo. Estes podem vir de um arquivo, atribudos como um
parmetro do cdigo ou terem sido computados por outra tarefa do mesmo cdigo.

Se certo cdigo for um conjunto de instrues independentes, pode-se reduzir o


tempo de execuo de um programa realizando a Diviso de Tarefas, que consiste em
separar as tarefas em conjuntos e fazer com que diferentes processos executem cada
conjunto de tarefas. Um exemplo bastante utilizado deste tipo de paralelismo seria a
simulao de uma aquisio ssmica composta de vrios tiros de tal forma que a
quantidade total de tiros seja dividida em n conjuntos e que cada um destes conjuntos de
tiros seja simulado em diferentes processadores. Espera-se que este tipo de paralelismo
reduza o tempo de execuo da simulao em algo prximo de n vezes, considerando, n,
a quantidade de processadores utilizada. Espera-se que o speed up de uma
implementao com este tipo de paralelismo seja linear, com uma reta prxima dos 45.

Porm, se um cdigo tiver instrues dependentes entre si, ou seja, se as tarefas


realizadas necessitarem de dados obtidos por outra, ento a diviso de tarefas no
poder ser realizada. A simulao da propagao da onda ssmica em meios acsticos,
no domnio do tempo, via diferenas finitas, um exemplo de um problema cujo
paralelismo no pode ser feito por diviso de tarefas. Este um caso de paralelismo de
dados, onde todas as instrues so executadas em todos os processos, porm, uma
quantidade menor dos dados processada por cada um dos processadores. Assim,
emprega-se a tcnica da Decomposio do Domnio (DD) para este tipo de problema.

A Decomposio do Domnio capaz de alcanar tanto o objetivo (i) quanto o


(ii), porm exige alguma comunicao entre os processos. Esta comunicao tem um
custo de tempo e obriga que os processos deixem de trabalhar enquanto a comunicao
realizada. Isso resulta em uma diminuio da eficincia do cdigo medida que o
nmero de processos aumenta e que o speedup no seja linear e que o tempo reduza
menos cada aumento no nmero de processadores utilizado. Sendo assim, ao
implementar a DD, deve-se buscar sempre que os processos se comuniquem o menos
possvel, afim de diminuir o efeito da comunicao sobre o speed up.

26
4.1 A Tcnica da Decomposio do Domnio
(DD).

A soluo de uma equao diferencial exige uma regio para a qual as solues
sero obtidas: o domnio. A Decomposio do Domnio consiste em atribuir uma parte
A/n da rea do domnio a cada processo, acarretando em que cada um deles trate uma
parte Qdados/n para solucionar o problema, onde A a rea total do domnio, Qdados
o volume de dados do problema e n o nmero de processos utilizado.

A propagao da onda ssmica via diferenas finitas no domnio do tempo


(FDTD, em ingls), tem como domnio o tempo e o espao. A Decomposio do
Domnio ser realizada apenas no espao, pois no h paralelismo temporal para este
tipo de problema. Assim, cada processo ser responsvel por uma parte do espao e
tomar apenas os dados correspondentes a esta regio para resolver a equao
diferencial. No caso, o dado que ser distribudo entre os processos ser o modelo de
velocidades, que o conjunto de valores das velocidades em cada ponto da malha de
diferenas finitas (domnio), da forma como foi feito por Minkoff (2002) para o caso
3D.

Para o caso 2D, a decomposio do domnio pode ser feita de trs formas, em
Faixas Horizontais (FH), Faixas Verticais (FV) ou Diviso Hbrida (DH), ilustradas na
Figura 4.1. A forma de dividir o domnio influenciar no tamanho de uma mensagem,
na quantidade de mensagens que sero trocadas e no volume total de dados trocados. O
tamanho de uma mensagem refere-se ao tamanho da interface entre dois subdomnios, a
quantidade de mensagens ser determinada pelo nmero de interfaces e o volume total
de dados trocados a soma de todos os dados passados por mensagens entre os
processos.

27
Figura 4.1 - Representao de diferentes formas de decompor o domnio. Nas figuras
(A) e (B), a Decomposio do Domnio gerou 5 interfaces, porm, em (C), foram
geradas 7 interfaces. Cada uma destas interfaces representa a necessidade uma troca de
mensagens.

Foram estudados os casos para a diviso em Faixas Verticais e da Diviso


Hbrida, sendo que para a ltima foram desenvolvidos dois Critrios (Menor Interface
(CMI) e Fatorao Central (CFC)) para efetuar tal diviso, que sero abordados adiante.
O caso da diviso em Faixas Horizontais foi descartado, uma vez que os modelos
utilizados na ssmica possuem, em geral, a dimenso horizontal maior que a vertical,
resultando em mensagens maiores do que se for utilizada a diviso em faixas verticais
sem, no entanto, alterar o nmero de mensagens trocadas. Um modelo de nx*nz pontos,
dividido em n faixas ter uma interface total entre os processos de (n-1)*nx pontos se
dividido horizontalmente e (n-1)*nz pontos se verticalmente. Se nx>nz, ento a
diviso vertical resultar em uma interface menor, como pode ser visto na Figura 4.2.

28
Figura 4.2 - Tamanhos das interfaces para as divises FH e FV, onde percebe-se que a
interface para a diviso FV menor do que para FH - uma vez que nz < nx.

Pretende-se decompor o domnio em n partes, sendo ndx o nmero de


subdomnios na direo x e ndz, o nmero de subdomnios na direo z tais que
ndx*ndz = n. Para se realizar a Diviso Hbrida, intuitivamente, algum poderia pensar
que a melhor configurao para a diviso seria aquela que aproxima a quantidade de
divises em cada direo do modelo. Para representar este raciocnio, foi desenvolvido
o Critrio da Fatorao Central (FC), que representa uma diviso intuitiva, na qual se
procura equilibrar a quantidade de subdomnios em cada direo. Veja o exemplo da
fatorao do n 24 e 16 em 2 termos na Figura 4.3. A fatorao escolhida seria a
fatorao (6, 4), pois ndx>ndz, analogamente ao raciocnio anterior usado para a
excluso da diviso em faixas horizontais.

O Critrio da Menor Interface Total (MI) foi desenvolvido levando em conta que
a comunicao entre os processos o grande agente que reduz o crescimento do
speedup objetiva reduzir a comunicao entre os processos ao escolher a Decomposio
do Domnio que resulte na menor Interface Total de comunicao (IT), que dada pela
soma dos pontos de todas as interfaces.

A configurao (ndx, ndz) que resulte na menor Interface Total ser a escolhida
para fazer a diviso (que pode ser hbrida ou no) do domnio. Para a Diviso Hbrida, o
clculo do tamanho da interface total fica:

29
( ) ( ) , (4.1)

onde, nx e nz so as dimenses horizontal e vertical em pontos - do modelo


de velocidades.

Figura 4.3 - Fatores Centrais oriundos das fatoraes de 24 (a) e 16 (b) em dois termos.

Da, para o Critrio da Menor Interface Total, toma-se a configurao de menor


IT para um dado n, que ser escolhida por comparao entre os ITs obtidos em cada
uma delas. O modelo Marmousi da IFP -, por exemplo, tem dimenses 2301 x 751
(em pontos), totalizando 1.728.051 pontos. Se o domnio for decomposto em 16 partes
sero comparadas 3 configuraes, (16, 1), (8, 2) e (4, 4). As outras configuraes
possveis (2, 8) e (1, 16) possuem ndx<ndz, isto gera um IT maior que suas verses
opostas, j que fazem deixam o maior nmero de interfaces na direo cuja dimenso do
domnio maior. De acordo com o critrio da menor interface, a melhor configurao
da diviso ser (8, 2), como exemplificado na Figura 4.4

30
Figura 4.4 - Divises hbridas com 16 processos, onde a melhor configurao, de acordo
com o CMI a (8, 2).

31
Perceba que a escolha da DD em 16 partes muda de acordo com o critrio. Na
Figura 4.5 feito um comparativo, lembrando que n=16, nx=2301 e nz = 751.

Figura 4.5 - Diviso hbrida para16 processos de acordo com os critrios (A) da menor
interface total e (B) dos fatores centrais.

4.2 Paralelizao do Cdigo

Antes de ser feita a paralelizao do cdigo, cada etapa do algoritmo foi


separada em sub-rotinas a fim de alterar minimamente o cdigo original e torn-lo mais
organizado.

A Figura 4.7 mostra a forma serial do algoritmo de propagao da onda e a


Figura 4.6 o respectivo fluxograma.

32
Figura 4.6 - Fluxograma do algoritmo.

33
Figura 4.7 - Forma serial do algoritmo de propagao da onda.

A etapa mais importante da paralelizao do algoritmo consiste em criar uma


sub-rotina que realize a etapa 2 (Carrega o Modelo de Velocidades) da Figura 4.7
para cada processo, de tal forma que eles carreguem apenas a parte pertinente a si
prprios do modelo de velocidades. A descrio segue na seo 4.2.1.

4.2.1 Carregando o Modelo de Velocidades

Conforme discutido no comeo deste captulo, a modelagem (da propagao da


onda) depende de um modelo de velocidades (um arquivo contendo as velocidades de
propagao da onda em subsuperfcie) por conta da equao da onda. Ao decompor o
34
domnio, uma parte do modelo de velocidades seja atribuda a certo processo e este
realiza os clculos do campo da onda apenas esta regio. O cerne da execuo deste
problema est em abrir o modelo de velocidades sem carregar ele todo para a memria
do computador.

Uma forma genrica de descrever todas as configuraes de Decomposio do


Domnio propostas considerar o domnio divido em n partes, rotuladas por nmeros
inteiros crescentes de 0 a n-1, de cima para baixo, da esquerda para a direita, nesta
ordem, determinando a configurao atravs de ndx e ndz, que correspondem ao nmero
de divises na horizontal e na vertical, respectivamente. Por exemplo, a diviso em
faixas verticais poderia ser vista como uma diviso hbrida que tem ndz igual a 1.

A rotulao dos subdomnios foi realizada contando-se a partir do zero por


conta do padro usado pelo MPI para enumerar os processos, desta forma, a numerao
de um processo chamada de rank de um processo. Assim, cada processo ser
responsvel pela parte do domnio rotulada pelo seu rank (veja a Figura 4.8).

Figura 4.8 - Forma geral da atribuio das partes do domnio aos processos.

35
Para entender melhor a atribuio do domnio aos processos suponha uma
situao onde os valores de ndx-1 e ndz-1 correspondam ao nmero de cortes que
precisariam ser feitos em um bolo de formato retangular para obter n pedaos que
receberiam rtulos de 0 a n-1. As n pessoas que receberiam os pedaos saberiam os seus
ranks e, ao identificar um pedao rotulado pelo valor de seu rank, qual o pedao pegar.
A maneira como o bolo cortado ou seja a configurao (ndx, ndz) - dependeria do
critrio escolhido por quem corta. Mas poder-se-ia dizer que o melhor critrio aquele
que faz o bolo ser comido (executado) em menor tempo.

Os valores de ndx e ndz dependem da configurao e do critrio escolhidos.


Uma vez tendo determinado estes parmetros, pode-se obter as dimenses de cada
subdomnio, que so as divises das dimenses nx e nz do modelo por ndx e ndz,
respectivamente, resultando em subdomnios de dimenses namx e namz, tais que:

(4.3)
{ .

Todas as variveis que tratam da diviso do domnio e de sua dimenso so


inteiras, da se todos os namx e namz forem iguais, a juno de todos os subdomnios
poderia no reconstruir o domnio completo, pois as dimenses dos subdomnios so o
resultado de divises, que no tm necessariamente que ser exatas. Se tomarmos a
direo horizontal como exemplo, a multiplicao de namx por ndx seria menor que nx
por uma quantidade rx (o resto na direo x) - uma vez que nx=namx*ndx + rx. A
soluo foi fazer com que os processos que recebem as partes inferior e lateral direita do
domnio processassem os dados referentes ao restante do domnio, vide Figura 4.9.
Estes processos realizam menos comunicao, por isso teriam que esperar a
comunicao dos outros terminar em todos os passos do loop temporal. Ao invs disso,
ao dar um pouco mais de d-los um pouco mais de carga, tais processos computariam
mais dados ao invs de ficar em espera. Essa metodologia deve ser eficiente at o ponto
em que o tempo de processamento da parte restante seja menor que o tempo de uma
troca de mensagens. A esta soluo foi dado o nome de Resto Concentrado.

J se os restos assumirem valores maiores, essa computao de dados a mais em


apenas um processo pode tornar-se prejudicial, da uma outra estratgia, seria dividir

36
igualmente o resto entre os r primeiros processos, tornando a carga de cada um muito
parecida. A esta soluo foi dado o nome de Resto Distribudo.

Figura 4.9 - Ilustrao dos processos que contm pontos excedentes nas divises hbrida
e FV.

4.2.2 Identificao do processo que contm a fonte (pfo)

Foi feita uma modelagem de tiro comum, ou seja, a fonte ssmica foi inserida em
apenas um ponto. A entrada de um programa de modelagem no deve ser alterada por
sua paralelizao, portanto o programa deve utilizar as coordenadas (ixf, kzf) da fonte,
de tal forma a identificar em qual processo haver a insero da fonte e reescrever tais
coordenadas dentro do processo que contm a fonte (que de agora em diante ser
chamado de pfo), em termos de ixfp e kzfp. necessrio reescrever (ixf, kzf) em

37
coordenadas da fonte , pois na presente paralelizao, as posies so contadas de 1 a
namx e de 1 a namz nas direes horizontal e vertical, respectivamente, para cada
processo, veja a Figura 4.10. Em Gropp (1996), foi proposto fazer com que cada
processo trabalhe com as posies reais do domnio, mas durante a confeco do
cdigo foi decidido realizar a contagem partindo sempre da posio 1 (em pontos) era
mais vantajoso por tornar o cdigo mais fcil de ser lido e mais parecido com o original
no formato serial, sem modificar o desempenho.

Figura 4.10 - Representao das dimenses do domnio e do subdomnio, assim como o


posicionamento da fonte no processo pfo.

4.2.3 O Loop Temporal

feito de forma sequencial no tempo, da mesma forma que na verso serial. A


paralelizao como discutido anteriormente vem da decomposio do domnio (uma
vez que cada processo calcula simultaneamente uma parte menor do campo de
ondas, o clculo feito em menos tempo) e este particionamento necessita que algumas
adaptaes sejam feitas em todas as etapas do loop temporal, porm mantendo a
possibilidade de executar com apenas 1 processo. Nesta seo trato destas adaptaes,
porm deixando para sees seguintes o aprofundamento da parte que trata da
comunicao.

38
A fonte ssmica ser inserida apenas no processo pfo, calculado antes do loop. O
clculo do campo e a aplicao das condies de bordas ainda no cdigo serial
tinham sido transformados em sub-rotinas que dependiam das dimenses do modelo e,
por isso, precisam sofrer poucas alteraes. Assim, para calcular o campo no sub-
domnio, precisa-se verificar onde o processo tem zonas-fantasma e para a aplicao
das condies de borda e determinar a regio de propagao preciso identificar se o
processo est em algumas e em quais das extremidades do modelo. Na seo 4.2.3.1
explicado o conceito e a necessidade das zonas-fantasma.

A) B)

Figura 4.11 (A) As interfaces internas entre os subdomnios necessitam de zonas


fantasma para o clculo dos campos de onda. Para isso um processo deve saber quantas
e quais zonas-fantasma ele tem. (B) Um processo tem que saber se deve e quais bordas
deve aplicar. Isso difere de um programa serial, no qual a condio de borda inserida
nos extremos do modelo, exceto na parte superior, simulando a reflexo da onda na
superfcie interface meio-ar, que tem o valor para o campo prescrito como P = 0.

A lgica utilizada para que os processos saibam se tm bordas ou zonas


fantasma pode ser vista no apndice. A Figura 4.12 ilustra o efeito de se utilizar as
rotinas de bordas sem as devidas alteraes, assim como a no atualizao das zonas-
fantasma.

39
Figura 4.12 Em (A) visto o sismograma oriundos do modelo de velocidades
Marmousi atravs do programa serial. Em (B) e (C) as execues aconteceram com a
decomposio do domnio em 9 partes (3x3), atravs do critrio da menor interface. O
sismograma de (B) foi obtido atravs de uma execuo onde aplicao das bordas no-
reflexivas e camadas de amortecimento no sofreram adaptao e o de (C) onde foram
retiradas as rotinas de comunicao produzindo reflexes internas na parte do
sismograma correspondente ao processo pfo.

40
4.2.3.1 Comunicao e Zonas-Fantasma

Na estratgia de paralelizao por decomposio do domnio, usando diferenas


finitas, os subdomnios possuem um tamanho limitado e para calcular o valor do
campo em um ponto o MDF necessita de pontos vizinhos. Com isso, se forem
tomadas a duas primeiras (ou duas ltimas) linhas (ou colunas), estas no poderiam ser
computadas, uma vez que no haveria suficientes vizinhos para completar a clula de
diferenas finitas (Figura 4.13). No caso, trato do operador espacial, da a quantidade de
vizinhos depender da ordem do mtodo. Para o caso de 4 ordem no espao, o operador
necessitar de 4 valores dos campos nos pontos vizinhos, no passo de tempo anterior,
em cada direo. Ou seja, 8 vizinhos.

Figura 4.13 - (A) Ilustrao do operador espacial de 4 ordem em diferenas finitas; (B)
Representao do modelo dividido; (C) Ilustrao de como o campo em alguns pontos
do subdomnio sombreado no poderia ser calculado sem as zonas-fantasma; (D)
Ilustrao da regio do subdomnio cujo o campo no poderia ser calculado.

Para solucionar esse problema foi usado o recurso das zonas-fantasma. Estas
consistem em gerar uma matriz com os valores do campo, no passo de tempo anterior,
que contenha os dados necessrios para calcular o valor atual do campo em todos os
pontos do modelo. Haver uma duplicao de dados entre os processos uma vez que
um processo ter dados correspondentes a pontos de um subdomnio que no lhe foram

41
atribudos. O nome zona-fantasma vem da ideia de haver o dado de um ponto que
no existe para certo processo, que ele no enxerga, mas cujo efeito pode ser notado
(usado para clculo).

As dimenses das zonas-fantasma dependem da ordem espacial o do mtodo


(tendo largura o/2) e da direo em que h a comunicao. Note que essas zonas, devem
ser atualizadas a cada passo de tempo, Porm, estes valores so calculados em outro
processo. Da surge necessidade da troca de informaes entre os processos, a cada
passo tempo. Portanto, ao fim do clculo do campo para todos os pontos do espao, um
processo envia a parte que o outro demanda do campo que o calculou e recebe a parte
que precisa para a sua zona-fantasma. A Figura 4.14 mostra as zonas-fantasma do
processo que realiza comunicao em todas as direes, enquanto a Figura 4.15 mostra
como a troca de mensagens feita entre processos.

Figura 4.14 - Representao das 4 zonas-fantasma inerentes ao processo 4, referente a


uma execuo com 9 processos, onde foi adotado o critrio da menor interface.

42
Figura 4.15 - Ilustrao da comunicao do processo 4 em uma execuo em paralelo
com 9 processos em uma diviso hbrida 3x3. A) Comunicao entre os processos 4 e 7.
B) Todas as comunicaes do processo 4.

Foram criadas das sub-rotinas para realizar a comunicao, que se baseiam em


MPI_SENDRECV, porm com algumas estruturas lgicas, a fim de fazer o processo
saber com quem troca mensagens, que podem ser vistas no Apndice A.

43
4.2.3.2 Gerao do Sismograma

O sismograma gerado apenas nos processos que contm a superfcie do


modelo e so gerados sempre ndx subsismogramas arquivos que contm parte do
sismograma de dimenses namx x Ntotal onde, Ntotal o nmero de passos de
tempo da propagao -, lembrando que namx pode no ser o mesmo para cada processo.
Cada processo identifica se deve, ou no, gerar o subsismograma, e ao sair do loop
temporal, cada sismograma gravado no disco de forma independente.

Figura 4.16 (A) modelo dividido em 9 (3x3) e B) subsismogramas desta execuo.

44
4.3 O Algoritmo em Paralelo.

A estrutura do algoritmo serial foi preservada, adicionando alguns elementos


cruciais para a implementao do cdigo, como rotinas de comunicao e testes para se
identificar quais processos realizariam certos tipos de tarefas, j em outras situaes foi
modificada a forma de se realizar a mesma ao (como na abertura do modelo de
velocidades). O fluxograma e o algoritmo do cdigo paralelizado so apresentados nas
Figuras 4.18 e 4.19 .

45
Figura 4.17 - Fluxograma do cdigo paralelizado.

46
Figura 4.18 - Algoritmo do cdigo paralelizado.

47
Captulo 5
Resultados

O programa serial, desenvolvido em FORTRAN foi paralelizado utilizando o


padro MPI de troca de mensagens. O objetivo deste trabalho foi comparar as formas
propostas para se paralelizar o algoritmo de propagao da onda 2D e, assim, inferir
qual a mais eficiente para ser usada em uma futura paralelizao do algoritmo 3D. Neste
trabalho foram propostas duas formas de decompor o domnio, em Faixas Verticais
(FV) e hbrida, sendo a ltima desdobrada em outras duas devido a dois diferentes
critrios de decomposio hbrida, Menor Interface Total (MI) e Fatores Centrais (FC),
descritas no Captulo 4.

Ao se trabalhar com modelos que no foram idealizados para testes de


execues em paralelo, mas inspirados em algum campo de explorao, comum ver
que a decomposio do domnio no dividir o domnio em partes iguais, devido
discretizao necessria para a implementao computacional. O que chamado de
resto concentrado consiste em atribuir o resto da diviso da dimenso do modelo pelo
nmero de divises naquela direo aos processos que contm as extremidades inferior
e direita do domnio. Por sua vez, o resto distribudo quando o valor do resto
dividido de um em um pelas r primeiros subdomnios, conforme descrito no
Captulo 4. Essa diferena na forma de lidar com os restos acarreta em uma duplicao
da quantidade de critrios a serem avaliados. Ento, no total, so geradas 6 situaes:
FV, MI e FC, para resto concentrado, e FVD, MID e FCD, para resto distribudo, porm
apenas 4 so tomadas neste trabalho (FV, FVD, FCD e MID), pois na Seo 5.1 j se
observa que o uso do resto distribudo mais vantajoso em relao ao concentrado. Nas
Tabelas 5.2, 5.3 e 5.4 constam, respectivamente, os parmetros da decomposio do
domnio nas configuraes FV, FC e MI para 1, 2, 4, 8, 9, 16, 24, 25, 32, 36 e 40
processos.

Todos os exemplos foram executados 5 vezes e as execues de menor e


maiores tempos foram excludas para se tomar uma mdia de tempo de execuo. Dois

48
contextos de utilizao de recursos de uma mquina paralela foram estudados, o da
utilizao da maior quantidade possvel de processos por n do cluster e da utilizao de
apenas um processo por n. Em BULCO (2001) constatou-se que a utilizao de um
processo por n gera um melhor resultado na execuo, mas isto ocasiona em uma
utilizao altssima de recursos de uma mquina paralela, ocasionando uma grande
demora para executar um job, da a necessidade de se estudar, tambm um contexto de
execuo onde se espera um resultado pior, mas que no tem a necessidade de uma
grande espera at que um job possa ser iniciado, que o caso de se usar mltiplos
processos por n do cluster.

Foram utilizados para estudo 3 modelos, o Marmousi da IFP e dois modelos


homogneos (HomogL e HomogXL) descritos na Tabela 5.1. O modelo Marmousi, com
espaamento da malha h=6m representa uma seo 2D de uma rea de
aproximadamente 13 km de extenso por 4500 metros de profundidade. Os modelos
homogneos criados representam situaes foram do contexto da ssmica de explorao
por representarem dimenses de escala muito maior do que a dos campos estudados e
foram criados com o intuito de se explorar a capacidade do programa em trabalhar com
volumes de dados aumentados, vislumbrando a situao de uma modelagem
tridimensional. O modelo HomogL tem dimenses que so referentes ao modelo
Marmousi multiplicado por 4 vezes e o HomogXL representa um volume de dados que
se assemelha ao de um modelo 3D de dimenses 1000 x 1000 x 500 em pontos. Na
Tabela 5.2 podem ser vistos os parmetros utilizados em todas as execues para se
obedecer aos critrios de no-disperso e estabilidade.

Tabela 5.1: Modelos utilizados para a obteno dos resultados, suas dimenses, o
nmero de pontos e o tamanho dos arquivos com nmeros de preciso simples.
Marmousi da IFP e os HomogL e HomogXL, modelos homogneos criados para
testar a eficincia da paralelizao.
Dimenses em Nmero de
Modelo Tamanho
pontos pontos
Marmousi 2301x751 1.728.051 6.59 MB
HomogL 9205x3005 27.661.025 103.22 MB
HomogXL 39001x13001 507.052.001 1.93 GB

49
O programa foi executado com 1, 2, 4, 8, 9, 16, 25 e 32 processos quando foram
utilizados os modelos Marmousi e HomogL e com 1, 2, 4, 8, 9, 16, 24, 25, 32, 36 e 40
processos para o modelo HomogXL. A adio das execues com 24, 36 e 40 processos
vem para exemplificar o efeito do esgotamento do nmero de processadores de um n
no tempo de execuo do programa.

Foi utilizado o cluster Netuno, que um cluster de alto desempenho, atendendo


a pesquisadores de todo o Brasil, em especial os da Rede de Geofsica Aplicada e da
Rede de Modelagem e Observao Oceanogrfica. Os recursos para sua aquisio foram
obtidos atravs de convnio entre a ANP/Petrobras e a UFRJ e, atualmente, est
instalado no Ncleo de Computao Eletrnica da UFRJ. O Cluster possui 256 ns
computacionais e desempenho sustentado de 16,2 TFlops e um sistema de
armazenamento Panasas, utilizado para rea de Scratch, com volumes formatados em
PanFS. Para maiores informaes sobre o Netuno veja SILVA, V. (2009).

Em cada execuo foram tomados 1 mil passos de tempo, que corresponde a um


nmero inferior ao necessrio para se obter os dados do menor modelo (o Marmousi),
porm os resultados dos tempos de execuo de trs diferentes estgios do programa
foram anotados: o carregamento de dados (parmetros e modelo de velocidades), o loop
temporal e a gravao do sismograma. As ltimas duas etapas so dependentes do
nmero de passos de tempo e foram feitas projees de tempos de execuo caso o
programa fosse executado com 10 mil, 50 mil e 100 mil passos de tempo, sendo
utilizado o tempo de 10 mil passos para efeito de comparao entre os mtodos, uma
vez que os resultados aps esta quantidade de passos tornam-se muito parecidos. Em
posse dos dados, foram obtidas as curvas de speed up e eficincia para a comparao
entre as configuraes de execuo. Duas formas de se executar os programas com
mesmas quantidades de processos foram exploradas, s ppn1 e ppn8.

50
Tabela 5.2: Configurao da decomposio em Faixas Verticais para os modelos
Marmousi e HomogL.
Faixas Verticais Marmousi HomogL
n npx npz rx rz rx rz
4 4 1 1 0 1 0
8 8 1 5 0 5 0
9 9 1 6 0 7 0
16 16 1 13 0 5 0
25 25 1 1 0 5 0
32 32 1 29 0 21 0

Tabela 5.3: Configurao da decomposio hbrida usando o critrio dos fatores centrais
para os modelos Marmousi, HomogL e HomogXL.
Fatorao Central Marmousi HomogL HomogXL
n npx npz rx rz rx rz rx rz
4 2 2 1 1 1 1 1 1
8 4 2 1 1 1 1 1 1
9 3 3 0 1 1 2
16 4 4 1 3 1 1 1 1
24 6 4 xxx xxx xxx xxx 1 1
25 5 5 1 1 0 0 1 1
32 8 4 5 3 5 1 1 1
36 6 6 xxx xxx xxx xxx 1 5
40 8 5 xxx xxx xxx xxx 1 1

Tabela 5.4: Configurao da decomposio hbrida usando o critrio dos fatores centrais
para os modelos Marmousi, HomogL e HomogXL.
Menor Interface Total Marmousi HomogL HomogXL
n npx npz rx rz rx rz rx rz
4 4 1 1 0 1 0 1 0
8 4 2 1 1 1 1 1 1
9 9 1 6 0 7 0 1 2
16 8 2 5 1 5 1 1 1
24 8 3 xxx xxx xxx xxx 1 2
25 5 5 1 1 0 0 1 1
32 8 4 5 3 5 1 1 1
36 0 0 xxx xxx xxx xxx 4 1
40 0 0 xxx xxx xxx xxx 1 1

51
PPN significa Processo Por N, assim se forem executados 8 processos em cada
n, ento a execuo ser chamada ppn8, da mesma forma que para apenas 1 processo
por n ela dita ppn1. Se cada n possuir 8 ncleos de processadores, ento cada
processo do n na execuo ppn8 ir para um processador, enquanto na ppn1 apenas 1
processador de cada n utilizado.

5.1 Execuo com 1 processo por n (ppn1),


utilizando o modelo Marmousi com os
critrios FV, FVD, FCD e MID.

FV e FVD. Na primeira execuo foi usado um modelo de uso recorrente na


ssmica, o Marmousi, para avaliar a paralelizao. Inicialmente foram executados os
critrios FV e FVD, cujos resultados constam nas Tabelas 5.4 e 5.5, com o intuito de
avaliar a eficcia do resto distribudo e concentrado. Da, foram obtidas as curvas de
speed up e eficincia de ambos (Figura 5.1 e Figura 5.2) para 1 mil, 10 mil, 50 mil e 100
mil passos de tempo.

Os resultados para 10 mil passos entre os critrios FV e FVD foram comparados


atravs de suas curvas de speed up e eficincia, conforme a Figura 5.2.

Perceba que a diferena nos tempos das execues que tm maior resto so as
mais elevadas. Este resultado evidencia a diferena existente na escolha da distribuio
do resto ao invs da concentrao em apenas um processo. Para esta implementao o
resto distribudo foi mais adequado para se obter execues mais rpidas. Isso ocorre
pelo fato de os processos serem executados em um tempo muito parecido, fazendo com
que o tempo de espera ocasionado pela comunicao bloqueante ao fim de cada passo
do loop temporal seja menor. No caso do resto concentrado, a cada passo de tempo, os
processos que ficam com uma parte menor do modelo processam os seus dados mais
52
rpido e deveriam aguardar a execuo do ltimo, que demoraria mais por ter a
necessidade de processar um volume maior de dados. No fim de cerca de 10 mil passos
de tempo, o resultado acumulado das esperas acarretou numa reduo do speed up da
aplicao de resto concentrado. Este problema pode se tornar cada vez mais relevante
medida que o nmero de processos aumenta, j que os restos podem se tornar maiores,
reduzindo a escalabilidade da paralelizao.

Tabela 5.5: Dados da decomposio em faixas verticais (FV) para a execuo ppn1 com
o Modelo Marmousi.
FV
1 2 4 8 9 16 25 32
Carregamento
1.69 0.93 0.46 0.34 0.26 0.13 0.14 0.09
de dados
Loop temporal 20.53 10.28 4.10 2.00 1.92 1.35 1.14 1.02
Gravao do
0.26 0.24 0.35 0.34 0.24 0.76 1.00 1.58
Sismograma
Tempo Total de
22.47 11.45 4.91 2.67 2.43 2.23 2.27 2.69
execuo
P. de tempo Tempo(s)
10 mil 209.55 106.16 44.94 23.69 21.91 21.19 21.4726.02
1041.0 129.7
50 mil 527.07 222.89 117.10 108.51 105.44 106.80
1 4
2080.3 259.3
100 mil 1053.21 445.31 233.87 216.76 210.75 213.46
3 9
Speed up
1 mil 1.00 1.96 4.58 8.41 9.26 10.06 9.89 8.37
10 mil 1.00 1.97 4.66 8.85 9.56 9.89 9.76 8.05
50 mil 1.00 1.98 4.67 8.89 9.59 9.87 9.75 8.02
100 mil 1.00 1.98 4.67 8.90 9.60 9.87 9.75 8.02
Eficincia
1 mil 1.00 0.98 1.14 1.05 1.03 0.63 0.40 0.26
10 mil 1.00 0.99 1.17 1.11 1.06 0.62 0.39 0.25
50 mil 1.00 0.99 1.17 1.11 1.07 0.62 0.39 0.25
100 mil 1.00 0.99 1.17 1.11 1.07 0.62 0.39 0.25

53
Tabela 5.6: Dados da decomposio em faixas verticais com resto distribudo (FVD)
para a execuo ppn1 com o Modelo Marmousi.

FVD
1 2 4 8 9 16 25 32
Carregamento
1.69 0.93 0.46 0.26 0.22 0.17 0.10 0.06
de dados
Loop temporal 20.53 10.28 4.10 2.06 1.90 1.34 1.09 0.98
Gravao do
0.26 0.24 0.35 0.25 0.24 0.35 0.37 0.15
Sismograma
Tempo Total de
22.47 11.45 4.91 2.56 2.36 1.87 1.56 1.19
execuo
P. de tempo Tempo(s)
10 mil 209.55 106.16 44.94 23.30 21.63 17.11 14.69 11.35
50 mil 1041.01 527.07 222.89 115.46 107.28 84.85 73.04 56.52
100 mil 2080.33 1053.21 445.31 230.66 214.35 169.53 145.98 112.99
Speed up
1 mil 1.00 1.96 4.58 8.78 9.51 12.04 14.40 18.91
10 mil 1.00 1.97 4.66 8.99 9.69 12.25 14.27 18.46
50 mil 1.00 1.98 4.67 9.02 9.70 12.27 14.25 18.42
100 mil 1.00 1.98 4.67 9.02 9.71 12.27 14.25 18.41
Eficincia
1 mil 1.00 0.98 1.14 1.10 1.06 0.75 0.58 0.59
10 mil 1.00 0.99 1.17 1.12 1.08 0.77 0.57 0.58
50 mil 1.00 0.99 1.17 1.13 1.08 0.77 0.57 0.58
100 mil 1.00 0.99 1.17 1.13 1.08 0.77 0.57 0.58

54
Speed up FV
35

30

25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5 100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FV
1,4

1,2

1
Terico
Eficincia

0,8
1 mil
0,6
10 mil
0,4
50 mil
0,2 100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.1: Speed Up e Eficincia de FV para a execuo ppn1 com o Modelo


Marmousi.

55
Speed up FVD
35

30

25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5 100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FVD
1,4

1,2

1
Terico
Eficincia

0,8
1 mil
0,6
10 mil
0,4
50 mil
0,2 100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.2 Speed Up e Eficincia de FVD para a execuo ppn1 com o Modelo
Marmousi.

Perceba pela Figura 5.3 que o uso dos restos distribudos obteve melhores
resultados, principalmente para o caso das implementao com 32 processos, quando a
diferena entre os resultados foi mais acentuada.

56
Speed up
35

30

25
Speed up

20
Terico
15
FV
10
FVD
5

0
0 5 10 15 20 25 30 35
Processos

Eficincia
1,4

1,2

1
Eficincia

0,8
Terico
0,6
FV
0,4
FVD
0,2

0
0 5 10 15 20 25 30 35
Processos

Figura 5.3: Comparao dos Speed Up e Eficincia entre FV e FVD para a execuo
ppn1 com o Modelo Marmousi.

FCD e MID. Em posse do resultado da execuo anterior, o programa foi


novamente executado, porm apenas com as verses de restos distribudos dos critrios
da Fatorao Central (FCD) e Menor Interface Total (MID). Desta forma, foram
colhidos os tempos de execuo de FCD e MID (o D sendo por conta dos restos
distribudos), cujos resultados constam na Tabela 5.7 e na Tabela 5.8, respectivamente,
assim como suas curvas de speed up e eficincia podem ser vistas na Figura 5.4 e na
Figura 5.5 para 1 mil, 10 mil, 50 mil e 100 mil passos de tempo.

57
Tabela 5.7: Dados da decomposio em hbrida usando o critrio dos fatores centrais
com resto distribudo (FCD) para a execuo ppn1 com o Modelo Marmousi.
FCD
1 2 4 8 9 16 25 32
Carregamento
1.69 0.93 0.46 0.24 0.21 0.13 0.36 0.07
de dados
Loop
20.53 10.28 4.32 1.95 1.84 1.17 0.83 0.67
temporal
Gravao do
0.26 0.24 0.29 0.27 0.20 0.19 0.15 0.18
Sismograma
Tempo Total
22.47 11.45 5.07 2.45 2.25 1.48 1.34 0.92
de execuo
Tempo(s)
10 mil 209.55 106.16 46.52 22.34 20.60 13.64 10.22 8.57
50 mil 1041.01 527.07 230.73 110.76 102.17 67.70 49.68 42.55
100 mil 2080.33 1053.21 461.00 221.28 204.13 135.28 99.00 85.03
P. de tempo Speed up
1 mil 1.00 1.96 4.44 9.18 9.99 15.22 16.75 24.33
10 mil 1.00 1.97 4.50 9.38 10.17 15.36 20.50 24.45
50 mil 1.00 1.98 4.51 9.40 10.19 15.38 20.96 24.46
100 mil 1.00 1.98 4.51 9.40 10.19 15.38 21.01 24.47
Eficincia
1 mil 1.00 0.98 1.11 1.15 1.11 0.95 0.67 0.76
10 mil 1.00 0.99 1.13 1.17 1.13 0.96 0.82 0.76
50 mil 1.00 0.99 1.13 1.17 1.13 0.96 0.84 0.76
100 mil 1.00 0.99 1.13 1.18 1.13 0.96 0.84 0.76

58
Tabela 5.8: Dados da decomposio em hbrida usando o critrio da menor interface
total com resto distribudo (MID) para a execuo ppn1 com o Modelo Marmousi.
MID
1 2 4 8 9 16 25 32
Carregamento
1.69 0.93 0.46 0.24 0.20 0.20 0.36 0.07
de dados
Loop
20.53 10.28 41.00 1.95 1.88 1.12 0.83 0.67
temporal
Gravao do
0.26 0.24 3.48 0.27 0.18 0.25 0.15 0.18
Sismograma
Tempo Total
22.47 11.45 44.94 2.45 2.27 1.58 1.34 0.92
de execuo
Tempo(s)
10 mil 209.55 106.16 445.31 22.34 20.82 13.96 10.22 8.57
50 mil 1041.01 527.07 2224.74 110.76 103.28 69.00 49.68 42.55
100 mil 2080.33 1053.21 4449.02 221.28 206.36 137.81 99.00 85.03
P. de tempo Speed up
1 mil 1.00 1.96 0.50 9.18 9.92 14.26 16.75 24.33
10 mil 1.00 1.97 0.47 9.38 10.06 15.01 20.50 24.45
50 mil 1.00 1.98 0.47 9.40 10.08 15.09 20.96 24.46
100 mil 1.00 1.98 0.47 9.40 10.08 15.10 21.01 24.47
Eficincia
1 mil 1.00 0.98 0.13 1.15 1.10 0.89 0.67 0.76
10 mil 1.00 0.99 0.12 1.17 1.12 0.94 0.82 0.76
50 mil 1.00 0.99 0.12 1.17 1.12 0.94 0.84 0.76
100 mil 1.00 0.99 0.12 1.18 1.12 0.94 0.84 0.76

Os resultados para 10 mil passos entre os critrios FVD, FCD e MID foram
comparados atravs de suas curvas de speed up e eficincia, conforme a Figura 5.6.

Perceba que os resultados de FCD e MID foram superiores ao de FVD e que


MID foi levemente inferior, exceto para 4 processos, quando foi o pior dos trs, o que
pode ter sido devido ao fato de a mquina utilizada no ser exclusiva e poderia estar
com um nvel de uso maior no momento das execues. Perceba tambm que se atingiu
super speed up e eficincia maior que 1 para as execues at 9 processos, o que
devido ao predomnio dos dados nas caches dos processadores, porm com o aumento
da decomposio do domnio a granularidade da execuo aumentou e, com isso,
ocorreu a diminuio da eficincia das execues.

59
Speed up FCD
35
30
25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5
100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FCD
1,4
1,2
1
Terico
Eficincia

0,8
1 mil
0,6
10 mil
0,4
50 mil
0,2
100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.4: Speed Up e Eficincia do critrio FCD para a execuo ppn1 com o Modelo
Marmousi.

60
Speed up MID
35
30
25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5
100 mil
0
0 10 20 30 40
Processos

Eficincia MID
1,4
1,2
1
Terico
Eficincia

0,8
1 mil
0,6
10 mil
0,4
50 mil
0,2
100 mil
0
0 10 20 30 40
Processos

Figura 5.5: Speed Up e Eficincia do critrio MID para a execuo ppn1 com o Modelo
Marmousi.

61
Speed up
35

30

25
Speed up

20 Terico
15 FVD

10 FCD
MID
5

0
0 5 10 15 20 25 30 35
Processos

Eficincia
1,4

1,2

1
Eficincia

0,8 Terico
0,6 FVD

0,4 FCD
MID
0,2

0
0 5 10 15 20 25 30 35
Processos

Figura 5.6: Comparao dos Speed Up e Eficincia entre FVD, FCD e MID para a
execuo ppn1 com o Modelo Marmousi.

Na Figura 5.7 plotado um grfico da evoluo da eficincia com o aumento da


granularidade. Lembrando que a granularidade a razo entre a quantidade de dados
processados em relao quantidade de dados trocados por mensagens. possvel
perceber pelo grfico uma tendncia de aumento da eficincia com a granularidade.

62
1,6
1,4
1,2
Eficincia 1
0,8
0,6 Eficincia

0,4 Linear (Eficincia)

0,2
0
1,50 2,00 2,50 3,00 3,50

log (Granularidade)
Figura 5.7: Curva de eficincia de acordo com a granularidade (em escala logartmica),
para a execuo ppn1 usando o modelo Marmousi, que exibe uma tendncia de
evoluo com a granularidade, conforme a curva de tendncia linear.

5.2 Execuo com at 8 processos por n (ppn8),


utilizando o modelo HomogL, com os
critrios FVD, FCD e MID.

Os resultados da seo 5.1 apresentaram eventos de super speed up, quando a


eficincia da execuo supera o valor de 1. Isso se deve ao fato de grande parte dos
dados poderem ser alocados nas memrias cache de acesso mais rpido dos
processadores. A execuo serial carregando os dados do modelo Marmousi tinha a
maior parte dos seus dados na memria RAM, porm a diferena na proporo do dado
que fica na cache entre execues com 1 e n processos foi tal que o speed up se
elevasse muito por conta do preenchimento das memrias mais prximas do
processador. Assim, foi necessrio executar o programa em paralelo com o modelo
HomogL, idealizado para que o efeito do preenchimento das caches no fosse crucial no

63
resultado. Outra modificao na execuo foi o uso do mximo possvel de
processadores do n.

FVD, FCD e MID. A partir do resultado da Seo 5.1, foram executados as


verses distribudas das Decomposies do Domnio, os resultados constam nas Tabelas
5.9 5.10 e 5.11. As curvas de speed up e eficincia para 1 mil, 10 mil, 50 mil e 100 mil
passos de tempo so encontradas nas Figura 5.8, Figura 5.9 e Figura 5.10.

Tabela 5.9: Dados da decomposio em faixas verticais com resto distribudo (FVD)
para a execuo ppn8 com o Modelo HomogL.
FVD
1 2 4 8 9 16 25 32
Carregamento
26.87 22.85 86.55 188.23 159.88 96.36 56.38 92.87
de dados
Loop
311.75 183.75 166.12 184.39 180.36 105.65 67.67 125.10
temporal
Gravao do
1.73 1.03 0.97 0.84 0.52 0.85 0.42 0.61
Sismograma
Tempo Total
340.35 207.63 253.64 373.46 340.76 202.86 124.47 218.58
de execuo
Tempo(s)
10 mil 3161.67 1870.65 1757.45 2040.53 1968.68 1161.36 737.28 1349.97
50 mil 15700.87 9261.85 8441.05 9449.73 9203.88 5421.36 3460.88 6378.37
100 mil 31374.87 18500.85 16795.55 18711.23 18247.88 10746.36 6865.38 12663.87
P. de tempo Speed up
1 mil 1.00 1.64 1.34 0.91 1.00 1.68 2.73 1.56
10 mil 1.00 1.69 1.80 1.55 1.61 2.72 4.29 2.34
50 mil 1.00 1.70 1.86 1.66 1.71 2.90 4.54 2.46
100 mil 1.00 1.70 1.87 1.68 1.72 2.92 4.57 2.48
Eficincia
1 mil 1.00 0.82 0.34 0.11 0.11 0.10 0.11 0.05
10 mil 1.00 0.85 0.45 0.19 0.18 0.17 0.17 0.07
50 mil 1.00 0.85 0.47 0.21 0.19 0.18 0.18 0.08
100 mil 1.00 0.85 0.47 0.21 0.19 0.18 0.18 0.08

64
Tabela 5.10: Dados da decomposio em hbrida usando o critrio dos fatores centrais
com resto distribudo (FCD) para a execuo ppn8 com o Modelo HomogL.
FCD
1 2 4 8 9 16 25 32
Carregamento
26.87 22.85 108.42 172.32 136.82 97.55 70.83 93.53
de dados
Loop
311.75 183.75 166.16 190.19 177.25 99.65 61.90 115.36
temporal
Gravao do
1.73 1.03 1.55 0.89 1.00 0.81 0.94 0.59
Sismograma
Tempo Total
340.35 207.63 276.13 363.40 315.07 198.01 133.67 209.48
de execuo
Tempo(s)
10 mil 3161.67 1870.65 1785.52 2083.12 1919.32 1102.15 699.23 1253.03

50 mil 15700.87 9261.85 8493.92 9726.32 9049.32 5120.55 3212.83 5891.03

100 mil 31374.87 18500.85 16879.42 19280.32 17961.82 10143.55 6354.83 11688.53

P. de tempo Speed up
1 mil 1.00 1.64 1.23 0.94 1.08 1.72 2.55 1.62
10 mil 1.00 1.69 1.77 1.52 1.65 2.87 4.52 2.52
50 mil 1.00 1.70 1.85 1.61 1.74 3.07 4.89 2.67
100 mil 1.00 1.70 1.86 1.63 1.75 3.09 4.94 2.68
Eficincia
1 mil 1.00 0.82 0.31 0.12 0.12 0.11 0.10 0.05
10 mil 1.00 0.85 0.44 0.19 0.18 0.18 0.18 0.08
50 mil 1.00 0.85 0.46 0.20 0.19 0.19 0.20 0.08
100 mil 1.00 0.85 0.46 0.20 0.19 0.19 0.20 0.08

65
Tabela 5.11: Dados da decomposio em hbrida usando o critrio da menor interface
total com resto distribudo (MID) para a execuo ppn8 com o Modelo HomogL.
MID
1 2 4 8 9 16 25 32
Carregamento
26.87 22.85 86.55 172.32 159.88 87.76 70.83 93.53
de dados
Loop
311.75 183.75 166.12 190.19 180.36 101.73 61.90 115.36
temporal
Gravao do
1.73 1.03 0.97 0.89 0.52 0.53 0.94 0.59
Sismograma
Tempo Total
340.35 207.63 253.64 363.40 340.76 190.02 133.67 209.48
de execuo
Tempo(s)
10 mil 3161.67 1870.65 1757.45 2083.12 1968.68 1110.36 699.23 1253.03
50 mil 15700.87 9261.85 8441.05 9726.32 9203.88 5200.76 3212.83 5891.03

100 mil 31374.87 18500.85 16795.55 19280.32 18247.88 10313.76 6354.83 11688.53

P. de tempo Speed up
1 mil 1.00 1.64 1.34 0.94 1.00 1.79 2.55 1.62
10 mil 1.00 1.69 1.80 1.52 1.61 2.85 4.52 2.52
50 mil 1.00 1.70 1.86 1.61 1.71 3.02 4.89 2.67
100 mil 1.00 1.70 1.87 1.63 1.72 3.04 4.94 2.68
Eficincia
1 mil 1.00 0.82 0.34 0.12 0.11 0.11 0.10 0.05
10 mil 1.00 0.85 0.45 0.19 0.18 0.18 0.18 0.08
50 mil 1.00 0.85 0.47 0.20 0.19 0.19 0.20 0.08
100 mil 1.00 0.85 0.47 0.20 0.19 0.19 0.20 0.08

66
Speed up FVD
35

30

25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5 100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FVD
1,2

0,8
Terico
Eficincia

0,6 1 mil
10 mil
0,4
50 mil
0,2
100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.8: Speed Up e Eficincia de FVD para a execuo ppn8 com o Modelo
HomogL.

67
Speed up FCD
35

30

25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5 100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FCD
1,2

0,8
Terico
Eficincia

0,6 1 mil
10 mil
0,4
50 mil
0,2
100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.9: Speed Up e Eficincia de FCD para a execuo ppn8 com o Modelo
HomogL.

68
Speed up MID
35

30

25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5 100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia MID
1,2

0,8
Terico
Eficincia

0,6 1 mil
10 mil
0,4
50 mil
0,2
100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.10: Speed Up e Eficincia de MID para a execuo ppn8 com o Modelo
HomogL.

Os resultados para 10 mil passos entre os critrios FVD, FCD e MID foram
comparados atravs de suas curvas de speed up e eficincia, conforme a Figura 5.11.

69
Speed up
35

30

25
Speed up

20 Terico
15 FVD

10 FCD
MID
5

0
0 5 10 15 20 25 30 35
Processos

Eficincia
1,2

0,8
Eficincia

Terico
0,6
FVD
0,4 FCD

0,2 MID

0
0 5 10 15 20 25 30 35
Processos

Figura 5.11: Comparao dos Speed Up e Eficincia entre FVD, FCD e MID para a
execuo ppn8 com o Modelo HomogL.

Esta execuo teve baixo Speed Up e Eficincia, tornando os resultados da


comparao entre os critrios pouco conclusivos. Isso ocorreu por conta da disputa dos
recursos do n computacional por muitos processos. Esta paralelizao demanda em sua
fase inicial um uso muito grande de recursos de entrada e sada e durante o loop
temporal a troca de mensagens constante. Quando 8 processos so alocados em um n
computacional estes recursos so divididos por todos eles e pode gerar anomalias como
a elevao do tempo de carregamento de arquivos do disco medida que eles reduzem
de tamanho, como pode ser visto na Figura 5.12.
70
Tempo de Carregamento
200,00
180,00
Tempo de Carregamento (s)

160,00
140,00
120,00
100,00
80,00 Carregamento MID
60,00
40,00
20,00
0,00
0 10 20 30 40
Processos

Figura 5.12: Grfico que representa o tempo que cada processo levou para carregar seus
dados em cada execuo para o critrio MID.

0,9
0,8
0,7
0,6
Eficincia

0,5
0,4 Eficincia
0,3 Linear (Eficincia)
0,2
0,1
0
-0,1 2,00 2,50 3,00 3,50 4,00 4,50

log (Granularidade)

Figura 5.13: Curva de eficincia de acordo com a granularidade (em escala logartmica),
para a execuo ppn8 usando o modelo HomogL, que exibe uma tendncia de evoluo
com a granularidade, conforme a curva de tendncia linear.

A Figura 5.13 evidencia mais uma vez como a granularidade e, por sua vez, o
tamanho da interface de comunicao influencia na eficincia de uma execuo.

71
5.3 Execuo com 1 processo por n (ppn1),
utilizando o modelo HomogL com os critrios
FCD e MID.

Nesta seo, so comparados apenas os critrios FCD e MID, executados com 1


processo por n, evitando os gargalos de entrada e sada do n. O modelo utilizado
ainda o HomogL para evitar que as caches contenham a maior parte dos dados ao se
executar o programa com muitos processos. Em suma, para esta execuo disps-se de
mais recursos computacionais, utilizando o mesmo nmero de processos e a mesma
quantidade de dados da execuo realizada na Seo 5.2.

FCD e MID. Os dados das execues com dos critrios podem ser vistos nas
Tabelas 5.10 e 5.11. Foram obtidas as curvas de speed up e eficincia de ambos (Figura
5.14 e Figura 5.15) para 1 mil, 10 mil, 50 mil e 100 mil passos de tempo.

72
Tabela 5.12: Dados da decomposio em hbrida usando o critrio dos fatores centrais
com resto distribudo (FCD) para a execuo ppn1 com o Modelo HomogL.
FCD
1 2 4 8 9 16 25 32
Carregament
26.94 14.52 7.25 3.69 4.92 2.91 2.69 2.38
o de dados
Loop
303.33 153.45 78.82 38.94 36.57 20.71 13.84 10.34
temporal
Gravao do
1.00 5.48 6.03 2.83 6.60 3.63 3.73 2.87
Sismograma
Tempo Total
331.28 173.45 92.10 45.46 48.09 27.26 20.25 15.58
de execuo
Tempo(s)
10 mil 3070.28 1603.84 855.81 421.42 436.59 246.39 178.32 134.39
50 mil 15243.61 7961.13 4250.07 2092.35 2163.28 1220.30 880.81 662.43
100 mil 30460.27 15907.73 8492.90 4181.01 4321.65 2437.69 1758.93 1322.47
P. de tempo Speed up
1 mil 1.00 1.91 3.60 7.29 6.89 12.15 16.36 21.26
10 mil 1.00 1.91 3.59 7.29 7.03 12.46 17.22 22.85
50 mil 1.00 1.91 3.59 7.29 7.05 12.49 17.31 23.01
100 mil 1.00 1.91 3.59 7.29 7.05 12.50 17.32 23.03
Eficincia
1 mil 1.00 0.95 0.90 0.91 0.77 0.76 0.65 0.66
10 mil 1.00 0.96 0.90 0.91 0.78 0.78 0.69 0.71
50 mil 1.00 0.96 0.90 0.91 0.78 0.78 0.69 0.72
100 mil 1.00 0.96 0.90 0.91 0.78 0.78 0.69 0.72

73
Tabela 5.13: Dados da decomposio em hbrida usando o critrio da menor interface
total com resto distribudo (MID) para a execuo ppn1 com o Modelo HomogL.

MID
1 2 4 8 9 16 25 32
Carregamento
26.94 14.52 7.48 3.69 4.19 1.87 2.69 2.38
de dados
Loop
303.33 153.45 78.70 38.94 36.19 20.61 13.84 10.34
temporal
Gravao do
1.00 5.48 6.02 2.83 3.28 2.23 3.73 2.87
Sismograma
Tempo Total
331.28 173.45 92.20 45.46 43.65 24.72 20.25 15.58
de execuo
Tempo(s)
10 mil 3070.28 1603.84 854.67 421.42 398.83 230.35 178.32 134.39
50 mil 15243.61 7961.13 4243.44 2092.35 1977.39 1144.27 880.81 662.43
100 mil 30460.27 15907.73 8479.39 4181.01 3950.59 2286.66 1758.93 1322.47
P. de tempo Speed up
1 mil 1.00 1.91 3.59 7.29 7.59 13.40 16.36 21.26
10 mil 1.00 1.91 3.59 7.29 7.70 13.33 17.22 22.85
50 mil 1.00 1.91 3.59 7.29 7.71 13.32 17.31 23.01
100 mil 1.00 1.91 3.59 7.29 7.71 13.32 17.32 23.03
Eficincia
1 mil 1.00 0.95 0.90 0.91 0.84 0.84 0.65 0.66
10 mil 1.00 0.96 0.90 0.91 0.86 0.83 0.69 0.71
50 mil 1.00 0.96 0.90 0.91 0.86 0.83 0.69 0.72
100 mil 1.00 0.96 0.90 0.91 0.86 0.83 0.69 0.72

74
Speed up FCD
35
30
25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5
100 mil
0
0 5 10 15 20 25 30 35
Processos

Eficincia FCD
1,2

0,8 Terico
Eficincia

0,6 1 mil

0,4 10 mil
50 mil
0,2
100 mil
0
0 5 10 15 20 25 30 35
Processos

Figura 5.14: Speed Up e Eficincia de FCD para a execuo ppn1 com o Modelo
HomogL.

75
Speed up MID
35
30
25
Terico
Speed up

20
1 mil
15
10 mil
10
50 mil
5
100 mil
0
0 10 20 30 40
Processos

Eficincia MID
1,2

0,8 Terico
Eficincia

0,6 1 mil

0,4 10 mil
50 mil
0,2
100 mil
0
0 10 20 30 40
Processos

Figura 5.15: Speed Up e Eficincia de MID para a execuo ppn1 com o Modelo
HomogL.

Os resultados para 10 mil passos entre os critrios FCD e MID foram


comparados atravs de suas curvas de speed up e eficincia, conforme a Figura 5.2.
Perceba que a execuo com 1 processo por n teve valores de Speed Up mais elevados
do que a verso com 8 processos, j que os recursos do n so exclusivos p cada
processo. Percebe-se, tambm uma leve superioridade do critrio MID perante o FCD
para esta execuo.

76
Speed up
35

30

25
Speed up

20
Terico
15
FCD
10
MID
5

0
0 5 10 15 20 25 30 35
Processos

Eficincia
1,2

0,8
Eficincia

0,6 Terico
FCD
0,4
MID
0,2

0
0 5 10 15 20 25 30 35
Processos

Figura 5.16: Comparao dos Speed Up e Eficincia entre FCD e MID para a execuo
ppn1 com o Modelo HomogL.

Para a execuo ppn1, os recursos do n computacional so exclusivos para cada


processo. Isso permite no apenas uma comunicao melhor entre eles, que usam
exclusivamente o switch de rede, mas tambm administrar melhor os recursos de
entrada e sada. Neste trabalho, apenas a abertura dos arquivos foi paralelizada, a
diminuio dos tempos de gravao apresentados ao longo deste captulo se devem ao
fato de cada processo escrever arquivos de sada independentes e de menor tamanho. Na
Figura 5.17 mostrado o Grfico do Tempo de Carregamento do modelo de
77
velocidades em relao ao nmero de processos utilizados nesta execuo. Por conta do
sistema de armazenamento Panasas do cluster Netuno os tempos de leitura e escrita
podem ser reduzidos com o aumento do nmero de processos (SILVA,V., 2009), como
ocorrido aqui at atingir 16 processos. A partir da, o overhead de entrada passou a ser
comparvel ao tempo de carregamento dos arquivos, fazendo com que estes se
tornassem constantes e no tivessem mais uma dependncia predominante do tamanho
do dado carregado, mas sim do fato de se realizar um carregamento de dados.

Tempo de Carregamento
30,00
Tempo de Carregamento (s)

25,00

20,00

15,00

Carregamento MID
10,00

5,00

0,00
0 10 20 30 40
Processos

Figura 5.17: Grfico que representa o tempo que cada processo levou para carregar seus
dados em cada execuo para o critrio MID.

Os valores da eficincia foram computados para todas as implementaes desta


seo e dispostos conforme o grfico da Figura 5.17, que os compara com a respectiva
granularidade de cada execuo. Este tambm evidencia a relao entre granularidade e
eficincia.

78
1,05
1

Eficincia 0,95
0,9
0,85
0,8 Eficincia
0,75 Linear (Eficincia)
0,7
0,65
0,6
2,50 3,00 3,50 4,00 4,50

log (Granularidade)

Figura 5.18: Curva de eficincia de acordo com a granularidade (em escala logartmica),
para a execuo ppn1 usando o modelo HomogL, que exibe uma tendncia de evoluo
com a granularidade, conforme a curva de tendncia linear.

5.4 Execuo com at 8 processos por n (ppn8),


utilizando o modelo HomogXL com os
critrios FCD e MID.

FCD e MID. Na primeira execuo foi usado um modelo de uso recorrente na


ssmica, o Marmousi, para avaliar a paralelizao. Inicialmente foram executados os
critrios FCD e MID, cujos resultados constam na Tabela 5.13, com o intuito de avaliar
a eficcia do resto distribudo e concentrado. Da, foram obtidas as curvas de speed up e
eficincia de ambos (Figura 5.13) para 1 mil, 10 mil, 50 mil e 100 mil passos de tempo.

79
Tabela 5.14: Dados da decomposio em hbrida usando o critrio dos fatores centrais
com resto distribudo (FCD) para a execuo ppn8 com o Modelo HomogXL.
FCD
1 2 4 8 9 16 24 25 32 36 40
Carregamento 616.04 472.09 134.79 3161.59 183.47 1630.91 1081.18 1298.77 805.24 718.45 646.83
de dados
Loop
5717.05 3119.20 1329.78 3691.44 697.77 1758.30 1963.80 1167.49 903.18 789.34 782.92
temporal
Gravao do
8.66 13.68 7.89 7.17 18.60 9.78 17.54 15.09 13.44 11.64 10.79
Sismograma

Tempo Total
6341.75 3604.98 1472.46 6860.21 899.84 3398.99 3062.52 2481.35 1721.86 1519.44 1440.54
de execuo
Tempo(s)

10 mil 57873 31801 13511 40148 7347 19312 20895 13125 9971 8728 8584

50 mil 286901 157116 67018 188092 36002 90035 100148 60428 46636 40768 40332

100 mil 573186 313761 133902 373023 71820 178439 199215 119557 92467 80817 80017

P. de tempo Speed up

1 mil 1.00 1.76 4.31 0.92 7.05 1.87 2.07 2.56 3.68 4.17 4.40
10 mil 1.00 1.82 4.28 1.44 7.88 3.00 2.77 4.41 5.80 3.64 6.74
50 mil 1.00 1.83 4.28 1.53 7.97 3.19 2.86 4.75 6.15 3.85 7.11
100 mil 1.00 1.83 4.28 1.54 7.98 3.21 2.88 4.79 6.20 3.88 7.16
Eficincia
1 mil 1.00 0.88 1.08 0.12 0.78 0.12 0.09 0.10 0.12 0.12 0.11
10 mil 1.00 0.91 1.07 0.18 0.88 0.19 0.12 0.18 0.18 0.10 0.17
50 mil 1.00 0.91 1.07 0.19 0.89 0.20 0.12 0.19 0.19 0.11 0.18
100 mil 1.00 0.91 1.07 0.19 0.89 0.20 0.12 0.19 0.19 0.11 0.18

80
Tabela 5.15: Dados da decomposio em hbrida usando o critrio da menor interface
total com resto distribudo (MID) para a execuo ppn8 com o Modelo HomogXL.
MID
1 2 4 8 9 16 24 25 32 36 40
Carregamento
616.04 472.09 133.57 3161.59 66.70 1604.62 1188.33 1020.73 863.25 711.09 698.61
de dados

Loop temporal 5717.05 3119.20 1330.00 3691.44 647.24 1967.87 1243.40 1236.53 950.69 889.11 720.81

Gravao do
8.66 13.68 7.17 7.17 10.20 6.45 10.27 11.87 10.63 9.12 14.47
Sismograma

Tempo Total
6341.75 3604.98 1470.73 6860.21 724.14 3578.94 2442.00 2269.14 1824.57 1609.31 1433.89
de execuo
Tempo(s)

10 mil 57873 31801 13505 40148 6641 21348 13725 13505 10476 9693 8051

50 mil 286901 157116 66992 188092 32939 100321 63872 63441 48929 45622 37463

100 mil 573186 313761 133850 373023 65810 199037 126555 125861 96995 90534 74227

P. de tempo Speed up

1 mil 1.00 1.76 4.31 0.92 8.76 1.77 2.60 2.79 3.48 3.94 4.42
10 mil 1.00 1.82 4.29 1.44 8.71 2.71 4.22 4.29 5.52 5.97 7.19
50 mil 1.00 1.83 4.28 1.53 8.71 2.86 4.49 4.52 5.86 6.29 7.66
100 mil 1.00 1.83 4.28 1.54 8.71 2.88 4.53 4.55 5.91 6.33 7.72
Eficincia
1 mil 1.00 0.88 1.08 0.12 0.97 0.11 0.11 0.11 0.12 0.12 0.11
10 mil 1.00 0.91 1.07 0.18 0.97 0.17 0.18 0.17 0.18 0.10 0.18
50 mil 1.00 0.91 1.07 0.19 0.97 0.18 0.19 0.18 0.19 0.11 0.19
100 mil 1.00 0.91 1.07 0.19 0.97 0.18 0.19 0.18 0.19 0.11 0.19

81
Speed up FCD
45
40
35
30 Terico
Speed up

25
1 mil
20
15 10 mil
10 50 mil
5 100 mil
0
0 10 20 30 40 50
Processos

Eficincia FCD
1,2

0,8 Terico
Eficincia

0,6 1 mil

0,4 10 mil
50 mil
0,2
100 mil
0
0 10 20 30 40 50
Processos

Figura 5.19: Speed Up e Eficincia de FCD para a execuo ppn8 com o Modelo
HomogXL.

82
Speed up MID
45
40
35
30 Terico
Speed up

25
1 mil
20
15 10 mil
10 50 mil
5 100 mil
0
0 10 20 30 40 50
Processos

Eficincia MID
1,2

0,8 Terico
Eficincia

0,6 1 mil

0,4 10 mil
50 mil
0,2
100 mil
0
0 10 20 30 40 50
Processos

Figura 5.20: Speed Up e Eficincia de MID para a execuo ppn8 com o Modelo
HomogXL.

Os resultados para 10 mil passos entre os critrios FCD e MID foram


comparados atravs de suas curvas de speed up e eficincia, conforme a Figura 5.19.

83
Speed up
45
40
35
30
Speed up

25
Terico
20
15 FCD
10 MID
5
0
0 10 20 30 40 50
Processos

Eficincia
1,2

0,8
Eficincia

0,6 Terico

0,4 FCD
MID
0,2

0
0 10 20 30 40 50
Processos

Figura 5.21: Comparao dos Speed Up e Eficincia entre FCD e MID para a execuo
ppn8 com o Modelo HomogXL.

Mais uma vez o critrio MID se mostra superior ao FCD, que fica evidente nas
execues para 4 e 9 processos. Na Figura 5.20 vem a curva da Eficincia comparada
granularidade (em escala logartmica) para as execues desta seo.

Ambos os critrios apresentaram um baixo desempenho para a implementao


com 8 processos, o que se deve ao nvel elevado de competio pelos recursos da rede
de um nico n em uma implementao que gera mensagens muito grandes devido ao
tamanho do modelo de velocidades utilizado.

84
1,2

1
Eficincia

0,8

0,6
Eficincia
0,4 Linear (Eficincia)

0,2

0
3,00 3,50 4,00 4,50 5,00

log (Granularidade)

Figura 5.22: Curva de eficincia de acordo com a granularidade (em escala logartmica),
para a execuo ppn8 usando o modelo HomogXL, que exibe uma tendncia de
evoluo com a granularidade, conforme a curva de tendncia linear.

85
Captulo 6
Concluses e Trabalhos Futuros

No presente trabalho foi realizada a paralelizao de um algoritmo de


propagao da onda acstica 2D usando MPI. A equao da onda foi discretizada em
diferenas finitas com aproximaes de 4 ordem no espao e 2 ordem no tempo, foram
exploradas as melhores duas formas de se decompor o domnio, em Faixas Verticais
(FV) e hbrida, com restos concentrado e distribudo, j que foram usados modelos de
velocidades cujas dimenses no eram mltiplos do nmero de processos que se
desejava implementar.

Para a decomposio hbrida foram propostos dois critrios para se escolher a


forma de dividir o domnio, o critrio da Menor Interface (MI) e o critrio dos Fatores
Centrais (FC). O primeiro consiste em reduzir a interface de comunicao entre os
domnios atribudos a cada processo para se obter a menor granularidade possvel em
uma decomposio hbrida com um nmero fixo de processos e de dados a se computar,
enquanto o segundo baseia-se numa escolha intuitiva, sobre a forma que o senso comum
diria que seria a mais adequada para se decompor o domnio.

As decomposies que tinham por escolha de o resto distribudo receberam um


D no fim das siglas e foram chamadas FVD, FCD e MID. Ento foram rodadas
implementaes com at 8 processos por n (ppn8) e implementaes com 1 processo
por n (ppn1), com 3 modelos de tamanhos crescentes (desde um modelo 2D de amplo
uso o Marmousi at um modelo que tem um volume de dados similar a modelos 3D
tpicos usados na ssmica o HomogXL, tendo um modelo intermedirio o HomogL).

Os resultados foram comparados atravs de curvas de Speed Up e Eficincia.


Tambm foram apresentadas curvas de um coeficiente de granularidade (definido no

86
corpo da dissertao) pela eficincia e feitas anlises dos critrios de decomposio com
base nelas.

Concluses

Na seo 5.1 pde-se observar uma superioridade da implementao da


decomposio em Faixas Verticais usando restos distribudos em relao
implementao com restos concentrados. Foi visto que essas diferenas tornaram-se
importantes para melhorar a escalabilidade do programa em paralelo medida que os
restos vo se tornando maiores. Conclui-se, portanto, que o uso de restos distribudos
contribui para a melhora do speed up e, logo, da eficincia da paralelizao.

Ao longo das Sees 5.1, 5.2, 5.3 e 5.4 foram comparados os critrio FCD e
MID. Na Seo 5.1 eles se mostraram equivalentes para aquela situao sendo, porm,
superiores decomposio do domnio em Faixas Verticais, diferentemente da Seo
5.2. Nesta seo, porm, os resultados se mostraram pouco conclusivos em relao
comparao dos critrios. J nas Sees 5.3 e 5.4 foi possvel observar a superioridade
do MID em momentos diferentes, na primeira os resultados de FCD e MID foram
comparveis nas implementaes com menos processos e quando se elevou a
quantidade o critrio MID se mostrou superior, j na segunda a superioridade veio nas
implementaes com maior eficincia, as implementaes mais eficientes foram as do
MID. No grfico de Speed Up da Figura 5.21 observou-se um desempenho melhor para
FCD para 25 e 32 processos, que deve ser visto como diferenas de desempenho da
mquina nos momentos das execues, uma vez que a mquina utilizada
compartilhada e que os critrios FCD e MID so idnticos para 25 e 32 processos, como
pode ser visto nas Tabelas 5.3 e 5.4, e mesmo que no fossem a execuo ppn8 do
cdigo utilizando o modelo HomogXL j no se mostrara escalvel desde o uso de 9
processos. Assim, conclui-se que o critrio MID o mais adequado para a paralelizao.

Em todas as sees do Captulo 5 foi feito um grfico que compara a


granularidade com a eficincia das implementaes. Estes grficos no dependiam de
critrios de decomposio do domnio. Em todos os grficos das Figuras 5.7, 5.13,
5.18 e 5.22 pde-se observar a tendncia de aumento da eficincia com a
granularidade. Isso corrobora a concluso de que o critrio MID mais adequado, pois

87
ele englobado por uma concluso mais geral, a de que o aumento da eficincia est
relacionado com o aumento da granularidade. O ato de escolher as menores interfaces,
tendo a quantidade de dados e nmero de processos fixos ideia que fundamenta o
critrio MID consiste em reduzir em escolher um critrio que tenha a maior
granularidade para obter, assim, maior eficincia.

As execues das Sees 5.1 e 5.3 foram realizadas utilizando-se apenas 1


processo por n (ppn1), ou seja, colocando disposio de cada processo todos os
recursos de rede e de entrada e sada de um n computacional, ao passo que h
competio por tais recursos quando mais um processo so alocados em um nico n. O
resultado uma maior escalabilidade e melhor desempenho das execues ppn1. Como
exemplo, veja na Seo 5.2, a execuo ppn8 com 4 e 32 processos do critrio MID
(este ltimo que utiliza 4 ns computacionais) e compare com a execuo ppn1 da
Seo 5.3 com 4 processos. Os resultados de Speed Up e Eficincia da implementao
da Seo 5.3 so superiores s duas da 5.2. Quando comparadas as execues com 4
processos, aquela que faz uso exclusivo do n computacional superior por conta do
uso de mais recursos da mquina e se comparadas as situaes em que se usam o
mesmo nmero de ns, a que utiliza menos processos superior porque no enfrenta a
mesma quantidade de atrasos por overheads de leitura, escrita e comunicao. Conclui-
se que a implementao utilizando apenas 1 processo por n superior para este
problema, mesmo que usando menos processos.

Foi escolhido para esta paralelizao abrir que cada processo abrisse os arquivos
de entrada de forma independente. No caso do modelo de velocidades, cada um carrega
apenas a parte que lhe for atribuda do mesmo arquivo. O sistema de armazenamento da
mquina utilizada permitiu que esta estratgia fosse benfica para a paralelizao para
os casos das implementaes ppn1, j que o tempo de carregamento dos dados vai
sendo reduzido medida que o nmero de processos aumenta at que se atinja o ponto
em que os tempos de carregamento de arquivos dependam mais do overhead de entrada
do que da quantidade de dados carregada. Conclui-se, ento, que a estratgia de abrir de
forma independente partes do mesmo arquivo positiva para implementaes ppn1.

Na seo 5.4 foi realizada uma implementao com uma quantidade de dados
semelhante de um modelo 3D tpico utilizado em geofsica para testar como a

88
paralelizao respondia a um nmero alto de dados processados. Mesmo utilizando uma
implementao ppn8 o resultado foi satisfatrio, obtendo eficincia prxima unidade
nas implementaes com 4 e 9 processos. Associado a isso, o fato de a metodologia de
modelagem serial 3D ser similar serial 2D, concluo que a metodologia aplicada neste
trabalho extensvel ao caso tridimensional.

Trabalhos Futuros:

- Extender a metodologia para os casos 3D acstico e elstico;

- Realizar a Migrao RTM 3D em paralelo tanto usando a matriz tempo de


trnsito quanto a correlao cruzada como condies de imagem para dados acsticos e
elsticos;

- Desenvolver estratgias de abertura de arquivos de acordo com


implementaes ppn1 e ppn8;

- Utilizar padres de memria compartilhada como OpenMP e CUDA para


realizar a programao paralela hbrida e aumentar ainda mais o desempenho da
paralelizao, aproveitando o melhor desempenho do uso de 1 processo por n e
utilizando os recursos excedentes (os outros processadores ou placa de vdeo do n)
para realizar uma nova paralelizao.

- Realizar a paralelizao da modelagem no domnio da frequncia, tanto da


forma embaraosamente paralela quanto na paralelizao do sistema implcito de Nx x
Nz variveis.

89
Referncias Bibliogrficas

ANCELME, R. L., 2011. Migrao Reversa no Tempo na Determinao da Amplitude


de Reflexo em Funo do ngulo de Incidncia. Dissertao de Mestrado da
Universidade Federal do Rio de Janeiro, COPPE/UFRJ, Rio de Janeiro, Brasil.

BULCO, A., SOARES FILHO, D. M., MANSUR, W.J., et al. 2D and 3D Parallel
Acoustic Modelling: Computacional perfomance Analysis. In: XXII CILAMCE,
2001, Campinas, So Paulo, Brasil.

BULCO, A., 2004, Modelagem e Migrao Reversa no Tempo Empregando


Operadores Elsticos e Acsticos, Tese de Doutorado da Universidade Federal
do Rio de Janeiro, COPPE/UFRJ, Rio de Janeiro, Brasil.

BOSSIER, R., OPERTO, S., VIRIEUX, J., 2009. Seismic imaging of complex onshore
structures by 2D elastic frequency-domain full-waveform inversion.
GEOPHYSICS, VOL. 74, N. 6.

CERJAN, C., KOSLOFF, D., KOSLOFF, R., RESHEF, M., 1985. A Nonreflecting
Boundary Condition for Discrete Acoustic and Elastic Wave Equation.
Geophysics, v. 50, pp. 705-708.

CHAPMAN, B., JOST, G., VAN DER PASS, R., 2008. Usin OpenMP Portable
Shared Memory Parallel Programming. 2 ed. Cambrige, Estados Unidos, The
MIT Press (Scientific and engineering computation), 2008.

CLAPP, R.G., Reverse Time Migration with Random Boundaries, Expanded


Abstract, SEG, International and Annual Meeting, 2809-32. Houston, Texas,
USA, 25-30 October, 2009.

90
DAGUM, L., MENON, R., 1998. "OpenMP: an industry standard API for shared-
memory programming," Computational Science & Engineering, IEEE , v.5, n.1,
pp.46-55.

DUARTE, R. L., 2011. Uma Metodologia para a Extrao de ngulos de Reflexo em


Profundidade. Dissertao de Mestrado da Universidade Federal do Rio
de Janeiro, COPPE/UFRJ, Rio de Janeiro, Brasil.

FARIA, E. L., 1986. Migrao Antes do Empilhamento Utilizando Propagao Reversa


no Tempo. Dissertao de Mestrado da Universidade Federal da Bahia,
PPPG/UFBA, Salvador, Brasil.

FRICKE, J. R., 1988. Reverse-time migration in parallel: A tutorial. Geophysics, v.


53, n. 9, pp. 1143-1150.

GOTTLIEB, A., GRISHMAN, R., KRUSKAL, C. P., et al., 1983. The NYU
Ultracomputer - designing an MIMD shared memory parallel computer. IEEE
Transactions on Computers, v. 32, n. 2, p.p. 175189.

GROPP, W., LUSK, E., DOSS, N., SKJELLUM, A. Using MPI: portable parallel
programming with the message-passing interface. 2 ed. Cambrige, Estados
Unidos, The MIT Press (Scientific and engineering computation), 1999.

HILLIS, W. D., BOGHOSIAN, B.M., 1993. Parallel Scientific Computation. Science,


v. 261, n. 5123 pp. 856-863.

HOFSTEE, H. P., 2004. Future Microprocessors and Off-Chip SOP Interconnect. IEEE
Transactions on Advanced Packaging, v. 27, n. 2, pp.301-303.

KINDRATENKO, V., ENOS, J., SHI et. al . GPU Clusters for High-Performance
Computing. In: Workshop on Parallel Programming on Accelerator Clusters,
IEEE International Conference on Cluster Computing. 2009, pp. 1-8, Nova
Orleans, Estados Unidos, Ago 2009.

91
LEE, S., EIGENMANN, R.. OpenMPC: Extended OpenMP Programming and Tuning
for GPUs. Proceedings of the 2010 ACM/IEEE conference on Supercomputing,
Washington D. C., pp. 1-11, Estados Unidos, Nov 2010.

MADISETTI, V. K., MESSERSCHMITT, D. G.,1991. Seismic migration algorithms on


parallel computers. IEEE Transactions on Signal Processing: 1642-1654

MICHA, DAVID, KOMATITSCH, DIMITRI, 2010 .Accelerating a three-


dimensional finite-difference wave propagation code using GPU graphics cards.
Geophysical Journal International, v. 182, n 1, pp.389-402.

MINKOFF, S. E., 2002. Spatial parallelism of a 3d finite difference Velocity-stress


elastic wave propagation code. Siam Journal on Scientific Computing. v. 24, n.
1, pp. 1-19.

MUFTI, I .R., 1990. Large-Scale Three-Dimensional Seismic Models and Their


Interpretive Significance. Geophysics, v. 55, 1166-1182.

NICKOLLS, J., BUCK, I., GARLAND, M. et. al., 2008. Scallable parallel
programming. Queue v. 6, n. 2, pp. 41-53.

PHADKE, S., ZHARDWAJ, D., YERNENI, S. 3D seismic modeling in a Message


Passing Environment. In: Third International Conference and Exposition of the
Society of Petroleum Geophysicists (SPG 2000). Nova Deli, ndia, pp. 23-25.

RIDGE, D., BECKER, D., MERKEY, P., 1997. Beowulf: Harnessing the Power of
Parallelism in a Pile-of-PCs. Proceedings, IEEE Aerospace, v. 2, n. 1, p. 79-91.

REYNOLDS, A.C., 1978, Boundary conditions for the numerical solution of wave
propagation problems, Geophysics, v.43, n.6, pp. 1099-1110.

92
SILVA, B. M., 2006. Migrao RTM, PSPI e SPLIT-STEP de Registros de Mltiplas
Fontes: Imageamento Ssmico em Meios com Altos Contrastes de Velocidade.
Dissertao de Mestrado da Universidade Federal do Rio de Janeiro,
COPPE/UFRJ, Rio de Janeiro, Brasil.

SILVA, J. J., 2009. Migrao Reversa no Tempo na Determinao da Amplitude de


Reflexo em Funo do ngulo de Incidncia. Tese de Doutorado da
Universidade Federal do Rio de Janeiro, COPPE/UFRJ, Rio de Janeiro, Brasil.

SILVA, K.C., 2012. Modelagem, Migrao Reversa no Tempo e Estudos de Iluminao


empregando o conceito de dados ssmicos blended. Dissertao de Mestrado da
Universidade Federal do Rio de Janeiro, COPPE/UFRJ, Rio de Janeiro, Brasil.

SILVA, M. W. X., 2008. Estudo da variao de parmetros de aquisio de dados


ssmicos associado ao imageamento de falhas utilizando Migrao Reversa no
Tempo. Dissertao de Mestrado da Universidade Federal do Rio de Janeiro,
COPPE/UFRJ, Rio de Janeiro, Brasil.

SILVA, V., BENTES, C., GUEDES, S., SILVA, G. P SILVA, 2009. Arquitetura e
Avaliao do Cluster De Alto Desempenho Netuno. WSCAD-SSC 2009.

SUNDERAM, V. S., GEIST, G. A., DONGARRA, J., MANCHEK, R., 1994. The
PVM concurrent computing system: Evolution, exeperiences and trends.
Parallel Computing, v. 20, pp. 531-535.

VILLAREAL, A., SCALES , J. A., 1997. Distributed Three- dimensional Finite-


difference Modeling of Wave As the PE can execute much faster than the
sampling Propagation in Acoustic Media. Computers in Physics, v. 11, n. 4,
pp. 388-389.

YANG, C. T., HUANG, C. L., LIN, C. F., 2011. Hybrid CUDA, OpenMP, and MPI
parallel programming on multicore GPU clusters. Computer Physics
Communications, v. 182, n 1, pp. 266-269.

93
ZHANG, J.H., WANG, S.Q., YAO, Z.X., 2010. Accelerating 3D Fourier migration
with graphics processing units. Geophysics, 74 (2009), pp. WCA129
WCA139.

94
Apndice A
Descrio do Cdigo em Paralelo

A paralelizao do algoritmo atravs do MPI contou com algumas modificaes


na forma de abrir o arquivo que contm o modelo de velocidades e na insero das
bordas, assim como necessitou da insero da comunicao entre os processos
responsveis por subdomnios vizinhos. Estas modificaes necessitaram do
desenvolvimento de estruturas lgicas que se baseiam no teste de coeficientes que
determinam as aes que sero tomadas na execuo de cada processo. Tais coeficientes
sero baseados, essencialmente, no valor do rank, que rotular os processos.

Os programa possui duas verses, Mod2DP_a e Mod2DP_b (Modelagem 2D em


Paralelo com restos concentrado e distribudo, respectivamente), e tem como entrada
um arquivo de leitura, contendo os parmetros da aquisio, do mtodo numrico e o
nome do arquivo que contm o modelo de velocidades. Em seu corpo, chama sub-
rotinas e realiza poucas operaes matemticas fora delas, que servem apenas para
fornecer os parmetros corretos que devero servir como argumentos.

No incio do programa, chama-se a rotina rArray2_a (resto concentrado) e


rArray2_b (resto distribudo), que l um arquivo binrio e aloca seus dados em um
array de duas dimenses dimenses, atribuindo parte dele a cada processo. A
decomposio do domnio realizada nesta sub-rotina.

Logo depois, o processo que contm a fonte (pfo) identificado atravs de testes
(seo A.1) no corpo do programa calcula os valores da fonte e os posiciona no vetor
fonte. Da ento iniciado o loop temporal.

A primeira ao dentro deste loop a de atribuir ao valor inicial do campo de


onda no ponto de insero da fonte o valor calculado anteriormente, tal ao s
tomada por pfo. A prxima rotina chamada a eqOnda2D, que calcula o campo da onda

95
em todos os ponto do subdomnio que foi atribudo ao processo, da mesma forma que
em um programa serial.

Ainda dentro do loop temporal so inseridas as bordas de absoro e no-


reflexo, atravs da sub-rotina bordas2D. Apenas os processos que contm receptores
a quem foram atribudos a superfcie do modelo realizam a gravao do sismograma.

No programa serial no havia outra etapa antes do fim do loop, mas trata-se de
um programa em paralelo, que usa um Message-Passing para realizar tal paralelizao.
Neste contexto, so necessrias duas sub-rotinas, com_vert e com_hor que tratam da
comunicao entre processos nas direes vertical e horizontal, respectivamente. Estas
rotinas contm em seu corpo os testes (descritos na Seo A.3) necessrios para saber se
e com quais processos deve trocar mensagens (dados contidos nas zonas-fantasma),
assim como o uso da rotina MPI_SENDRECV, de comunicao bloqueante.

Com isso, a propagao da onda tem seu fim, os sismogramas parciais


sismogramas que so colhidos por apenas um processo so gravados em disco. A
juno destes arquivos no feita por Mod2DP_a e Mod2DP_b, e foi feita atravs de
um comando COPY do Prompt de Comando do Windows.

A.1 Clculos preliminares e condies impostas


aos processos.

Alguns coeficientes devem ser usados impor condies s aes que cada
processo deve realizar. Como informao extra (que no contm na verso serial),
Mod2DP ter apenas npx e npz nmero de subdomnios em cada direo e o rank,
que o rotula. Adiante, tais escolhas e tomadas de deciso so fornecidas de acordo com
a ordem em que aparecem no cdigo.

Os valores das dimenses dos subdomnios, namx e namz, so calculados


conforme Equaes A.1 e A.2.

96
(A.1)

(A.2)

Os rx e rz so calculados atravs da funo mod(arg1,arg2), que d o resto da


diviso entre os nmeros inteiros arg1 e arg2. Os restos rx e rz so dados na Equaes
A.3 e A.4.

( ) (A.3)

( ) (A.4)

As variveis ixf e kzf contm as coordenas x e z da fonte pontual, enquanto ixfp e


kzfp so as coordenadas da fonte no processo pfo. O rank do processo que contm a
fonte (pfo), ixfp e kzfp so obtidos conforme as Equaes A.5, A.6 e A.7.

( ) (A.5)

( ) (A.6)

(( ) ) ( ) (A.7)

A varivel pfone contm o primeiro processo que contm receptores e kobsp


contm a profundidade onde esto os receptores, que esto em todas as posies
horizontais. Para esta configurao de receptores os sismogramas sero colhidos e
gravados pelos processos cujos ranks forem pfone adicionado de npz. Os valores de
pfone e kobsp so:

(A.8)

( ) (A.9)

97
A.2 Decomposio do Domnio

Atravs da sub-rotina rArray2, os subdomnios so carregados pelos processos,


isto feito usando um comando read da linguagem FORTRAN, abrindo um arquivo
binrio, acessando dado-a-dado atravs de seu nmero de registro. Assim, a diviso do
domnio consistir em atribuir os l-simos dados do arquivo aos processos corretos.
Para isso, alguns coeficientes e testes foram desenvolvidos, para calcular o l que deve
ser acessado para cada valor das coordenadas dos pontos do subdomnio, que vo de 1
namx e de 1 namz.

Na diviso hbrida, os processos esto dispostos de forma quadriculada, tendo


colunas e linhas de processos, que so ordenados de 0 a np-1, tal que np o nmero de
processos da execuo, tal como na Figura 4.8. Se um dado processo p encontra-se em
uma dada linha e uma dada coluna desta malha de processo, entende-se por hor e vert as
posies vertical e horizontal do ltimo dado da linha e coluna de processos anterior,
respectivamente. Os seus valores so dados pelas Equaes A.10 e A.11.

(A.10)
( )

( ) (A.11)

Para o caso do resto concentrado, os processos das bordas direita e inferior da


malha so os que contm os restos, da foram desenvolvidos coeficientes que resultam
em 0 se o processo no estiver nas bordas direita e inferior ou 1 caso esteja. Estes
coeficientes foram chamados rxcoef e rzcoef e so dados pelas Equaes A.12 e A.13.

( ) (A.12)

(A.13)
( )
( )

98
Para o caso dos restos distribudos, duas condies sero impostas, como a
seguir:

rxcoef=0
rzcoef=0
se((rank/npz) rx) ento
hor = rx*(namx+1) + ((rank/npz)-rx)*namx

fim se
se(mod(rank,npz) rz) ento
vert = rz*(namz+1) + (mod(rank,npz)-rz)*namz
fim se
Assim, o nmero de registro l, que determinar o arquivo binrio a ser acessado
e colocado na posio vel(i,k) ser inserido em um loop da forma:

nn = hor*Nz + vert

faa i=1,namx +rxcoef*rx


aux = nn + (i-1)*nz
faa k=1, namz + rzcoef*rz
l= aux + k
leia(l-simo dado e atribua a vel(i,k) )

fim faa k
fim faa i

A.3 Bordas

A sub-rotina bordas2D age de forma parecida com o caso serial, sendo a


diferena no fato de as bordas no serem executadas por todos os processos.
importante frisar que para um valor de rank nulo, todas as bordas devem ser executadas,
ou seja, todas as condies devem ser verdadeiras. Foram impostas aplicao das
99
bordas direita, esquerda e inferior j que a superior no usada no programa serial para
simular o contato com a superfcie livre terra-ar ou rgua-ar. O a seguir o pseudocdigo:

modz=mod(rank+1,npz)

se(modz = 0)ento
Aplica bordas inferiores
fim se

se (rank < npz) ento


Aplica bordas da esquerda
fim se

se(rank (npx-1)*npz)ento
Aplica bordas da direita
fim se

A.4 Comunicao

Uma parte extremamente importante para a tcnica da decomposio do domnio


a comunicao entre os processos, j que est que faz com que a perturbao
inserida em uma regio do domnio, pelo processo pfo, possa ser propagada por todo o
modelo, como visto no Captulo 4. A seguir a estrutura lgica da comunicao.

COMUNICAO HORIZONTAL (com_hor)

se (rank < (npx-1)*npz) ento


Comunica com o processo
do lado direito, rotulado
por rank + npz

fim se

100
se (rank npz) ento
Comunica com o processo
do lado direito, rotulado
por rank-npz

fim se

COMUNICAO VERTICAL (com_vert)

se (mod(rank,npz) > 0) ento


Comunica com o processo
de cima, rotulado
por rank - 1

fim se

se (mod(rank+1,npz) 0) ento
Comunica com o processo
de baixo, rotulado
por rank + 1

fim se

101
Apndice B
O MPI como Padro de Troca de
Mensagens
O modelo de troca de mensagens se vale de um paradigma de memria
distribuda para realizar computao paralela. Este modelo , hoje, muito popular e deve
se manter desta forma por bastante tempo, uma vez que obtm bons resultados, est
bastante difundido e no h outro modelo que se adapte to bem arquitetura da
maioria dos supercomputadores atuais, que consistem em uma coleo de ns, com
memria distribuda, onde existem vrios processadores ou um processador de vrios
ncleos, sob um paradigma de memria compartilhada.

Chamado em ingls de Message-Passing, este modelo funciona bem tanto para


processadores conectados por uma rede quanto para processadores que compartilham
memria, apesar de no ser ideal para este caso, j que necessita acessar a rede para para
trocar dados (mensagens) com outro.

O MPI (Message-Passing Interface) um padro de troca de mensagens, ou


seja, um tipo de Messagem-Passing, criado pela unio de fabricantes de computadores
paralelos e desenvolvedores, na tentativa de criar um padro superior aos anteriores,
usados para memria distribuda. Ele foi desenvolvido para ser uma simples biblioteca,
que pode ser lincada na compilao dos programas, escritos em C, C++ e FORTRAN
por compiladores comuns. (Outras informaes sobre o MPI podem ser obtidas em
www.mcs.anl.gov/research/projects/mpi).
Na prxima seo esto algumas das rotinas do MPI e suas descries.

B.1 Rotinas Bsicas do MPI

Em um message-passing, os processos so executados em paralelo e cada um


possui seus prprios endereos de memria. A comunicao acontece quando um dado
que est em um endereo destinado a um processo copiada para um endereo

102
destinado a outro. Essa operao cooperativa ou seja, depende da ao dos dois
processos. O processo que detm a informao a envia (emite um send) e o processo
que precisa dela a recebe (emite um receive), da a comunicao executada.

A essncia de um padro de troca de mensagens est na forma como este as


envia e recebe. No MPI, isto feito atravs de rotinas de uma biblioteca. Para um
detalhamento maior do uso das rotinas do MPI (GROPP, 1999) e para conhecer a
biblioteca de rotinas completa, acesse:
publib.boulder.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.fo
mp200%2Fipezps0027.htm.

Adiante seguem algumas destas rotinas, de inicializao e de comunicao.


Estas podem ser ditas ponto-a-ponto ou coletivas, bloqueantes, no-bloqueantes ou
bufferizadas. Aqui sero tratadas as rotinas de comunicao bloqueante, que so rotinas
para determinar que a execuo de dois processos seja pausada at que a troca de
mensagens tenha sido finalizada.

MPI_Scatter. segmenta uma mensagem contida no processo root em nproc (quantidade


de processos total) partes iguais e envia para todos os processos em MPI_Comm.

Sintaxe: MPI_Scatter ( sendbuf, sendcount, MPI_Sendtype, recvbuf, recvcount,


MPI_Recvtype, root, MPI_Comm, erro )

Onde so:

sendbuf: argumento de tipo qualquer que representa o endereo de memria da


mensagem a ser passada.
sendcount: argumento tipo inteiro que determina a quantidade de dados a ser
passada pela mensagem.
MPI_Sendtype: tipo da varivel sendbuf.
recvbuf: argumento que deve conter a mensagem recebida.
recvcount: argumento tipo inteiro que determina a quantidade de dados
a recebida pelo processo.

103
MPI_Recvtype: tipo da varivel recvbuf.
root : argumento tipo inteiro que representa o nmero do processo de
onde sai a mensagem inicial.
MPI_Comm: comunicador do qual os nproc processos fazem parte.
erro: varivel inteira que retorna MPI_Success quando a rotina executada com
sucesso e definida atravs da rotina MPI_Init(erro).

MPI_Bcast. Diferente de MPI_Scatter, no segmenta a mensagem contida no processo


root, mas a envia com a formatao original para todos os processos em MPI_Comm.

Sintaxe: MPI_Bcast ( sendbuf, sendcount, MPI_Sendtype, root, MPI_Comm,


erro )

MPI_Reduce. Recebe uma mensagem que conste na varivel sendbuf de todos os


processos em MPI_Comm (inclusive no de destino) para uma varivel recvbuf em um
processo root atravs de um operador do MPI como, por exemplo, MPI_Sum (somando
os valores contidos nas variveis)

Sintaxe: MPI_Reduce( sendbuf, recvbuf, sendcount, MPI_Recvtype,


MPI_Op, root, MPI_Comm, erro )

Onde so:
MPI_Op: caractere, operador do MPI, que pode ser de soma, produto,
mximo,
mnimo ou lgico.
root : argumento tipo inteiro que representa o nmero do processo de
onde sai a mensagem inicial.
erro: varivel inteira que retorna MPI_Success quando a rotina
executada com sucesso e definida atravs da rotina MPI_Init(erro). Este
argumento est presente apenas na verso do MPI para FORTRAN.

104
MPI_Send. Envia uma mensagem em sendbuf, ponto-a-ponto (do processo em questo
para um processo dest), em uma quantidade de dados sendcount, rotulada por um tag.

Sintaxe: MPI_Send ( sendbuf, sendcount, MPI_Sendtype, dest, tag,


MPI_Comm, erro )

MPI_Recv. Recebe uma mensagem em recvbuf, ponto-a-ponto (do processo em source


para o processo em questo), em uma quantidade de dados recvcount, rotulada por um
tag.

Sintaxe: MPI_Recv ( recvbuf, recvcount, MPI_Recvtype, source, tag,


MPI_Comm, status, erro )

Onde so:

dest: argumento tipo inteiro que determina o nmero processo de


destino da mensagem passada.
source : argumento tipo inteiro que representa o nmero do processo
de onde vem a mensagem recebida.
tag: varivel tipo inteiro que rotula a mensagem e serve como um
identificador a mais, permitindo que mais de uma mensagens de
mesmos tipo e tamanho sejam enviadas (ou recebidas) de um processo
source (deste) para (de) um processo vigente.
status: varivel usada internamente pelo MPI para o recebimento de
mensagens ponto-a-ponto.

MPI_Sendrecv. Envia uma mensagem em sendbuf, ponto-a-ponto (do processo source


para um processo dest), em uma quantidade de dados sendcount, rotulada por um
sendtag e, tambm, recebe uma mensagem em recvbuf, ponto-a-ponto (do processo em
source para o processo em dest), em uma quantidade de dados recvcount, rotulada por
um recvtag.

105
Sintaxe: MPI_Send ( sendbuf, sendcount, MPI_Sendtype, dest, sendtag,
recvbuf, recvcount, MPI_Recvtype, source, recvtag, status, MPI_Comm, erro )

Onde so:
sendtag: varivel tipo inteiro que rotula a mensagem,serve como um
identificador a mais, permitindo que mais de uma mensagens de mesmos tipo e
tamanho sejam enviadas de um processo source para um processo dest.
recvtag: varivel tipo inteiro que rotula a mensagem, serve como um
identificador a mais, permitindo que mais de uma mensagens de
mesmos tipo e tamanho sejam recebidas de um processo dest para um processo
source

B.2 Topologias
A forma como atribuir processos a cada parte do domnio em um programa
paralelo pode afetar drasticamente o seu desempenho, por conta da topologia de uma
mquina. Por topologia, entende-se a forma como os processos se comunicam entre si.
A comunicao de um processo A com um processo B, no deve ser feita
necessariamente - no mesmo tempo que a feita com um processo C.

Um processo representa um conjunto de tarefas que sero executadas de forma


independente em um processador com seus endereos de memria prprios. Em geral, a
rapidez com que um processador se comunica com outro via rede em uma mquina
paralela no igual para quaisquer dois processadores. Por outro lado, em programas
paralelos comum que um certo processo troque mensagens com poucos outros. Assim,
uma forma de agilizar a execuo seria se os processo que mais trocam mensagens
fossem executados nos processadores que se comunicam com mais facilidade. A Figura
B.1 mostra um exemplo de conexes de uma rede de ns de um cluster.

Assim, a maneira como se atribui partes do domnio aos processos deve ser tal
que promova uma comunicao com maior velocidade. O MPI fornece um sub-rotina
que faz esta distribuio, poupando bastante tempo do programador na hora de realizar
esta atribuio. Alm disto, o uso desta rotina faz com que um mesmo cdigo possa ser

106
otimizado em diferentes mquinas, o que no seria o caso de uma atribuio especfica
que se adaptasse a um certo tipo de topologia. Esta sub-rotina a MPI_Cart_Create,
descrita adiante.

Figura B.1 Exemplo de rede. Extrada do site publib.boulder.ibm.com em 20 de


fevereiro de 2012.

MPI_Cart_Create. Agrupa os processos que esto em comm_old em uma malha de


ndims dimenses, dadas por dims, que podem (ou no) ser peridicas de acordo com o
argumento de periods , reordenados de acordo com o argumento reorder e, ento,
associados ao comunicador comm_cart.

Sintaxe: MPI_Cart_create(comm_old, ndims, dims, periods, reorder,


comm_cart, erro)

Onde so:
comm_old: argumento de tipo inteiro que representa o comunicador dos
processos que sero reagrupados.
ndims :de tipo inteiro, determina quantas dimenses a malha ter.

107
dims :de tipo inteiro, um vetor de ndims posies com as dimenses de cada
dimenso da malha.
periods : varivel lgica que determina quais dimenses sero peridicas.
reorder: varivel lgica que indica se o MPI tem permisso para escolher a
melhor maneira de organizar os processos no domnio
comm_cart: argumento tipo inteiro que conter o comunicador dos processos
reagrupados.

Veja abaixo um exemplo de construo a malha de duas dimenses da Figura 3.3.

dims(1) = 4
dims(2) = 3
periods(1) = .false.
periods(2) = .false.
reorder= .true.
ndims =2
call MPI_Cart_Create( comm_old, ndims, dims, periods, reorder, comm_cart,
erro)

a) b)
0 3 6 9 (0,0) (1,0) (2,0) (3,0)

1 4 7 10 (0,1) (1,1) (2,1) (3,1)

2 5 8 11 (0,2) (1,2) (2,2) (3,2)

Figura B.3 Malha de processos. Em (a), est uma atribuio do domnio aos processos
que no considera a topologia da mquina, em (b) est a forma como o MPI apresenta
os processos rotulados por coordenadas em que os processos foram reordenados
para uma melhor comunicao.

Eventualmente, ser necessrio obter as coordenas do processo para se realizar a


computao paralela, para isso o MPI possui a rotina MPI_Cart_Coords, descrita a
seguir.

108
MPI_Cart_Coords. Obtm as coordenadas do processo rank, reordenado no
comunicador comm_cart e coloca no vetor coords, de ndims posies.

Sintaxe: MPI_Cart_Coords(comm_cart, rank, ndims, coords, erro)

comm_cart: argumento de tipo inteiro que representa o comunicador dos da


malha.
coords : de tipo inteiro, um vetor de ndims posies com as coordenas do
processo.

109

You might also like