Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
DOURADOS-MS
2014
Orientador:
P rof .
P rof .
P rof a .
Resumo
Este trabalho tem como objetivo o desenvolvimento de um Plugin Framework que permite visualizar histricos de comunicao e de checkpoints vindos de aplicaes distribudas para analisar
protocolos de checkpointing. Para tanto, ele apresenta conceitos sobre o comportamento de protocolos de checkpointing e sobre o simulador
ChkSim,
ChkSim
Java
que inclui a manipulao de ferramentas grcas disponibilizadas. Alm disso, o plugin fra-
mework traz a oportunidade de exportar seus resultados grcos para arquivos no formato SVG
(Scalable Vector Graphics ), de modo que essas imagens sejam analisadas em qualquer ambiente
computacional com suporte a este tipo de arquivo.
Sumrio
1 Introduo
1.1
Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.2
Objetivos Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.3
Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.4
Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.5
Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Checkpointing
15
2.1
Modelo Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.1
Eventos de comunicao . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.2
16
17
2.2.1
17
2.2.2
Cortes Consistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.2.3
19
2.2.4
20
21
2.3.1
21
2.2
2.3
Sncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SUMRIO
2.3.2
Assncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3.3
Quase-sncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3 ChkSim
26
3.1
Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2
Gerador de Cargas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.3
Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.4
29
4 Resultados
34
4.1
Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.2
. . . . . . . . . . . . . . . . . . . . . . . . .
41
42
4.2.1
Lupa
5 Consideraes Finais
43
5.1
Concluses
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.2
Diculdades Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.3
Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
Captulo 1
Introduo
A computao distribuda formada por um conjunto de n processos {P0 ...Pn1 } que executam
eventos e se comunicam atravs da troca de mensagens. Neste modelo de sistema no existem
estruturas denidas para a execuo de tarefas usando o compartilhamento de memria, acesso
e sincronizao de relgios bem como informaes referentes diferena de velocidade entre
os processos, com isto a utilizao de comunicao atravs de mensagens se torna essencial
para o funcionamento da aplicao. Esta comunicao realizada basicamente utilizando canais
unidirecionais entre dois processos e todos os processos comunicam entre si diretamente ou atravs
de processos intermedirios. A computao distribuda representada atravs de diagramas de
espao-tempo, como representado na Figura 1.1. Esta Figura contm quatro processos (P0 , P1 ,
9
Para garantir que as mensagens sejam enviadas e recebidas de acordo com a relao causal
denida por Lamport (4), necessria a criao de pontos de recuperao durante a execuo
da aplicao distribuda. Estes pontos de recuperao so denominados checkpoints e podem
ser apresentados gracamente como na Figura 1.2. Nesta Figura, checkpoints so representados
por pequenos quadrados preenchidos em um diagrama espao-tempo, na qual cada checkpoint cji
corresponde ao j-simo checkpoint do processo Pi .
checkpointing para que ele seja capaz de entender o comportamento de protocolos de checkpointing de interesse atravs dos padres de comunicao e de checkpointing gerados pelos protocolos
10
e apresentados como diagramas espao-tempo no plugin framework.
Uma ferramenta semelhante que props-se a desenvolver, o Projeto Lupa (10). Ele um
Lupa
Lupa,
exigindo que
o programador insira grande quantidade de cdigo especco na aplicao j existente, tornandoa dependente de uma linguagem de programao, da plataforma e das prprias caractersticas
do
Lupa.
Usando a execuo do
ChkSim,
algoritmos checkpointing em aplicaes distribudas, (19) para cada protocolo, possvel evitar
essa insero de cdigo adicional, pois a criao do diagrama espao-tempo estar relacionada
somente execuo do
Alm disso, o
ChkSim.
Lupa
mentados em relao ao
ChkSim.
(5), Lazy-HMNR (17), FINE (7) e alguns protocolos do tipo NBS (Sncronos no-bloqueantes)
(15, 16) j esto implementados no
ChkSim,
11
Com a nalidade de dar incio criao de um grupo de pesquisa na rea de Computao Paralela e Distrubuda na Faculdade de Cincias Exatas e Tecnologias, o trabalho proposto
traz como primeira contribuio o desenvolvimento de um plugin framework para a visualizao
do comportamento de protocolos de checkpointing. Essa visualizao ser possvel atravs de
histricos obtidos de execues de aplicaes executadas em ambientes distribudos, independentemente da plataforma e linguagem e programao, conjuntamente com simulaes usando o
ChkSim.
ChkSim;
se necessrio;
4. Redigir o texto do Projeto de Trabalho de Concluso de Curso 1, incluindo toda a fundamentao terica necessria para o desenvolvimento do trabalho proposto;
5. Apresentar, para uma pr-banca, o Projeto de Trabalho de Concluso de Curso 1;
6. Desenvolver o Plugin Framework propriamente dito;
7. Validar o Plugin Framework proposto comparando-o com o
Lupa;
1.3. Metodologia
12
8. Analisar um subconjunto de protocolos de checkpointing existentes, com base nas visualizaes geradas pelo Plugin Framework proposto;
9. Redigir o texto do Projeto de Trabalho de Concluso de Curso 2, incluindo anlise e
resultados obtidos;
10. Apresentar, para uma banca nal, o o Projeto de Trabalho de Concluso de Curso 2;
11. Entregar a verso nal do Trabalho de Concluso de Curso 2 para a coordenao do Curso.
1.3 Metodologia
No desenvolvimento deste projeto, um ou mais computadores do laboratrio deveria conter sistema operacional Linux, com navegador adequado, IDE NetBeans ltima verso, editores de texto
e interpretador para a linguagem de programao
Java,
mao, alm do acesso recursos disponibilizados online, via Internet. Para garantir a sintonia
entre as tarefas houve reunies peridicas com o orientador.
Utilizou-se um laboratrio de informtica da Faculdade de Cincias Exatas e Tecnologias
para implementar o Plugin Framework proposto. Ele foi desenvolvido usando a linguagem
Java,
com pacotes que suportem ambiente grco para representar o padro de comunicao e de
checkpoint. Este plugin framework tambm suportou a gerao de arquivos SVG (Scalable Vectorial Graphics ) atravs dos diagramas espao-tempo criados. Alm disso, ele usou o ChkSim para
obter os histricos desses padres. O ChkSim um simulador de protocolos de checkpointing
(19), no qual recebe como entrada um histrico de comunicao e de checkpoints, podendo este
histrico vir de uma determinada aplicao distribuda executada com o
gerador de carga de trabalho do prprio
chkmpi
ou atravs do
ChkSim.
ChkSim
mework proposto e criar os grcos dos padres de comunicao e de checkpoints com ele. Com
isso, foi possvel realizar uma validao parcial. Para complementar esta validao, comparou-se
o comportamento deste plugin framework com o do do ambiente
Lupa,
identicando as funcio-
1.4 Cronograma
As etapas para a concluso do trabalho proposto, referentes ao Trabalho de Concluso de Curso,
esto relacionadas numericamente com os objetivos especcos do trabalho e seu cronograma de
1.4. Cronograma
13
2013
2014
Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Fevereiro Maro
14
ChkSim,
que ser usado para obter informaes para permitir a visualizao de histricos no plugin fra-
ChkSim.
Finalmente, este
Captulo tambm apresenta um Wrapper do ChkSim, responsvel por gerar resultados comparativos entre protocolos. Finalmente neste Captulo apresentado o plugin framework desenvolvido,
o seu funcionamento e interface grca, alm de listar os requisitos funcionais e o casos de usos
elaborados para o desenvolvimento da ferramenta.
O Captulo 4 apresenta os resultados obtidos atravs da execuo da ferramenta desenvolvida, comparando os protocolos de checkpointing atravs das representaes grcas geradas
pelo plugin framework. Este captulo tambm apresenta as comparaes da ferramenta proposta e com a ferramenta
Lupa,
Lupa.
Captulo 2
Checkpointing
Este Captulo traz uma condensao sobre conceitos fundamentais de checkpointing e apresenta
uma sucinta reviso sobre suas abordagens. Na Seo 2.1 apresenta-se o modelo computacional
considerado, bem como denies de eventos, checkpoints e intervalos entre checkpoints. Na Seo 2.2 descreve-se noes necessrias para introduzirmos o conceito de consistncia global entre
checkpoints, tais como precedncia causal, cortes, consistncia entre um conjunto de checkpoints
e zigzag paths e z-cycles. Na Seo 2.3 apresenta-se uma classicao clssica para esses algoritmos de checkpointing, considerando a sincronia ou no, dentro de trs categorias: sncronos,
assncronos e quase-sncronos.
2.1.1
Eventos de comunicao
16
processos (P0 e P1 ), seus respectivos eventos (e00 , e10 , e20 e e01 , e11 , e21 ) e a mensagem m1 enviada
pelo evento e10 e recebida pelo evento e11 .
2.1.2
Os eventos internos so formados apenas por checkpoints locais contendo atributos referentes ao
estado do processo. O checkpoint cki denota o k -simo checkpoint do processo Pi . Os processos
realizam a retirada de um checkpoint primrio aps o inicio da execuo e outro checkpoint
antes do encerramento da aplicao. A Denio 1 apresenta a condio de existncia de um
determinado checkpoint.
checkpoints do processo Pi , este intervalo pode ser rotulado de duas maneiras, rotulado esquerda
em que Iik representa o intervalo entre os checkpoints cki e ck+1
e rotulado direita, no qual o
i
k1
k
k
e ci . Na Figura 2.3 apresentado o intervalo I01
intervalo Ii corresponde aos checkpoints ci
com rotulao esquerda entre os checkpoints c10 e c20 e o intervalo I11 com rotulao direita
entre os checkpoints c11 e c01 .
17
2.2
points pode formar uma linha de recuperao na computao distribuda, introduzindo cortes e
a consistncia entre checkpoints.
2.2.1
A ordenao parcial dos eventos de uma aplicao distribuda necessria para garantir a consistncia da aplicao, que est interligada ao conceito de precedncia causal proposto por Lamport
(4). A caracterizao de um determinado checkpoint global consistente est fortemente conectada a contextualizao de precedncia causal. A Denio 2 expressa a condio de causalidade
entre eventos. Os eventos e e e0 so concorrentes (e k e0 ), se no existir precedncia entre eles
(e 9 e0 e e0 9 e).
(ea eb ) se
i.) a = b e = + 1, ou
ii.) existe uma mensagem m que foi enviada em ea e recebida em eb , ou
iii.) existe um evento ec tal que ea ec ec eb
Neste trabalho usa-se o conceito e a detonao de precedncia causal para representar
somente se o evento e
a preceder o evento eb . Estes eventos reproduzem estados do processo que,
18
ea eb ca cb
Na Figura 2.4 possvel legitimar a Denio 2 em que a condio i representada pela
precedncia entre os checkpoints c00 c10 , a condio ii valida a precedncia entre os eventos
de comunicao e10 e21 devido ao envio da mensagem m1 entre eles, esta causalidade tambm
comprova a condio iii onde o evento e21 precede o evento e31 , resultando na relao e10 e21 e21
2.2.2
Cortes Consistentes
Um corte formado por um subconjunto de eventos locais executados por cada um dos processos
da aplicao. Um corte representado por um conjunto de n nmeros naturais {x0 , x1 , . . . , xn1 }.
Os ltimos eventos de cada processo pertencentes a um corte so denominados de fronteira de
x
n1
corte descritos na seguinte forma {ex0 0 , ex1 1 , . . . , en1
} ou seja, todos os eventos esquerda da
Denio 3. Um corte C consistente, para quaisquer dois eventos e e e0 se, e somente se,
(e C) (e0 e) e0 C
Na Figura 2.5 existem dois cortes C e I , em que o corte C , representado por um linha
preenchida, consistente, pois h relaes de precedncia e00 e01 , e01 e11 e e11 e02 e as
mensagens m1 e m2 so enviadas e recebidas dentro do limite do corte. Contudo, o corte I ,
representado pela linha tracejada, inconsistente, porque o evento e10 no precede o evento e12 ,
alm disso a mensagem m3 est sendo enviada fora do limite do corte corte e recebida dentro do
corte I .
19
A consistncia entre checkpoints est relacionada com a precedncia causal de Lamport. Para
determinar essa consistncia, necessria a identicao de um checkpoint global, ou seja, a seleo de um checkpoint de cada processo da computao, que obedea a denio de um checkpoint
global consistente. Um checkpoint global () formado por um conjunto de l checkpoints locais,
sendo um checkpoint de cada n processo da aplicao.
20
O conceito de zigzag paths (z-path) denido por Netzer e Xu (11) est relacionado anlise
das sequncias de mensagens entre um conjunto de checkpoints, esta analise est baseada na
Denio 5.
ca
a um checkpoint
cb
Checkpointing
21
e somente se, existir uma z-path causal neste mesmo intervalo de checkpoints. Esta condio
Uma z-path pode interligar um checkpoint a ele prprio, este checkpoint considerado um
checkpoint intil e no pertence a um checkpoint global consistente, quando isto ocorre, temos
uma zigzag cycle ou (z-cycle). Na Figura 2.9 ilustrado uma z-cycle [m1 , m2 , m3 ] que conecta
o checkpoint c12 a si mesmo, este checkpoint considerado intil devido existencia de uma zpath [m1 , m2 ] que interliga os checkpoints c00 e c12 e uma z-path [m3 ] que conecta os checkpoints c12
e c10 , estas z-paths estabelecem que o checkpoint c12 no pertenca um checkpoint global consistente
formado pelos os checkpoints c00 e c10 resultando em um checkpoint c12 intil para a aplicacao.
2.3.1
Sncrona
Esta abordagem suspende a execuo da aplicao para que cada um dos processos da computao retirem um checkpoint global. Esta suspenso realizada interrompendo o uxo de mensagens
Checkpointing
22
entre os processos e enviando mensagens de requisio para que os processos da computao selecionem seus checkpoints. A aplicao voltar a ser executada aps o recebimento das mensagens
de conrmao da retirada dos checkpoints de outros processos.
Os checkpoints locais retirados, formam um checkpoint global consistente. Neste mtodo
os checkpoints globais consistentes so determinados instantaneamente, porm o custo da interrupo da execuo da aplicao uma desvantagem, isto porque esta interrupo pode ser
ocasionada por apenas um processo da aplicao, caso este processo tenha um checkpoint relevante.
Na Figura 2.10 a abordagem sncrona est sendo representada os mtodos para a seleo
de checkpoints e a formao do checkpoint global consistente = {c10 , c11 , c12 }. Estes mtodos
so realizados aps a retirada do checkpoint c11 , no qual mensagens de requisio para a retirada
de checkpoints so enviadas para os processos P0 e P2 e aps o recebimento desta mensagens
os processos executam a retirada dos checkpoints locais c10 e c12 e enviam mensagens de conrmao deste armazenamento de checkpoints para o processo P1 . As mensagens de requisio e
conrmao da retirada de checkpoints so denominadas de mensagens de controle e esto sendo
representadas por retas tracejadas.
2.3.2
Assncrona
Checkpointing
23
inutil c02 , pois este checkpoint no faz parte de um checkpoint global consistente. Alm disso na
Figura 2.11 exemplicado o cenrio de efeito domin, no qual em caso de a falha nos processos P0
e P1 , a aplicao dever retroceder ao inicio da computao, pois os checkpoints destes processos
que formam o checkpoint global consistente (), so considerados como checkpoints inicias dos
processos.
2.3.3
Quase-sncrona
checkpoint global consistente = {c10 , c11 , c12 } , no qual este checkpoint global consistente formado
pelos checkpoins bsicos (c10 e c12 ) e pelo checkpoint forado c11 .
Checkpointing
24
Z-Cycle Free (PZCF), que no ser explorado neste trabalho por no garantir a constituio de
checkpoints globais consistentes. Estes protocolos levam em considerao os conceitos de z-paths e
z-cycles descritos na Seo 2.2.4 para gerar checkpoints globais consistentes. Os protocolos SZPF
garantem que a aplicao esteja livre de z-path no causais entre checkpoints e utilizam rastreadores de dependncia baseados nas propriedades de Rollback-Dependency Trackability (RDT)
(2) que tambm utilizado nos protocolos ZPF. Esses protocolos diferem dos protocolos SZPF
por permitir a existncia de z-paths no cauais, porm estas z-paths devem estar duplicadas causalmente. Os protocolos ZCF impedem apenas a existncia de z-cycles, enquanto os protocolos
PZCF no garantem a ausncia total de checkpoints inteis e so considerados simplicaes dos
protocolos ZPF e ZCF. Esta hierarquia entre estes protocolos na representada na Figura 2.13.
Receive-Send proposto por Russell (14) em 1980. Na Figura 2.14 o Modelo Mark-Receive-Send
ilustrado no processo Pi .
Checkpointing
25
Os protocolos ZPF permitem a existncia de z-paths causais e z-paths no causais, desde que
estas z-paths no causais estejam duplicadas causalmente. Neste padro a retirada de um check-
point forado ocorre antes da recepo de uma mensagem m, duplicando causalmente as z-paths
no causais existentes. Na Figura 2.15 ilustrado o comportamento do protocolo FDI (FixedDependency-Interval) (21), em que os checkpoints forados c11 e c10 so retirados respectivamente
antes da recepo da mensagens m1 e m2 . A z-path [m3 , m2 ] no causal est duplicada causalmente pela z-path [m1 , m2 ] causal.
Captulo 3
ChkSim
Este captulo apresenta o funcionamento
ChkSim
usada para simular a execuo de protocolos de checkpointing atravs de histricos de computaes distribudas e permitir a comparao entre esses protocolos. Na Seo 3.1, a arquitetura
do
ChkSim
StatisticLG
LupaLogLG.
LoadGenerator
ChkSim.
e suas rami-
Wrapper,
responsvel
3.1 Arquitetura
A arquitetura do
ChkSim
Seu funcionamento do
ChkSim
LoadGenerator
e so processadas na classe
Simulator,
27
ChkSim
LoadGenerator
sagens de computaes distribudas atravs da leitura de um arquivo XML. O arquivo XML pode
conter simulaes de computaes distribudas articiais que so processadas pela classe
ticLG
Statis-
de cargas
LupaLogLG.
O gerador de cargas
StatisticLG
XML,
os compo-
nentes essenciais para a simulao de uma computao distribuda, como o nmero de processos
e eventos. Estas informaes so encapsuladas no arquivo
XML
serve como semente para o gerador de cargas e caractersticas sobre a existncia de simetria ou
no entre os processos. Essa semente permite a criao de eventos de modo determinstico e
a simetria ou no entre os processos permite padronizar a execuo desses eventos dentro de
intervalos entre checkpoints.
O gerador de cargas
LupaLogLG,
chkmpi.
Nesse caso, o
LupaLogLG
OpenMPI
pela
XML,
esse gerador de cargas. As informaes obtidas com a execuo da aplicao distribuda devem
ser incorporadas ao arquivo XML. Com o resultado da execuo de uma aplicao distribuda, so
gerados dois arquivos, contendo o histrico de eventos de comunicao e de checkpoints bsicos
retirados, respectivamente. Cada linha do primeiro arquivo contm os nmeros dos processos
origem e destino e os tempos lgicos de envio e recebimento de mensagens. Cada linha do segundo arquivo contm o nmero do processo e o tempo lgico em que este retirou um checkpoint
bsico.
3.3. Wrapper
28
3.3 Wrapper
O
Chksim
contm um
da ferramenta
Wrapper
GnuPlot.
Wrapper
do
ChkSim
.data,
em que na primeira coluna do arquivo contm a quantidade de processos e nas colunas seguintes
tem-se o nmero mdio de checkpoints retirados por algoritmo especicado no arquivo XML.E
outro arquivo no formato
gerados no arquivo
.plot,
GnuPlot,
.data.
XML
<arquivo_XML>-<mtrica>.plot,
em que
<arquivo_XML>
nado pelo arquivo XML, esta mtrica pode ser de checkpoints forados (Forced ) ou de checkpoints
bsicos (Basic ).
Na Figura 3.2 contm um screenshot da representao de um arquivo
.plot.
Esta represen-
tao consiste em um grco dos processos em relao a nmero mdio de checkpoints forados
retirados por processo pelos seguintes protocolos da classe ZCF : BCS (3), BCSAftersend (18),
.plot
utilizando a ferramenta
GnuPlot.
3.4. O Plugin
Framework
3.4 O Plugin
proposto
Framework
29
proposto
ChkSim
Java
ChkSim
ufgd.edu.br.interfaces
mework e o pacote
ufgd.edu.br.entity
ChkSim.
ChkSim
3.4. O Plugin
Framework
proposto
30
ChkSim
para encontrar uma maneira de implementar o plugin framework, de tal modo que
no houvesse alterao de cdigo, mas , apenas adies pontuais para a captura de informaes
necessrias para a formao das representaes grcas dos histricos das aplicaes distribudas.
As nicas classes que sofreram adicionamento de cdigo esto contidas na Figura 3.3, contudo
a classe com maior relevncia para o plugin framework a
QuasiSynchronousSimulator,
pois esta
XML.
ChkSim,
atravs da linha
de comando, no qual informado um arquivo com extenso .XML, que contm informaes sobre
o histrico de uma aplicao distribuda e quais de protocolos de checkpointing sero simulados.
A Figura 3.4 mostra como um arquivo
.XML
ChkSim
ChkSim.
- Linha de Comando
O tempo de execuo pode variar de acordo com o tamanho do histrico de uma aplicao,
pois as aplicaes maiores tendem a demorar mais para executar e portanto geram histricos
maiores. Para demonstrar a manipulao destes histricos existe um loading que informa ao
usurio a porcentagem que est sendo carregada e quais informaes esto sendo manipuladas
no momento. Esse loading apresentado na Figura 3.5.
ChkSim
3.4. O Plugin
Framework
proposto
31
ChkSim
propriamente dito.
SVG
(Scalable Vector
Graphics ) atravs da opo Exportar para SVG, permitindo ao usurio visualizar o comportamento da aplicao distribuda atravs de seus histricos de comunicao e de checkpoints
em ambientes com suporte a este tipo de formato. A Figura 3.7 contm uma screenshot da
visualizao de um arquivo
SVG
exportado da aplicao.
SVG
exportado da
3.4. O Plugin
Framework
proposto
32
ChkSim
so listados na
Tabela 3.1 o conjunto de requisitos funcionais e os casos de uso existentes so listados na Tabela
3.2.
Os requisitos funcionais listados na Tabela 3.1 para o plugin framework do
ChkSim
considerados obrigatrios.
RF
#1
#2
#3
#4
#5
#6
Descrio
O Plugin Framework deve permitir ao usurio visualizar a representao grca de uma aplicao distribuda contida em um arquivo XML
carregado pelo ChkSim.
O usurio deve ter a opo selecionar o protocolo de checkpointing, nmero de processos e o intervalo entre cada checkpoint bsico(adicional)
para a escolha da representao grca.
O usurio deve ter a opo visualizar a representao grca da aplicao distribuda com os seguintes opcionais de visualizao: numerao
de eventos de comunicao, numerao de checkpoints, mostrar apenas
checkpoints bsicos e/ou forados.
O usurio deve ter a opo exportar a representao grca da aplicao
distribuda para um arquivo SVG.
O Plugin Framework deve exibir ao usurio informaes relevantes a respeito da representao da aplicao como: protocolo de checkpointing,
nmero de processos, nmero total de eventos, nmero total de checkpoints, nmero de checkpoints bsicos e forados, e intervalo entre cada
checkpoint bsico no processo P0 e nos demais processos.
O Plugin Framework deve exibir ao usurio uma legenda para a representao grca da aplicao distribuda.
Tabela 3.1: Requisitos Funcionais do plugin framework do
ChkSim
foram
3.4. O Plugin
Framework
proposto
33
ChkSim
foram conside-
rados obrigatrios:
Permite ao usurio escolher se deseja visualizar o numerao dos eventos de comunicao, numerao dos checkpoints e checkpoints bsicos e/ou forados. Tem a nalidade de visualizar as
representaes grcas de acordo com a necessidade desejada.
Tabela 3.2: Casos de Uso do plugin framework do
O plugin framework do
ChkSim
ChkSim
ChkSim,
atravs de diagramas
Captulo 4
Resultados
Este captulo apresenta os resultados obtidos no desenvolvimento do plugin framework do
Sim
LAM-MPI
Lupa.
Chk-
Message Passing Interface ), e o ChkSim utiliza a biblioteca OpenMPI, que o MPI mantido pela
comunidade atual e ainda no tem suporte para algumas funcionalidades do
LAM-MPI.
EP,
do NAS Parallel
Benchmarks (1), em trs cenrios adaptados para aplicaes distribudas por Vieira e Buzato
(20). A aplicao
EP
35
ChkSim
com o plugin
framework, possvel armar que o protocolo LazyHMNR economiza mais checkpoints forados
entre os protocolos ZCF para a aplicao EP.
8 Processos
Algoritmo
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
Checkpoints
Bsicos
16
16
16
16
16
16
16
Checkpoints
16 Processos
Forados Algoritmo
29
29
12
12
12
12
11
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
Bsicos
64
64
64
64
64
64
64
Forados
258
258
61
61
61
61
51
Algoritmo
FDAS
RDTPartner
RDTMinimal
BHMR
Checkpoints
Bsicos
16
16
16
16
16 Processos
Forados Algoritmo
39
39
39
39
FDAS
RDTPartner
RDTMinimal
BHMR
Checkpoints
Bsicos
64
64
64
64
Forados
78
78
78
78
36
ChkSim
o protocolo LazyHMNR economiza mais checkpoints forados entre os protocolos ZCF, contudo
os protocolos da classe ZPF economizam checkpoints forados em relao aos protocolos BCS e
Intervalo 10-10
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
160
160
160
160
160
160
160
160
160
160
160
Intervalo 16-16
Checkpoints
Forados Bsicos
211
199
25
25
24
24
15
30
30
30
30
64
64
64
64
64
64
64
64
64
64
64
Checkpoints
Forados Bsicos
108
108
32
32
32
32
30
36
36
36
36
40
40
40
40
40
40
40
40
40
40
40
Forados
0
0
0
0
0
0
0
35
35
35
35
37
Intervalo 22-22
Intervalo 28-28
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
24
24
24
24
24
24
24
24
24
24
24
Intervalo 34-34
Checkpoints
Forados Bsicos
59
59
26
25
25
25
24
38
38
38
38
16
16
16
16
16
16
16
16
16
16
16
Checkpoints
Forados Bsicos
44
44
21
20
20
20
15
38
38
38
38
16
16
16
16
16
16
16
16
16
16
16
Forados
37
37
19
19
19
19
19
39
39
39
39
Intervalo 46-46
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
16
16
16
16
16
16
16
16
16
16
16
Intervalo 52-52
Checkpoints
Forados Bsicos
29
29
12
12
12
12
11
39
39
39
39
8
8
8
8
8
8
8
8
8
8
8
Checkpoints
Forados Bsicos
8
8
8
8
8
8
2
38
38
38
38
8
8
8
8
8
8
8
8
8
8
8
Forados
22
22
10
10
10
10
10
39
39
39
39
38
Intervalo 58-58
Intervalo 64-64
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
8
8
8
8
8
8
8
8
8
8
8
Intervalo 70-70
Checkpoints
Forados Bsicos
22
22
11
11
11
11
8
38
38
38
38
8
8
8
8
8
8
8
8
8
8
8
Checkpoints
Forados Bsicos
0
0
0
0
0
0
0
38
38
38
38
8
8
8
8
8
8
8
8
8
8
8
Forados
29
29
11
11
11
11
11
39
39
39
39
checkpointing bsicos xo em 42 eventos de comunicao, percebeu-se assim como nos cenrios
SI e SP, que o protocolo LazyHMNR retirou o menor nmero checkpoints forados. Alm disto,
todos os protocolos da classe ZPF retiraram 38 checkpoints forados, independente do intervalo
de checkpointing bsicos, e economizaram checkpoints forados em comparao aos protocolos
BCS e LazyBCS para os intervalos de 10, 6 e 2 eventos de comunicao. De acordo com os
dados apresentados nas Tabelas 4.7, 4.8, 4.9 e 4.10, obtidos atravs da execuo do
ChkSim
com
o plugin framework, possvel rearmar que o protocolo LazyHMNR economiza mais checkpoints
forados entre os protocolos ZCF. Contudo os protocolos da classe ZPF economizam checkpoints
forados em relao aos protocolos BCS e LazyBCS da classe ZCF, nos intervalos de 10, 6 e 2
eventos de comunicao, porm o nmero de checkpoints forados retirados para os protocolos
39
Intervalo 42-44
Intervalo 38-44
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
8
8
8
8
8
8
8
8
8
8
8
Intervalo 34-44
Checkpoints
Forados Bsicos
15
15
10
9
9
9
5
38
38
38
38
9
9
9
9
9
9
9
9
9
9
9
Checkpoints
Forados Bsicos
23
23
12
12
12
12
7
38
38
38
38
9
9
9
9
9
9
9
9
9
9
9
Forados
30
30
21
20
20
20
17
38
38
38
38
Intervalo 26-44
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
9
9
9
9
9
9
9
9
9
9
9
Intervalo 22-44
Checkpoints
Forados Bsicos
22
22
15
14
14
14
11
38
38
38
38
10
10
10
10
10
10
10
10
10
10
10
Checkpoints
Forados Bsicos
22
22
13
13
13
13
11
38
38
38
38
10
10
10
10
10
10
10
10
10
10
10
Forados
29
29
20
19
19
19
18
38
38
38
38
40
Intervalo 18-44
Intervalo 14-44
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
11
11
11
11
11
11
11
11
11
11
11
Intervalo 10-44
Checkpoints
Forados Bsicos
36
36
29
28
28
28
24
38
38
38
38
Checkpoints
Forados Bsicos
12
12
12
12
12
12
12
12
12
12
12
35
35
28
27
27
27
19
38
38
38
38
15
15
15
15
15
15
15
15
15
15
15
Forados
40
40
29
28
28
28
23
38
38
38
38
Intervalo 2-44
Checkpoints
Algoritmo Bsicos
BCS
LazyBCS
LazyBCSAftersend
LazyBCSPartner
HMNR
Fine
LazyHMNR
FDAS
RDTPartner
RDTMinimal
BHMR
20
20
20
20
20
20
20
20
20
20
20
Checkpoints
Forados Bsicos
63
52
27
27
33
27
24
38
38
38
38
47
47
47
47
47
47
47
47
47
47
47
Forados
97
45
25
25
33
31
25
38
38
38
38
EP,
ChkSim.
ChkSim
na abordagem Quase-Sncrona
41
Lupa
Funcionalidades
Apresenta o nmero de
processos da aplicao
Apresenta o intervalo
entre checkpoints
Visualizao de
checkpoints bsicos
Visualizao opcional
de checkpoints forados
Visualizao do tempo
lgico dos eventos
Construo de checkpoints
globais consistentes
Permite a execuo de uma
aplicao distribuda pela ferramenta
Exporta para formato SVG
Interfaces grcas
Plugin Framework
Lupa
Sim
No
Sim
No
Sim
Sim
Sim
No
Sim
Sim
No
Sim
No se aplica
Sim
Sim
No
Plugin Framework
Lupa
Sim
No
Sim
Sim
ChkSim
com o Lupa.
42
Lupa
Lupa.
No quesito de funcionalidades, a ferramenta proposta permite ao usurio selecionar diferentes protocolos de checkpointing para uma determinada aplicao distribuda, permite ao usurio
selecionar diferentes intervalos de checkpointing bsico, permite ao usurio visualizar opcionalmente checkpoints forados, alm disto uma vantagem importante, referente a funcionalidade de
exportao dos diagramas espao-tempo para o formato
SVG,
Lupa
Lupa
a no obteno de checkpoints
Captulo 5
Consideraes Finais
Este captulo apresenta as concluses sobre o trabalho desenvolvido, as diculdades encontradas
ao longo deste desenvolvimento e sugesto de trabalhos futuros.
5.1 Concluses
Com o desenvolvimento do plugin framework proposto para visualizao do histrico de aplicaes distribudas, atravs de diagramas espao-tempo, acredita-se que a visualizao grca
dessas aplicaes auxilia de maneira dedigna para entender o comportamento de protocolos
de checkpointing. Alm disso, atravs do plugin framework pode-se facilmente vericar uma
diferena entre os protocolos ZPF e ZCF quando executando a aplicao
EP
cenrios apresentados.
Considerando a aplicao
EP,
espao-tempo gerados atravs da ferramenta proposta, foi possvel analisar, por meio desses
diagramas que na aplicao
EP,
penho em comparao aos demais protocolos das classes ZCF e ZPF. Claramente, os protocolos
ZCF retiram menos checkpoints forados que os protocolos ZPF. Para a aplicao EP, esse fato
ocorre porqu os protocolos da classe ZCF permitem a existncia de z-paths causais e z-paths
no causais, no permitindo a existncia z-cycles, garantindo utilidade de todos os checkpoints
da aplicao.
As comparaes realizadas em termos de funcionalidades e interfaces grcas do plugin fra-
mework com o Lupa mostraram que o primeiro exerce uma relevante vantagem sobre o segundo
devido s inmeras funcionalidades existentes na ferramenta proposta, contudo a no represen-
44
tao de checkpoints globais por parte do plugin framework consiste em uma desvantagem em
relao ao
Lupa.
checkpointing.
Java
para
SVG,
denido no Trabalho de Concluso de Curso I como ideal para a exportao das representaes
grcas geradas pela ferramenta proposta.
StatisticLG,
Sendo assim, esta uma situao prevista para uma nova verso do plugin framework.
ChkSim.
45
ChkSim
para esta variante e a manipulao desta abordagem exigir um novo estudo sobre esses protocolos de checkpointing e o seu comportamento em aplicaes distribudas, pois esta abordagem
engloba novos conceitos como mensagens de controle entre os processos da aplicao.
Atravs da comparao do plugin framework do ChkSim com a ferramenta Lupa, deniu-se
que para uma nova verso, a ferramenta deve conter a funcionalidade de permitir ao usurio a
obteno de checkpoints globais consistente a partir da seleo de uma determinado checkpoint
contido nos diagramas espao-tempo.
Referncias Bibliogrcas
1 D. H. Bailey, E. Barszcz, J. T. Barton, D. S. Browning, R. L. Carter, L. Dagum, R. A.
Fatoohi, P. O. Frederickson, T. A. Lasinski, R. S. Schreiber, H. D. Simon, V. Venkatakrishnan,
and S. K. Weeratunga. The nas parallel benchmarks—summary and preliminary results.
In Proceedings of the 1991 ACM/IEEE Conference on Supercomputing, pages 158165, New
York, NY, USA, 1991. ACM.
2 Roberto Baldoni, Jean michel Helary, Achour Mostefaoui, and Michel Raynal. A
communication-induced checkpointing protocol that ensures rollback-dependency trackability.
In Proc. IEEE Int. Symposium on Fault Tolerant Computing, pages 6877, 1997.
3 D. Briatico, A. Ciuoletti, and L. Simoncini. A distributed domino-eect free recovery
algorithm. In Symposium on Reliability in Distributed Software and Database Systems 84, pages
207215, 1984.
4 K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of
distributed systems. ACM Trans. Comput. Syst., 3:6375, February 1985.
5 I.C. Garcia and L.E. Buzato. An ecient checkpointing protocol for the minimal
characterization of operational rollback-dependency trackability. In Reliable Distributed
Systems, 2004. Proceedings of the 23rd IEEE International Symposium on, pages 126 135, oct.
2004.
6 J.-M. Hlary, A. Mostefaoui, R.H.B. Netzer, and M. Raynal. Communication-based
prevention of useless checkpoints in distributed computations. Distributed Computing, 13:2943,
2000. 10.1007/s004460050003.
7 Y. Luo and D. Manivannan. Fine: A fully informed and ecient communication-induced
checkpointing protocol for distributed systems. Journal of Parallel and Distributed Computing,
69(2):153167, 2009.
8 D. Manivannan and Mukesh Singhal. Quasi-synchronous checkpointing: Models,
characterization, and classication. IEEE Transactions on Parallel and Distributed Systems,
10:703713, 1996.
9 G. Marsaglia and T. A. Bray. A convenient method for generating normal variables.
j-SIAM-REVIEW, 6(3):260264, 1964.
10 R.M. Menderico. Ambiente pra a visualizao de protocolos de checkpointing.
http://lupa.sourceforge.net/index.html, Fevereiro 2004. ltimo acesso em Setembro de
2012.
REFERNCIAS BIBLIOGRFICAS
47
11 Robert H. B. Netzer and Jian Xu. Necessary and sucient conditions for consistent global
snapshots. IEEE Trans. Parallel Distrib. Syst., 6(2):165169, February 1995.
12 B. Randell. System structure for software fault tolerance. SIGPLAN Not., 10(6):437449,
April 1975.
13 Gabriel Rodrguez, Mara J. Martn, Patricia Gonzlez, Juan Tourio, and Ramn Doallo.
Cppc: a compiler-assisted tool for portable checkpointing of message-passing applications.
Concurrency and Computation: Practice and Experience, 22(6):749766, 2010.
14 David L. Russell. State restoration in systems of communicating processes. In IEEE
tinsactions on Pamllel and Dist n buted Systems, pages 910, 1980.
15 T.C. Sakata and I.C. Garcia. Non-blocking synchronous checkpointing based on
rollback-dependency trackability. In Reliable Distributed Systems, 2006. SRDS '06. 25th IEEE
Symposium on, pages 411420. IEEE Computer Society, October 2006.
16 Tiemi Christine Sakata. Uma Ponte entre as Abordagens Sncrona e Quase-sncrona
para Checkpointing. Tese, Instituto de Computao - Universidade Estadual de Campinas
(UNICAMP), Dezembro 2006.